summaryrefslogtreecommitdiffstats
path: root/contrib/libstdc++
diff options
context:
space:
mode:
authorkan <kan@FreeBSD.org>2003-07-11 03:42:04 +0000
committerkan <kan@FreeBSD.org>2003-07-11 03:42:04 +0000
commitc7bbbdd036d3dd7ae253fb13c9994215af06f073 (patch)
treece14546aca3a67fa3440aed52f132bafaf68fe70 /contrib/libstdc++
parentb2a8872fbe1ec1c49094559ac7b78e6ea4ab7180 (diff)
downloadFreeBSD-src-c7bbbdd036d3dd7ae253fb13c9994215af06f073.zip
FreeBSD-src-c7bbbdd036d3dd7ae253fb13c9994215af06f073.tar.gz
Gcc 3.3.1-pre 2003-07-11 C++ support bits.
Diffstat (limited to 'contrib/libstdc++')
-rw-r--r--contrib/libstdc++/ChangeLog3972
-rw-r--r--contrib/libstdc++/Makefile.am38
-rw-r--r--contrib/libstdc++/Makefile.in55
-rw-r--r--contrib/libstdc++/acconfig.h9
-rw-r--r--contrib/libstdc++/acinclude.m4301
-rw-r--r--contrib/libstdc++/aclocal.m4301
-rw-r--r--contrib/libstdc++/config.h.in30
-rw-r--r--contrib/libstdc++/config/abi/alpha-freebsd5/baseline_symbols.txt3073
-rw-r--r--contrib/libstdc++/config/abi/alpha-linux-gnu/baseline_symbols.txt3031
-rw-r--r--contrib/libstdc++/config/abi/i386-freebsd4/baseline_symbols.txt2043
-rw-r--r--contrib/libstdc++/config/abi/i386-freebsd5/baseline_symbols.txt3073
-rw-r--r--contrib/libstdc++/config/abi/i486-linux-gnu/baseline_symbols.txt3058
-rw-r--r--contrib/libstdc++/config/abi/ia64-linux-gnu/baseline_symbols.txt3031
-rw-r--r--contrib/libstdc++/config/abi/sparc-freebsd5/baseline_symbols.txt3073
-rw-r--r--contrib/libstdc++/config/abi/x86_64-linux-gnu/baseline_symbols.txt3034
-rw-r--r--contrib/libstdc++/config/cpu/alpha/atomicity.h76
-rw-r--r--contrib/libstdc++/config/cpu/cris/atomicity.h79
-rw-r--r--contrib/libstdc++/config/cpu/generic/atomicity.h77
-rw-r--r--contrib/libstdc++/config/cpu/hppa/atomicity.h90
-rw-r--r--contrib/libstdc++/config/cpu/i386/atomicity.h75
-rw-r--r--contrib/libstdc++/config/cpu/i486/atomicity.h57
-rw-r--r--contrib/libstdc++/config/cpu/ia64/atomicity.h51
-rw-r--r--contrib/libstdc++/config/cpu/m68k/atomicity.h158
-rw-r--r--contrib/libstdc++/config/cpu/mips/atomicity.h81
-rw-r--r--contrib/libstdc++/config/cpu/powerpc/atomicity.h78
-rw-r--r--contrib/libstdc++/config/cpu/s390/atomicity.h60
-rw-r--r--contrib/libstdc++/config/cpu/sparc/atomicity.h131
-rw-r--r--contrib/libstdc++/config/io/basic_file_stdio.cc118
-rw-r--r--contrib/libstdc++/config/io/basic_file_stdio.h3
-rw-r--r--contrib/libstdc++/config/linker-map.gnu166
-rw-r--r--contrib/libstdc++/config/locale/generic/c_locale.cc4
-rw-r--r--contrib/libstdc++/config/locale/generic/c_locale.h17
-rw-r--r--contrib/libstdc++/config/locale/generic/codecvt_members.cc1
-rw-r--r--contrib/libstdc++/config/locale/generic/messages_members.h2
-rw-r--r--contrib/libstdc++/config/locale/gnu/c_locale.cc8
-rw-r--r--contrib/libstdc++/config/locale/gnu/c_locale.h13
-rw-r--r--contrib/libstdc++/config/locale/gnu/codecvt_members.cc4
-rw-r--r--contrib/libstdc++/config/locale/gnu/collate_members.cc2
-rw-r--r--contrib/libstdc++/config/locale/gnu/ctype_members.cc2
-rw-r--r--contrib/libstdc++/config/locale/gnu/messages_members.cc2
-rw-r--r--contrib/libstdc++/config/locale/gnu/monetary_members.cc12
-rw-r--r--contrib/libstdc++/config/locale/gnu/numeric_members.cc2
-rw-r--r--contrib/libstdc++/config/locale/gnu/time_members.cc2
-rw-r--r--contrib/libstdc++/config/locale/gnu/time_members.h3
-rw-r--r--contrib/libstdc++/config/locale/ieee_1003.1-2001/codecvt_specializations.h26
-rw-r--r--contrib/libstdc++/config/os/aix/atomicity.h59
-rw-r--r--contrib/libstdc++/config/os/aix/ctype_base.h55
-rw-r--r--contrib/libstdc++/config/os/aix/ctype_inline.h76
-rw-r--r--contrib/libstdc++/config/os/aix/ctype_noninline.h82
-rw-r--r--contrib/libstdc++/config/os/aix/os_defines.h58
-rw-r--r--contrib/libstdc++/config/os/bsd/freebsd/ctype_base.h76
-rw-r--r--contrib/libstdc++/config/os/bsd/freebsd/ctype_inline.h106
-rw-r--r--contrib/libstdc++/config/os/bsd/freebsd/ctype_noninline.h81
-rw-r--r--contrib/libstdc++/config/os/bsd/freebsd/os_defines.h44
-rw-r--r--contrib/libstdc++/config/os/bsd/netbsd/ctype_base.h58
-rw-r--r--contrib/libstdc++/config/os/bsd/netbsd/ctype_inline.h73
-rw-r--r--contrib/libstdc++/config/os/bsd/netbsd/ctype_noninline.h79
-rw-r--r--contrib/libstdc++/config/os/bsd/netbsd/os_defines.h38
-rw-r--r--contrib/libstdc++/config/os/djgpp/ctype_base.h57
-rw-r--r--contrib/libstdc++/config/os/djgpp/ctype_inline.h67
-rw-r--r--contrib/libstdc++/config/os/djgpp/ctype_noninline.h81
-rw-r--r--contrib/libstdc++/config/os/djgpp/os_defines.h45
-rw-r--r--contrib/libstdc++/config/os/generic/ctype_base.h58
-rw-r--r--contrib/libstdc++/config/os/generic/ctype_inline.h161
-rw-r--r--contrib/libstdc++/config/os/generic/ctype_noninline.h82
-rw-r--r--contrib/libstdc++/config/os/generic/os_defines.h37
-rw-r--r--contrib/libstdc++/config/os/gnu-linux/ctype_base.h55
-rw-r--r--contrib/libstdc++/config/os/gnu-linux/ctype_inline.h69
-rw-r--r--contrib/libstdc++/config/os/gnu-linux/ctype_noninline.h152
-rw-r--r--contrib/libstdc++/config/os/gnu-linux/os_defines.h68
-rw-r--r--contrib/libstdc++/config/os/hpux/ctype_base.h55
-rw-r--r--contrib/libstdc++/config/os/hpux/ctype_inline.h69
-rw-r--r--contrib/libstdc++/config/os/hpux/ctype_noninline.h82
-rw-r--r--contrib/libstdc++/config/os/hpux/os_defines.h104
-rw-r--r--contrib/libstdc++/config/os/irix/irix5.2/atomicity.h50
-rw-r--r--contrib/libstdc++/config/os/irix/irix5.2/ctype_base.h55
-rw-r--r--contrib/libstdc++/config/os/irix/irix5.2/ctype_inline.h67
-rw-r--r--contrib/libstdc++/config/os/irix/irix5.2/ctype_noninline.h83
-rw-r--r--contrib/libstdc++/config/os/irix/irix5.2/os_defines.h55
-rw-r--r--contrib/libstdc++/config/os/irix/irix6.5/atomicity.h50
-rw-r--r--contrib/libstdc++/config/os/irix/irix6.5/ctype_base.h55
-rw-r--r--contrib/libstdc++/config/os/irix/irix6.5/ctype_inline.h67
-rw-r--r--contrib/libstdc++/config/os/irix/irix6.5/ctype_noninline.h84
-rw-r--r--contrib/libstdc++/config/os/irix/irix6.5/os_defines.h55
-rw-r--r--contrib/libstdc++/config/os/mingw32/ctype_base.h58
-rw-r--r--contrib/libstdc++/config/os/mingw32/ctype_inline.h71
-rw-r--r--contrib/libstdc++/config/os/mingw32/ctype_noninline.h89
-rw-r--r--contrib/libstdc++/config/os/mingw32/os_defines.h37
-rw-r--r--contrib/libstdc++/config/os/newlib/ctype_base.h57
-rw-r--r--contrib/libstdc++/config/os/newlib/ctype_inline.h67
-rw-r--r--contrib/libstdc++/config/os/newlib/ctype_noninline.h88
-rw-r--r--contrib/libstdc++/config/os/newlib/os_defines.h36
-rw-r--r--contrib/libstdc++/config/os/qnx/qnx6.1/ctype_base.h55
-rw-r--r--contrib/libstdc++/config/os/qnx/qnx6.1/ctype_inline.h67
-rw-r--r--contrib/libstdc++/config/os/qnx/qnx6.1/ctype_noninline.h79
-rw-r--r--contrib/libstdc++/config/os/qnx/qnx6.1/os_defines.h36
-rw-r--r--contrib/libstdc++/config/os/solaris/solaris2.5/ctype_base.h55
-rw-r--r--contrib/libstdc++/config/os/solaris/solaris2.5/ctype_inline.h69
-rw-r--r--contrib/libstdc++/config/os/solaris/solaris2.5/ctype_noninline.h81
-rw-r--r--contrib/libstdc++/config/os/solaris/solaris2.5/os_defines.h42
-rw-r--r--contrib/libstdc++/config/os/solaris/solaris2.6/ctype_base.h56
-rw-r--r--contrib/libstdc++/config/os/solaris/solaris2.6/ctype_inline.h76
-rw-r--r--contrib/libstdc++/config/os/solaris/solaris2.6/ctype_noninline.h81
-rw-r--r--contrib/libstdc++/config/os/solaris/solaris2.6/os_defines.h42
-rw-r--r--contrib/libstdc++/config/os/solaris/solaris2.7/ctype_base.h57
-rw-r--r--contrib/libstdc++/config/os/solaris/solaris2.7/ctype_inline.h69
-rw-r--r--contrib/libstdc++/config/os/solaris/solaris2.7/ctype_noninline.h82
-rw-r--r--contrib/libstdc++/config/os/solaris/solaris2.7/os_defines.h43
-rw-r--r--contrib/libstdc++/config/os/windiss/ctype_base.h55
-rw-r--r--contrib/libstdc++/config/os/windiss/ctype_inline.h125
-rw-r--r--contrib/libstdc++/config/os/windiss/ctype_noninline.h82
-rw-r--r--contrib/libstdc++/config/os/windiss/os_defines.h37
-rwxr-xr-xcontrib/libstdc++/configure4969
-rw-r--r--contrib/libstdc++/configure.in262
-rw-r--r--contrib/libstdc++/configure.target270
-rw-r--r--contrib/libstdc++/include/Makefile.am177
-rw-r--r--contrib/libstdc++/include/Makefile.in199
-rw-r--r--contrib/libstdc++/include/bits/basic_ios.h303
-rw-r--r--contrib/libstdc++/include/bits/basic_ios.tcc43
-rw-r--r--contrib/libstdc++/include/bits/basic_string.h578
-rw-r--r--contrib/libstdc++/include/bits/basic_string.tcc150
-rw-r--r--contrib/libstdc++/include/bits/boost_concept_check.h2
-rw-r--r--contrib/libstdc++/include/bits/c++config25
-rw-r--r--contrib/libstdc++/include/bits/char_traits.h21
-rw-r--r--contrib/libstdc++/include/bits/codecvt.h2
-rw-r--r--contrib/libstdc++/include/bits/concept_check.h3
-rw-r--r--contrib/libstdc++/include/bits/deque.tcc779
-rw-r--r--contrib/libstdc++/include/bits/fpos.h8
-rw-r--r--contrib/libstdc++/include/bits/fstream.tcc200
-rw-r--r--contrib/libstdc++/include/bits/gslice_array.h196
-rw-r--r--contrib/libstdc++/include/bits/indirect_array.h138
-rw-r--r--contrib/libstdc++/include/bits/ios_base.h290
-rw-r--r--contrib/libstdc++/include/bits/istream.tcc140
-rw-r--r--contrib/libstdc++/include/bits/list.tcc368
-rw-r--r--contrib/libstdc++/include/bits/locale_classes.h404
-rw-r--r--contrib/libstdc++/include/bits/locale_facets.h256
-rw-r--r--contrib/libstdc++/include/bits/locale_facets.tcc954
-rw-r--r--contrib/libstdc++/include/bits/localefwd.h333
-rw-r--r--contrib/libstdc++/include/bits/mask_array.h182
-rw-r--r--contrib/libstdc++/include/bits/ostream.tcc98
-rw-r--r--contrib/libstdc++/include/bits/slice_array.h241
-rw-r--r--contrib/libstdc++/include/bits/stl_alloc.h36
-rw-r--r--contrib/libstdc++/include/bits/stl_bvector.h19
-rw-r--r--contrib/libstdc++/include/bits/stl_deque.h2965
-rw-r--r--contrib/libstdc++/include/bits/stl_iterator.h13
-rw-r--r--contrib/libstdc++/include/bits/stl_iterator_base_funcs.h198
-rw-r--r--contrib/libstdc++/include/bits/stl_iterator_base_types.h9
-rw-r--r--contrib/libstdc++/include/bits/stl_list.h1788
-rw-r--r--contrib/libstdc++/include/bits/stl_map.h1004
-rw-r--r--contrib/libstdc++/include/bits/stl_multimap.h963
-rw-r--r--contrib/libstdc++/include/bits/stl_queue.h530
-rw-r--r--contrib/libstdc++/include/bits/stl_stack.h272
-rw-r--r--contrib/libstdc++/include/bits/stl_threads.h20
-rw-r--r--contrib/libstdc++/include/bits/stl_tree.h8
-rw-r--r--contrib/libstdc++/include/bits/stl_vector.h1887
-rw-r--r--contrib/libstdc++/include/bits/streambuf.tcc86
-rw-r--r--contrib/libstdc++/include/bits/streambuf_iterator.h36
-rw-r--r--contrib/libstdc++/include/bits/valarray_array.h20
-rw-r--r--contrib/libstdc++/include/bits/valarray_meta.h1390
-rw-r--r--contrib/libstdc++/include/bits/vector.tcc437
-rw-r--r--contrib/libstdc++/include/c_std/std_cmath.h127
-rw-r--r--contrib/libstdc++/include/c_std/std_cstdio.h15
-rw-r--r--contrib/libstdc++/include/c_std/std_cstdlib.h26
-rw-r--r--contrib/libstdc++/include/c_std/std_cwchar.h16
-rw-r--r--contrib/libstdc++/include/ext/stdio_filebuf.h13
-rw-r--r--contrib/libstdc++/include/ext/stl_hashtable.h7
-rw-r--r--contrib/libstdc++/include/std/std_bitset.h51
-rw-r--r--contrib/libstdc++/include/std/std_complex.h18
-rw-r--r--contrib/libstdc++/include/std/std_deque.h7
-rw-r--r--contrib/libstdc++/include/std/std_fstream.h357
-rw-r--r--contrib/libstdc++/include/std/std_iomanip.h51
-rw-r--r--contrib/libstdc++/include/std/std_iosfwd.h88
-rw-r--r--contrib/libstdc++/include/std/std_iostream.h30
-rw-r--r--contrib/libstdc++/include/std/std_istream.h511
-rw-r--r--contrib/libstdc++/include/std/std_limits.h1311
-rw-r--r--contrib/libstdc++/include/std/std_list.h7
-rw-r--r--contrib/libstdc++/include/std/std_locale.h7
-rw-r--r--contrib/libstdc++/include/std/std_memory.h555
-rw-r--r--contrib/libstdc++/include/std/std_ostream.h290
-rw-r--r--contrib/libstdc++/include/std/std_queue.h9
-rw-r--r--contrib/libstdc++/include/std/std_sstream.h281
-rw-r--r--contrib/libstdc++/include/std/std_stack.h8
-rw-r--r--contrib/libstdc++/include/std/std_streambuf.h531
-rw-r--r--contrib/libstdc++/include/std/std_valarray.h757
-rw-r--r--contrib/libstdc++/include/std/std_vector.h7
-rw-r--r--contrib/libstdc++/libmath/Makefile.am2
-rw-r--r--contrib/libstdc++/libmath/Makefile.in14
-rw-r--r--contrib/libstdc++/libmath/stubs.c8
-rw-r--r--contrib/libstdc++/libsupc++/Makefile.am15
-rw-r--r--contrib/libstdc++/libsupc++/Makefile.in38
-rw-r--r--contrib/libstdc++/libsupc++/cxxabi.h37
-rw-r--r--contrib/libstdc++/libsupc++/eh_catch.cc45
-rw-r--r--contrib/libstdc++/libsupc++/eh_personality.cc100
-rw-r--r--contrib/libstdc++/libsupc++/eh_throw.cc18
-rw-r--r--contrib/libstdc++/libsupc++/exception6
-rw-r--r--contrib/libstdc++/libsupc++/guard.cc51
-rw-r--r--contrib/libstdc++/libsupc++/new5
-rw-r--r--contrib/libstdc++/libsupc++/tinfo.cc27
-rw-r--r--contrib/libstdc++/libsupc++/typeinfo12
-rw-r--r--contrib/libstdc++/libsupc++/unwind-cxx.h2
-rwxr-xr-xcontrib/libstdc++/mkcheck.in3
-rw-r--r--contrib/libstdc++/src/Makefile.am100
-rw-r--r--contrib/libstdc++/src/Makefile.in117
-rw-r--r--contrib/libstdc++/src/bitset.cc11
-rw-r--r--contrib/libstdc++/src/codecvt.cc4
-rw-r--r--contrib/libstdc++/src/concept-inst.cc3
-rw-r--r--contrib/libstdc++/src/fstream-inst.cc2
-rw-r--r--contrib/libstdc++/src/fstream.cc29
-rw-r--r--contrib/libstdc++/src/globals.cc32
-rw-r--r--contrib/libstdc++/src/io-inst.cc2
-rw-r--r--contrib/libstdc++/src/ios.cc27
-rw-r--r--contrib/libstdc++/src/istream-inst.cc2
-rw-r--r--contrib/libstdc++/src/locale-inst.cc130
-rw-r--r--contrib/libstdc++/src/locale.cc56
-rw-r--r--contrib/libstdc++/src/localename.cc59
-rw-r--r--contrib/libstdc++/src/misc-inst.cc24
-rw-r--r--contrib/libstdc++/src/ostream-inst.cc2
-rw-r--r--contrib/libstdc++/src/sstream-inst.cc2
-rw-r--r--contrib/libstdc++/src/strstream.cc4
-rw-r--r--contrib/libstdc++/src/valarray-inst.cc6
220 files changed, 51201 insertions, 12208 deletions
diff --git a/contrib/libstdc++/ChangeLog b/contrib/libstdc++/ChangeLog
index a1e802f..62036fd 100644
--- a/contrib/libstdc++/ChangeLog
+++ b/contrib/libstdc++/ChangeLog
@@ -1,16 +1,1100 @@
-2003-02-05 Release Manager
+2003-07-08 Benjamin Kosnik <bkoz@redhat.com>
+ Jerry Quinn <jlquinn@optonline.net>
+
+ * include/bits/ios_base.h (ios_base::_M_getloc): Return reference
+ to the imbued locale.
+ * include/bits/locale_classes.h
+ (__locale_cache_base,__locale_cache): Declare.
+ (locale,locale::_Impl): Befriend __use_cache.
+ (locale::_Impl::_M_get_cache): New function.
+ (locale::_Impl::_M_install_cache): New function.
+ * include/bits/locale_facets.h (__locale_cache): Declare.
+ (numpunct): Befriend __locale_cache.
+ (__locale_cache_base): New class.
+ (__locale_cache): New class.
+ * include/bits/locale_facets.tcc (__use_cache): New function.
+ (num_put::_M_convert_int,_M_convert_float,do_put): Use it.
+ Use cache data members in place of calls to facet.
+ (num_put::_M_convert_int): Use _M_getloc.
+ (num_put::_M_convert_float): Use _M_getloc.
+ (__locale_cache::__locale_cache(locale&): New.
+ (__locale_cache::__locale_cache(locale&,bool)): New.
+ * src/globals.cc (facet_cache_vec): New.
+ (locale_cache_np_c, locale_cache_np_w): New.
+ * src/locale-inst.cc
+ (__locale_cache<numpunct<char> >): Define.
+ (__locale_cache<numpunct<wchar_t> >): Define.
+ (__use_cache<numpunct<char> >): Define.
+ (__use_cache<numpunct<wchar_t> >): Define.
+ * src/localename.cc (facet_cache_vec): Declare.
+ (locale_cache_np_c, locale_cache_np_w): Declare.
+ (locale::_Impl::~Impl): Destroy caches.
+ (locale::_Impl::Impl): Initialize cache storage. Fill in
+ static caches.
+ (locale::_Impl::_M_install_facet): Expand cache storage.
+
+2003-07-04 Jerry Quinn <jlquinn@optonline.net>
+
+ * include/bits/locale_facets.tcc (__int_to_char): Move common
+ case to the top.
+
+2003-07-04 Jerry Quinn <jlquinn@optonline.net>
+
+ * testsuite/27_io/ostream_inserter_arith.cc (test05, test06):
+ Add missing bool test.
+
+2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.am: Replace PWD with PWD_COMMAND.
+ * Makefile.in: Regenerated.
+ * docs/html/Makefile: Likewise.
+
+2003-07-01 Roger Sayle <roger@eyesopen.com>
+
+ * acinclude.m4 (GLIBCPP_CHECK_STDLIB_SUPPORT): Fix typo in CXXFLAGS.
+ (GLIBCPP_CHECK_MATH_SUPPORT): Likewise.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
- * GCC 3.2.2 Released.
+2003-06-27 Matthias Klose <doko@debian.org>
-2003-01-28 Christian Cornelssen <ccorn@cs.tu-berlin.de>
+ * testsuite/Makefile.am (check-abi, check-abi-verbose): Save
+ output of abi-check in libstdc++-v3-abi.sum.
+ * testsuite/Makefile.in: Regenerate.
- * include/Makefile.am (install-data-local): Prepend
- $(DESTDIR) to destination paths in all (un)installation
- commands. Use ${c_base_builddir} and ${std_builddir}
- as destination subdirectories to achieve consistency with
- preceding mkinstalldirs commands. No effect because both
- variables contain "." only.
+2003-06-25 Phil Edwards <pme@gcc.gnu.org>
+
+ Bulk documentation merge (copy) from trunk.
+ * docs/doxygen/filter, docs/doxygen/filter.sed,
+ docs/doxygen/mainpage.html, docs/doxygen/run_doxygen,
+ docs/doxygen/user.cfg.in, docs/html/configopts.html,
+ docs/html/documentation.html, docs/html/explanations.html,
+ docs/html/install.html, docs/html/test.html, docs/html/17_intro/BUGS,
+ docs/html/17_intro/CHECKLIST, docs/html/17_intro/contribute.html,
+ docs/html/20_util/howto.html, docs/html/ext/howto.html,
+ docs/html/ext/sgiexts.html, docs/html/faq/index.html,
+ docs/html/faq/index.txt: Merge from trunk.
+
+2003-06-23 Loren J. Rittle <ljrittle@acm.org>
+
+ * configure.target (freebsd*): Set abi_baseline_pair.
+ * config/abi/i386-freebsd4/baseline_symbols.txt: Update from 3.2
+ (at or near first release) to 3.3.
+ * config/abi/i386-freebsd5/baseline_symbols.txt: New file.
+ * config/abi/alpha-freebsd5/baseline_symbols.txt: New file.
+ * config/abi/sparc-freebsd5/baseline_symbols.txt: New file.
+
+2003-06-21 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR bootstrap/11272
+ Backport from mainline:
+
+ 2003-03-09 Paolo Carlini <pcarlini@unitus.it>
+
+ * config/io/basic_file_stdio.cc: include <unistd.h>.
+
+2003-06-20 Matthias Klose <doko@debian.org>
+
+ * configure.target: Set try_cpu to target_cpu for existing
+ baseline files.
+
+2003-06-19 Andreas Jaeger <aj@suse.de>
+
+ * configure.in: Pass MULTISUBDIR to testsuite/Makefile.
+ * configure: Regenerated.
+
+2003-06-19 Andreas Jaeger <aj@suse.de>
+
+ Backport from mainline:
+ 2003-06-18 Andreas Jaeger <aj@suse.de>
+
+ * testsuite/Makefile.am (new-abi-baseline): Create baseline
+ directory.
+ (baseline_file): Use baseline_dir.
+ (baseline_dir): New.
+ (mkinstalldirs): New.
+
+ * acinclude.m4: Rename baseline_file to baseline_dir, strip
+ filename from baseline_dir.
+
+ * testsuite/Makefile.in: Regenerated.
+ * Makefile.in: Regenerated.
+ * aclocal.m4: Regenerated.
+ * configure: Regenerated.
+
+ 2003-06-17 Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/abi/i486-linux-gnu/baseline_symbols.txt: Update to 3.3.0.
+
+ 2003-06-16 Benjamin Kosnik <bkoz@redhat.com>
+
+ * Makefile.am (check-abi): Move...
+ (new-abi-baseline): Move...
+ * testsuite/Makefile.am: ...here.
+ (new-abi-baseline): Conditionalize.
+ (check-abi): Conditionalize.
+ (check-abi-verbose): New.
+ * Makefile.in: Regenerate.
+ * testsuite/Makefile.in: Regenerate.
+ * configure.in: Consolidate testsuite configure bits.
+ * acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Same.
+ * configure: Regenerate.
+ * aclocal.m4: Regenerate.
+ * testsuite/abi_check.cc: Add --check-verbose.
+ Only output detailed information if --check-verbose.
+
+
+ 2003-06-16 Andreas Jaeger <aj@suse.de>
+
+ * testsuite/abi_check.cc: Create summary report.
+
+ 2003-06-16 Andreas Jaeger <aj@suse.de>
+
+ * acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Make
+ check-abi multilib aware.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+
+ 2003-06-16 Benjamin Kosnik <bkoz@redhat.com>
+ Andreas Jaeger <aj@suse.de>
+
+ * configure.target: Set x86_64 abi_baseline pair correctly.
+
+
+ 2003-06-13 Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/abi/i686-pc-linux-gnu: To..
+ * config/abi/i486-linux-gnu: ...this.
+ * config/abi/alphaev67-unknown-linux-gnu: To..
+ * config/abi/alpha-linux-gnu: ...this.
+ * config/abi/ia64-unknown-linux-gnu: To...
+ * config/abi/ia64-linux-gnu: ...this.
+ * config/abi/x86_64-unknown-linux-gnu: To...
+ * config/abi/x86_64-linux-gnu: ...this.
+ * config/abi/i386-unknown-freebsd4: To...
+ * config/abi/i386-freebsd4: ...this.
+ * configure.target: abi_baseline_triplet to abi_baseline_pair.
+ Simplify cpu bits so that abi_baseline_pair can use the same
+ cpu configuration.
+ * acinclude.m4: Same.
+ * aclocal.m4: Regenerate.
+ * configure.in: Can't get enable_abi_check to yes unless native.
+ * configure: Regenerate.
+
+2003-06-11 Benjamin Kosnik <bkoz@redhat.com>
+
+ * configure.in (libtool_VERSION): To 5:5:0.
+ * configure: Regenerated.
+
+2003-06-07 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/11095
+ * include/bits/istream.tcc (operator>>(basic_istream&, _CharT*)):
+ Deal with width() smaller than zero.
+ * include/bits/ostream.tcc (operator<<(basic_ostream&, _CharT),
+ operator<<(basic_ostream&, char), operator<<(basic_ostream&,
+ const _CharT*), operator<<(basic_ostream<_CharT, _Traits>&,
+ const char*), operator<<(basic_ostream<char, _Traits>&,
+ const char*), operator<<(basic_ostream, const basic_string&)): Likewise.
+
+2003-06-06 Nathan Myers <ncm-nospam@cantrip.org>
+
+ * include/bits/stl_iterator.h (reverse_iterator::reverse_iterator()):
+ Apply DR235: default constructor default-initializes data member.
+ Instantiated on a pointer type, the member has to end up equal
+ to zero.
+
+2003-06-02 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR libstdc++/9815
+ * config/cpu/i386/atomicity.h (__exchange_and_add): add intel
+ asm case to asm.
+ * config/cpu/i486/atomicity.h (__exchange_and_add): Likewise.
+ (__atomic_add): likewise.
+
+2003-06-02 Richard Kreckel <Richard.Kreckel@GiNaC.DE>
+
+ PR libstdc++/11062
+ * config/cpu/mips/atomicity.h: Change __attribute__ ((unused)) to
+ __attribute__ ((__unused__)).
+ * config/os/aix/atomicity.h: Likewise.
+
+2003-05-27 Steve Ellcey <sje@cup.hp.com>
+
+ * config/os/hpux/os_defines.h: Define _LIBUNWIND_STD_ABI if we are
+ on IA64 HP-UX.
+ * libsupc++/eh_throw.cc: Don't call _Unwind_Resume_or_Rethrow if
+ _LIBUNWIND_STD_ABI is set.
+
+2003-05-21 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * libmath/stubs.c (hypot, hypotf, hypotl): Don't divide by
+ zero.
+ Update copyright year.
+
+2003-05-21 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * include/bits/stl_alloc.h (__default_alloc_template::_S_chunk_alloc):
+ Cast via void* to avoid -Wcast-align warnings.
+ (__default_alloc_template::_S_refill): Likewise.
+
+2003-05-20 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR libstdc++/10689
+ * include/std/std_complex.h (pow): Tidy.
+
+2003-05-17 Nathan Myers <ncm@cantrip.org>
+
+ * include/bits/streambuf.tcc (__copy_streambufs): Rewrote.
+
+2003-05-15 Phil Edwards <pme@gcc.gnu.org>
+
+ * testsuite/Makefile.am: Properly quote LD_RUN_PATH.
+ * testsuite/Makefile.in: Regenerate.
+
+2003-05-14 Loren J. Rittle <ljrittle@acm.org>
+
+ * testsuite/thread/pthread4.cc: Tweak test.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-06 Phil Edwards <pme@gcc.gnu.org>
+
+ * docs/html/faq/index.html (3.10): Add note about mips atomicity.h.
+ * docs/html/faq/index.txt: Regenerated.
+
+2003-05-02 Joel Sherrill <joel.sherrill@OARcorp.com>
+ Loren J. Rittle <ljrittle@acm.org>
+ Martin v. Loewis <martin@v.loewis.de>
+
+ libstdc++/10556
+ * config/cpu/i386/atomicity.h: New file.
+
+2003-05-02 Richard Henderson <rth@redhat.com>
+
+ PR c++/10570
+ * libsupc++/eh_catch.cc (__cxa_begin_catch): Handle foreign exceptions.
+ (__cxa_end_catch): Likewise.
+ * libsupc++/eh_throw.cc (__cxa_rethrow): Likewise. Use
+ _Unwind_Resume_or_Rethrow.
+ * libsupc++/eh_personality.cc (empty_exception_spec): New.
+ (PERSONALITY_FUNCTION): Don't ignore terminate or catch-all
+ for _UA_FORCE_UNWIND. Honor empty filter spec for foreign
+ exceptions. Don't push terminate/unexpected to cxa functions.
+ (__cxa_call_unexpected): Remove foreign exception fixmes.
+
+2003-05-01 Benjamin Kosnik <bkoz@redhat.com>
+
+ Revert __locale_cache.
+ * include/bits/locale_facets.tcc (num_put::_M_convert_int): Remove
+ __locale_cache.
+ (num_put::_M_convert_int): Same.
+ (num_put::do_put(bool)): Same.
+ (__locale_cache::_M_init): Same.
+ (__locale_cache::_S_callback): Same.
+ * include/bits/locale_facets.h (__locale_cache_base): Remove.
+ (__locale_cache): Remove.
+ * include/bits/basic_ios.h (basic_ios::init): Remove __locale_cache.
+ (basic_ios::_M_cache_locale): Same.
+ * include/bits/basic_ios.tcc: Same.
+ * include/bits/ios_base.h: Same.
+ (ios_base::_M_cache): Remove.
+ * src/locale-inst.cc: Same.
+ * src/ios.cc: Same.
+ * src/globals.cc: Same.
+
+ * config/linker-map.gnu: Same.
+
+2003-05-01 Benjamin Kosnik <bkoz@redhat.com>
+
+ * configure.in (libtool_VERSION): To 5:4:0.
+ * configure: Regenerated.
+
+ * testsuite/abi_check.cc (check_version): Update known versions.
+ Check added symbols for version_name != base version. Add missing
+ symbols to incompatible list.
+
+ * config/linker-map.gnu: Fixup for __basic_file::showmanyc_helper.
+
+2003-05-01 Benjamin Kosnik <bkoz@redhat.com>
+
+ * acinclude.m4 (GLIBCPP_EXPORT_FLAGS): Remove -Winline.
+ * aclocal.m4: Regenerated.
+ * configure: Regenerated.
+
+2003-05-01 Paolo Carlini <pcarlini@unitus.it>
+ Nathan Myers <ncm@cantrip.org>
+
+ Backport from mainline fix of 2003-03-28.
+ PR libstdc++/9533
+ * include/bits/fstream.tcc (basic_filebuf<>::open): Don't
+ call underflow().
+ (basic_filebuf<>::showmanyc): Use the information provided
+ by codecvt and __basic_file<>::showmanyc_helper to implement
+ a non-trivial showmanyc.
+ * config/io/basic_file_stdio.h
+ (__basic_file<>::showmanyc_helper): New, declare.
+ * config/io/basic_file_stdio.cc
+ (__basic_file<>::showmanyc_helper): Define.
+ (__basic_file<>::_M_open_mode): Don't set O_NONBLOCK.
+ (__basic_file<char>::open): Don't call fcntl().
+ * acinclude.m4 (GLIBCPP_CHECK_S_ISREG_OR_S_IFREG,
+ GLIBCPP_CHECK_POLL): New macros.
+ * configure.in: Call here.
+ * acconfig.h: Add #undefs for the corresponding symbols.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+ * config.h.in: Regenerate.
+
+2003-04-29 Phil Edwards <pme@gcc.gnu.org>
+
+ Bulk documentation merge (copy) from trunk.
+ * docs/doxygen/Intro.3, docs/doxygen/TODO, docs/doxygen/mainpage.html,
+ docs/doxygen/run_doxygen, docs/doxygen/user.cfg.in,
+ docs/html/configopts.html, docs/html/debug.html,
+ docs/html/documentation.html, docs/html/explanations.html,
+ docs/html/install.html, docs/html/17_intro/howto.html,
+ docs/html/17_intro/porting.html, docs/html/18_support/howto.html,
+ docs/html/19_diagnostics/howto.html, docs/html/27_io/howto.html,
+ docs/html/ext/howto.html, docs/html/ext/sgiexts.html,
+ docs/html/faq/index.html, docs/html/faq/index.txt:
+ Merge from trunk.
+
+2003-04-28 Nathan Myers <ncm@cantrip.org>
+
+ Move some basic_string members out of line because
+ they are too big to reasonably be inline.
+ * include/bits/basic_string.h
+ (assign(const basic_string&, size_type, size_type),
+ assign(const _CharT*, size_type),
+ insert(size_type, const basic_string&, size_type, size_type),
+ insert(size_type, const _CharT*, size_type),
+ replace(size_type, size_type, const _CharT*, size_type)):
+ Move from here to...
+ * include/bits/basic_string.tcc: ...here.
+
+2003-04-28 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/10132
+ * include/std/std_fstream.h (basic_filebuf::is_open): Add throw()
+ exception specifications.
+ (basic_filebuf::close): Same.
+ (basic_filebuf::_M_destroy_internal_buffer): Same.
+ (basic_filebuf): Remove __res_type typedef.
+ * include/std/std_streambuf.h:
+ (basic_streambuf::_M_pback_destroy): Same.
+ * src/fstream.cc: Same.
+ * include/bits/fstream.tcc
+ (basic_filebuf::_M_convert_to_external): Simplify.
+ (basic_filebuf::seekoff): Use has_facet before use_facet.
+ (basic_filebuf::close): Add exception specification of throw().
+
+2003-04-25 Ranjit Mathew <rmathew@hotmail.com>
+ Phil Edwards <pme@gcc.gnu.org>
+
+ * testsuite_flags.in: Guard against the possibility
+ of having "xgcc" as a part of a folder name in the
+ path to the GCC build folder.
+ * testsuite/Makefile.am: Likewise.
+ * testsuite/Makefile.in: Regenerated.
+
+2003-04-24 Richard Sandiford <rsandifo@redhat.com>
+
+ * src/localename.cc (__gnu_cxx::facet_vec): Correct types.
+
+2003-04-24 Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/locale/generic/c_locale.h: Fix placement for old parser.
+
+2003-04-23 Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/locale/generic/c_locale.h (__convert_from_v): Use
+ attribute unused.
+
+2003-04-23 Phil Edwards <pme@gcc.gnu.org>
+
+ * include/bits/istream.tcc (putback, unget, sync, tellg, seekg):
+ Comment and change to comply with DR 60 and the effect on gcount().
+ * include/std/std_istream.h: Update comments.
+
+2003-04-22 Loren J. Rittle <ljrittle@acm.org>
+
+ * testsuite/27_io/filebuf_members.cc (test_07): Adjust timing.
+
+2003-04-22 Jerry Quinn <jlquinn@optonline.net>
+ Benjamin Kosnik <bkoz at redhat dot com>
+
+ * include/bits/basic_ios.h (ios_base::Init::_S_ios_create):
+ Declare friend.
+ (basic_ios::init, basic_ios::_M_cache_locale): Add locale
+ cache argument.
+ * include/bits/basic_ios.tcc (basic_ios::init): Pass cache to
+ _M_cache_locale.
+ (basic_ios::_M_cache_locale): Use placement new if cache is
+ provided. Track the distinction in iword(0).
+ * include/bits/locale_facets.tcc
+ (__locale_cache::_S_callback): Only delete cache if iword(0)
+ is 0, i.e. not static.
+ * src/globals.cc: Allocate space for __locale_cache objects.
+ * src/ios.cc (__gnu_cxx): Declare extern __locale_cache objects
+ for standard wide and narrow stream objects.
+ (ios_base::Init::_S_ios_create): Use them.
+
+2003-04-18 Loren J. Rittle <ljrittle@acm.org>
+
+ * config/os/bsd/freebsd/ctype_inline.h: Support _M_table
+ when so installed.
+
+ * docs/html/17_intro/porting.texi (_GLIBCPP_USE_C99_CHECK): New macro.
+ (_GLIBCPP_USE_C99_DYNAMIC): New macro.
+ (_GLIBCPP_USE_C99_LONG_LONG_CHECK): New macro.
+ (_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC): New macro.
+ * config/os/bsd/freebsd/os_defines.h (_GLIBCPP_USE_C99_CHECK):
+ New macro.
+ (_GLIBCPP_USE_C99_DYNAMIC): New macro.
+ (_GLIBCPP_USE_C99_LONG_LONG_CHECK): New macro.
+ (_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC): New macro.
+ * include/c_std/std_cstdlib.h: Use new macros.
+ * include/c_std/std_cstdio.h: Use new macros.
+ * include/c_std/std_cwchar.h: Use new macros.
+
+2003-04-17 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/9555
+ * include/bits/ostream.tcc: Catch all exceptions for formatted
+ output, instead of std::exception and derivatives.
+ * include/bits/istream.tcc: Same.
+
+2003-04-17 Andreas Tobler <toa@pop.agri.ch>
+ Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/os/generic/ctype_inline.h: Fix.
+
+2003-04-17 Andreas Tobler <toa@pop.agri.ch>
+
+ * configure.target (_cpu_incdir_fullpath): Solaris 2.9 uses
+ solaris includes, not generic.
+
+2003-04-15 Benjamin Kosnik <bkoz@redhat.com>
+ Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9423
+ * docs/html/27_io/howto.html
+ ('The buffering is screwing up my program!'): Explain that
+ opening counts as an I/O operation.
+
+2003-04-15 Andreas Tobler <a.tobler@schweiz.ch>
+
+ * testsuite/thread/pthread1.cc: Enable for darwin test.
+ * testsuite/thread/pthread2.cc: Same.
+ * testsuite/thread/pthread3.cc: Same.
+ * testsuite/thread/pthread4.cc: Same.
+ * testsuite/thread/pthread5.cc: Same.
+ * testsuite/thread/pthread6.cc: Same.
+
+2003-04-15 Loren J. Rittle <ljrittle@acm.org>
+
+ * include/bits/concept_check.h: Fix multi-line comment.
+ * testsuite/17_intro/headers.cc (dg-options): Add -Wall -Wsystem-header
+ when target is *-*-freebsd*.
+
+ libstdc++/7680
+ * include/c_std/std_cmath.h (__gnu_cx::__c99_binding): New namespace.
+ Populate it with multiple legal ways to obtain the C99 float
+ transcendentals. Use them instead of direct global reference.
+ (C99 FP capture): Guard usage with _GLIBCPP_USE_C99_FP_MACROS_DYNAMIC.
+ * docs/html/17_intro/porting.texi
+ (_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_CHECK): New macro.
+ (_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC): New macro.
+ (_GLIBCPP_USE_C99_FP_MACROS_DYNAMIC): New macro.
+ * config/os/bsd/freebsd/os_defines.h
+ (_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_CHECK): New macro.
+ (_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC): New macro.
+ * testsuite/26_numerics/c_math_dynamic.cc: New file.
+
+ * testsuite/26_numerics/c99_classification_macros_c.cc: Add XFAIL.
+
+2003-04-14 M. Warner Losh <imp@bsdimp.com>
+
+ * include/std/std_fstream.h: Add required typename.
+
+2003-04-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * os/hpux/ctype_inline.h: Replace with gnu-linux version.
+
+2003-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * basic_file_stdio.cc (__basic_file<char>::close): Don't flush stream
+ twice. Always set _M_cfile to 0 when stream was open.
+
+2003-04-04 Jerry Quinn <jlquinn@optonline.net>
+
+ PR libstdc++/10276
+ * src/ios.cc (ios_base::_M_init): Remove _M_callbacks
+ initialization.
+
+2003-03-31 Paolo Carlini <pcarlini@unitus.it>
+
+ * include/ext/stdio_filebuf.h
+ (stdio_filebuf::stdio_filebuf(int, openmode, bool, size_t),
+ stdio_filebuf::stdio_filebuf(__c_file*, openmode, size_t):
+ _M_buf_size_opt == 0 means only "not to use an allocated buffer"
+ since a stack-based buffer is used for small values of the size_t
+ parameter.
+ * include/bits/fstream.tcc (basic_filebuf::_M_really_overflow).
+ If _M_buf_size != 0 flush out the buffer (any kind, stack-based too).
+ * testsuite/ext/stdio_filebuf_2.cc: New testfile.
+
+2003-03-25 Paolo Carlini <pcarlini@unitus.it>
+ Petur Runolfsson <peturr02@ru.is>
+
+ PR libstdc++/10097
+ * src/fstream.cc (basic_filebuf<char>::_M_underflow_common,
+ basic_filebuf<wchar_t>::_M_underflow_common):
+ if (gptr() < egptr()) return *gptr().
+ * testsuite/27_io/filebuf_virtuals.cc (test15): Add.
+
+ * testsuite/27_io/filebuf_members.cc (test_04): Minor
+ changes: unlink fifo before making it, fix spelling error.
+
+2003-03-22 Loren J. Rittle <ljrittle@acm.org>
+
+ * config/os/hpux/ctype_noninline.h (ctype<char>::classic_table):
+ Correct return value.
+
+2003-03-21 Jerry Quinn <jlquinn@optonline.net>
+
+ PR libstdc++/5730
+ * include/bits/c++config (_GLIBCPP_FAST_MATH): Define.
+ * include/std/std_complex.h (norm): Use faster,
+ less accurate computation for builtin float types under --fast-math.
+
+2003-03-21 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/10167
+ * config/locale/ieee_1003.1-2001/codecvt_specializations.h
+ (do_out, do_unshift, do_in): qualify 'ok', 'error', 'partial',
+ 'noconv' with codecvt_base::.
+
+2003-03-19 Alexandre Oliva <aoliva@redhat.com>
+
+ * src/strstream.cc (strstreambuf::overflow): Make sure operands of
+ min and max have the same type.
+ * include/bits/basic_string.tcc (append, rfind, compare): Likewise.
+
+2003-03-17 Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/Makefile.am (CLEANFILES): Add tmp*.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/27_io/filebuf_members.cc: Consistently name tmp files.
+ Cleanups.
+
+2003-03-17 Petur Runolfsson <peturr02@ru.is>
+
+ PR libstdc++/9964
+ * include/bits/fstream.tcc (basic_filebuf::close):
+ Always close file, even when write fails.
+ * testsuite/27_io/filebuf_members.cc (test_07): New test.
+
+2003-03-17 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * libsupc++/Makefile.am (LTCOMPILE): Add $(AM_CFLAGS) $(CFLAGS).
+ * libsupc++/Makefile.in: Regenerate.
+
+2003-03-09 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9988
+ * include/bits/fstream.tcc (overflow): don't write EOF to file.
+ * testsuite/27_io/filebuf_virtuals.cc (test14): Add.
+
+2003-03-09 Paolo Carlini <pcarlini@unitus.it>
+ Petur Runolfsson <peturr02@ru.is>
+
+ PR libstdc++/9424
+ * include/bits/streambuf.tcc (__copy_streambufs): Use
+ sgetn-sputn only when sputn cannot fail, otherwise fall back
+ to safe snextc-sputc.
+ * testsuite/27_io/streambuf_members.cc (test11, test12): Add.
+
+2003-03-08 Jerry Quinn <jlquinn@optonline.net>
+
+ PR libstdc++/9561
+ * include/bits/basic_ios.h (_M_setstate): New.
+ * include/bits/ostream.tcc (operator<<): Use it.
+ * include/bits/istream.tcc (operator>>): Use it.
+ * include/std/std_ostream.h (operator<<): Make friends.
+ * include/std/std_istream.h (operator>>): Make friends.
+ * testsuite/27_io/ostream_exception.cc,
+ testsuite/27_io/istream_exception.cc: New tests.
+
+2003-03-08 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9182
+ * include/bits/fstream.tcc (_M_really_overflow): Check
+ for _M_convert_to_external possible failures.
+ * include/std/std_fstream.h (sync): Check _M_really_overflow
+ return value and return -1 in case of failure.
+ * testsuite/27_io/filebuf_virtuals.cc (test12, test13): Add.
+
+ * include/bits/fstream.tcc (_M_convert_to_external):
+ Set __elen to zero if codecvt::out eventually fails.
+
+2003-03-08 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9826
+ * include/bits/istream.tcc (operator>>(_CharT*),
+ operator>>(basic_string&), ws): Pass a char_type to __ctype.is.
+ * testsuite/27_io/stringstream.cc (test02): Add.
+
+ * include/bits/istream.tcc (operator>>(_CharT*)):
+ Assign a char_type to *__s.
+
+2003-03-08 Jerry Quinn <jlquinn@optonline.net>
+
+ * src/ios.cc (ios_base::ios_base): Correct order of _M_word and
+ _M_word_size initialization.
+
+2003-03-07 Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/linker-map.gnu: Tweak.
+
+2003-03-07 Petur Runolfsson <peturr02@ru.is>
+
+ PR libstdc++/9817
+ * include/bits/locale_facets.tcc
+ (collate::do_compare, collate::do_transform):
+ Handle nul characters in input.
+
+2003-03-07 Jerry Quinn <jlquinn@tiamat>
+
+ * include/bits/streambuf_iterator.h (_M_put): Set _M_failed if
+ sputn fails.
+ * testsuite/27_io/ostream_fail.cc: New test.
+
+2003-03-07 Matthias Klose <doko@debian.org>
+
+ * Makefile.am (AM_MAKEFLAGS): Also pass gxx_include_dir.
+ FLAGS_TO_PASS: Set to AM_MAKEFLAGS
+ * Makefile.in: Regenerate.
+ * libsupc++/Makefile.am: Express glibcppinstalldir in terms
+ of gxx_include_dir.
+ AM_MAKEFLAGS: Pass gxx_include_dir.
+ * libsupc++/Makefile.in: Regenerate.
+
+2003-03-06 Jerry Quinn <jlquinn@optonline.net>
+
+ * src/ios.cc (ios_base::_M_init): Remove _M_word_size.
+ (ios_base::ios_base): Set _M_word, _M_word_size.
+ (ios_base::~ios_base): Remove redundant test.
+ * testsuite/27_io/ios_base_storage.cc (test03): New.
+
+2003-03-05 Jerry Quinn <jlquinn@optonline.net>
+
+ * testsuite/27_io/ios_base_storage.cc (test02): Set exception
+ mask. Test setting small-numbered pword and iword slots. Test
+ behavior at limit of numeric_limits::max. Check that values are
+ still good after failures.
+
+2003-03-05 Carlo Wood <carlo@alinoe.com>
+
+ * include/bits/ios_base.h(ios_base::Init::_S_initialized()): Added
+ _S_initialized() in order to allow debugging libraries to detect
+ when the std streams are initialized from an overloaded operator
+ new.
+
+2003-03-04 Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/linker-map.gnu: Version.
+
+2003-03-04 Jerry Quinn <jlquinn@optonline.net>
+
+ * include/bits/basic_ios.h: Update copyright.
+ (_M_cache_locale): New.
+ (_M_cache_facets): Deprecate.
+ * include/bits/basic_ios.tcc (basic_ios::copyfmt): Set up locale
+ caching.
+ (basic_ios::imbue,basic_ios::init): Use _M_cache_locale.
+ (basic_ios::_M_cache_locale): New.
+ (basic_ios::_M_cache_facets): Deprecate.
+ * include/bits/ios_base.h (__locale_cache_base): Declare.
+ (ios_base::_M_cache): Define.
+ * include/bits/locale_facets.h
+ (__locale_cache_base,__locale_cache<_CharT>): New classes.
+ * include/bits/locale_facets.tcc
+ (num_put::_M_convert_int): Use locale cache literal string,
+ grouping flag, thousands separator.
+ (num_out::_M_convert_float): Use locale cache grouping flag, decimal
+ point, thousands separator.
+ (__locale_cache<_CharT>::_M_init,__locale_cache<_CharT>::_S_callback):
+ New.
+ * src/locale-inst.cc
+ (__locale_cache<_CharT>::_S_callback, __locale_cache<char>,
+ __locale_cache<wchar_t>): New.
+
+2003-03-04 Jerry Quinn <jlquinn@optonline.net>
+
+ * src/ios.cc (ios_base::_M_grow_words): Don't delete _M_word on
+ new failure. Throw exception if badbit and exception mask when ix
+ >= numeric_limits<int>::max().
+
+2003-03-03 Benjamin Kosnik <benjamin@redhat.com>
+
+ * config/linker-map.gnu (GLIBCPP_3.2.3): New.
+ Add new symbols.
+ * testsuite/abi_check.cc: Update.
+
+2003-03-03 Jerry Quinn <jlquinn@optonline.net>
+ Benjamin Kosnik <benjamin@redhat.com>
+
+ * include/bits/locale_facets.h (__num_base): Add _S_atoms_out.
+ Add indexes into this array.
+ (__num_base::_S_atoms): To _S_atoms_in.
+ (num_put::_M_insert): Rename to _M_pad.
+ (num_put::_M_convert_int): Adjust remove __mod, __modl arguments.
+ (num_put::_M_widen_int): Rename to _M_group_int.
+ (num_put::_M_widen_float): Rename to _M_group_float.
+ * include/bits/locale_facets.tcc (__int_to_char): New inline
+ function and adapter functions.
+ (num_put::_M_group_int): Streamline.
+ (num_put::_M_group_float): Streamline.
+ (num_put::_M_convert_int): Remove unused parameter names. Choose
+ large enough buffer for text. Use __int_to_char instead of
+ __convert_from_v. Formatted text is now at the end of the buffer.
+ (num_put::_M_convert_float): Preliminary fixups.
+ * src/locale-inst.cc (__convert_from_v<long long>): Add ifdef.
+ (__int_to_char<unsigned long long>): Same.
+ (__int_to_char<char, unsigned long>): New.
+ (__int_to_char<char, unsigned long long>): New.
+ (__int_to_char<wchar_t, unsigned long>): New.
+ (__int_to_char<wchar_t, unsigned long long>): New.
+ * src/locale.cc: Add _S_atoms_in, _S_atoms_out.
+
+2003-02-28 Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/27_io/ios_base_storage.cc (main): Call
+ set_memory_limits.
+
+2003-02-28 Brad Spencer <spencer@infointeractive.com>
+ Nathan Myers <ncm@cantrip.org>
+
+ * src/Makefile.am (stamp-debug): Clean.
+ * src/Makefile.in: Regenerate.
+
+2002-02-28 Loren J. Rittle <ljrittle@acm.org>
+
+ * src/Makefile.am: Resolve non-portable use of $<.
+ * src/Makefile.in: Rebuilt.
+
+2002-02-28 Phil Edwards <pme@gcc.gnu.org>
+
+ * configure.in (GLIBCPP_ENABLE_CXX_FLAGS): Do not pass arguments,
+ let the defaults work.
+ * configure: Regenerate.
+
+2002-02-28 Phil Edwards <pme@gcc.gnu.org>
+
+ * acinclude.m4: Remove trailing whitespace.
+ (GLIBCPP_ENABLE_CXX_FLAGS): Fix.
+ * aclocal.m4, configure: Regenerate.
+
+2003-02-27 Benjamin Kosnik <bkoz@redhat.com>
+
+ * configure.in (GLIBCPP_ENABLE_DEBUG): Default to none.
+ Call GLIBCPP_ENABLE_DEBUG_FLAGS.
+ * acinclude.m4 (GLIBCPP_ENABLE_DEBUG): GLIBCPP_BUILD_DEBUG, new
+ conditional if --enable-debug is yes. Rework.
+ (GLIBCPP_ENABLE_DEBUG_FLAGS): New.
+ * aclocal.m4: Regenerate.
+ * libio/Makefile.am: Remove DEBUG_FLAGS.
+ * libio/Makefile.in: Regenerate.
+ * libsupc++/Makefile.am: Remove DEBUG_FLAGS.
+ * libsupc++/Makefile.in: Regenerate.
+ * docs/html/configopts.html: Add docs for --enable-debug,
+ --enable-debug-flags.
+
+2003-02-27 Benjamin Kosnik <bkoz@redhat.com>
+
+ Correct dependency tracking, build warts.
+ * configure.in: Correct repeated AC_OUTPUT thrashing by
+ config-ml.in
+ * configure: Regenerate.
+ * include/Makefile.am (stamp-target): Stamp in top_builddir.
* include/Makefile.in: Regenerate.
+ * src/Makefile.am (codecvt_members.cc): New rule.
+ (collate_members.cc): Same.
+ (ctype_members.cc): Same.
+ (messages_members.cc): Same.
+ (monetary_members.cc): Same.
+ (numeric_members.cc): Same.
+ (time_members.cc): Same.
+ (c++locale.cc): Same.
+ (basic_file.cc): Same.
+ * src/Makefile.in: Regenerate.
+ * acinclude.m4 (CCTYPE_CHAR_CC): Remove.
+ (CCCODECVT_CC): Don't link, AC_SUBST.
+ (CCOLLATE_CC): Same.
+ (CCTYPE_CC): Same.
+ (CMESSAGES_CC): Same.
+ (CMONEY_CC): Same.
+ (CNUMERIC_CC): Same.
+ (CTIME_CC): Same.
+ (CLOCALE_CC): Same.
+ * aclocal.m4: Regenerate.
+
+ * src/Makefile.am (libstdc___la_LIBADD): Use top_builddir
+ for convenience libraries.
+ (version_arg): Rename linker.map to libstdc++.ver.
+ (libstdc___la_DEPENDENCIES): Remove linker.map, add
+ libstdc++-symbol.ver as a dependency.
+ (libstdc++-symbol.ver): Add rule.
+ * acinclude.m4 (GLIBCPP_ENABLE_SYMVERS): Change LINKER_MAP to
+ SYMVER_MAP. Don't link, AC_SUBST.
+
+ * include/Makefile.am (target_headers_noinst): New.
+ (stamp-target): Add CLOCALE_INTERNAL_H.
+ * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Don't link
+ CLOCALE_INTERNAL_H, AC_SUBST.
+ * config/locale/gnu/c_locale.cc: Modify c++locale_internal.h
+ include.
+ * config/locale/gnu/time_members.cc: Same.
+ * config/locale/gnu/numeric_members.cc: Same.
+ * config/locale/gnu/monetary_members.cc: Same.
+ * config/locale/gnu/messages_members.cc: Same.
+ * config/locale/gnu/ctype_members.cc: Same.
+ * config/locale/gnu/collate_members.cc: Same.
+ * config/locale/gnu/codecvt_members.cc: Same.
+ * config/locale/generic/codecvt_members.cc: Remove.
+
+2003-02-27 Jerry Quinn <jlquinn@optonline.net>
+
+ * config/locale/generic/messages_members.h (messages::messages):
+ Remove name from unused parameter.
+
+2003-02-27 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/Makefile.am (stamp-std-precompile): Add rule.
+ * include/Makefile.in: Regenerated.
+
+2003-02-27 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/bits/c++config (_GLIBCPP_EXTERN_TEMPLATE): Define.
+ * include/bits/basic_ios.tcc: Guard use of extern template.
+ * include/std/std_iomanip.h: Same.
+ * include/bits/streambuf.tcc: Same.
+ * include/bits/stl_alloc.h: Same.
+ * include/bits/locale_facets.tcc: Same.
+ * include/bits/ostream.tcc: Same.
+ * include/bits/istream.tcc: Same.
+ * include/bits/fstream.tcc: Same.
+ * include/bits/basic_string.tcc: Same.
+
+2003-02-25 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9825
+ * src/fstream.cc
+ (basic_filebuf<char/wchar_t>::_M_underflow_common): When
+ __bump is true (uflow), always increment the read pointer
+ (_M_in_cur) before returning successfully.
+ * testsuite/27_io/filebuf_virtuals.cc (test11): Add.
+
+2003-02-25 Paolo Carlini <pcarlini@unitus.it>
+
+ * include/std/std_sstream.h (str()): the size of the
+ current string may be different from the initial one
+ whenever _M_out_end > _M_out_beg.
+ * testsuite/27_io/stringbuf_members.cc (test07): Add.
+
+2003-02-21 Phil Edwards <pme@gcc.gnu.org>
+
+ * config/cpu/generic/atomicity.h (_Atomic_add_mutex): Fix declaration.
+ (_GLIBCPP_NEED_GENERIC_MUTEX): Define for this file.
+ (_Atomic_add_mutex_once, __gthread_atomic_add_mutex_once): Declare
+ when we don't have static mutex initialization.
+ (__exchange_and_add): Use _Atomic_add_mutex_once.
+ * src/misc-inst.cc: Definitions of all the above.
+ * config/linker-map.gnu: Also export locking symbols needed for the
+ generic atomicity.h case.
+
+2003-02-20 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in: Propagate ORIGINAL_LD_FOR_MULTILIBS to
+ config.status.
+ * configure: Rebuilt.
+
+2003-02-19 Phil Edwards <pme@gcc.gnu.org>
+
+ PR libstdc++/9582
+ * include/bits/stl_alloc.h: Remove all traces of assert().
+
+2003-02-18 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9582
+ * include/bits/stl_alloc.h (__pool_alloc::allocate): Remove assert.
+
+2003-02-17 Paolo Carlini <pcarlini@unitus.it>
+
+ * src/locale-inst.cc: Do not include <cassert>.
+ * src/locale.cc: Likewise.
+
+2003-02-17 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9169
+ * include/bits/fstream.tcc (_M_convert_to_external):
+ Deal correctly with noconv, as prescribed by 27.8.1.4,p8.
+ * testsuite/27_io/filebuf_virtuals.cc (test10): Add.
+
+2003-02-13 Paolo Carlini <pcarlini@unitus.it>
+
+ * include/bits/ostream.tcc (sentry::sentry): Improve
+ performance-wise the fix for libstdc++/9563.
+
+2003-02-13 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9320
+ * include/ext/stdio_filebuf.h
+ (stdio_filebuf(int, std::ios_base::openmode, bool, int_type),
+ stdio_filebuf(std::__c_file*, std::ios_base::openmode, int_type)):
+ Change to take a __size parameter of type size_t, not
+ of type (template parameter dependent) int_type.
+ * src/ios.cc (ios_base::Init::_S_ios_create): Change type of
+ size vars to size_t.
+ * testsuite/ext/stdio_filebuf.cc: Add.
+
+2003-02-12 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9563
+ * include/bits/ostream.tcc (sentry::sentry): Check
+ the state of the stream after the preparation.
+ * testsuite/27_io/ostream_sentry.cc: Add.
+
+2003-02-11 Scott Snyder <snyder@fnal.gov>
+
+ PR libstdc++/9659
+ * include/bits/fstream.tcc (seekoff): Avoid operator+
+ for pos_type.
+
+2003-02-11 Paolo Carlini <pcarlini@unitus.it>
+ Petur Runolfsson <peturr02@ru.is>
+
+ PR libstdc++/9318
+ * include/bits/streambuf.tcc (__copy_streambufs):
+ Don't conditionalize the copy to __testput.
+ * testsuite/27_io/streambuf_members.cc (test09, test10): Add.
+
+2003-02-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * hppa/atomicity.h (__Atomicity_lock<__inst>::_S_atomicity_lock):
+ Correct alignment.
+ (__exchange_and_add, __atomic_add): Use PA 2.0 ordered store to reset
+ lock.
+
+2003-02-07 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9548
+ Implement resolution of DR 231 (Ready)
+ * include/bits/locale_facets.h (__num_base::_S_format_float):
+ Return void.
+ * src/locale.cc (__num_base::_S_format_float): Implement
+ resolution of DR 231.
+ * include/bits/locale_facets.tcc (num_put::_M_convert_float):
+ Tweak uses. Check for negative precision.
+ * testsuite/22_locale/num_put_members_char.cc (test06): Add
+ * testsuite/22_locale/num_put_members_wchar_t.cc (test06): Ditto.
+
+2003-02-07 Paolo Carlini <pcarlini@unitus.it>
+
+ * testsuite/27_io/filebuf_virtuals.cc (test08): Fix for
+ unsigned char platforms.
+
+2003-02-05 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/bits/locale_facets.tcc (time_put::do_put): Use __write.
+ (money_put::do_put): Same.
+
+2003-02-05 Jerry Quinn <jlquinn@optonline.net>
+
+ * include/bits/ios_base.h (ios_base): Document reserved storage.
+
+ * include/bits/locale_facets.h: (struct __pad): Comment on
+ implementation.
+ (__verify_grouping): Same.
+ (__add_grouping): Same.
+ * include/bits/locale_facets.tcc (__verify_grouping): Move
+ comments to declaration.
+ (__add_grouping): Same.
+
+ * include/bits/locale_facets.tcc:
+ (__write<_CharT, _OutIter>): New function.
+ (__write<_CharT>): New function specialization.
+ (num_put::_M_insert): Remove explicit loop over iterator. Use
+ __write.
+ (num_put::_M_widen_float): Remove __basefield.
+ (num_put::_M_widen_int): Move __basefield to within grouping block.
+
+ * include/bits/streambuf_iterator.h: Include <streambuf>.
+ (ostreambuf_iterator::_M_put): Add.
+
+2003-02-05 Paolo Carlini <pcarlini@unitus.it>
+
+ * testsuite/26_numerics/valarray_name_lookup.cc: Fix typo.
+
+2003-02-05 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9439, PR libstdc++/9425
+ * config/io/basic_file_stdio.cc
+ (__basic_file<char>::seekoff, seekpos): Return -1L if
+ fseek fails.
+ * include/bits/fstream.tcc (basic_filebuf::seekoff):
+ Check _M_file.seekoff return value; always return
+ pos_type(off_type(-1)) in case of failure.
+ (basic_filebuf::pbackfail): Check this->seekoff return
+ value and return traits_type::eof() in case of failure.
+ * testsuite/27_io/filebuf_virtuals.cc (test09): Add.
+
+2003-02-05 Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/26_numerics/valarray_name_lookup.cc: Fix.
+
+2003-02-05 Benjamin Kosnik <bkoz@redhat.com>
+
+ * configure.in (libtool_VERSION): To 5:3:0.
+ * configure: Regenerated.
+
+2003-02-04 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9538
+ * include/bits/streambuf.tcc (sputbackc): Access
+ this->gptr()[-1] only if _M_in_beg < _M_in_cur.
+ * testsuite/27_io/filebuf_virtuals.cc (test08): Add.
+
+2003-02-04 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9507
+ * include/bits/fstream.tcc (open): If the 'ate' repositioning
+ operation fails, calls close _and_ returns a null pointer
+ to indicate failure (27.8.1.3,4).
+ * testsuite/27_io/filebuf_members.cc (test_06): Add.
+
+2003-02-04 Petur Runolfsson <peturr02@ru.is>
+
+ * testsuite/27_io/filebuf_members.cc (test_04): Remove exit(0).
+
+2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * docs/html/17_intro/porting.texi: Update to GFDL 1.2.
+ * docs/html/17_intro/porting.html: Regenerate.
+
+2003-02-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR libstdc++/9234
+ * include/bits/valarray_meta.h (_UnBase::operator[]): Apply unary
+ operator.
+
+ * include/bits/valarray_meta.h (__not_equal_to): Use != instead of ==.
+
+ * testsuite/26_numerics/valarray_operators.cc: New test.
2003-01-28 Nathan Sidwell <nathan@codesourcery.com>
@@ -18,6 +1102,14 @@
* libsupc++/tinfo.cc (__vmi_class_type_info::__do_dyncast): Cope
with bases which are very ambiguous.
+2003-01-28 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * src/Makefile.am (CONFIG_CXXFLAGS): Reverse order of
+ @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@.
+ * libsupc++/Makefile.am (CONFIG_CXXFLAGS): Likewise.
+ * src/Makefile.in: Regenerate.
+ * libsupc++/Makefile.in: Regenerate.
+
2003-01-27 Alexandre Oliva <aoliva@redhat.com>
* acinclude.m4 (glibcpp_toolexeclibdir): Instead of
@@ -25,26 +1117,24 @@
version_specific_libs is enabled.
* aclocal.m4, configure: Rebuilt.
+2003-01-26 Christian Cornelssen <ccorn@cs.tu-berlin.de>
+
+ * include/Makefile.am (install-data-local): Prepend
+ $(DESTDIR) to destination paths in all (un)installation
+ commands. Use ${c_base_builddir} and ${std_builddir}
+ as destination subdirectories to achieve consistency with
+ preceding mkinstalldirs commands. No effect because both
+ variables contain "." only.
+ * include/Makefile.in: Regenerate.
+
2003-01-23 Phil Edwards <pme@gcc.gnu.org>
Bulk documentation merge (copy) from trunk.
- * docs/doxygen/TODO, docs/doxygen/run_doxygen,
- docs/doxygen/stdheader.cc, docs/doxygen/style.css,
- docs/doxygen/tables.html, docs/doxygen/user.cfg.in,
+ * docs/doxygen/tables.html, docs/doxygen/user.cfg.in,
docs/html/configopts.html, docs/html/debug.html,
- docs/html/documentation.html, docs/html/explanations.html,
- docs/html/install.html, docs/html/17_intro/contribute.html,
- docs/html/17_intro/howto.html, docs/html/17_intro/license.html,
- docs/html/17_intro/porting.html, docs/html/17_intro/porting.texi,
- docs/html/18_support/howto.html, docs/html/19_diagnostics/howto.html,
- docs/html/20_util/howto.html, docs/html/21_strings/howto.html,
- docs/html/22_locale/codecvt.html, docs/html/22_locale/ctype.html,
- docs/html/22_locale/howto.html, docs/html/22_locale/locale.html,
- docs/html/22_locale/messages.html, docs/html/24_iterators/howto.html,
- docs/html/25_algorithms/howto.html, docs/html/26_numerics/howto.html,
- docs/html/27_io/howto.html, docs/html/ext/lwg-active.html,
- docs/html/ext/lwg-defects.html, docs/html/ext/sgiexts.html,
- docs/html/faq/index.html, docs/html/faq/index.txt: Merge from trunk.
+ docs/html/documentation.html, docs/html/17_intro/howto.html,
+ docs/html/19_diagnostics/howto.html, docs/html/ext/sgiexts.html:
+ Merge from trunk.
2003-01-23 Petur Runolfsson <peturr02@ru.is>
@@ -61,7 +1151,120 @@
2003-01-23 Benjamin Kosnik <bkoz@redhat.com>
- * config/linker-map.gnu: Synch with 3_3-branch.
+ Revert include ordering.
+ * config/locale/generic/c_locale.h: Add include guards.
+ * config/locale/gnu/c_locale.h: Same.
+ * include/bits/locale_classes.h: Remove cctype include.
+ * include/std/std_iosfwd.h: Add c++locale.h, cctype includes.
+ * include/std/std_fstream.h: Remove streambuf include.
+ * include/std/std_sstream.h: Remove streambuf include.
+
+2003-01-23 Benjamin Kosnik <bkoz@redhat.com>
+
+ Match 3.2.0 ABI.
+ * include/bits/stl_alloc.h: Revert.
+
+ * include/bits/codecvt.h: Revert.
+ * config/locale/gnu/codecvt_members.cc: Revert.
+ * src/codecvt.cc: Revert.
+ * src/localename.cc: Revert.
+
+ * include/bits/ios_base.h (ios_base::~ios_base): Revert.
+
+ * config/linker-map.gnu: Mostly match 3_2-branch file.
+
+2003-01-22 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/bits/locale_facets.h: Move non-facet classes requiring
+ <string> to...
+ * include/bits/locale_classes.h: New.
+ * include/bits/Makefile.am (bits_headers_src): Add locale_classes.h.
+ * include/bits/Makefile.in: Regenerate.
+
+ * include/bits/locale_facets.tcc (__convert_from_v): Move to...
+ * config/locale/gnu/c_locale.h: ...here.
+ * config/locale/generic/c_locale.h: Same.
+
+ * include/bits/locale_facets.tcc: Move declarations to...
+ * include/bits/locale_facets.h: ...here.
+ * include/bits/basic_ios.h: Tweak includes accordingly.
+ * include/std/std_sstream.h: Add streambuf include.
+ * include/std/std_fstream.h: Ditto.
+ * include/std/std_locale.h: Add locale_classes.h include.
+ * include/std/std_iosfwd.h: Tweak.
+ * src/concept-inst.cc: Add iterator include.
+
+ * config/linker-map.gnu: Specify __cxa functions, mark __cxa_dyn_*
+ bits as unexported in the future.
+
+2003-01-15 Benjamin Kosnik <bkoz@redhat.com>
+
+ * acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPORT): Substitute
+ GLIBCPP_TEST_WCHAR_T if building wchar_t bits in the library.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+ * testsuite/Makefile.am (all-local): Add conditional rule to
+ generate testsuite_wchar_t.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/lib/libstdc++-v3-dg.exp
+ (libstdc++-v3-list-sourcefiles): Remove wchar_t files if
+ testsuite_wchar_t is not present in the build directory.
+ * testsuite/libstdc++-v3.dg/dg.exp: Add -g -O2 to DEFAULT_CXXFLAGS.
+ Remove setulimit bits.
+ * testsuite/26_numerics/complex_value.cc: Set to noopts.
+ * testsuite/Makefile.am (CLEANFILES): Add.
+ * testsuite/Makefile.in: Regenerate.
+
+2003-01-15 Benjamin Kosnik <bkoz@redhat.com>
+
+ Renames, namespaces for testsuite utilities.
+ * testsuite/testsuite_hooks.h: Put into namespace __gnu_cxx_test.
+ (gnu_allocator_tracker): Rename to allocation_tracker.
+ (gnu_new_allocator): Rename to tracker_alloc.
+ (__set_testsuite_memlimit): Rename to set_memory_limits.
+ (gnu_assignment_operator): Rename to assignment_operator.
+ (gnu_destructor): Rename to destructor.
+ (gnu_copy_tracker): Rename to copy_tracker.
+ (gnu_char, gnu_int, gnu_long): Rename to pod_char, pod_int, pod_long.
+ (run_tests_wrapped_locale): New.
+ (run_tests_wrapped_env): New.
+ * testsuite/testsuite_hooks.cc: Same.
+ (class locale_data): Add.
+ (class enviornment_variable): Add.
+ (class not_found): Add.
+ * testsuite/testsuite_allocator.h: Same.
+ * testsuite/testsuite_allocator.cc: Same.
+ * testsuite/23_containers/deque_ctor.cc
+ (test_copy_ctor_exception_safety): Change gnu_allocator_tracker to
+ allocation_tracker.
+ Change gnu_new_allocator to tracker_alloc.
+ Change gnu_counting_struct to counter.
+ Change gnu_copy_tracker to copy_tracker.
+ Change gnu_copy_constructor to copy_constructor.
+ Change gnu_assignment_operator to assignment_operator.
+ Inject.
+ * testsuite/23_containers/vector_capacity.cc: Same.
+ * testsuite/23_containers/vector_ctor.cc (test01): Same.
+ * testsuite/23_containers/list_modifiers.cc: Change
+ gnu_copy_tracker to copy_tracker.
+ * testsuite/21_strings/ctor_copy_dtor.cc (main): Change
+ __set_testsuite_memlimit to set_memory_limits.
+ * testsuite/21_strings/insert.cc (main): Same.
+ * testsuite/27_io/filebuf.cc: Change gnu_char to pod_char.
+ * testsuite/27_io/stringstream.cc: Same.
+ * testsuite/27_io/stringbuf.cc: Same.
+ * testsuite/27_io/streambuf.cc: Same.
+ * testsuite/27_io/ostream.cc: Same.
+ * testsuite/27_io/istream.cc: Same.
+ * testsuite/27_io/fstream.cc: Same.
+ * testsuite/lib/libstdc++-v3-dg.exp
+ (libstdc++-v3-list-sourcefiles): Additionally handle files two and
+ three levels deeper in glob patterns.
+
+2003-01-15 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * config/os/hpux/os_defines.h (_GLIBCPP_GTHREAD_USE_WEAK): Define for
+ __hppa__.
2003-01-10 Benjamin Kosnik <bkoz@redhat.com>
Sysoltsev Slawa <Vyatcheslav.Sysoltsev@intel.com>
@@ -96,7 +1299,7 @@
Use it.
* config/locale/gnu/time_members.h: Use it.
* config/locale/gnu/messages_members.h: Use it.
- * config/linker-map.gnu: Add locale::facets details.
+ * config/linker-map.gnu: Add locale::facets details.
* include/Makefile.am (target_headers_extra): Add time_members.h.
* include/Makefile.in: Regenerate.
* acinclude.m4: Export CTIME_H.
@@ -120,10 +1323,10 @@
2003-01-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
- * testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init):
- Additionally handle files one level deeper in glob patterns.
- * testsuite/libstdc++-v3.dg/dg.exp: Likewise.
-
+ * testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init,
+ libstdc++-v3-list-sourcefiles): Additionally handle files one
+ level deeper in glob patterns.
+
* testsuite/27_io/istream_extractor_arith.cc: Delete, split...
* testsuite/27_io/istream_extractor_arith/01.cc,
testsuite/27_io/istream_extractor_arith/02.cc,
@@ -148,6 +1351,48 @@
* testsuite/22_locale/codecvt_members_char_char.cc
(test01): Tweak.
+2002-12-29 Phil Edwards <pme@gcc.gnu.org>
+
+ * include/std/std_bitset.h: Better comments.
+
+2002-12-29 Phil Edwards <pme@gcc.gnu.org>
+
+ * include/std/std_bitset.h (_Base_bitset::_M_do_left_shift,
+ _Base_bitset::_M_do_right_shift): Expect a non-zero shift.
+ (bitset::operator<<=, bitset::operator>>=): When shifting more bits
+ than are in the bitset, zero memory rather than segfault.
+ (operator>>(basic_istream,bitset): Only call setstate once, after
+ all work has been done.
+
+ * testsuite/23_containers/bitset_members.cc (test03): New test.
+ * testsuite/23_containers/bitset_shift.cc (test02): New test.
+
+2002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * docs/html/17_intro/porting.texi: Use @copying.
+ * docs/html/17_intro/porting.html: Regenerate.
+
+2002-12-23 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * config/io/basic_file_stdio.cc (__basic_file::_M_open_mode):
+ Don't use O_NONBLOCK if it is not defined.
+ (__basic_file::open): Don't use fcntl either.
+
+2002-12-19 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/8949
+ * include/std/std_limits.h
+ (struct numeric_limits<short>,
+ struct numeric_limits<unsigned short>,
+ struct numeric_limits<int>,
+ struct numeric_limits<unsigned int>,
+ struct numeric_limits<long>,
+ struct numeric_limits<unsigned long>,
+ struct numeric_limits<long long>,
+ struct numeric_limits<unsigned long long>): According
+ to 18.2.1.2,53 and 18.2.1.5,1 is_iec559 shall be false.
+ * testsuite/18_support/numeric_limits.cc: Add test04.
+
2002-12-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* testsuite/23_containers/vector_capacity.cc (test03): Move ...
@@ -162,73 +1407,181 @@
(__timepunct<char>::_M_initialize_timepunct): Fix typos
in _M_date_format and _M_date_era_format string literals.
-2002-12-07 Gabriel Dos Reis <gdr@integrable-solutions.net>
+2002-12-10 Mark Mitchell <mark@codesourcery.com>
+
+ * libsupc++/cxxabi.h (__cxa_bad_cast): Declare it.
+ (__cxa_bad_typeid): Likewise.
+ (__cxa_atexit): Likewise.
+ (__cxa_finalize): Likewise.
+
+2002-12-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
* include/bits/slice_array.h (slice_array<>::operator=): Fix typo.
+2002-12-09 Mark Mitchell <mark@codesourcery.com>
+
+ * libsupc++/cxxabi.h (__cxa_pure_virtual): Declare it.
+
2002-12-05 Benjamin Kosnik <bkoz@redhat.com>
- * config/linker-map.gnu: Put _S_force_new into GLIBCPP_3.2.2.
* testsuite/abi_check.cc: Add GLIBCPP_3.2.2.
-2002-12-05 Benjamin Kosnik <bkoz@redhat.com>
- Gabriel Dos Reis <gdr@integrable-solutions.net>
+2002-12-02 Paolo Carlini <pcarlini@unitus.it>
- PR libstdc++/8230
- * include/bits/stl_alloc.h: Use builtin_expect for the most
- obvious limit checks.
- (__default_alloc_template::allocate): Check for null, throw
- bad_alloc.
- * testsuite/20_util/allocator_members.cc (test02): Add.
- * testsuite/23_containers/vector_capacity.cc (test03): Add.
+ * include/bits/basic_string.h (compare(const basic_string&)):
+ Fully qualify min() with std::.
-2002-12-05 Loren J. Rittle <ljrittle@acm.org>
- Brad Spencer <spencer@infointeractive.com>
- (provided alternate patch and improvements)
+2002-12-02 Benjamin Kosnik <bkoz@redhat.com>
- PR libstdc++/8708
- * docs/html/23_containers/howto.html (GLIBCPP_FORCE_NEW): Document
- new environment variable which replaces all uses of __USE_MALLOC
- macro.
- * docs/html/ext/howto.html (GLIBCPP_FORCE_NEW): Likewise.
- (__mem_interface): Remove all references to old internal typedef.
- * include/backward/alloc.h (__USE_MALLOC): Remove it and all
- guarded code.
- * include/bits/c++config (__USE_MALLOC): Update related error
- message and comment.
- * include/bits/stl_alloc.h (__USE_MALLOC): Remove it and all
- guarded code. Update all related comments.
- (__mem_interface): Unconditionally replace it with __new_alloc.
- However, leave the typedef around in case anyone used it.
- (__default_alloc_template<>::_S_force_new): New class static.
- (__default_alloc_template<>::allocate, deallocate): Add
- run-time controlled feature similar to what __USE_MALLOC code
- path had provided.
- * src/stl-inst.cc (__USE_MALLOC): Remove it and all
- guarded code.
- * testsuite/21_strings/capacity.cc: Remove reference to __USE_MALLOC.
- Add documentation on GLIBCPP_FORCE_NEW environment variable.
- * testsuite/ext/allocators.cc: Likewise.
+ * configure.in (libtool_VERSION): Update to 5:2:0.
+ * configure: Regenerate.
+
+2002-12-02 Paolo Carlini <pcarlini@unitus.it>
+
+ * include/bits/basic_string.tcc
+ (basic_string::append(const basic_string&, size_type,
+ size_type), basic_string::compare(size_type, size_type,
+ const basic_string&), basic_string::compare(size_type,
+ size_type, const basic_string&, size_type, size_type),
+ basic_string::compare(const _CharT*), basic_string::
+ compare(size_type, size_type, const _CharT*),
+ basic_string::compare(size_type, size_type, const _CharT*,
+ size_type), _S_string_copy(const basic_string&, _CharT*,
+ typename _Alloc::size_type)): Fully qualify min() with std::.
+
+2002-12-02 Paolo Carlini <pcarlini@unitus.it>
+
+ * include/bits/basic_string.tcc
+ (basic_string::_S_construct(_InIter, _InIter, const _Alloc&,
+ forward_iterator_tag)): Delay the declaration of __dnew,
+ fully qualify distance() with std::.
+ (basic_string::_M_replace_safe): Fully qualify distance()
+ with std::.
+
+2002-11-28 Phil Edwards <pme@gcc.gnu.org>
+
+ PR libstdc++/8716
+ * testsuite/21_strings/ctor_copy_dtor.cc (test05): Also test
+ the NULL-pointer, zero-size case.
-2002-12-05 Paolo Carlini <pcarlini@unitus.it>
+2002-11-28 Jonathan Wakely <redi@gcc.gnu.org>
+
+ * docs/html/faq/index.html: Add tip about a namespace for extensions.
+
+2002-11-28 Paolo Carlini <pcarlini@unitus.it>
+ Nathan Myers <ncm@cantrip.org>
+
+ * src/localename.cc
+ (locale::_Impl::_Impl(const char*, size_t)):
+ Improve previous fix for the strtok vs MT issue.
+
+2002-11-28 Paolo Carlini <pcarlini@unitus.it>
+
+ * config/locale/gnu/c_locale.cc (locale::_S_categories):
+ Reorder the categories to match that of glibc's setlocale(LC_ALL, ""))
+ * config/locale/generic/c_locale.cc (locale::_S_categories): Ditto.
+ * testsuite/22_locale/ctor_copy_dtor.cc (test04): Tweak.
+
+2002-11-25 Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/abi_check.cc: Add CXXABI_1.2.1 as compatible.
+ * config/linker-map.gnu: Version __cxa_guard_acquire,
+ __cxa_guard_release, __cxa_guard_abort in CXXABI_1.2.1.
+
+2002-11-25 Paolo Carlini <pcarlini@unitus.it>
Nathan Myers <ncm@cantrip.org>
- PR libstdc++/8790
* src/localename.cc
(locale::_Impl::_Impl(const char*, size_t)):
Avoid strtok for thread safety.
-2002-12-04 Loren J. Rittle <ljrittle@acm.org>
+2002-11-25 Stephen M. Webb <stephen@bregmasoft.com>
- PR libstdc++/7445
- * src/locale.cc (std::locale::classic()): Weaken locking protocol.
+ * testsuite/testsuite_allocator.h: New file.
+ * testsuite/testsuite_allocator.cc: New file.
+ * testsuite/Makefile.am: Added testsuite_allocator to test library.
+ * testsuite/testsuite_hooks.h: Added more detailed tracker objects
+ gnu_copy_constructor, gnu_assignment_operator, and gnu_destructor.
+ * testsuite/testsuite_hooks.cc: Added new static objects definitions.
+ * testsuite/23_containers/vector_capacity.cc: Added reserve() tests.
+ * testsuite/23_containers/vector_ctor.cc: Added a plethora of tests.
+ * testsuite/23_containers/deque_ctor.cc: Added a slew of new tests.
+
+2002-11-25 Mark Mitchell <mark@codesourcery.com>
+
+ * libsupc++/Makefile.am (sources): Add guard.cc.
+ * libsupc++/Makefile.in: Regenerated.
+ * libsupc++/cxxabi.h (__cxa_guard_acquire): New function.
+ (__cxa_guard_release): Likewise.
+ (__cxa_guard_abort): Likewise.
+ * libsupc++/guard.cc: New file.
+
+2002-11-25 Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+
+ * include/std/std_complex.h
+ (operator<<(basic_ostream&, const complex&)): Prefer 'x'
+ to "x" for efficiency sake.
+ * src/locale.cc (locale::locale(const char*)): Ditto.
+
+2002-11-24 Paolo Carlini <pcarlini@unitus.it>
+
+ * src/locale.cc (locale::locale(const char*)):
+ Trivial cosmetic tweaks.
+
+2002-11-22 Laszlo Ersek <erseklaszlo@chello.hu>
+ Paolo Carlini <pcarlini@unitus.it>
-2002-12-03 Phil Edwards <pme@gcc.gnu.org>
+ PR libstdc++/8645
+ * include/bits/stl_tree.h (_Rb_tree_rebalance_for_erase):
+ Don't check that __w->_M_left != 0 and __w->_M_right != 0
+ when they can't be otherwise.
+
+2002-11-21 Phil Edwards <pme@gcc.gnu.org>
+
+ * docs/html/documentation.html: Fix broken/thinko'd URL.
+
+2002-11-21 Phil Edwards <pme@gcc.gnu.org>
+
+ * docs/doxygen/run_doxygen: Tighter search expression for sed.
+ * docs/doxygen/stdheader.cc: Handle the case of good headers.
+
+2002-11-21 Phil Edwards <pme@gcc.gnu.org>
+
+ * acinclude.m4: Uniform formatting.
+ * configure.in: Warn when generic atomicity.h is used.
+ * configure.target: Fix comment.
+ * aclocal.m4, configure: Regenerate.
+
+2002-11-21 Phil Edwards <pme@gcc.gnu.org>
* include/bits/streambuf.tcc (basic_streambuf::sputbackc): Prefix
"this->" to call to pbackfail.
-2002-12-02 Benjamin Kosnik <bkoz@redhat.com>
+2002-11-21 Phil Edwards <pme@gcc.gnu.org>
+
+ * docs/doxygen/style.css: Update.
+ * docs/doxygen/user.cfg.in: Update.
+ * docs/html/documentation.html: Regenerate.
+ * docs/html/17_intro/howto.html: Tweak I/O sentry entry.
+ * docs/html/27_io/howto.html: New section on headers.
+ * docs/html/faq/index.html: Add i386 threading entry.
+ * docs/html/faq/index.txt: Regenerate.
+
+ * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
+ Import R23.
+
+2002-11-21 Phil Edwards <pme@gcc.gnu.org>
+
+ * docs/doxygen/TODO: Note change in clause 27 docs.
+ * include/bits/basic_ios.h, include/bits/fpos.h,
+ include/bits/ios_base.h, include/bits/stl_deque.h,
+ include/bits/stl_iterator_base_types.h, include/std/std_fstream.h,
+ include/std/std_iomanip.h, include/std/std_iosfwd.h,
+ include/std/std_iostream.h, include/std/std_istream.h,
+ include/std/std_ostream.h, include/std/std_sstream.h,
+ include/std/std_streambuf.h: Doxygenate all I/O entities.
+
+2002-11-20 Benjamin Kosnik <bkoz@redhat.com>
Jonathan Lennox <lennox@cs.columbia.edu>
* include/bits/streambuf.tcc (__copy_streambufs):
@@ -236,27 +1589,57 @@
libstdc++/6745, use _M_buf_size_opt to set dynamically
the correct buffer size.
-2002-12-02 Jonathan Lennox <lennox@cs.columbia.edu>
+2002-11-20 Jonathan Wakely <redi@gcc.gnu.org>
+
+ * docs/html/21_strings/howto.html: Fix example code, cite Gaby's
+ explanation of "<unknown type>" error with toupper/tolower.
+ * docs/html/22_locale/howto.html: Be more consistent with
+ example in 21_strings.
+
+2002-11-19 John Gustafsson <forgoil@rsn.bth.se>
+
+ * docs/html/20_util/howto.html: Fix typo.
+
+2002-11-18 Jonathan Lennox <lennox@cs.columbia.edu>
* include/bits/streambuf.tcc (__copy_streambufs): verify
__sbin->gptr() + __bufsize < __sbin->egptr() before using.
* testsuite/27_io/ostream_inserter_other.cc (test_buffer_4): Add.
- (test05): Use test_buffer_4. Delete unused ostringstream
+ (test05): Use test_buffer_4. Delete unused ostringstream
variables.
-2002-12-02 Paolo Carlini <pcarlini@unitus.it>
+2002-11-18 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/6745 (continued)
* include/bits/streambuf.tcc (__copy_streambufs):
Deal with interactive input by using isatty as in the
fix for libstdc++/8399.
-2002-12-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+2002-11-17 Jakub Jelinek <jakub@redhat.com>
+
+ * config/linker-map.gnu: Export _S_construct even if size_t is
+ unsigned long. Collapse std::codecvt<char>::codecvt(size_t)
+ and std::codecvt<wchar_t>::codecvt(size_t) into one export pattern.
+
+2002-11-15 Benjamin Kosnik <bkoz@redhat.com>
+ Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR libstdc++/8230
+ * include/bits/stl_alloc.h: Use builtin_expect for the most
+ obvious limit checks.
+ (__default_alloc_template::allocate): Check for null, throw
+ bad_alloc.
+ * include/bits/vector.tcc: Formatting tweaks.
+ * include/bits/stl_vector.h: Same.
+ * testsuite/20_util/allocator_members.cc (test02): Add.
+ * testsuite/23_containers/vector_capacity.cc (test03): Add.
+
+2002-11-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* src/ios.cc [_GLIBCPP_HAVE_UNISTD_H]: Include unistd.h.
-2002-12-02 Paolo Carlini <pcarlini@unitus.it>
- Loren J. Rittle <ljrittle@acm.org>
+2002-11-15 Paolo Carlini <pcarlini@unitus.it>
+ Loren J. Rittle <ljrittle@acm.org>
PR libstdc++/8399
* acinclude.m4
@@ -273,56 +1656,84 @@
* config.h.in: Regenerate.
* configure: Regenerate.
-2002-12-02 Benjamin Kosnik <bkoz@redhat.com>
+2002-11-13 Benjamin Kosnik <bkoz@redhat.com>
* acconfig.h (HAVE_DRAND48): Add.
(HAVE_GETPAGESIZE): Add.
- (HAVE_SETENV): Add.
- (HAVE_SIGSETJMP): Add.
+ (HAVE_SETENV): Add.
+ (HAVE_SIGSETJMP): Add.
* config.h.in: Regenerate.
* configure: Regenerate.
-2002-12-02 Benjamin Kosnik <bkoz@redhat.com>
+2002-11-13 John David Anglin <dave@hiauly1.hia.nrc.ca>
- PR libstdc++/8230
- * include/bits/stl_vector.h (vector::reserve): Throw length_error if
- requested size is bigger than max_size().
- * include/bits/stl_bvector.h (vector<bool>::reserve): Same.
- * testsuite/23_containers/vector_capacity.cc (test02): Add.
+ * config/os/hpux/os_defines.h (_GLIBCPP_INST_ATOMICITY_LOCK): Define
+ on hppa when there is no weak support.
-2002-12-02 Benjamin Kosnik <bkoz@redhat.com>
+2002-11-13 Benjamin Kosnik <bkoz@redhat.com>
- * configure.in (libtool_VERSION): Update to 5:2:0.
- * configure: Regenerate.
-
-2002-11-26 David Edelsohn <edelsohn@gnu.org>
+ PR libstdc++/8230
+ * include/bits/vector.tcc (vector::reserve): Throw length_error if
+ requested size is bigger than max_size().
+ * include/bits/stl_bvector.h (vector<bool>::reserve): Same.
+ * testsuite/23_containers/vector_capacity.cc (test02): Add.
- * testsuite/abi_check.cc: Remove guards kludge.
+2002-11-13 Benjamin Kosnik <bkoz@redhat.com>
-2002-11-19 Release Manager
+ * config/linker-map.gnu: Export all _S_construct.
- * GCC 3.2.1 Released.
+2002-11-13 Loren J. Rittle <ljrittle@acm.org>
-2002-11-17 Jakub Jelinek <jakub@redhat.com>
+ PR libstdc++/7445
+ * src/locale.cc (std::locale::classic()): Weaken locking protocol.
- * config/linker-map.gnu: Export _S_construct even if size_t is
- unsigned long. Collapse std::codecvt<char>::codecvt(size_t)
- and std::codecvt<wchar_t>::codecvt(size_t) into one export pattern.
+2002-11-13 Jonathan Wakely <redi@gcc.gnu.org>
-2002-11-13 Benjamin Kosnik <bkoz@redhat.com>
+ * docs/html/install.html, docs/html/22_locale/locale.html: HTML fix.
- * config/linker-map.gnu: Export all _S_construct.
-
-2002-11-06 David Edelsohn <edelsohn@gnu.org>
+2002-11-11 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/6746
+ * include/bits/fstream.tcc (filebuf::open): Set input pointers.
+ * config/io/basic_file_stdio.cc (__basic_file::_M_open_mode): Set
+ __p_mode as well.
+ (__basic_file::open): Set to non-block for input.
+ * testsuite/27_io/istream_unformatted.cc (test12): Add.
+ (test13): Same.
+
+2002-11-11 Jonathan Wakely <redi@gcc.gnu.org>
+
+ * docs/html/17_intro/howto.html: Make "chapter 22 notes" a link.
+ * docs/html/faq/index.html: Mention that GCC ships with a newer
+ version of the library than the last snapshot. Make "see below" a
+ link. Add missing <html> tag.
+ * docs/html/faq/index.txt: Regenerate.
+ * docs/html/22_locale/locale.html, docs/html/22_locale/messages.html,
+ docs/html/23_containers/howto.html, docs/html/24_iterators/howto.html,
+ docs/html/25_algorithms/howto.html, docs/html/26_numerics/howto.html,
+ docs/html/27_io/howto.html, docs/html/ext/howto.html,
+ docs/html/ext/sgiexts.html: Add missing <html> tag.
+
+2002-11-07 Phil Edwards <pme@gcc.gnu.org>
+ Richard Earnshaw <rearnsha@arm.com>
- PR libstdc++/8362
- * testsuite/abi_check.cc: Add guards to prevent -mpower ICE.
+ * config/cpu/generic/atomicity.h: Provide atomic __exchange_and_add
+ and __atomic_add.
+
+2002-11-08 Paolo Carlini <pcarlini@unitus.it>
+
+ * config/locale/gnu/monetary_members.cc
+ (moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale,
+ const char*),
+ moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale,
+ const char*)): Tweak parameters for glibc2.3 systems, thus
+ avoiding unused parameter warnings.
2002-11-05 Jonathan Wakely <cow@compsoc.man.ac.uk>
* include/std/std_sstream.h
(basic_stringbuf::str(const __string_type&)):
- Prefer data() to c_str() thus avoiding assigning the
+ Prefer data() to c_str(), thus avoiding assigning the
unnecessary NULL-terminator.
2002-11-05 Benjamin Kosnik <bkoz@redhat.com>
@@ -332,16 +1743,9 @@
for null buffer.
(istream::operator>>(_CharT*)): Use traits_type.
(istream::ws): Same.
- (istream::operator>>(string)): Same.
+ (istream::operator>>(string)): Same.
* testsuite/27_io/istream_unformatted.cc (test11): Add.
-2002-11-05 Benjamin Kosnik <bkoz@redhat.com>
-
- PR libstdc++/7219
- * include/bits/ios_base.h (ios_base::streampos): Add.
- (ios_base::streamoff): Add.
- * testsuite/27_io/ios_base_type.cc: New.
-
2002-11-05 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/8466
@@ -351,23 +1755,47 @@
basic_string is not taken into account in basic_stringbuf.
* testsuite/27_io/stringstream_members.cc: Add test04 from PR.
+2002-11-05 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * configure.target (hppa*): Define cpu_include_dir.
+ * config/os/hpux/os_defines.h (_GLIBCPP_INST_ATOMICITY_LOCK): Define.
+ * src/misc-inst.cc: Instantiate atomicity lock when
+ _GLIBCPP_INST_ATOMICITY_LOCK is defined.
+ * config/cpu/hppa/atomicity.h: New file.
+
+2002-11-05 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/8463
+ * include/bits/ios_base.h (~ios_base): Make virtual.
+
2002-11-04 Benjamin Kosnik <bkoz@redhat.com>
* config/linker-map.gnu: Export string operator+.
Export __default_alloc_template::_S_force_new.
* testsuite/abi_check.cc: Output tweaks.
-2002-11-04 Benjamin Kosnik <bkoz@redhat.com>
+2002-11-01 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/8172
+ * src/string-inst.cc: Add instantiation.
+
+2002-11-01 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/7926
+ * configure.target: Simplify.
+ * config/cpu/i386/atomicity.h: Remove.
+ * config/cpu/i386: Remove.
+ * config/cpu/arm/atomicity.h: Remove.
+ * config/cpu/arm: Remove.
+ * config/cpu/x86-64/atomicity.h: Remove.
+ * config/cpu/x86-64: Remove.
- PR libstdc++/8172
- * src/string-inst.cc: Add instantiation.
-
-2002-11-04 Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
+2002-11-01 Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
PR libstdc++/8197
* config/link-map.gnu: Export math stubbs.
-2002-11-04 Benjamin Kosnik <bkoz@redhat.com>
+2002-11-01 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/8318
* include/std/std_iostream.h: Tweak.
@@ -381,28 +1809,36 @@
* include/bits/streambuf.tcc: Same.
* include/bits/locale_facets.tcc: Same.
-2002-11-01 Benjamin Kosnik <bkoz@redhat.com>
+2002-11-01 John Carter <john.carter@tait.co.nz>
+
+ PR libstdc++/7961
+ * include/bits/basic_string.tcc
+ (compare(const _CharT* __s)): Don't access __s past its length.
+
+2002-10-31 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/8348
* include/bits/istream.tcc (istream::tellg): Remove sentry bits.
(istream::seekg): Same.
* testsuite/27_io/istream_seeks.cc (test06): New.
-2002-11-01 John Carter <john.carter@tait.co.nz>
+2002-10-28 Jason Thorpe <thorpej@wasabisystems.com>
- PR libstdc++/7961
- * include/bits/basic_string.tcc
- (compare(const _CharT* __s)): Don't access __s past its length.
+ * testsuite/thread/pthread5.cc: Include <unistd.h>
+ if _GLIBCPP_HAVE_UNISTD_H is defined.
+ (main): Only use pthread_attr_setscope if
+ _POSIX_THREAD_PRIORITY_SCHEDULING is defined.
-2002-11-01 Hans-Peter Nilsson <hp@bitrange.com>
+2002-10-28 Jason Thorpe <thorpej@wasabisystems.com>
- PR other/3337
- PR bootstrap/6763
- PR bootstrap/8122
- * testsuite/testsuite_hooks.h (__set_testsuite_memlimit): Use
- __typeof__ (r.rlim_cur), not rlim_t in declaration of limit.
+ * testsuite/thread/pthread1.cc: Enable on *-*-netbsd*.
+ * testsuite/thread/pthread2.cc: Likewise.
+ * testsuite/thread/pthread3.cc: Likewise.
+ * testsuite/thread/pthread4.cc: Likewise.
+ * testsuite/thread/pthread5.cc: Likewise.
+ * testsuite/thread/pthread6.cc: Likewise.
-2002-10-29 Paolo Carlini <pcarlini@unitus.it>
+2002-10-27 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/8347
* include/bits/basic_string.tcc
@@ -412,6 +1848,14 @@
(string::string(const _CharT*, const _Alloc&)): Tweak.
* testsuite/21_strings/ctor_copy_dtor.cc: Add test05 from PR.
+2002-10-24 Hans-Peter Nilsson <hp@bitrange.com>
+
+ PR other/3337
+ PR bootstrap/6763
+ PR bootstrap/8122
+ * testsuite/testsuite_hooks.cc (__set_testsuite_memlimit): Use
+ __typeof__ (r.rlim_cur), not rlim_t in declaration of limit.
+
2002-10-23 Jakub Jelinek <jakub@redhat.com>
* testsuite/22_locale/num_put_members_char.cc (test01): Swap size
@@ -424,49 +1868,111 @@
instead of ${top_srcdir}.
* Makefile.in: Rebuilt.
-2002-10-21 Phil Edwards <pme@gcc.gnu.org>
+2002-10-22 Loren J. Rittle <ljrittle@acm.org>
+
+ * testsuite/18_support/numeric_limits.cc (test_extrema<long double>):
+ Remove specialization for FreeBSD systems.
+
+2002-10-18 Loren J. Rittle <ljrittle@acm.org>
+
+ * configure.target (freebsd*): Use abi_baseline_triplet.
+ * config/abi/i386-unknown-freebsd4/baseline_symbols.txt: New file.
+ * config/abi/i386-unknown-freebsd4.7/baseline_symbols.txt: Remove.
+
+ * testsuite/thread/pthread1.cc: Remove needless workaround
+ for FreeBSD 5.
+
+2002-10-18 Loren J. Rittle <ljrittle@acm.org>
+ Brad Spencer <spencer@infointeractive.com>
+ (provided alternate patch and improvements)
+
+ * docs/html/23_containers/howto.html (GLIBCPP_FORCE_NEW): Document
+ new environment variable which replaces all uses of __USE_MALLOC
+ macro.
+ * docs/html/ext/howto.html (GLIBCPP_FORCE_NEW): Likewise.
+ (__mem_interface): Remove all references to old internal typedef.
+ * include/backward/alloc.h (__USE_MALLOC): Remove it and all
+ guarded code.
+ * include/bits/c++config (__USE_MALLOC): Update related error
+ message and comment.
+ * include/bits/stl_alloc.h (__USE_MALLOC): Remove it and all
+ guarded code. Update all related comments.
+ (__mem_interface): Unconditionally replace it with __new_alloc.
+ However, leave the typedef around in case anyone used it.
+ (__default_alloc_template<>::_S_force_new): New class static.
+ (__default_alloc_template<>::allocate, deallocate): Add
+ run-time controlled feature similar to what __USE_MALLOC code
+ path had provided.
+ * src/stl-inst.cc (__USE_MALLOC): Remove it and all
+ guarded code.
+ * testsuite/21_strings/capacity.cc: Remove reference to __USE_MALLOC.
+ Add documentation on GLIBCPP_FORCE_NEW environment variable.
+ * testsuite/ext/allocators.cc: Likewise.
+
+2002-10-18 Phil Edwards <pme@gcc.gnu.org>
* configure.in: Use target, not target_alias, when matching triplet
patterns.
* configure: Regenerate.
+2002-10-17 Momchil Velikov <velco@fadata.bg>
+ Loren J. Rittle <ljrittle@acm.org>
+
+ * configure.in: Add *-freebsd* to cross list.
+ * configure: Rebuilt.
+
2002-10-16 Benjamin Kosnik <bkoz@redhat.com>
- * include/bits/locale_facets.h (__timepunct::__timepunct): Allocate
- _M_name_timepunct.
- (__timepunct::~__timepunct): Deallocate, remove specialization
- declarations.
- (messages::messages): Allocate _M_name_messages.
- (messages::~messages): Deallocate.
- (messages_byname): Same.
- * config/locale/gnu/time_members.cc (__timepunct::~__timepunct):
- Remove.
- * config/locale/generic/time_members.cc (__timepunct::~__timepunct):
- Remove.
-
- * docs/html/install.html: Add eqs_MX, en_PH to required locales list.
-
+ * include/bits/locale_facets.h (__timepunct::__timepunct): Allocate
+ _M_name_timepunct.
+ (__timepunct::~__timepunct): Deallocate, remove specialization
+ declarations.
+ (messages::messages): Allocate _M_name_messages.
+ (messages::~messages): Deallocate.
+ (messages_byname): Same.
+ * config/locale/gnu/time_members.cc (__timepunct::~__timepunct):
+ Remove.
+ * config/locale/generic/time_members.cc (__timepunct::~__timepunct):
+ Remove.
+
+ * docs/html/install.html: Add es_MX, en_PH to required locales list.
+
2002-10-16 Benjamin Kosnik <bkoz@redhat.com>
+ * config/linker-map.gnu: Add exports for codecvt constructors
+ where size_t == unsigned long.
+
+2002-10-14 Benjamin Kosnik <bkoz@redhat.com>
+
* src/globals.cc (__gnu_cxx::c_locale_impl_compat): Add, alias to
c_locale_impl.
* testsuite/abi_check.cc (line_to_symbol_info): Collect size info.
* docs/html/abi.txt: Update.
-2002-10-16 Benjamin Kosnik <bkoz@redhat.com>
+2002-10-14 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/22_locale/static_members.cc (test02): Less provincial.
-2002-10-16 Benjamin Kosnik <bkoz@redhat.com>
+2002-10-14 Benjamin Kosnik <bkoz@redhat.com>
- * testsuite/22_locale/static_members.cc (test02): Disable for
+ * testsuite/22_locale/static_members.cc (test02): Disable for
systems without named locale support.
* testsuite/22_locale/ctor_copy_dtor.cc (test04): Don't assume
running the testsuites in "C" environment.
Add new tests.
* docs/html/22_locale/locale.html: Update.
-2002-10-16 Benjamin Kosnik <bkoz@redhat.com>
+2002-10-13 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/bits/stl_threads.h (_GLIBCPP_mutex,
+ _GLIBCPP_mutex_init,_GLIBCPP_mutex_address,
+ _GLIBCPP_mutex_address_init, _GLIBCPP_once):
+ Declare in namespace __gnu_cxx.
+ (_STL_mutex_lock::_M_initialize): Qualify __gnu_cxx
+ names.
+ Adjust copyright.
+
+2002-10-12 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/abi_check.cc (hash<string>): Specialize.
Simplify. Check compatible symbol versions.
@@ -475,11 +1981,17 @@
* testsuite/22_locale/static_members.cc (test02): Avoid null strings.
-2002-10-16 Benjamin Kosnik <bkoz@redhat.com>
+2002-10-12 Jonathan Wakely <jw@kayari.org>
+ Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * docs/html/21_strings/howto.html#5: Correct nasting of XHTML
+ elements. Correct allocator-related text.
+
+2002-10-11 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/22_locale/static_members.cc (test02): Fix.
-2002-10-16 Benjamin Kosnik <bkoz@redhat.com>
+2002-10-11 Benjamin Kosnik <bkoz@redhat.com>
* acconfig.h (_GLIBCPP_SYMVER): Add.
(_GLIBCPP_ASM_SYMVER): Add.
@@ -490,26 +2002,41 @@
* include/bits/c++config (_GLIBCPP_AT_AT): Define, as an expedient
hack around m4 issues with quoting '@'.
* src/locale.cc: Use _GLIBCPP_ASM_SYMVER.
- * src/globals.cc (__gnu_cxx): Same.
-
+ * src/globals.cc: Same.
+
* testsuite/22_locale/ctor_copy_dtor.cc (test04): Fix for
+ non-glibc systems.
-2002-10-16 Benjamin Kosnik <bkoz@redhat.com>
+2002-10-10 Benjamin Kosnik <bkoz@redhat.com>
* config/linker-map.gnu (GLIBCPP_3.2.1): Add.
- (GLIBCPP_3.2): Don't export locale::_S_*.
+ (GLIBCPP_3.2): Don't export locale::_S_*.
* src/ios.cc: Move globals into __gnu_cxx. Make old exported
symbols match.
* src/locale.cc: Same.
- * src/localename.cc: Same.
+ * src/localename.cc: Same.
+ * src/globals.cc: Same.
+
+2002-10-10 Phil Edwards <pme@gcc.gnu.org>
-2002-10-16 Benjamin Kosnik <bkoz@redhat.com>
+ * docs/html/21_strings/howto.html: Write #5, char_traits.
+ * docs/html/17_intro/porting.texi: Expand on os_include_dir.
+ * docs/html/17_intro/porting.html: Regenerate.
+
+2002-10-09 Benjamin Kosnik <bkoz@redhat.com>
* src/locale.cc: Fix comments, move ctors together.
* testsuite/22_locale/static_members.cc (test03): Add.
-2002-10-16 Paolo Carlini <pcarlini@unitus.it>
- Benjamin Kosnik <bkoz@redhat.com>
+2002-10-08 Jonathan Lennox <lennox@cs.columbia.edu>
+
+ PR libstdc++/8071, libstdc++/8127, libstdc++/6745
+ * streambuf.tcc (__copy_streambufs): Handle cases where
+ __sbin->in_avail() returns 0, or where __sbin doesn't set gptr().
+ * testsuite/27_io/ostream_inserter_other.cc (test05): Add.
+
+2002-10-08 Paolo Carlini <pcarlini@unitus.it>
+ Benjamin Kosnik <bkoz@redhat.com>
* include/bits/localefwd.h (class locale): Add static member
_S_num_extra_categories, encoding the number of additional
@@ -520,7 +2047,7 @@
(class locale::_Impl::_M_check_same_name): Use
_S_extra_categories_size, tweak.
(locale::locale(const locale&, _Facet*)): Ditto.
- * src/locale.cc (locale::locale(const char* )): Rewrite to deal
+ * src/locale.cc (locale::locale(const char* )): Rewrite to deal
with the environment in a POSIX-compliant way while being thread
safe.
(locale::name()): Update to output POSIX environment strings.
@@ -539,7 +2066,7 @@
* src/codecvt.c: _S_c_locale simplification.
* src/ctype.c: Same.
* src/globals.cc: Add fake_name.
- * src/locale-inst.cc: Remove extra includes.
+ * src/locale-inst.cc: Remove extra includes.
* src/locale.cc: Remove extra includes.
Add _S_extra_categories_size definition.
Correct "C" initialization.
@@ -554,7 +2081,7 @@
* config/locale/generic/c_locale.cc: Add _S_categories definition.
* config/locale/generic/c_locale.h: Add _GLIBCPP_NUM_CATEGORIES macro.
* config/locale/generic/time_members.cc: _S_c_locale cleanup.
-
+
* config/locale/gnu/c_locale.cc: Add _S_categories definition.
(_S_destroy_c_locale): Move checks against _S_c_locale here.
* config/locale/gnu/c_locale.h: Add _GLIBCPP_NUM_CATEGORIES macro.
@@ -562,7 +2089,7 @@
calls, _S_c_locale usage.
* config/locale/gnu/monetary_members.cc: Same, tweaks.
* config/locale/gnu/monetary_members.cc: Same.
- * config/locale/gnu/time_members.cc: Same.
+ * config/locale/gnu/time_members.cc: Same.
* config/os/gnu-linux/ctype_noninline.h: Use locale::classic().
* docs/html/22_locale/locale.html: Add bits about global locales
@@ -572,60 +2099,260 @@
* testsuite/22_locale/static_members.cc (test02): Add.
* testsuite/22_locale/ctor_copy_dtor.cc (test04): Add.
-2002-10-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
+2002-10-07 Jonathan Wakely <jw@kayari.org>
- * include/std/std_limits.h (__glibcpp_char_digits10): Fix Typo.
- (__glibcpp_char_digits10): Likewise.
+ * docs/html/configopts.html, docs/html/documentation.html,
+ docs/html/explanations.html, docs/html/install.html,
+ docs/html/17_intro/contribute.html, docs/html/17_intro/howto.html,
+ docs/html/17_intro/license.html, docs/html/18_support/howto.html,
+ docs/html/19_diagnostics/howto.html, docs/html/20_util/howto.html,
+ docs/html/21_strings/howto.html, docs/html/22_locale/codecvt.html,
+ docs/html/22_locale/ctype.html, docs/html/22_locale/howto.html,
+ docs/html/22_locale/locale.html, docs/html/22_locale/messages.html,
+ docs/html/23_containers/howto.html, docs/html/24_iterators/howto.html,
+ docs/html/25_algorithms/howto.html, docs/html/26_numerics/howto.html,
+ docs/html/27_io/howto.html, docs/html/ext/howto.html,
+ docs/html/ext/sgiexts.html, docs/html/faq/index.html: Add DOCTYPEs.
-2002-10-10 Jonathan Lennox <lennox@cs.columbia.edu>
+2002-10-03 Richard Earnshaw <rearnsha@arm.com>
- PR libstdc++/8071, libstdc++/8127, c++/6745
- * streambuf.tcc (__copy_streambufs): Handle cases where
- __sbin->in_avail() returns 0, or where __sbin doesn't set gptr().
- * testsuite/27_io/ostream_inserter_other.cc (test05): Add.
+ PR libstdc++/3584
+ * config/cpu/arm/atomicity.h (__exchange_and_add): Don't try to use
+ ASM sequences that don't give us atomic addition operations. Instead
+ just add a comment explaining why it doesn't work.
+ (__atomic_add): Just use __exchange_and_add.
+ (__test_and_set, __always_swap): Delete.
-2002-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+2002-10-02 Andreas Jaeger <aj@suse.de>
- * Makefile.am (all-multi): Fix multilib parallel build.
+ * config/abi/x86_64-unknown-linux-gnu/baseline_symbols.txt:
+ New file.
2002-10-01 Phil Edwards <pme@gcc.gnu.org>
* Makefile.am (check-abi): Add @ to rule.
* Makefile.in: Regenerated.
-2002-10-01 Phil Edwards <pme@gcc.gnu.org>
-
- PR libstdc++/8096
- * include/bits/stl_deque.h (deque::_M_range_check): Throw
- out_of_range, not range_error.
-
-2002-09-28 Paolo Carlini <pcarlini@unitus.it>
+2002-09-27 Paolo Carlini <pcarlini@unitus.it>
* include/bits/locale_facets.tcc (num_put::_M_widen_int):
Deal correctly with grouped, showbased (oct or hex) zero.
* testsuite/22_locale/num_put_members_char.cc: Add test05.
* testsuite/22_locale/num_put_members_wchar_t.cc: Ditto.
-2002-09-25 Phil Edwards <pme@gcc.gnu.org>
+2002-09-27 Richard Henderson <rth@redhat.com>
- Bulk documentation merge (copy) from trunk.
- * docs/doxygen/run_doxygen, docs/html/Makefile, docs/html/abi.txt,
- docs/html/configopts.html, docs/html/documentation.html,
- docs/html/explanations.html, docs/html/install.html,
- docs/html/makedoc.awk, docs/html/17_intro/C++STYLE,
- docs/html/17_intro/RELEASE-NOTES, docs/html/17_intro/contribute.html,
- docs/html/17_intro/howto.html, docs/html/17_intro/license.html,
- docs/html/18_support/howto.html, docs/html/19_diagnostics/howto.html,
- docs/html/20_util/howto.html, docs/html/21_strings/howto.html,
- docs/html/22_locale/codecvt.html, docs/html/22_locale/ctype.html,
- docs/html/22_locale/howto.html, docs/html/22_locale/locale.html,
- docs/html/22_locale/messages.html, docs/html/23_containers/howto.html,
- docs/html/24_iterators/howto.html, docs/html/25_algorithms/howto.html,
- docs/html/26_numerics/howto.html, docs/html/27_io/howto.html,
- docs/html/ext/howto.html, docs/html/ext/sgiexts.html,
- docs/html/faq/index.html, docs/html/faq/index.txt: Merge from trunk.
+ * config/os/hpux/cpu_limits.h: Remove.
+
+ * include/std/std_limits.h (numeric_limits<T>::is_iec559): False
+ if denormals are not supported.
+
+2002-09-25 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/Makefile.am (target_headers): Remove cpu_limits.h.
+ * include/Makefile.in: Regenerate.
+ * configure.in (CPU_LIMITS_INC_SRCDIR): Remove
+ * configure: Regenerate.
+ * configure.target (CPULIMITS): Remove.
+
+ * include/std/std_limits.h: Remove cpu_limits.h include.
+
+ * config/os/solaris/solaris2.7/os_defines.h (__glibcpp_long_bits):
+ Remove.
+ * config/os/irix/irix6.5/os_defines.h
+ (__glibcpp_long_double_bits): Remove.
+ (__glibcpp_wchar_t_bits): Remove.
+ (__glibcpp_long_bits): Remove.
+ * config/os/irix/irix5.2/os_defines.h
+ (__glibcpp_long_double_bits): Remove.
+ (__glibcpp_long_bits): Remove.
+ * config/os/hpux/os_defines.h (__glibcpp_wchar_t_is_signed): Remove.
+ * config/os/bsd/freebsd/os_defines.h:
+ (__glibcpp_long_double_bits): Remove.
+ * config/os/aix/os_defines.h (__glibcpp_wchar_t_bits): Remove.
+ (__glibcpp_wchar_t_is_signed): Remove.
+ (__glibcpp_long_bits): Remove.
+ * config/os/gnu-linux/os_defines.h (__glibcpp_long_bits): Remove.
+ (__glibcpp_long_double_bits): Remove.
+
+ * config/os/osf/osf5.0/cpu_limits.h: Remove.
+ * config/cpu/alpha/cpu_limits.h: Remove.
+ * config/cpu/arm/cpu_limits.h: Remove.
+ * config/cpu/cris/cpu_limits.h: Remove.
+ * config/cpu/generic/cpu_limits.h: Remove.
+ * config/cpu/generic/limits.h: Remove.
+ * config/cpu/ia64/cpu_limits.h: Remove.
+ * config/cpu/m68k/cpu_limits.h: Remove.
+ * config/cpu/mmix/cpu_limits.h: Remove.
+ * config/cpu/powerpc/cpu_limits.h: Remove.
+ * config/cpu/S390/cpu_limits.h: Remove.
+
+2002-09-25 Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de>
+
+ * testsuite/18_support/numeric_limits.cc: Check the maximum and
+ minimum values of the wchar_t type.
+
+2002-09-25 Mark Mitchell <mark@codesourcery.com>
+
+ * include/std/std_limits.h (numeric_limits<unsigned char>::digits):
+ Fix typo.
+
+2002-09-23 Richard Henderson <rth@redhat.com>
+
+ * include/std/std_limits.h (__glibcpp_plain_char_is_signed,
+ __glibcpp_wchar_t_is_signed, __glibcpp_s8_max, __glibcpp_s8_min,
+ __glibcpp_s8_digits, __glibcpp_s8_digits10, __glibcpp_u8_min,
+ __glibcpp_u8_max, __glibcpp_u8_digits, __glibcpp_u8_digits10,
+ __glibcpp_s16_max, __glibcpp_s16_min, __glibcpp_s16_digits,
+ __glibcpp_s16_digits10, __glibcpp_u16_min, __glibcpp_u16_max,
+ __glibcpp_u16_digits, __glibcpp_u16_digits10, __glibcpp_s32_max,
+ __glibcpp_s32_min, __glibcpp_s32_digits, __glibcpp_s32_digits10,
+ __glibcpp_u32_min, __glibcpp_u32_max, __glibcpp_u32_digits,
+ __glibcpp_u32_digits10, __glibcpp_s64_max, __glibcpp_s64_min,
+ __glibcpp_s64_digits, __glibcpp_s64_digits10, __glibcpp_u64_min,
+ __glibcpp_u64_max, __glibcpp_u64_digits, __glibcpp_u64_digits10,
+ __glibcpp_bool_digits, __glibcpp_signed_char_min,
+ __glibcpp_signed_char_max, __glibcpp_signed_char_digits,
+ __glibcpp_signed_char_digits10, __glibcpp_unsigned_char_min,
+ __glibcpp_unsigned_char_max, __glibcpp_unsigned_char_digits,
+ __glibcpp_unsigned_char_digits10, __glibcpp_char_min,
+ __glibcpp_char_max, __glibcpp_char_digits, __glibcpp_char_digits10,
+ __glibcpp_signed_short_min, __glibcpp_signed_short_max,
+ __glibcpp_signed_short_digits, __glibcpp_signed_short_digits10,
+ __glibcpp_unsigned_short_min, __glibcpp_unsigned_short_max,
+ __glibcpp_unsigned_short_digits, __glibcpp_unsigned_short_digits10,
+ __glibcpp_signed_int_min, __glibcpp_signed_int_max,
+ __glibcpp_signed_int_digits, __glibcpp_signed_int_digits10,
+ __glibcpp_unsigned_int_min, __glibcpp_unsigned_int_max,
+ __glibcpp_unsigned_int_digits, __glibcpp_unsigned_int_digits10,
+ __glibcpp_signed_long_min, __glibcpp_signed_long_max,
+ __glibcpp_unsigned_long_digits, __glibcpp_unsigned_long_digits10,
+ __glibcpp_signed_long_long_min, __glibcpp_signed_long_long_max,
+ __glibcpp_signed_long_long_digits, __glibcpp_signed_long_long_digits10,
+ __glibcpp_wchar_t_min, __glibcpp_wchar_t_max, __glibcpp_wchar_t_digits,
+ __glibcpp_wchar_t_digits10): Remove.
+ (__glibcpp_byte, __glibcpp_word_bits, __glibcpp_word): Remove.
+ (__float_storage, __double_storage, __long_double_storage): Remove.
+ (__glibcpp_signed, __glibcpp_min, __glibcpp_max): New.
+ (__glibcpp_digits, __glibcpp_digits10): New.
+ (numeric_limits<T>::min): Use __glibcpp_min or limits.h builtins.
+ (numeric_limits<T>::max): Use __glibcpp_max or limits.h builtins.
+ (numeric_limits<T>::is_signed, T=char,wchar_t): Use __glibcpp_signed.
+ (numeric_limits<T>::digits): Use __glibcpp_digits.
+ (numeric_limits<T>::digits10): Use __glibcpp_digits10.
+ * testsuite/18_support/numeric_limits.cc (test03): Don't use
+ __glibcpp_s8_digits10 et al; check vs the installed versions
+ of digits10 for particular sizes.
+
+ * include/std/std_limits.h (__glibcpp_float_is_modulo,
+ __glibcpp_double_is_modulo, __glibcpp_long_double_is_modulo): Kill.
+ (numeric_limits<T>::is_modulo, T floating): Use false.
+
+2002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * Makefile.am (all-multi): Fix multilib parallel build.
+
+2002-09-22 Richard Henderson <rth@redhat.com>
+
+ * include/std/std_limits.h (__glibcpp_f32_round_error,
+ __glibcpp_f64_round_error, __glibcpp_f80_round_error,
+ __glibcpp_f96_round_error, __glibcpp_f128_round_error,
+ __glibcpp_float_round_error, __glibcpp_double_round_error,
+ __glibcpp_long_double_round_error, __glibcpp_float_round_style,
+ __glibcpp_double_round_style, __glibcpp_long_double_round_style): Kill.
+ (numeric_limits<char>::epsilon, round_error): Use constant 0.
+ (numeric_limits<float>::round_error): Use constant 0.5.
+ (numeric_limits<float>::round_style): Use round_to_nearest.
+ (numeric_limits<double>, numeric_limits<long double>): Similarly.
+
+ * include/std/std_limits.h (__glibcpp_f32_is_iec559,
+ __glibcpp_f64_is_iec559, __glibcpp_f80_is_iec559,
+ __glibcpp_f96_is_iec559, __glibcpp_f128_is_iec559,
+ __glibcpp_float_is_iec559, __glibcpp_double_is_iec559,
+ __glibcpp_long_double_is_iec559): Remove.
+ (numeric_limits<float>::is_iec559): Use has_infinity & has_quiet_NaN.
+ (numeric_limits<double>, numeric_limits<long double>): Similarly.
+
+ * include/std/std_limits.h (__glibcpp_integral_traps): New.
+ (__glibcpp_char_traps, __glibcpp_short_traps, __glibcpp_int_traps,
+ __glibcpp_long_traps, __glibcpp_wchar_t_traps,
+ __glibcpp_long_long_traps, __glibcpp_plain_char_traps,
+ __glibcpp_signed_char_traps, __glibcpp_unsigned_char_traps,
+ __glibcpp_signed_short_traps, __glibcpp_unsigned_short_traps,
+ __glibcpp_signed_int_traps, __glibcpp_unsigned_int_traps,
+ __glibcpp_signed_long_traps, __glibcpp_unsigned_long_traps,
+ __glibcpp_signed_long_long_traps, __glibcpp_unsigned_long_long_traps,
+ __glibcpp_char_is_modulo, __glibcpp_signed_char_is_modulo,
+ __glibcpp_signed_short_is_modulo, __glibcpp_signed_int_is_modulo,
+ __glibcpp_signed_long_is_modulo, __glibcpp_signed_long_long_is_modulo,
+ __glibcpp_wchar_t_is_modulo, __glibcpp_float_is_bounded,
+ __glibcpp_double_is_bounded, __glibcpp_long_double_is_bounded): Kill.
+ (numeric_limits<T>::traps, T integral): Use __glibcpp_integral_traps.
+ (numeric_limits<T>::is_modulo, T integral): Use true.
+ (numeric_limits<T>::is_bounded, T floating): Use true.
+
+2002-09-18 Loren J. Rittle <ljrittle@acm.org>
+
+ * testsuite/18_support/numeric_limits.cc (test_epsilon): New.
+
+2002-09-18 Richard Henderson <rth@redhat.com>
+
+ * testsuite/18_support/numeric_limits.cc: Add -mieee for alpha.
+
+2002-09-16 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/c_shadow: Remove.
+ * include/bits/generic_shadow.h: Remove.
+ * include/Makefile.am: Remove generic_shadow.h.
+ * acinclude.m4: Remove c_shadow references.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+ * mkcshadow: Remove.
+ * mkinclosure: Remove.
-2002-09-21 Phil Edwards <pme@gcc.gnu.org>
+2002-09-16 Loren J. Rittle <ljrittle@acm.org>
+
+ libstdc++/7922
+ * include/ext/stl_rope.h (rope<>): Qualify dependent names
+ with `typename'.
+
+2002-09-16 Richard Henderson <rth@redhat.com>
+
+ * include/std/std_limits.h (__glibcpp_f32_QNaN_bytes,
+ __glibcpp_f32_has_QNaN, __glibcpp_f32_SNaN_bytes,
+ __glibcpp_f32_has_SNaN, __glibcpp_f64_QNaN_bytes,
+ __glibcpp_f64_has_QNaN, __glibcpp_f64_SNaN_bytes,
+ __glibcpp_f64_has_SNaN, __glibcpp_f80_QNaN_bytes,
+ __glibcpp_f80_has_QNaN, __glibcpp_f80_SNaN_bytes,
+ __glibcpp_f80_has_SNaN, __glibcpp_f96_QNaN_bytes,
+ __glibcpp_f96_has_QNaN, __glibcpp_f96_SNaN_bytes,
+ __glibcpp_f96_has_SNaN, __glibcpp_f128_QNaN_bytes,
+ __glibcpp_f128_has_QNaN, __glibcpp_f128_SNaN_bytes,
+ __glibcpp_f128_has_SNaN, __glibcpp_float_QNaN_bytes,
+ __glibcpp_float_has_QNaN, __glibcpp_float_SNaN_bytes,
+ __glibcpp_float_has_SNaN, __glibcpp_double_QNaN_bytes,
+ __glibcpp_double_has_QNaN, __glibcpp_double_SNaN_bytes,
+ __glibcpp_double_has_SNaN, __glibcpp_long_double_QNaN_bytes,
+ __glibcpp_long_double_has_QNaN, __glibcpp_long_double_SNaN_bytes,
+ __glibcpp_long_double_has_SNaN): Remove.
+ (__glibcpp_f128_is_iec559): True if IEEE.
+ (__glibcpp_float_QNaN, __glibcpp_float_SNaN): Remove.
+ (__glibcpp_double_QNaN, __glibcpp_double_SNaN): Remove.
+ (__glibcpp_long_double_QNaN, __glibcpp_long_double_SNaN): Remove.
+ (std::numeric_limits<float>::has_quiet_NaN): Use __builtin_nanf.
+ (std::numeric_limits<float>::has_signaling_NaN): Mirror has_quiet_NaN.
+ (std::numeric_limits<float>::quiet_NaN): Use __builtin_nanf.
+ (std::numeric_limits<float>::signaling_NaN): Use __builtin_nansf.
+ (std::numeric_limits<double>): Similarly.
+ (std::numeric_limits<long double>): Similarly.
+ * src/limits.cc (__glibcpp_float_QNaN, __glibcpp_float_SNaN): Remove.
+ (__glibcpp_double_QNaN, __glibcpp_double_SNaN): Remove.
+ (__glibcpp_long_double_QNaN, __glibcpp_long_double_SNaN): Remove.
+
+ * testsuite/18_support/numeric_limits.cc (test_infinity): New.
+ (test_denorm_min, test_qnan, test_is_iec559): New.
+
+2002-09-16 Phil Edwards <pme@gcc.gnu.org>
* testsuite/abi_check.cc: Pull shell fragments out into...
* config/abi/extract_symvers: ...here. New file.
@@ -633,17 +2360,34 @@
(new-abi-baseline): New target.
* Makefile.in: Regenerated.
-2002-09-16 Loren J. Rittle <ljrittle@acm.org>
+2002-09-16 Richard Henderson <rth@redhat.com>
- libstdc++/7922
- * include/ext/stl_rope.h (rope<>): Qualify dependent names
- with `typename'.
+ * include/std/std_limits.h (__glibcpp_f32_denorm_min_bytes,
+ __glibcpp_f32_has_denorm, __glibcpp_f64_denorm_min_bytes,
+ __glibcpp_f64_has_denorm, __glibcpp_f80_denorm_min_bytes,
+ __glibcpp_f80_has_denorm, __glibcpp_f96_denorm_min_bytes,
+ __glibcpp_f96_has_denorm, __glibcpp_f128_denorm_min_bytes,
+ __glibcpp_f128_has_denorm, __glibcpp_float_denorm_min_bytes,
+ __glibcpp_float_has_denorm, __glibcpp_double_denorm_min_bytes,
+ __glibcpp_double_has_denorm, __glibcpp_long_double_denorm_min_bytes,
+ __glibcpp_long_double_has_denorm): Remove.
+ (__glibcpp_float_denorm_min, __glibcpp_double_denorm_min,
+ __glibcpp_long_double_denorm_min): Remove.
+ (std::numeric_limits<float>::has_denorm): Use __FLT_DENORM_MIN__.
+ (std::numeric_limits<float>::denorm_min): Likewise.
+ (std::numeric_limits<double>): Similarly.
+ (std::numeric_limits<long double>): Similarly.
+ * src/limits.cc (__glibcpp_float_denorm_min,
+ __glibcpp_double_denorm_min, __glibcpp_long_double_denorm_min): Remove.
-2002-09-16 Benjamin Kosnik <bkoz@redhat.com>
+2002-09-13 Andy Felt <afelt@uwsp.edu>
+
+ * docs/html/17_intro/howto.html: Update link.
+
+2002-09-13 Phil Edwards <pme@gcc.gnu.org>
- * include/bits/codecvt.h: Remove __s.
- * config/locale/gnu/codecvt_members.cc: Remove _M_c_locale_codecvt
- usage, substitute _S_c_locale.
+ * docs/doxygen/run_doxygen: Massage man page for Iterator_types.3.
+ * docs/html/faq/index.html: Whitespace fixes.
2002-09-12 Benjamin Kosnik <bkoz@redhat.com>
@@ -657,39 +2401,67 @@
Inject __uselocale into __gnu_cxx.
* config/locale/generic/c_locale.h: Match.
-2002-09-12 Benjamin Kosnik <bkoz@redhat.com>
+2002-09-11 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/locale_facets.tcc (__convert_from_v): Remove.
* config/locale/gnu/c_locale.h (__convert_from_v): Add.
- * config/locale/generic/c_locale.h (__convert_from_v): Add.
+ * config/locale/generic/c_locale.h (__convert_from_v): Add.
-2002-09-12 Paolo Carlini <pcarlini@unitus.it>
+2002-09-11 Paolo Carlini <pcarlini@unitus.it>
- * include/bits/locale_facets.tcc (__convert_from_v):
- Use __uselocale instead of setlocale for glibc 2.3+.
+ * include/bits/locale_facets.tcc (__convert_from_v):
+ Use __uselocale instead of setlocale for glibc 2.3+.
-2002-09-12 Benjamin Kosnik <bkoz@redhat.com>
+2002-09-10 Benjamin Kosnik <bkoz@redhat.com>
* src/Makefile.am (sources): Edit.
(target_sources): New.
(target_sources_extra): New.
* src/Makefile.in: Regenerate.
- * acinclude.m4: Set CCODECVT_CC.
+ * acinclude.m4: Set CCODECVT_CC.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* src/locale.cc: Move ctype definitions...
- * src/ctype.cc: ...here. New file.
+ * src/ctype.cc: ...here. New file.
* src/locale.cc: Move codecvt definitions...
- * src/codecvt.cc: ...here.
- * config/generic/codecvt_members.cc: ...and here.
- * config/gnu/codecvt_members.cc: ...and here.
+ * src/codecvt.cc: ...here.
+ * config/generic/codecvt_members.cc: ...and here.
+ * config/gnu/codecvt_members.cc: ...and here.
* include/bits/codecvt.h: Tweak.
* include/bits/locale_facets: Tweak.
* src/bitset.cc: Correct license text.
* src/concept-inst.cc: Same.
* src/strstream.cc: Same.
- * src/vterminate.cc: Same.
+ * src/vterminate.cc: Same.
+
+2002-09-10 Gabriel Dos Reis <gdr@soliton.integrable-solutions.net>
+
+ * include/bits/stl_vector.h (vector<>): Don't use a name with
+ different meanings before and after re-evaluation in the completed
+ scope.
+ * include/bits/basic_string.h (basic_string<>): Likewise.
+ * include/bits/stl_bvector.h (vector<bool>): Likewise.
+ * include/bits/stl_deque.h (std): Likewise.
+ * include/bits/stl_list.h (list<>): Likewise.
+ * include/bits/stl_tree.h (_Rb_tree<>): Likewise.
+
+2002-09-10 Paolo Carlini <pcarlini@unitus.it>
+
+ * include/bits/codecvt.h (class __codecvt_abstract_base):
+ Add __c_locale type _M_c_locale_codecvt member.
+ (class codecvt<char, char, mbstate_t>,
+ class codecvt<wchar_t, char, mbstate_t>): Add new
+ codecvt(__c_locale, size_t) constructor.
+ (codecvt_byname::codecvt_byname): Update.
+ * src/codecvt.cc (class codecvt<char, char, mbstate_t>,
+ class codecvt<wchar_t, char, mbstate_t>): Update codecvt(size_t)
+ constructor and ~codecvt() destructor; define
+ codecvt(__c_locale, size_t) constructor.
+ (codecvt::do_out): Switch to _M_c_locale_codecvt around wcsrtombs call.
+ (codecvt::do_in): Ditto for mbsrtowcs call.
+ * src/localename.cc (locale::_Impl::_Impl(const char*, size_t)):
+ Tweak construction of codecvt facets.
2002-09-10 Danny Smith <dannysmith@users.sourceforge.net>
@@ -698,10 +2470,19 @@
2002-09-09 Benjamin Kosnik <bkoz@redhat.com>
- * src/misc-inst.cc: Remove some instantiations.
-
+ * docs/html/configopts.html: Change grouping. Note ABI impacts.
+ Update information for locale model defaults.
+ * docs/html/install.html: Update include directory
+ information.
+ Update testing information.
+ Update linux issues for named locales.
+ * docs/html/abi.txt: Fix typos.
+ Add more info.
+
+ * src/misc-inst.cc: Add missing instantiations.
+
* testsuite/abi_check.cc: Make output results more verbose.
-
+
* config/os/gnu-linux/ctype_base.h: Remove shadow headers injections.
2002-09-07 Jakub Jelinek <jakub@redhat.com>
@@ -710,17 +2491,22 @@
messages<wchar_t>.
* config/locale/ieee_1003.1-20021/messages_members.cc: Likewise.
+2002-09-06 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/bits/localefwd.h: Tweak formatting.
+ * docs/html/abi.txt: Add.
+
2002-09-06 Jakub Jelinek <jakub@redhat.com>
* configure.target: Use cpu_include_dir="config/cpu/sparc" for all
sparc targets.
- * config/cpu/sparc/bits/atomicity.h: New file.
- * config/cpu/sparc/sparc32/bits/atomicity.h: Removed.
- * config/cpu/sparc/sparc64/bits/atomicity.h: Removed.
+ * config/cpu/sparc/atomicity.h: New file.
+ * config/cpu/sparc/sparc32/atomicity.h: Removed.
+ * config/cpu/sparc/sparc64/atomicity.h: Removed.
2002-09-06 Jakub Jelinek <jakub@redhat.com>
- * config/os/gnu-linux/bits/ctype_noninline.h
+ * config/os/gnu-linux/ctype_noninline.h
[_GLIBCPP_USE_SHADOW_HEADERS]: Remove using _C_legacy::__ctype_*.
(ctype<char>::classic_table): If _GLIBCPP_C_LOCALE_GNU, return
_S_c_locale->__ctype_b, otherwise temporarily switch to "C" locale
@@ -733,16 +2519,8 @@
_S_c_locale->__ctype_{b,tolower,toupper}, otherwise temporarily
switch to "C" locale and initialize using __ctype_{b,tolower,toupper}.
-2002-09-05 Loren J. Rittle <ljrittle@acm.org>
-
- Move from mainline.
- * src/Makefile.am (AUTOMAKE_OPTIONS): Use cygnus-style generation.
- * testsuite/Makefile.am (AUTOMAKE_OPTIONS): Likewise.
- * src/Makefile.in: Regenerate (explicitly with --cygnus option).
- * testsuite/Makefile.in: Likewise.
-
2002-09-05 Paolo Carlini <pcarlini@unitus.it>
- Roland McGrath <roland@redhat.com>
+ Roland McGrath <roland@redhat.com>
PR libstdc++/7811
* src/locale.cc (locale::locale(__s)): Use getenv instead
@@ -756,13 +2534,24 @@
* config/abi/alphaev67-unknown-linux-gnu: Add.
* config/abi/alphaev67-unknown-linux-gnu/baseline_symbols.txt: New file.
-2002-09-05 Phil Edwards <pme@gcc.gnu.org>
+2002-09-05 Jonathan Wakely <jw@kayari.org>
- * testsuite/Makefile.am: Use LD_RUN_PATH when linking abi_check.
- Fix spelling in comment.
- * testsuite/Makefile.in: Regenerate.
- * testsuite/abi_check.cc: Use string literals to build 'cmd' rather
- than 'quote' and 'bslash'.
+ * docs/html/Makefile: Use more portable shell wildcard.
+ * docs/html/makedoc.awk: Nest elements correctly for XHTML conversion.
+ * docs/html/configopts.html, docs/html/documentation.html,
+ docs/html/explanations.html, docs/html/install.html,
+ docs/html/17_intro/contribute.html, docs/html/17_intro/howto.html,
+ docs/html/17_intro/license.html, docs/html/18_support/howto.html,
+ docs/html/19_diagnostics/howto.html, docs/html/20_util/howto.html,
+ docs/html/21_strings/howto.html, docs/html/22_locale/codecvt.html,
+ docs/html/22_locale/ctype.html, docs/html/22_locale/howto.html,
+ docs/html/22_locale/locale.html, docs/html/22_locale/messages.html,
+ docs/html/23_containers/howto.html, docs/html/24_iterators/howto.html,
+ docs/html/25_algorithms/howto.html, docs/html/26_numerics/howto.html,
+ docs/html/27_io/howto.html, docs/html/ext/howto.html,
+ docs/html/ext/sgiexts.html, docs/html/faq/index.html: Convert
+ to XHTML.
+ * docs/html/faq/index.txt: Regenerate.
2002-09-05 Jakub Jelinek <jakub@redhat.com>
@@ -811,7 +2600,171 @@
* config/locale/gnu/messages_members.h: Remove generic definition
of do_get.
-2002-08-26 Phil Edwards <pme@gcc.gnu.org>
+2002-09-04 Richard Henderson <rth@redhat.com>
+
+ * include/std/std_limits.h (__glibcpp_f32_infinity_bytes,
+ __glibcpp_f32_has_infinity, __glibcpp_f64_infinity_bytes,
+ __glibcpp_f64_has_infinity, __glibcpp_f80_infinity_bytes,
+ __glibcpp_f80_has_infinity, __glibcpp_f96_infinity_bytes,
+ __glibcpp_f96_has_infinity, __glibcpp_f128_infinity_bytes,
+ __glibcpp_f128_has_infinity, __glibcpp_float_infinity_bytes,
+ __glibcpp_float_has_infinity, __glibcpp_double_infinity_bytes,
+ __glibcpp_double_has_infinity, __glibcpp_long_double_infinity_bytes,
+ __glibcpp_long_double_has_infinity): Remove.
+ (std::numeric_limits<float>, std::numeric_limits<double>,
+ std::numeric_limits<long double>): Use __builtin_huge_val
+ to implement has_infinity and infinity().
+ * src/limits.cc (__glibcpp_float_infinity, __glibcpp_double_infinity,
+ __glibcpp_long_double_infinity): Remove.
+
+2002-09-03 Richard Henderson <rth@redhat.com>
+
+ * include/std/std_limits.h (__glibcpp_f32_min, __glibcpp_f32_max,
+ __glibcpp_f32_digits, __glibcpp_f32_digits10, __glibcpp_f32_radix,
+ __glibcpp_f32_epsilon, __glibcpp_f32_min_exponent,
+ __glibcpp_f32_min_exponent10, __glibcpp_f32_max_exponent,
+ __glibcpp_f32_max_exponent10, __glibcpp_f64_min, __glibcpp_f64_max,
+ __glibcpp_f64_digits, __glibcpp_f64_digits10, __glibcpp_f64_radix,
+ __glibcpp_f64_min_exponent, __glibcpp_f64_min_exponent10,
+ __glibcpp_f64_max_exponent, __glibcpp_f64_max_exponent10,
+ __glibcpp_f80_min, __glibcpp_f80_max, __glibcpp_f80_digits,
+ __glibcpp_f80_digits10, __glibcpp_f80_radix, __glibcpp_f80_epsilon,
+ __glibcpp_f80_min_exponent, __glibcpp_f80_min_exponent10,
+ __glibcpp_f80_max_exponent, __glibcpp_f80_max_exponent10,
+ __glibcpp_f96_min, __glibcpp_f96_max, __glibcpp_f96_digits,
+ __glibcpp_f96_digits10, __glibcpp_f96_radix, __glibcpp_f96_epsilon,
+ __glibcpp_f96_min_exponent, __glibcpp_f96_min_exponent10,
+ __glibcpp_f96_max_exponent, __glibcpp_f96_max_exponent10,
+ __glibcpp_f128_min, __glibcpp_f128_max, __glibcpp_f128_digits,
+ __glibcpp_f128_digits10, __glibcpp_f128_radix, __glibcpp_f128_epsilon,
+ __glibcpp_f128_min_exponent, __glibcpp_f128_min_exponent10,
+ __glibcpp_f128_max_exponent, __glibcpp_f128_max_exponent10,
+ __glibcpp_float_min, __glibcpp_float_max, __glibcpp_float_digits,
+ __glibcpp_float_digits10, __glibcpp_float_radix,
+ __glibcpp_float_epsilon, __glibcpp_float_min_exponent,
+ __glibcpp_float_min_exponent10, __glibcpp_float_max_exponent,
+ __glibcpp_float_max_exponent10, __glibcpp_double_min,
+ __glibcpp_double_max, __glibcpp_double_digits,
+ __glibcpp_double_digits10, __glibcpp_double_radix,
+ __glibcpp_double_epsilon, __glibcpp_double_min_exponent,
+ __glibcpp_double_min_exponent10, __glibcpp_double_max_exponent,
+ __glibcpp_double_max_exponent10, __glibcpp_long_double_min,
+ __glibcpp_long_double_max, __glibcpp_long_double_digits,
+ __glibcpp_long_double_digits10, __glibcpp_long_double_radix,
+ __glibcpp_long_double_epsilon, __glibcpp_long_double_min_exponent,
+ __glibcpp_long_double_min_exponent10,
+ __glibcpp_long_double_max_exponent,
+ __glibcpp_long_double_max_exponent10): Remove macros.
+ (std::numeric_limits<float>, std::numeric_limits<double>,
+ std::numeric_limits<long double>): Use protected float.h macros.
+
+2002-09-01 Phil Edwards <pme@gcc.gnu.org>
+
+ * testsuite/Makefile.am: Use LD_RUN_PATH when linking abi_check.
+ Fix spelling in comment.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/abi_check.cc: Use string literals to build 'cmd' rather
+ than 'quote' and 'bslash'.
+
+2002-08-31 Phil Edwards <pme@gcc.gnu.org>
+
+ * acinclude.m4: Minor comment tweaks.
+
+ * docs/html/makedoc.awk: New file...
+ * docs/html/Makefile: ...called from here...
+ * docs/html/documentation.html: ...to help generate this.
+
+ * docs/html/21_strings/howto.html: Prepare for new entry.
+ * include/bits/basic_string.h: Initial basic_stirng hook for
+ doxygen. Remove trailing whitespace.
+ * include/bits/char_traits.h: Point to onlinedocs for new entry.
+ * include/bits/stringfwd.h: Add doxygen hooks for string and
+ wstring typedefs.
+
+2002-08-29 Richard Earnshaw <rearnshaw@arm.com>
+
+ * config/cpu/arm/cpu_limits.h: New file.
+ * configure.target: Use config/cpu/arm for XScale and StrongARM
+ configurations.
+
+2002-08-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * include/std/std_limits.h (__glibcpp_char_bits,
+ __glibcpp_short_bits, __glibcpp_int_bits, __glibcpp_long_bits,
+ __glibcpp_long_long_bits, __glibcpp_float_bits,
+ __glibcpp_double_bits, __glibcpp_long_double_bits): Remove. Use
+ compiler predifined macros.
+ (__glibcpp_wchar_t_is_signed): Define based on compiler predefined
+ __WCHAR_UNSIGNED__.
+
+2002-08-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * include/std/std_limits.h (__glibcpp_f32_infinity_bytes,
+ __glibcpp_f32_has_infinity, __glibcpp_f32_QNaN_bytes,
+ __glibcpp_f32_has_QNaN, __glibcpp_f32_SNaN_bytes,
+ __glibcpp_f32_has_SNaN, __glibcpp_f32_denorm_min_bytes,
+ __glibcpp_f32_has_denorm, __glibcpp_f32_is_iec559,
+ __glibcpp_f64_infinity_bytes,
+ __glibcpp_f64_has_infinity, __glibcpp_f64_QNaN_bytes,
+ __glibcpp_f64_has_QNaN, __glibcpp_f64_SNaN_bytes,
+ __glibcpp_f64_has_SNaN, __glibcpp_f64_denorm_min_bytes,
+ __glibcpp_f64_has_denorm, __glibcpp_f64_is_iec559,
+ __glibcpp_f80_infinity_bytes,
+ __glibcpp_f80_has_infinity, __glibcpp_f80_QNaN_bytes,
+ __glibcpp_f80_has_QNaN, __glibcpp_f80_SNaN_bytes,
+ __glibcpp_f80_has_SNaN, __glibcpp_f80_denorm_min_bytes,
+ __glibcpp_f80_has_denorm, __glibcpp_f80_is_iec559,
+ __glibcpp_f96_infinity_bytes,
+ __glibcpp_f96_has_infinity, __glibcpp_f96_QNaN_bytes,
+ __glibcpp_f96_has_QNaN, __glibcpp_f96_SNaN_bytes,
+ __glibcpp_f96_has_SNaN, __glibcpp_f96_denorm_min_bytes,
+ __glibcpp_f96_has_denorm, __glibcpp_f96_is_iec559,
+ __glibcpp_f128_infinity_bytes,
+ __glibcpp_f128_has_infinity, __glibcpp_f128_QNaN_bytes,
+ __glibcpp_f128_has_QNaN, __glibcpp_f128_SNaN_bytes,
+ __glibcpp_f128_has_SNaN, __glibcpp_f128_denorm_min_bytes,
+ __glibcpp_f128_has_denorm, __glibcpp_f128_is_iec559,
+ __glibcpp_float_infinity_bytes,
+ __glibcpp_float_has_infinity, __glibcpp_float_QNaN_bytes,
+ __glibcpp_float_has_QNaN, __glibcpp_float_SNaN_bytes,
+ __glibcpp_float_has_SNaN, __glibcpp_float_denorm_min_bytes,
+ __glibcpp_float_has_denorm, __glibcpp_float_is_iec559,
+ __glibcpp_double_infinity_bytes,
+ __glibcpp_double_has_infinity, __glibcpp_double_QNaN_bytes,
+ __glibcpp_double_has_QNaN, __glibcpp_double_SNaN_bytes,
+ __glibcpp_double_has_SNaN, __glibcpp_double_denorm_min_bytes,
+ __glibcpp_double_has_denorm, __glibcpp_double_is_iec559,
+ __glibcpp_long_double_infinity_bytes,
+ __glibcpp_long_double_has_infinity, __glibcpp_long_double_QNaN_bytes,
+ __glibcpp_long_double_has_QNaN, __glibcpp_long_double_SNaN_bytes,
+ __glibcpp_long_double_has_SNaN, __glibcpp_long_double_denorm_min_bytes,
+ __glibcpp_long_double_has_denorm, __glibcpp_long_double_is_iec559:
+ New macros.
+ (__glibcpp_word_bits, __glibcpp_word): Likewise.
+ (__glibcpp_byte): New typedef.
+ (__float_storage, __double_storage, __long_double_storage): New types.
+ (__glibcpp_float_infinity, __glibcpp_float_QNaN,
+ __glibcpp_float_SNaN, __glibcpp_float_denorm_min): Now
+ objects. Declare.
+ (__glibcpp_double_infinity, __glibcpp_double_QNaN,
+ __glibcpp_double_SNaN, __glibcpp_double_denorm_min): Likewise.
+ (__glibcpp_long_double_infinity, __glibcpp_long_double_QNaN,
+ __glibcpp_long_double_SNaN, __glibcpp_long_double_denorm_min):
+ Likewise.
+
+ * src/limits.cc (__glibcpp_float_infinity, __glibcpp_float_QNaN,
+ __glibcpp_float_SNaN, __glibcpp_float_denorm_min): Define.
+ (__glibcpp_double_infinity, __glibcpp_double_QNaN,
+ __glibcpp_double_SNaN, __glibcpp_double_denorm_min): Likewise.
+ (__glibcpp_long_double_infinity, __glibcpp_long_double_QNaN,
+ __glibcpp_long_double_SNaN, __glibcpp_long_double_denorm_min):
+ Likewise.
+
+2002-08-25 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * include/std/std_limits.h: Indent conditional macro definitions.
+
+2002-08-23 Phil Edwards <pme@gcc.gnu.org>
* Makefile.am (check-abi): Specify current directory.
* acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Fix shell syntax, use
@@ -820,7 +2773,18 @@
* configure.target: Add abi_baseline_triplet with default.
* testsuite/abi_check.cc: More error checking.
-2002-08-25 Benjamin Kosnik <bkoz@redhat.com>
+2002-08-23 Phil Edwards <pme@gcc.gnu.org>
+
+ * config/linker-map.gnu: Verbose comments, clean up spacing.
+ * include/bits/stl_alloc.h: Fix indentation of 'if' bodies, return
+ statements.
+ __allocator: Change class declaration to struct.
+ * docs/html/17_intro/C++STYLE: Fix typo.
+ * include/bits/stl_deque.h, include/bits/stl_list.h,
+ include/bits/stl_map.h, include/bits/stl_multimap.h,
+ include/bits/stl_vector.h: Fix fallout from typo.
+
+2002-08-22 Benjamin Kosnik <bkoz@redhat.com>
* acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Set
GLIBCPP_BUILD_ABI_CHECK based on cross compiling, build, host
@@ -830,10 +2794,24 @@
native compiling.
* testsuite/Makefile.in: Regenerate.
+2002-08-22 Loren J. Rittle <ljrittle@acm.org>
+
+ * testsuite/abi_check.cc: Enhance shell portability.
+ Support older binutils/readelf.
+ * config/abi/i386-unknown-freebsd4.6: Add.
+ * config/abi/i386-unknown-freebsd4.6/baseline_symbols.txt: New file.
+
+2002-08-22 Paolo Carlini <pcarlini@unitus.it>
+
+ * docs/html/faq/index.html: Add Loren James Rittle and
+ Paolo Carlini to the list of v3 maintainers.
+ * docs/html/faq/index.txt: Ditto.
+ * docs/html/17_intro/RELEASE-NOTES: Ditto.
+
2002-08-22 Benjamin Kosnik <bkoz@redhat.com>
Phil Edwards <pme@gcc.gnu.org>
Ulrich Drepper <drepper@redhat.com>
-
+
* Makefile.am (check-abi): New rule.
* Makefile.in: Regenerate.
* acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Export baseline_file.
@@ -841,7 +2819,7 @@
* configure: Regenerate.
* testsuite/Makefile.am (noinst_PROGRAMS): Add abi_check.
(abi_check_SOURCES): Add.
- * testsuite/Makefile.in: Regenerate.
+ * testsuite/Makefile.in: Regenerate.
* testsuite/abi_check.cc: New file.
* config/abi: Add.
* config/abi/i686-pc-linux-gnu: Add.
@@ -852,6 +2830,14 @@
* configure.in (libtool_VERSION): Update to 5:1:0.
* configure: Regenerate.
+2002-08-19 Jonathan Wakely <jw@kayari.org>
+
+ * docs/html/configopts.html, docs/html/documentation.html,
+ docs/html/install.html, docs/html/22_locale/codecvt.html,
+ docs/html/22_locale/ctype.html, docs/html/22_locale/howto.html,
+ docs/html/22_locale/locale.html,
+ docs/html/22_locale/messages.html: Conform to HTML 4.01 standard.
+
2002-08-15 Benjamin Kosnik <bkoz@redhat.com>
* include/ext/stdio_filebuf.h (stdio_filebuf): Explicitly set
@@ -861,45 +2847,153 @@
Revert PR libstdc++/7445
* src/locale.cc (locale::classic): Revert.
-
+
* docs/html/17_intro/TODO: Add.
-2002-08-15 Danny Smith <dannysmith@users.sourceforge.net>
- Benjamin Kosnik <bkoz@redhat.com>
-
+2002-08-15 Phil Edwards <pme@gcc.gnu.org>
+
+ * docs/html/documentation.html: Update doxygen links for 3.2.
+
+2002-08-15 Steve Ellcey <sje@cup.hp.com>
+
+ * libsupc++/unwind-cxx.h (__cxa_exception): Change catchTemp
+ type from void* to _Unwind_Ptr.
+ * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION):
+ Do not cast landing_pad or base_of_encoded_value to (void *).
+ * libsupc++/eh_throw.cc (__gxx_exception_cleanup):
+ Accept _URC_NO_REASON as a valid reason code.
+
+2002-08-14 Jonathan Wakely <jw@kayari.org>
+
+ * docs/html/22_locale/messages.html: Use HTML entities for
+ punctuation.
+
+2002-08-13 Jonathan Wakely <jw@kayari.org>
+ Phil Edwards <pme@gcc.gnu.org>
+
+ * docs/html/documentation.html: Use HTML entities for punctuation.
+
+2002-08-09 Phil Edwards <pme@gcc.gnu.org>
+
+ * include/bits/deque.tcc, include/bits/list.tcc,
+ include/bits/stl_deque.h, include/bits/stl_iterator_base_funcs.h,
+ include/bits/stl_list.h, include/bits/stl_map.h,
+ include/bits/stl_multimap.h, include/bits/stl_queue.h,
+ include/bits/stl_stack.h, include/bits/stl_vector.h,
+ include/bits/vector.tcc: Re-indent contents of namespace std,
+ re-wrap comment lines as necessary.
+
+2002-08-08 Danny Smith <dannysmith@users.sourceforge.net>
+ Benjamin Kosnik <bkoz@redhat.com>
+
* include/bits/istream.tcc (basic_istream::ignore): Use sbumpc,
not snextc.
* testsuite/27_io/narrow_stream_objects.cc (test10): Add.
-2002-08-15 Danny Smith <dannysmith@users.sourceforge.net>
+2002-08-07 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * libsupc++/Makefile.am (LTCOMPILE): Add LIBSUPCXX_PICFLAGS.
+ * libsupc++/Makefile.in: Regenerate.
+
+2002-08-05 Gabriel Dos Reis <gdr@nerim.net>
+
+ PR/7491
+ * include/bits/slice_array.h(_DEFINE_VALARRAY_OPERATOR):
+ Instantiate with new function objects.
+ * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR): Likewise.
+ Reformat. Uglify.
+ * include/bits/gslice_array.h: Likewise.
+ * include/bits/indirect_array.h: Likewise.
+
+2002-08-03 Gabriel Dos Reis <gdr@nerim.net>
+
+ * testsuite/26_numerics/valarray_name_lookup.cc: Rename from
+ testsuite/26_numerics/valarray_name_lookup.C
+
+ * include/bits/valarray_array.h (_DEFINE_ARRAY_FUNCTION): Use our
+ object function surrogates.
+ * include/bits/valarray_meta.h (__shift_left): Fix typo.
+ (_BinFunClos<>): Remove.
+ (_BinFunBase<>): Likewise.
+ (_BinFunBase1<>):Likewise.
+ (_BinFunBase2<>): Likewise.
+ (_DEFINE_EXPR_RELATIONAL_OPERATOR): Likewise.
+ (_DEFINE_EXPR_UNARY_OPERATOR): Adjust definition.
+ (_DEFINE_EXPR_BINARY_OPERATOR): Likewise.
+ (_DEFINE_EXPR_BINARY_FUNCTION): Likewise.
+ * include/std/std_valarray.h: Dont #include <functional> anymore.
+ (_Bitwise_or<>, _Bitwise_and<>, _Bitwise_xor<>, _Shift_left<>,
+ _Shift_right<>): Remove.
+ (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT): Adjust instantiation.
+ (_DEFINE_BINARY_OPERATOR): Tweak definition.
+ (_DEFINE_LOGICAL_OPERATOR): Remove.
+ * testsuite/26_numerics/valarray_name_lookup.C (main): Add more tests.
+
+2002-08-02 Gabriel Dos Reis <gdr@nerim.net>
+
+ * include/bits/valarray_meta.h (_UnFunBase<>): Remove.
+ (_UnFunClos<>): Same.
+ (_UnBase<>): Reformat. Make first template-parameter non
+ template.
+ (_UnClos<>): Likewise.
+ (_Expr<>): Reformate. Adjust unary member operator return types.
+ (_DEFINE_EXPR_UNARY_OPERATOR): Adjust definition.
+ (_DEFINE_EXPR_UNARY_FUNCTION): Likewise.
+ * include/std/std_valarray.h (_UnClos<>): Adjust declaration.
+ (valarray<>::_UnaryOp<>): New nested traits. Adjust unary member
+ operator return types. Reformat.
+ (_Bitwise_not): Remove.
+ (_DEFINE_VALARRAY_UNARY_OPERATOR): Adjust definition.
+ * testsuite/26_numerics/valarray_name_lookup.C: New test.
+
+2002-08-02 Danny Smith <dannysmith@users.sourceforge.net>
* config/os/newlib/ctype_inline.h (is): Don't offset _M_table.
(scan_is): Use this->is.
(scan_not): Likewise.
-
-2002-08-15 Rick Danos <rdanos@hotmail.com>
- PR libstdc++/7461
- * config/os/newlib/ctype_noninline.h (classic_table): Add offset.
- * config/os/newlib/ctype_inline.h (is): Use static_cast.
-
-2002-08-14 Release Manager
-
- * GCC 3.2 Released.
-
-2002-08-06 Benjamin Kosnik <bkoz@redhat.com>
+2002-08-02 Benjamin Kosnik <bkoz@redhat.com>
Revert PR libstdc++/6594
* src/strstream.cc (strstreambuf): Revert.
(strstreambuf::overflow): Same.
- (strstreambuf::~strstreambuf): Same.
+ (strstreambuf::~strstreambuf): Same.
* testsuite/backward/strstream_members.cc (test02): Add.
+ * docs/html/abi.txt: Update. Spell check.
+
* testsuite/19_diagnostics/stdexceptions.cc (test04): Add bool test.
+ * testsuite/Makefile.am (INCLUDES): Add LIBSUPCXX_INCLUDES.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/testsuite_hooks.h: Use __throw_exception_again,
+ include functexcept.h so that -fno-exceptions will build.
+
+2002-08-02 Gabriel Dos Reis <gdr@nerim.net>
+
+ * include/bits/valarray_meta.h (__unary_plus, __negate,
+ __bitwise_not, __plus, __minus, __multiplies, __divides,
+ __modulus, __bitwise_xor, __bitwise_or, __bitwise_and,
+ __shift_left, __shift_right, __logical_and, __logical_or,
+ __logical_not, __equal_to, __not_equal_to, __less, __less_equal,
+ __greater_equal, __greater, __atan2, __pow): New function object
+ classes.
+ (__fun<>): New function traits class.
+
+2002-08-01 Rick Danos <rdanos@hotmail.com>
+
+ PR libstdc++/7461
+ * config/os/newlib/ctype_noninline.h (classic_table): Add offset.
+ * config/os/newlib/ctype_inline.h (is): Use static_cast.
+
+2002-08-01 Neil Booth <neil@daikokuya.co.uk>
+
+ * libsupc++/Makefile.am (LT_COMPILE): Remove C++ flags.
+ * libsupc++/Makefile.in: Regenerate.
+
2002-08-01 Benjamin Kosnik <bkoz@redhat.com>
Jakub Jelinek <jakub@redhat.com>
-
+
* config/linker-map.gnu: Change CXXABI_1 to CXXABI_1.2,
GLIBCPP_3.1 to GLIBCPP_3.2.
@@ -914,7 +3008,7 @@
2002-07-31 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/7442
- * libsupc++/cxxabi.h
+ * libsupc++/cxxabi.h
(__base_class_info): Change to __base_class_type_info. 2.9.5p6c
(__base_class_info::__base): Change to __base_type. 2.9.5p6c
(__base_class_info::offset_shift): Change to __offset_shift. 2.9.5p6c
@@ -935,6 +3029,10 @@
* libsupc++/tinfo.cc (__do_dyncast): Same.
* libsupc++/tinfo.cc (__do_upcast): Same.
+2002-07-31 Benjamin Kosnik <bkoz@redhat.com>
+
+ * src/fstream.cc: Add _GLIBCPP_USE_WCHAR_T guards.
+
2002-07-31 Simon Whomsley <whomsley@avacadcam.com>
* docs/html/22_locale/howto.html: Fix.
@@ -945,6 +3043,10 @@
* src/locale.cc (locale::classic): Move locks inside !_S_classic
block.
+2002-07-31 Benjamin Kosnik <bkoz@redhat.com>
+
+ * docs/html/abi.txt: Update.
+
2002-07-30 Benjamin Kosnik <bkoz@redhat.com>
Gabriel Dos Reis <gdr@nerim.net>
@@ -956,15 +3058,15 @@
(istream::sync): Same.
(istream::sentry::sentry): Use eq_int_type.
(istream::get): Same.
- * include/bits/ostream.tcc: Change __pad to
- __pad<_CharT, _Traits>::_S_pad.
+ * include/bits/ostream.tcc: Change __pad to
+ __pad<_CharT, _Traits>::_S_pad.
* include/bits/locale_facets.h: Add __pad_traits generic and
ostreambuf_iterator specialization.
* include/bits/locale_facets.tcc: Change __pad into struct __pad
with a _CharT and _Traits template parameter and _S_pad static
member function.
* src/locale-inst.cc: Update __pad instantiations.
-
+
* include/std/std_fstream.h: Declare _M_underflow_common
specializations.
* src/fstream.cc: New. Add _M_underflow_common specializations.
@@ -986,15 +3088,23 @@
* testsuite/27_io/streambuf.cc: Add instantiation test,
testsuite_hooks include.
* testsuite/27_io/istream.cc: Same.
- * testsuite/27_io/ostream.cc: Same.
+ * testsuite/27_io/ostream.cc: Same.
* testsuite/27_io/fstream.cc: Same.
* testsuite/27_io/stringstream.cc: Same.
* testsuite/27_io/filebuf.cc: Same.
* testsuite/27_io/stringbuf.cc: Same.
+2002-07-29 Alan Modra <amodra@bigpond.net.au>
+
+ * config/cpu/powerpc/cpu_limits.h (__glibcpp_long_bits): Define.
+ * configure.target (cpu_include_dir): Use cpu/powerpc for powerpc64.
+ * config/cpu/powerpc/atomicity.h (__always_swap): Remove.
+ (__test_and_set): Remove.
+ (_STWCX): Define and use.
+
2002-07-26 Phil Edwards <pme@gcc.gnu.org>
- * libsupc++/new (placement delete): Remove unused paramater names.
+ * libsupc++/new (placement delete): Remove unused parameter names.
2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
@@ -1006,18 +3116,18 @@
* testsuite/27_io/ostream.cc: Same.
* testsuite/27_io/filebuf.cc: Same.
* testsuite/27_io/stringbuf.cc: Replace content, move to...
- * testsuite/27_io/stringbuf_members.cc: ...here.
+ * testsuite/27_io/stringbuf_members.cc: ...here.
* testsuite/27_io/streambuf.cc: Replace content, move to...
- * testsuite/27_io/streambuf_members.cc: ...here.
+ * testsuite/27_io/streambuf_members.cc: ...here.
* testsuite/27_io/stringstream.cc: Replace content, move to...
* testsuite/27_io/stringstream_members.cc: ...here.
* testsuite/27_io/ios.cc: New file.
* testsuite/27_io/fstream.cc: New file.
- * testsuite/27_io/ifstream.cc: New file.
- * testsuite/27_io/ofstream.cc: New file.
- * testsuite/27_io/istringstream.cc: New file.
- * testsuite/27_io/ostringstream.cc: New file.
-
+ * testsuite/27_io/ifstream.cc: New file.
+ * testsuite/27_io/ofstream.cc: New file.
+ * testsuite/27_io/istringstream.cc: New file.
+ * testsuite/27_io/ostringstream.cc: New file.
+
2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/7220
@@ -1025,18 +3135,153 @@
zero.
* testsuite/27_io/istream_unformatted.cc (test10): Add.
+2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/27_io/ios_base_type.cc: Move to...
+ * testsuite/27_io/ios_base_types.cc: ...here.
+
2002-07-24 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/7222
* src/locale.cc (locale::locale(const char*)): Use setlocale NULL.
* testsuite/22_locale/ctor_copy_dtor.cc (test02): New.
-
+
+2002-07-24 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/7230
+ * config/linker-map.gnu: Revert strstream patch from 2002-07-01.
+ * include/Makefile.am (backward_headers): Use strstream, not
+ strstream.h.
+ * include/Makefile.in: Regenerate.
+ * include/backward/strstream: Revert.
+ * include/backward/strstream.h: Remove.
+ * src/strstream.cc: Revert.
+ * testsuite/backward/strstream_members.cc: Change include.
+
+2002-07-24 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/7219
+ * include/bits/ios_base.h (ios_base::streampos): Add.
+ (ios_base::streamoff): Add.
+ * testsuite/27_io/ios_base_type.cc: New.
+
2002-07-24 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/7286
* libsupc++/new: Add placement delete.
* testsuite/18_support/new_delete_placement.cc: New.
-
+
+ * docs/html/abi.txt: Fix typos.
+
+2002-07-23 Benjamin Kosnik <bkoz@redhat.com>
+
+ * docs/html/documentation.html: Remove libstdc++-v3.0.86 links,
+ confusing usage of "latest."
+ De-tangle contributor information from introductory notes.
+ Move abi.txt link placement, activate.
+ Re-organize.
+ Move chapter info into old FAQ format.
+ * docs/html/organization.html: Removed, obsoleted by doxygen work.
+ * docs/html/abi.txt: Add notes on testing ABI changes.
+
+2002-07-20 Phil Edwards <pme@gcc.gnu.org>
+
+ * docs/html/abi.txt: New file.
+ * docs/html/23_containers/howto.html: Tweak vector-overhead text.
+ * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
+ Import from upstream, R22.
+
+ * include/bits/char_traits.h, include/bits/stl_iterator.h,
+ include/bits/stl_iterator_base_types.h, libsupc++/exception,
+ libsupc++/new, libsupc++/typeinfo: Use @brief markup.
+
+ * include/bits/deque.tcc, include/bits/stl_alloc.h,
+ include/bits/stl_deque.h, include/bits/stl_list.h: Postpone removal
+ of deprecated functions until 3.4. (Same timeframe, different text.)
+ * include/bits/stl_vector.h: Ditto. Also do the same cleanups that
+ the other sequence classes received.
+
+2002-07-18 Brendan Kehoe <brendan@zen.org>
+
+ * bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR): Fix typo of
+ _Nname to _Name.
+
+2002-07-19 Gabriel Dos Reis <gdr@nerim.net>
+
+ DR/123
+ * include/bits/slice_array.h
+ (slice_array<T>::operator=(const T&)): Constify.
+ * include/bits/gslice_array.h
+ (gslice_array<T>::operator=(const T&)): Likewise.
+ * include/bits/mask_array.h
+ (mask_array<T>::operator=(const T&)): Likewise.
+ * include/bits/indirect_array.h
+ (indirect_array<T>::operator=(const T&): Likewise.
+
+2002-07-17 Phil Edwards <pme@gcc.gnu.org>
+
+ * docs/doxygen/run_doxygen: Remove template parameter names from
+ "Compound List" summary page. Reformat.
+ * docs/html/documentation.html: XHTML fixes.
+
+2002-07-16 Andreas Schwab <schwab@suse.de>
+
+ * libsupc++/new (set_new_handler): Declare to not throw any
+ exceptions.
+ * libsupc++/new_handler.cc (set_new_handler): Likewise.
+
+2002-07-16 Gabriel Dos Reis <gdr@nerim.net>
+
+ * include/Makefile.am (bits_headers): Remove slice.h
+ * include/Makefile.in: Regenerate.
+ * include/bits/slice.h (slice): move to include/bits/slice_array.h
+ * include/bits/slice.h Remove.
+ * include/std/std_valarray.h: Don't #include bits/slice.h anymore.
+ * include/bits/slice_array.h: Comply to official coding styles.
+ * testsuite/26_numerics/slice.cc: New test.
+
+2002-07-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * config/os/solaris/solaris2.5/ctype_base.h (ctype_base): Fix
+ print to match vendor <ctype.h>.
+
+2002-07-15 Phil Edwards <pme@gcc.gnu.org>
+
+ * docs/html/faq/index.html: Fix download links.
+ * docs/html/faq/index.txt: Regenerate.
+ * docs/html/17_intro/porting.html: Regenerate from earlier changes.
+
+2002-07-11 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * configure.target (target_os switch): Allow for irix6*o32
+ configurations.
+
+2002-07-10 Gabriel Dos Reis <gdr@nerim.net>
+
+ * include/bits/valarray_meta.h (_UnFunBase): Take a second
+ template parameter. Remove _M_func data member.
+ (_UnFunClos): Take a third template parameter.
+ (__abs, __cos, __acos, __cosh, __sin, __asin, __sinh, __tan,
+ __atan, __tanh, __exp, __log, __log10, __sqrt): New classes.
+ (_DEFINE_EXPR_UNARY_OPERATOR): Adjust definition.
+
+2002-07-08 Eric Christopher <echristo@redhat.com>
+
+ * configure.target: Fix comment for mips atomicity. Add
+ mips*-*-linux* target, enable atomic operations there.
+ * config/cpu/mips/atomicity.h: Fix comments, remove
+ #ifndef/#endif. Add push/pop mips2.
+
+2002-07-08 Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de>
+
+ * include/bits/stl_deque.h (_Deque_alloc_base): Change order of
+ member declarations to avoid compiler warnings and restore 3.1 ABI.
+
+2002-07-08 Phil Edwards <pme@gcc.gnu.org>
+
+ * docs/html/23_containers/howto.html: Link to dk_std::vector paper
+ and homepage.
+
2002-07-07 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/7186
@@ -1050,8 +3295,8 @@
* include/std/std_streambuf.h (basic_streambuf::_M_buf): Change to
size_t, from int_type.
- (basic_streambuf::_M_buf_size_opt): Same.
- (basic_streambuf::_S_pback_sizex): Same.
+ (basic_streambuf::_M_buf_size_opt): Same.
+ (basic_streambuf::_S_pback_sizex): Same.
* include/bits/streambuf.tcc: Same.
* include/std/std_streambuf.h (basic_streambuf::snextc): Use
eq_int_type.
@@ -1064,14 +3309,37 @@
(basic_streambuf::xsputn): Same.
(__copy_streambufs): Same.
-2002-07-02 Paolo Carlini <pcarlini@unitus.it>
+2002-07-03 Benjamin Kosnik <bkoz@redhat.com>
- PR libstdc++/6642
- * include/bits/stl_iterator.h
- (__normal_iterator::operator-(const __normal_iterator&)):
- Make non-member, as already happens for the comparison
- operators in accord with DR179 (Ready).
- * testsuite/24_iterators/iterator.cc: Add test from the PR.
+ * include/std/std_memory.h: Fix formatting.
+ * testsuite/20_util/auto_ptr_neg.cc: New.
+ * testsuite/20_util/auto_ptr.cc: Tweaks.
+ * testsuite/23_containers/map_operators.cc (test01): Split into..
+ * testsuite/23_containers/map_operators_neg.cc (test01): ...this. New.
+ * testsuite/23_containers/set_operators.cc: Move to...
+ * testsuite/23_containers/set_operators_neg.cc: ...here.
+ * testsuite/README: Add some more naming rules.
+
+2002-07-03 Steev Wilcox <steev@paradigmds.com>
+
+ PR libstdc++/7057
+ * include/ext/stl_hashtable.h: Fix.
+ * testsuite/ext/hash_map.cc: New.
+
+2002-07-03 Jack Reeves <jackw_reeves@hotmail.com>
+ Kenny Simpson <theonetruekenny@yahoo.com>
+ Phil Edwards <pme@gcc.gnu.org>
+
+ PR libstdc++/3946
+ * testsuite/20_util/auto_ptr.cc (test08): New test.
+ * include/std/std_memory.h (auto_ref_ptr): Make constructor explicit.
+ (auto_ptr::operator auto_ptr_ref): Fix typo.
+ General reformatting and doxygenating of the whole file.
+
+2002-07-03 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/7097
+ * include/c/std_cwchar.h: Fix.
2002-07-02 Benjamin Kosnik <bkoz@redhat.com>
@@ -1082,89 +3350,116 @@
* config/locale/generic/monetary_members.cc: Same.
* src/localename.cc (_Impl::_Impl(const char*, size_t)): Use it.
+ * include/backward/strstream.h: Update date.
+
+2002-07-02 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/6642
+ * include/bits/stl_iterator.h
+ (__normal_iterator::operator-(const __normal_iterator&)):
+ Make non-member, as already happens for the comparison
+ operators in accord with DR179 (Ready).
+ * testsuite/24_iterators/iterator.cc: Add test from the PR.
+
+2002-07-02 Phil Edwards <pme@gcc.gnu.org>
+
+ PR libstdc++/7173
+ * acinclude.m4: Simplify determination of gcc_version, and move
+ up to GLIBCPP_CONFIGURE.
+ * configure.in (release_VERSION): Really remove.
+ (AM_INIT_AUTOMAKE, AM_CONFIG_HEADER): Move after GLIBCPP_CONFIGURE.
+ * aclocal.m4, configure: Regenerate.
+
+2002-07-02 Phil Edwards <pme@gcc.gnu.org>
+
+ * docs/html/configopts.html, docs/html/install.html: Tweaks.
+ * include/ext/algorithm, include/ext/hash_map, include/ext/hash_set,
+ include/ext/iterator, include/ext/numeric, include/ext/rb_tree,
+ include/ext/slist, include/ext/stl_rope.h: Add doxygen hooks.
+
2002-07-01 Benjamin Kosnik <bkoz@redhat.com>
- * configure.in (libtool_VERSION): Bump to 5:0:0.
- * configure: Regenerate.
+ * include/backward/strstream: Remove namespace std. Transfer to...
+ * include/backward/strstream.h: ...here. Qualify std names.
+ * src/strstream.cc: Remove namespace std.
+ * include/Makefile.am (backward_headers): Remove strstream.h.
+ * include/Makefile.in: Regenerate.
+ * config/linker-map.gnu: Export strstream bits.
-2002-05-19 Paolo Carlini <pcarlini@unitus.it>
+ * src/fstream-inst.cc: Tweak.
+ * src/io-inst.cc: Same.
+ * src/istream-inst.cc: Same.
+ * src/misc-inst.cc: Same.
+ * src/ostream-inst.cc: Same.
+ * src/sstream-inst.cc: Same.
+ * src/valarray-inst.cc: Same.
+ * src/misc-inst.cc: Remove unused instantiations.
- * testsuite/23_containers/deque_operators.cc (test01):
- Fix minor typo in last commit.
+2002-07-01 Benjamin Kosnik <bkoz@redhat.com>
-2002-05-18 Paolo Carlini <pcarlini@unitus.it>
+ * configure.in (libtool_VERSION): Bump to 5:0:0.
+ * configure: Regenerate.
- PR libstdc++/6503
- * include/bits/stl_deque.h (_Deque_iterator::operator==,
- operator!=, operator<, operator>, operator>=, operator<=):
- Make non-member functions, to allow comparing const and
- non-const iterators in any order.
- * testsuite/23_containers/deque_operators.cc: New testfile.
+2002-06-28 Phil Edwards <pme@gcc.gnu.org>
-2002-07-25 Release Manager
+ PR libstdc++/7157, PR libstdc++/7158, PR libstdc++/7161
+ * include/std/std_queue.h: Include deque.tcc, vector.tcc.
+ * include/std/std_stack.h: Include deque.tcc.
+ * testsuite/23_containers/adaptors.cc: New file.
- * GCC 3.1.1 Released.
+2002-06-27 Phil Edwards <pme@gcc.gnu.org>
-2002-07-20 Phil Edwards <pme@gcc.gnu.org>
+ * include/bits/stl_alloc.h: Deprecate all 'reallocate' memfns.
+ * docs/html/ext/howto.html: Update allocator notes.
- Bulk documentation merge (copy) from trunk.
- * docs/doxygen/TODO, docs/doxygen/run_doxygen, docs/doxygen/tables.html,
- docs/doxygen/user.cfg.in, docs/html/Makefile,
- docs/html/documentation.html, docs/html/17_intro/porting.html,
- docs/html/17_intro/porting.texi, docs/html/23_containers/howto.html,
- docs/html/ext/howto.html, docs/html/ext/lwg-active.html,
- docs/html/ext/lwg-defects.html, docs/html/faq/index.html,
- docs/html/faq/index.txt: Merge from trunk.
+2002-06-26 Benjamin Kosnik <bkoz@redhat.com>
-2002-07-16 Andreas Schwab <schwab@suse.de>
+ * configure.in (INTERFACE): Remove.
+ (release_VERSION): Remove.
+ * acinclude.m4 (GLIBCPP_EXPORT_INSTALL_INFO): Change include placement.
+ (libstdcxx_interface): Change. Use gcc methods to determine version.
+ * configure: Regenerate.
+ * aclocal.m4: Regenerate.
- * libsupc++/new (set_new_handler): Declare to not throw any
- exceptions.
- * libsupc++/new_handler.cc (set_new_handler): Likewise.
+2002-06-25 DJ Delorie <dj@redhat.com>
-2002-07-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+ * acinclude.m4 (GLIBCPP_CONFIGURE): Split out
+ GLIBCPP_TOPREL_CONFIGURE.
+ * aclocal.m4: Likewise.
+ * configure.in: Call it before AC_CANONICAL_SYSTEM.
+ * configure: Regenerate.
- * config/os/solaris/solaris2.5/bits/ctype_base.h (ctype_base): Fix
- print to match vendor <ctype.h>.
+2002-06-25 Jessica Han <jessica@cup.hp.com>
-2002-07-03 Steev Wilcox <steev@paradigmds.com>
-
- PR libstdc++/7057
- * include/ext/stl_hashtable.h: Fix.
- * testsuite/ext/hash_map.cc: New.
+ * config/os/hpux/os_defines.h Define _GLIBCPP_VTABLE_PADDING
+ * libsupc++/tinfo.cc Handle the 8 byte aligned vtable entries when
+ _GLIBCPP_VTABLE_PADDING is defined.
-2002-07-03 Benjamin Kosnik <bkoz@redhat.com>
+2002-06-25 Benjamin Kosnik <bkoz@redhat.com>
- PR libstdc++/7097
- * include/c/std_cwchar.h: Fix.
+ * include/bits/stl_alloc.h: Additional formatting.
-2002-07-03 Jack Reeves <jackw_reeves@hotmail.com>
- Kenny Simpson <theonetruekenny@yahoo.com>
- Phil Edwards <pme@gcc.gnu.org>
+2002-06-24 Phil Edwards <pme@gcc.gnu.org>
- PR libstdc++/3946
- * testsuite/20_util/auto_ptr.cc (test08): New test.
- * include/std/std_memory.h (auto_ref_ptr): Make constructor explicit.
- (auto_ptr::operator auto_ptr_ref): Fix typo.
- General reformatting and doxygenating of the whole file.
+ * include/bits/stl_alloc.h: Reformat as per C++STYLE.
-2002-07-03 Phil Edwards <pme@gcc.gnu.org>
+2002-06-24 Phil Edwards <pme@gcc.gnu.org>
- PR libstdc++/7173
- * acinclude.m4: Simplify determination of gcc_version, and move
- up to GLIBCPP_CONFIGURE.
- * configure.in (release_VERSION): Really remove.
- (AM_INIT_AUTOMAKE, AM_CONFIG_HEADER): Move after GLIBCPP_CONFIGURE.
- * aclocal.m4, configure: Regenerate.
+ * config/cpu/*/bits/*: Move header files up a level. Remove bits.
+ * config/os/*/bits/*: Likewise.
+ * configure.in: Update.
+ * configure: Regenerate.
+ * configure.target: Update.
+ * docs/html/17_intro/porting.texi: Update.
-2002-07-02 Phil Edwards <pme@gcc.gnu.org>
+2002-06-21 Phil Edwards <pme@gcc.gnu.org>
- * docs/html/configopts.html, docs/html/install.html: Tweaks.
- * include/ext/algorithm, include/ext/hash_map, include/ext/hash_set,
- include/ext/iterator, include/ext/numeric, include/ext/rb_tree,
- include/ext/slist, include/ext/stl_rope.h: Add doxygen hooks.
+ * include/bits/stl_map.h, include/bits/stl_multimap.h,
+ include/bits/stl_queue.h, include/bits/stl_stack.h: Reformat and
+ complete doxygenation.
+ * include/bits/boost_concept_check.h: Minor comment.
-2002-06-28 Benjamin Kosnik <bkoz@redhat.com>
+2002-06-21 Benjamin Kosnik <bkoz@redhat.com>
* include/c_compatibility: New.
* include/c_compatibility/assert.h: New.
@@ -1193,8 +3488,8 @@
* include/c/std_cwchar.h: Include cstddef for size_t.
* include/c_std/std_cmath.h: Remove extra function.
-
- Pendantic std usage in testsuites.
+
+ Pendantic std usage in testsuites.
* testsuite/17_intro/header_cstdlib.cc (test01): Qualify ldiv_t
with std.
* testsuite/17_intro/header_cwchar.cc: Tweak.
@@ -1228,23 +3523,23 @@
* testsuite/27_io/istream_seeks.cc (test02): Qualify abort.
* testsuite/27_io/istream_extractor_arith.cc (test11): Qualify strtol.
-2002-06-28 Benjamin Kosnik <bkoz@redhat.com>
+2002-06-20 Benjamin Kosnik <bkoz@redhat.com>
* libsupc++/Makefile.am (libsupc__convenience_la_SOURCES): Add
c_sources.
-2002-06-28 Benjamin Kosnik <bkoz@redhat.com>
+2002-06-20 Benjamin Kosnik <bkoz@redhat.com>
* src/ext-inst.cc (__gnu_cxx): Use instead of std:: for extensions.
Use size_type instead of unsigned long.
-2002-06-28 Steve Ellcey <sje@cup.hp.com>
+2002-06-20 Steve Ellcey <sje@cup.hp.com>
* src/ext-inst.cc (_S_fetch): Add explicit templates for char and
wchar types.
(_S_min_len): Ditto.
-2002-06-28 Benjamin Kosnik <bkoz@redhat.com>
+2002-06-20 Benjamin Kosnik <bkoz@redhat.com>
* include/Makefile.am: Add rules.
* include/Makefile.in: Regenerate.
@@ -1253,20 +3548,28 @@
* aclocal.m4: Regenerate.
* configure: Regenerate.
* configure.target (c_model, c_compatibility): Add.
-
+
* libsupc++/Makefile.am (c_sources): New.
(libsupc___la_SOURCES): Add c_sources.
(LTCOMPILE): Remove INCLUDES.
(GCC_INCLUDES): New.
(C_COMPILE): New, like COMPILE but without INCLUDES.
(cxa_demangle.o): Use C_COMPILE.
- (dyn-string.o): Use C_COMPILE.
-
- * include/c/std_cstdarg.h: Define __need___va_list.
+ (dyn-string.o): Use C_COMPILE.
+
+ * include/c/std_cstdarg.h: Define __need___va_list.
* include/c/std_cstddef.h: Define need_size_t, need_ptrdiff_t,
need_NULL, need_offsetof.
-2002-06-28 Benjamin Kosnik <bkoz@redhat.com>
+2002-06-19 Steve Ellcey <sje@cup.hp.com>
+
+ * configure.in (HAVE_FINITE*, HAVE_ISINF*, HAVE_ISNAN*): Remove
+ definitions in hpux11 cross-build because these functions do
+ not exist on hpux11 (but some exist on hpux10); move defaults out
+ into existing sections.
+ * configure: Regenerate.
+
+2002-06-18 Benjamin Kosnik <bkoz@redhat.com>
* include/c/std_cwchar.h: Guard. Add mbstate_t bits.
* include/c/std_cwctype.h: Guard.
@@ -1280,32 +3583,36 @@
* src/Makefile.in: Regenerate.
* src/cmath.cc: Remove.
-2002-06-27 Benjamin Kosnik <bkoz@redhat.com>
+2002-06-18 Phil Edwards <pme@gcc.gnu.org>
- * configure.in (INTERFACE): Remove.
- (release_VERSION): Remove.
- * acinclude.m4 (GLIBCPP_EXPORT_INSTALL_INFO): Change include placement.
- (libstdcxx_interface): Change. Use gcc methods to determine version.
- * configure: Regenerate.
- * aclocal.m4: Regenerate.
+ * configure.target: Force mips to use the generic cpu routines.
-2002-06-27 Benjamin Kosnik <bkoz@redhat.com>
+2002-06-18 Phil Edwards <pme@gcc.gnu.org>
- * acinclude.m4: Fix last checkin.
- * aclocal.m4: Regenerate.
- * configure: Regenerate.
+ * configure.host: Delete file.
+ * configure.target: More documentation. Factor out common parts of
+ script into "intelligent" settings about defaults. Remove redundancy.
-2002-06-25 DJ Delorie <dj@redhat.com>
+ * acinclude.m4: Update comments. Do not call configure.host.
+ (GLIBCPP_ENABLE_SYMVERS): If disabled, do not bother checking for
+ libgcc_s.
+ * configure.in: Slight reformatting, more comments. Factor out
+ "config/" from all the directories.
+ * docs/html/17_intro/porting.texi: Update and expand.
+ * testsuite/Makefile.am (AM_RUNTESTFLAGS): Move empty setting
+ from configure.host.
- * acinclude.m4 (GLIBCPP_CONFIGURE): Split out
- GLIBCPP_TOPREL_CONFIGURE.
- * aclocal.m4: Likewise.
- * configure.in: Call it before AC_CANONICAL_SYSTEM.
- * configure: Regenerate.
+ * aclocal.m4, configure, docs/html/17_intro/porting.html,
+ testsuite/Makefile.in: Regenerate.
-2002-06-20 David Edelsohn <edelsohn@gnu.org>
+2002-06-16 Phil Edwards <pme@gcc.gnu.org>
- * configure.target (CPULIMITSH): Use powerpc directory for rs6000.
+ * docs/doxygen/TODO: Update.
+ * docs/doxygen/tables.html: Uncomment magical middle column.
+ * docs/doxygen/user.cfg.in: Kludge to ignore function-like macros.
+ * include/bits/stl_queue.h: Doxygenate and reformat.
+ * include/bits/ios_base.h, include/std/std_streambuf.h: Add comment
+ for deprecated names required by the standard.
2002-06-14 J.T. Conklin <jtc@acorntoolworks.com>
@@ -1313,31 +3620,49 @@
* configure: Regenerate.
* aclocal.m4: Regenerate.
+2002-06-12 Phil Edwards <pme@gcc.gnu.org>
+
+ * include/Makefile.am: Add new files.
+ * include/Makefile.in: Regenerate.
+
+ * include/bits/stl_deque.h, include/bits/stl_list.h,
+ include/bits/stl_vector.h: Clean up, reformat. Move definitions...
+ * include/bits/deque.tcc, include/bits/list.tcc,
+ include/bits/vector.tcc: ...to here. New files.
+
+ * include/ext/stl_hashtable.h: Inclide correct full headers.
+ * include/std/std_deque.h: Include .tcc files for now.
+ * include/std/std_list.h: Likewise.
+ * include/std/std_vector.h: Likewise.
+
+2002-06-12 Daniel Jacobowitz <drow@mvista.com>
+
+ * Makefile.am: Add FLAGS_TO_PASS.
+ * Makefile.in: Regenerated.
+
2002-06-11 J.T. Conklin <jtc@acorntoolworks.com>
- Benjamin Kosnik <bkoz@redhat.com>
-
+ Benjamin Kosnik <bkoz@redhat.com>
+
* configure.target: Set os_include_dir to config/os/qnx/qnx6.1
under *-qnx6.[12]*.
* configure.in: Add support for *-qnx6.[12]*.
* configure: Regenerate.
* config/os/qnx, config/os/qnx/qnx6.1, config/os/qnx/qnx6.1/bits:
- New directories.
+ New directories.
* config/os/qnx/qnx6.1/bits/ctype_base.h, ctype_inline.h,
ctype_noninline.h, os_defines.h: New files.
-2002-06-10 Steve Ellcey <sje@cup.hp.com>
+2002-06-10 Loren J. Rittle <ljrittle@acm.org>
- * src/locale-inst.cc (__codecvt_abstract_base):
- Put inside _GLIBCPP_USE_WCHAR_T ifdef.
- * include/bits/istream.tcc (basic_istream): Ditto.
- (ws) Ditto.
- (operator>>) Ditto.
- * include/bits/ostream.tcc (basic_ostream): Ditto.
- (endl): Ditto.
- (ends): Ditto.
- (flush): Ditto.
- (operator<<): Ditto.
+ * acinclude.m4 (GLIBCPP_CHECK_SETRLIMIT_ancilliary): Reorder and
+ include all required headers for test against older POSIX standard.
+ (GLIBCPP_CHECK_SETRLIMIT): Likewise.
+ (ac_setrlimit): Likewise.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+ * testsuite/testsuite_hooks.cc: Reorder and include all
+ required headers for use against older POSIX standard.
2002-06-08 Paolo Carlini <pcarlini@unitus.it>
@@ -1347,7 +3672,7 @@
* include/backwards/strstream: Format.
* src/strstream.cc: Format.
-
+
2002-06-08 Andreas Schwab <schwab@suse.de>
* src/strstream.cc (strstreambuf::overflow): Set _M_buf,
@@ -1357,12 +3682,53 @@
* config/os/generic/bits/ctype_noninline.h: Tweak format.
+2002-06-07 Steve Ellcey <sje@cup.hp.com>
+
+ * src/locale-inst.cc (__codecvt_abstract_base):
+ Put inside _GLIBCPP_USE_WCHAR_T ifdef.
+ * include/bits/istream.tcc (basic_istream): Ditto.
+ (ws) Ditto.
+ (operator>>) Ditto.
+ * include/bits/ostream.tcc (basic_ostream): Ditto.
+ (endl): Ditto.
+ (ends): Ditto.
+ (flush): Ditto.
+ (operator<<): Ditto.
+
+2002-06-07 Phil Edwards <pme@gcc.gnu.org>
+
+ * mkcheck.in: Link against local testsuite library.
+ * testsuite/testsuite_hooks.h (__set_testsuite_memlimit): Move null
+ implementation out...
+ * testsuite/testsuite_hooks.cc: ...to here.
+
+2002-06-06 Loren J. Rittle <ljrittle@acm.org>
+
+ * src/Makefile.am (AUTOMAKE_OPTIONS): Use cygnus-style generation.
+ * include/Makefile.am (AUTOMAKE_OPTIONS): Likewise.
+ * testsuite/Makefile.am (AUTOMAKE_OPTIONS): Likewise.
+ * src/Makefile.in: Regenerate (explicitly with --cygnus option).
+ * testsuite/Makefile.in: Likewise.
+
2002-06-05 David Edelsohn <edelsohn@gnu.org>
* config/os/aix/bits/ctype_noninline.h (do_toupper,do_tolower):
Call external symbol.
-2002-06-05 Paolo Carlini <pcarlini@unitus.it>
+2002-06-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3_target_compile):
+ Search correct multilib testsuite dir for libv3test.
+
+2002-06-04 Paolo Carlini <pcarlini@unitus.it>
+ Gaby Dos Reis <gdr@codesourcery.com>
+
+ * include/bits/basic_string.tcc
+ (basic_string::_S_construct(forward_iterator_tag):
+ Fix typo in null pointer check.
+ * testsuite/21_strings/ctor_copy_dtor.cc: Add test04.
+
+2002-06-04 Paolo Carlini <pcarlini@unitus.it>
* testsuite/22_locale/money_get_members_char.cc
(test02): Add decimal point to long double constants.
@@ -1381,18 +3747,35 @@
* testsuite/22_locale/num_put_members_wchar_t.cc:
(test02, test01): Likewise.
-2002-06-04 Paolo Carlini <pcarlini@unitus.it>
- Gaby Dos Reis <gdr@codesourcery.com>
+2002-06-03 Marc Espie <espie@openbsd.org>
- * include/bits/basic_string.tcc
- (basic_string::_S_construct(forward_iterator_tag):
- Fix typo in null pointer check.
- * testsuite/21_strings/ctor_copy_dtor.cc: Add test04.
+ * config/cpu/m68k/bits/atomicity.h(__exchange_and_add): Fix inline
+ assembly for old assemblers.
-2002-06-03 Marc Espie <espie@openbsd.org>
+2002-06-03 Phil Edwards <pme@gcc.gnu.org>
+
+ * include/bits/stl_bvector.h (swap(_Bit_reference,_Bit_reference)):
+ Move/rename...
+ (vector<bool>::swap(reference,reference)): ...to this.
+
+2002-06-03 Phil Edwards <pme@gcc.gnu.org>
- * config/cpu/m68k/bits/atomicity.h(__exchange_and_add): Fix inline
- assembly for old assemblers.
+ * docs/doxygen/TODO: Update.
+ * docs/doxygen/user.cfg.in (SORT_MEMBER_DOCS): Set to off, now that
+ some class members are in 14882 order.
+ * docs/html/ext/howto.html: 3.1 is in the past now, not the future.
+
+ * include/std/std_bitset.h: Update comment.
+ * src/bitset.cc: Update comments, clean up spacing.
+
+ * src/Makefile.am (sources): Alphabetize for convenience.
+ * src/Makefile.in: Regenerate.
+
+2002-06-03 Phil Edwards <pme@gcc.gnu.org>
+
+ * include/bits/stl_deque.h, include/bits/stl_list.h,
+ include/bits/stl_vector.h: Reformat to (mostly) match C++STYLE.
+ Reorder to match 14882. Doxygen blocks for all public members.
2002-05-31 Marcus Meissner <meissner@suse.de>
@@ -1400,15 +3783,9 @@
* include/bits/stl_bvector.h: Use UL suffix for unsigned longs.
* testsuite/23_containers/vector_bool.cc (test02): New test.
-2002-05-31 John David Anglin <dave@hiauly1.hia.nrc.ca>
-
- * config/os/gnu-linux/bits/os_defines.h (__glibcpp_long_bits): Define
- to 64 for hppa 64-bit port.
- (__glibcpp_long_double_bits): Define to 64 for all hppa ports.
-
2002-05-30 Marc Espie <espie@openbsd.org>
- * configure.in: Always check for sys/types.h.
+ * configure.in: Always check for sys/types.h
* configure: Regenerate.
2002-05-28 Nick Clifton <nickc@cambridge.redhat.com>
@@ -1416,18 +3793,24 @@
* testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init):
Rebuild the wrapper file every time this proc is called.
-2002-05-28 Loren J. Rittle <ljrittle@acm.org>
+2002-05-28 Phil Edwards <pme@gcc.gnu.org>
- libstdc++/6641
- * include/bits/c++config (__USE_MALLOC): Report case where
- the user improperly defined it on the command line.
+ * testsuite/Makefile.am (noinst_LIBRARIES): New target. Pull in
+ CXX/INCLUDES.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/testsuite_hooks.h (gnu_copy_tracker): Move from
+ list_modifiers.cc and rename from 'T'. Move code bodies...
+ * testsuite/testsuite_hooks.cc: ...to here. New file.
+ * testsuite/23_containers/list_modifiers.cc: Move 'T' class out.
+ * testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3_target_compile):
+ Add libv3test.a to link options.
2002-05-27 Benjamin Kosnik <bkoz@redhat.com>
* src/misc-inst.cc: Define unnecessary algorithm
instantiations. Break apart instantiations into groupings below.
* src/fstream-inst.cc: New.
- * src/io-inst.cc: New.
+ * src/io-inst.cc: New.
* src/istream-inst.cc: New.
* src/ostream-inst.cc: New.
* src/streambuf-inst.cc: New.
@@ -1437,7 +3820,7 @@
* acinclude.m4: Work around automake 1.4-p5 bug, change
AM_GNU_GETTEXT in comments to AM-GNU-GETTEXT.
-
+
2002-05-27 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/6795.
@@ -1454,7 +3837,7 @@
* testsuite/22_locale/ctype_widen_wchar_t.cc: Same.
2002-05-26 Carlo Wood <carlo@alinoe.com>
- Paolo Carlini <pcarlini@unitus.it>
+ Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/6811
* config/locale/ieee_1003.1-2001/codecvt_specializations.h
@@ -1472,7 +3855,7 @@
PR libstdc++/6701
* testsuite/22_locale/ctype_narrow_char.cc: New.
- * testsuite/22_locale/ctype_narrow_wchar_t.cc: New.
+ * testsuite/22_locale/ctype_narrow_wchar_t.cc: New.
* testsuite/22_locale/ctype_widen_char.cc: New.
* testsuite/22_locale/ctype_widen_wchar_t.cc: New.
* testsuite/22_locale/ctype_members_char.cc: Move some bits into...
@@ -1483,13 +3866,13 @@
* testsuite/22_locale/ctype_to_wchar_t.cc: ...and this.
* testsuite/22_locale/ctype_scan_wchar_t.cc: Should pass.
-
+
2002-05-24 Dale Peakall <dale@peakall.net>
PR libstdc++/6701
* config/locale/gnu/ctype_members.cc (ctype<wchar_t>::do_narrow): Fix.
* config/locale/generic/ctype_members.cc: Same.
-
+
2002-05-24 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/6750
@@ -1500,19 +3883,6 @@
(ostream<char>::operator<<(streambuf*)): Same.
* testsuite/27_io/ostream_inserter_char.cc (test08): Add tests.
* testsuite/27_io/ostream_inserter_other.cc (test02): Modify.
-
-2002-05-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
- * configure.in: Update local install.html, configopts.html paths.
- * configure: Regenerate.
-
- * testsuite/testsuite_hooks.h (__set_testsuite_memlimit): Retrieve
- current limits before setting.
-
- * acinclude.m4 (enable_symvers): Quote $LD.
- * aclocal.m4: Regenerate.
- * configure: Likewise.
- Fixes PR target/6755.
2002-05-23 Benjamin Kosnik <bkoz@redhat.com>
@@ -1528,21 +3898,115 @@
* include/ext/stdio_filebuf.h: Add header guards. Doxygenate.
-2002-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+2002-05-21 Phil Edwards <pme@gcc.gnu.org>
+
+ * docs/doxygen/user.cfg.in (EXCLUDE): Add 'CVS'.
- * configure.in (AC_CHECK_HEADERS): Check for string.h & stdlib.h.
- * libsupc++/Makefile.am (LTCOMPILE): Add $(DEFS).
- * Makefile.in, config.h.in, configure: Regenerate.
+2002-05-21 Phil Edwards <pme@gcc.gnu.org>
- * config/os/irix/irix5.2/bits/ctype_noninline.h (classic_table):
- Return __ctype + 1.
- (ctype:_M_table): Initialize to classic_table(), not __ctype.
+ * include/bits/stl_vector.h: Reformat to follow C++STYLE.
+ Doxygenate all public members. Reorder to follow 14882.
+ (vector::push_back(void)): Remove previously-deprecated fn.
+ (vector::insert(iterator), vector::_M_insert_aux(iterator)):
+ Deprecate for removal in 3.3.
- * config/os/irix/irix5.2/bits/os_defines.h
- (__glibcpp_long_double_bits, __glibcpp_long_bits): Define.
+2002-05-20 Phil Edwards <pme@gcc.gnu.org>
+
+ * docs/html/faq/index.html (5.4): Recommend against -I options for
+ finding the ext headers.
+ * docs/html/faq/index.txt: Regenerate.
2002-05-19 Paolo Carlini <pcarlini@unitus.it>
- Jakub Jelinek <jakub@redhat.com>
+
+ * testsuite/23_containers/deque_operators.cc (test01):
+ Fix minor typo in last commit.
+
+2002-05-18 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/6503
+ * include/bits/stl_deque.h (_Deque_iterator::operator==,
+ operator!=, operator<, operator>, operator>=, operator<=):
+ Make non-member functions, to allow comparing const and
+ non-const iterators in any order.
+ * testsuite/23_containers/deque_operators.cc: New testfile.
+
+2002-05-16 Phil Edwards <pme@gcc.gnu.org>
+
+ * docs/html/faq/index.html: Update not-a-bug list with basic_file.h.
+ * docs/html/faq/index.txt: Regenerate.
+
+2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * Makefile.am: Allow for PWDCMD to override hardcoded pwd.
+ * acinclude.m4: Likewise.
+ * docs/html/Makefile: Likewise.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+ * Makefile.in: Regenerate.
+
+2002-05-15 Loren J. Rittle <ljrittle@acm.org>
+
+ libstdc++/6641
+ * include/bits/c++config (__USE_MALLOC): Report case where
+ the user improperly defined it on the command line.
+
+2002-05-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * testsuite/testsuite_hooks.h (__set_testsuite_memlimit):
+ Retrieve current limits before setting.
+
+2002-05-15 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/6518
+ * include/bits/ostream.tcc (ostream::operator<<(const char*)): Fix
+ for null case.
+ (ostream::operator<<(const _CharT*)): Same.
+ (ostream<char>::operator<<(const char*)): Same.
+ * testsuite/27_io/ostream_inserter_char.cc (test07): Add test.
+
+2002-05-15 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/6594
+ * src/strstream.cc (strstreambuf): Fix leak.
+
+2002-05-15 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/6648
+ * include/bits/istream.tcc (istream::getline, ignore):
+ Upon __idelim (__delim) call sbumpc() not snextc().
+ * testsuite/27_io/narrow_stream_objects.cc:
+ Add test08 and test09.
+
+2002-05-13 Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/22_locale/ctype_scan_char.cc: Tweak.
+ * testsuite/22_locale/ctype_scan_wchar_t.cc: New.
+
+ * docs/html/install.html: Fix.
+
+2002-05-13 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/bits/fstream.tcc
+ (basic_filebuf::_M_allocate_internal_buffer): Remove extraneous
+ try/catch blocks.
+ * src/localename.cc (locale::_Impl::_M_install_facet): Same.
+
+ * docs/html/install.html: Tweak, add bits about required locales
+ for the 22_locale tests when using the gnu model.
+
+ * testsuite/27_io/istream_sentry.cc: Tweak.
+
+2002-05-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * config/os/irix/irix5.2/bits/ctype_inline.h (scan_is, scan_not):
+ Fix typo, use this->is() rather than manually (and perhaps
+ incorrectly) inlining it.
+ * config/os/irix/irix6.5/bits/ctype_inline.h (scan_is, scan_not):
+ Likewise.
+ * testsuite/22_locale/ctype_scan_char.cc: New file.
+
+2002-05-13 Paolo Carlini <pcarlini@unitus.it>
+ Jakub Jelinek <jakub@redhat.com>
* testsuite/22_locale/money_get_members_char.cc
(test01, test02, test04): Use the de_DE@euro named locale
@@ -1555,7 +4019,7 @@
* testsuite/22_locale/money_put_members_wchar_t.cc
(test01, test02, test04): Likewise.
-2002-05-19 Paolo Carlini <pcarlini@unitus.it>
+2002-05-13 Paolo Carlini <pcarlini@unitus.it>
* testsuite/22_locale/codecvt_members_char_char.cc
(test03): Robustify wrt localedata.
@@ -1567,22 +4031,61 @@
* testsuite/22_locale/messages_members_char.cc (test03): Likewise.
* testsuite/22_locale/money_get_members_char.cc (test08): Likewise.
* testsuite/22_locale/money_get_members_wchar_t.cc (test08): Likewise.
- * testsuite/22_locale/money_put_members_char.cc (test07): Likewise.
+ * testsuite/22_locale/money_put_members_char.cc (test07): Likewise.
* testsuite/22_locale/money_put_members_wchar_t.cc (test07): Likewise.
* testsuite/22_locale/moneypunct_members_char.cc (test03): Likewise.
* testsuite/22_locale/moneypunct_members_wchar_t.cc (test03): Likewise.
* testsuite/22_locale/num_get_members_char.cc (test06): Likewise.
- * testsuite/22_locale/num_get_members_wchar_t.cc (test06): Likewise.
+ * testsuite/22_locale/num_get_members_wchar_t.cc (test06): Likewise.
* testsuite/22_locale/num_put_members_char.cc (test04): Add comment.
* testsuite/22_locale/num_put_members_wchar_t.cc (test04): Likewise.
* testsuite/22_locale/numpunct_members_char.cc (test03): Likewise.
- * testsuite/22_locale/numpunct_members_wchar_t.cc (test03): Likewise.
+ * testsuite/22_locale/numpunct_members_wchar_t.cc (test03): Likewise.
* testsuite/22_locale/time_get_members_char.cc (test08): Likewise.
- * testsuite/22_locale/time_get_members_wchar_t.cc (test08): Likewise.
+ * testsuite/22_locale/time_get_members_wchar_t.cc (test08): Likewise.
* testsuite/22_locale/time_put_members_char.cc (test04): Likewise.
* testsuite/22_locale/time_put_members_wchar_t.cc (test04): Likewise.
-2002-05-19 Paolo Carlini <pcarlini@unitus.it>
+2002-05-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * config/os/irix/irix5.2/bits/os_defines.h: Revert 2002-05-06
+ change.
+
+2002-05-11 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * config/os/gnu-linux/bits/os_defines.h (__glibcpp_long_bits): Define
+ to 64 for hppa 64-bit port.
+ (__glibcpp_long_double_bits): Define to 64 for all hppa ports.
+
+2002-05-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * acinclude.m4 (enable_symvers): Quote $LD.
+ * aclocal.m4: Regenerate.
+ * configure: Likewise.
+
+2002-05-09 Jakub Jelinek <jakub@redhat.com>
+
+ * testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init): Append all
+ multilib dirs containing libgcc_s*.so.1 below gcc object dir to
+ LD_LIBRARY_PATH.
+
+2002-05-08 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
+ script entry, and set LD to it when configuring multilibs.
+ * configure: Rebuilt.
+
+2002-05-07 Mark Mitchell <mark@codesourcery.com>
+
+ * configure.in: Add support for WindISS.
+ * configure: Regenerated.
+ * configure.target: Add support for WindISS.
+ * config/os/windiss/bits/ctype_base.h: New file.
+ * config/os/windiss/bits/ctype_inline.h: Likewise.
+ * config/os/windiss/bits/ctype_noninline.h: Likewise.
+ * config/os/windiss/bits/os_defines.h: Likewise.
+
+2002-05-06 Paolo Carlini <pcarlini@unitus.it>
Test all the facets for the temporary "C" locale switch issue.
* testsuite/22_locale/codecvt_members_char_char.cc: Add test03.
@@ -1594,31 +4097,40 @@
* testsuite/22_locale/messages_members_char.cc: Add test03.
* testsuite/22_locale/money_get_members_char.cc: Add test08.
* testsuite/22_locale/money_get_members_wchar_t.cc: Likewise.
- * testsuite/22_locale/money_put_members_char.cc: Add test07.
+ * testsuite/22_locale/money_put_members_char.cc: Add test07.
* testsuite/22_locale/money_put_members_wchar_t.cc: Likewise.
* testsuite/22_locale/moneypunct_members_char.cc: Add test03.
* testsuite/22_locale/moneypunct_members_wchar_t.cc: Likewise.
* testsuite/22_locale/num_get_members_char.cc: Add test06.
- * testsuite/22_locale/num_get_members_wchar_t.cc: Likewise.
+ * testsuite/22_locale/num_get_members_wchar_t.cc: Likewise.
* testsuite/22_locale/numpunct_members_char.cc: Add test03.
- * testsuite/22_locale/numpunct_members_wchar_t.cc: Likewise.
+ * testsuite/22_locale/numpunct_members_wchar_t.cc: Likewise.
* testsuite/22_locale/time_get_members_char.cc: Add test08.
- * testsuite/22_locale/time_get_members_wchar_t.cc: Likewise.
+ * testsuite/22_locale/time_get_members_wchar_t.cc: Likewise.
* testsuite/22_locale/time_put_members_char.cc: Add test04.
* testsuite/22_locale/time_put_members_wchar_t.cc: Likewise.
* testsuite/22_locale/num_put_members_char.cc (test04): Add comment.
* testsuite/22_locale/num_put_members_wchar_t.cc (test04): Likewise.
-2002-05-19 Benjamin Kosnik <bkoz@redhat.com>
+2002-05-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * config/os/irix/irix5.2/bits/os_defines.h (_SGI_SOURCE,
+ __EXTENSIONS__): Ensure they are always defined.
+
+2002-05-06 Phil Edwards <pme@gcc.gnu.org>
+
+ * docs/html/documentation.html: Fix broken link.
+
+2002-05-04 Benjamin Kosnik <bkoz@redhat.com>
Paolo Carlini <pcarlini@unitus.it>
* testsuite/22_locale/num_put_members_char.cc: Add test04(),
testing for the locale_facets.tcc entry of the previous commit.
* testsuite/22_locale/num_put_members_wchar_t.cc: Likewise.
-2002-05-18 Takeshi Kobayakawa <tskoba@mte.biglobe.ne.jp>
-
+2002-05-04 Takeshi Kobayakawa <tskoba@mte.biglobe.ne.jp>
+
* config/locale/generic/c_locale.cc
(__convert_to_v(float, double, long double)):
Fix the temporary switch to the "C" locale, saving and
@@ -1633,121 +4145,47 @@
(__timepunct<char, wchar_t>::_M_put): Likewise.
* include/bits/locale_facets.tcc (__convert_from_v): Likewise.
-2002-05-18 Paolo Carlini <pcarlini@unitus.it>
- Nathan Myers <ncm@cantrip.org>
- Philip Martin <philip@codematters.co.uk>
-
- * include/bits/basic_string.h
- (replace(i1, i2, _CharT* k1, _CharT* k2),
- replace(i2, i2, const _CharT* k1, const _CharT* k2),
- replace(i1, i2, iterator k1, iterator k2,
- replace(i1, i2, const_iterator k1, const_iterator k2):
- New specializations to optimize for the common cases of
- pointers and iterators.
- (replace(pos, n1, s, n2)): Tweak.
- * include/bits/basic_string.tcc: Tweak comments.
- * testsuite/21_strings/replace.cc (test05): New tests.
-
-2002-05-18 Benjamin Kosnik <bkoz@redhat.com>
+2002-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
- * config/os/solaris/solaris2.5/bits/os_defines.h: Remove
- _G_USING_THUNKS.
- * config/os/solaris/solaris2.6/bits/os_defines.h: Same.
- * config/os/solaris/solaris2.7/bits/os_defines.h: Same.
-
-2002-05-18 Benjamin Kosnik <bkoz@redhat.com>
+ * configure.in (AC_CHECK_HEADERS): Check for string.h & stdlib.h.
+ * libsupc++/Makefile.am (LTCOMPILE): Add $(DEFS).
- * docs/html/17_intro/RELEASE-NOTES (New): Update.
+ * Makefile.in, config.h.in, configure: Regenerate.
-2002-05-18 Benjamin Kosnik <bkoz@redhat.com>
+2002-05-03 Benjamin Kosnik <bkoz@redhat.com>
- PR libstdc++/6518
- * include/bits/ostream.tcc (ostream::operator<<(const char*)): Fix
- for null case.
- (ostream::operator<<(const _CharT*)): Same.
- (ostream<char>::operator<<(const char*)): Same.
- * testsuite/27_io/ostream_inserter_char.cc (test07): Add test.
+ PR libstdc++/6549.
+ * include/bits/fstream.tcc (filebuf::_M_underflow_common): Revert.
+ * testsuite/27_io/narrow_stream_objects.cc (test07): Add.
-2002-05-18 Benjamin Kosnik <bkoz@redhat.com>
+2002-05-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
- PR libstdc++/6594
- * src/strstream.cc (strstreambuf): Fix leak.
+ * config/os/irix/irix5.2/bits/ctype_noninline.h (classic_table):
+ Return __ctype + 1.
+ (ctype:_M_table): Initialize to classic_table(), not __ctype.
-2002-05-18 Benjamin Kosnik <bkoz@redhat.com>
+2002-05-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
- * testsuite/22_locale/ctype_scan_char.cc: Tweak.
- * testsuite/22_locale/ctype_scan_wchar_t.cc: New.
+ * configure.in: Update local install.html, configopts.html paths.
+ * configure: Regenerate.
- * docs/html/install.html: Fix.
+2002-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-2002-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+ * config/os/irix/irix5.2/bits/os_defines.h
+ (__glibcpp_long_double_bits, __glibcpp_long_bits): Define.
* config/os/irix/irix5.2/bits/ctype_inline.h: Cast to unsigned
char.
- * config/os/irix/irix5.2/bits/ctype_inline.h (scan_is, scan_not):
- Fix typo, use this->is() rather than manually (and perhaps
- incorrectly) inlining it.
- * config/os/irix/irix6.5/bits/ctype_inline.h (scan_is, scan_not):
- Likewise.
- * testsuite/22_locale/ctype_scan_char.cc: New file.
-
-2002-05-18 Benjamin Kosnik <bkoz@redhat.com>
-
- * include/bits/fstream.tcc
- (basic_filebuf::_M_allocate_internal_buffer): Remove extraneous
- try/catch blocks.
- * src/localename.cc (locale::_Impl::_M_install_facet): Same.
-
- * docs/html/install.html: Tweak, add bits about required locales
- for the 22_locale tests when using the gnu model.
-
- * testsuite/27_io/istream_sentry.cc: Tweak.
-
-2002-05-16 Phil Edwards <pme@gcc.gnu.org>
-
- * docs/html/faq/index.html: Update not-a-bug list with basic_file.h.
- * docs/html/faq/index.txt: Regenerate.
-
-2002-05-15 Paolo Carlini <pcarlini@unitus.it>
-
- PR libstdc++/6648
- * include/bits/istream.tcc (istream::getline, ignore):
- Upon __idelim (__delim) call sbumpc() not snextc().
- * testsuite/27_io/narrow_stream_objects.cc:
- Add test08 and test09.
-
-2002-05-14 Release Manager
-
- * GCC 3.1 Released.
-
-2002-05-09 Jakub Jelinek <jakub@redhat.com>
-
- * testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init): Append all
- multilib dirs containing libgcc_s*.so.1 below gcc object dir to
- LD_LIBRARY_PATH.
-
-2002-05-08 Alexandre Oliva <aoliva@redhat.com>
-
- * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
- script entry, and set LD to it when configuring multilibs.
- * configure: Rebuilt.
-
-2002-05-06 Phil Edwards <pme@gcc.gnu.org>
-
- * docs/html/documentation.html: Fix broken link.
-
-2002-05-03 Benjamin Kosnik <bkoz@redhat.com>
-
- PR libstdc++/6549.
- * include/bits/fstream.tcc (filebuf::_M_underflow_common): Revert.
- * testsuite/27_io/narrow_stream_objects.cc (test07): Add.
-
2002-05-02 Phil Edwards <pme@gcc.gnu.org>
* docs/html/faq/index.html: Update list in #4.1.
* docs/html/faq/index.txt: Regenerated.
+2002-05-02 Benjamin Kosnik <bkoz@redhat.com>
+
+ * docs/html/17_intro/RELEASE-NOTES (New): Update.
+
2002-05-01 Phil Edwards <pme@gcc.gnu.org>
* include/std/std_bitset.h: Fix doxygen comments.
@@ -1762,10 +4200,10 @@
PR libstdc++/6533
* include/bits/streambuf_iterator.h (istreambuf_iterator::_M_get): New.
(istreambuf_iterator::equal): Use it.
- (istreambuf_iterator::operator*): Use it.
+ (istreambuf_iterator::operator*): Use it.
2002-05-01 Paolo Carlini <pcarlini@unitus.it>
-
+
PR libstdc++/6513
* include/bits/stl_uninitialized.h
(uninitialized_copy(_InputIter, _InputIter, _ForwardIter)):
@@ -1799,56 +4237,63 @@
* src/misc-inst.cc (file_filebuf<char>): Add instantiation.
* include/Makefile.am (ext_headers): Add ext_filebuf.h,
stdio_filebuf.h. * include/Makefile.in: Regenerate.
-
+
2002-04-30 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/6511
* config/os/solaris/solaris2.7/bits/ctype_noninline.h: Fix typo.
-
-2002-04-29 Benjamin Kosnik <bkoz@redhat.com>
- PR libstdc++/5820
- * include/bits/fstream.tcc (basic_filebuf::_M_underflow_common):
- Check for eof.
- * include/bits/streambuf_iterator.h: Match stream_iterator.h.
- (istreambuf_iterator::operator++): Invalidate on eof.
- (istreambuf_iterator::operator++(int)): Same.
- (istreambuf_iterator::operator*): Same.
-
2002-04-29 Benjamin Kosnik <bkoz@redhat.com>
- PR libstdc++/5820
- * config/io/basic_file_stdio.h (__basic_file::sys_getc): Return int.
- (__basic_file::sys_ungetc): Take int.
- * config/io/basic_file_stdio.cc (__basic_file::sys_ungetc): Same.
- * include/bits/fstream.tcc (basic_filebuf::_M_underflow_common):
- Use sys_getc for unbuffered input.
- * testsuite/27_io/narrow_stream_objects.cc (test06): New.
-
- * src/ios.cc (_M_grow_words): Adjust error checking.
- * testsuite/27_io/ios_base_storage.cc: Same.
+ PR libstdc++/5820
+ * include/bits/fstream.tcc (basic_filebuf::_M_underflow_common):
+ Check for eof.
+ * include/bits/streambuf_iterator.h: Match stream_iterator.h.
+ (istreambuf_iterator::operator++): Invalidate on eof.
+ (istreambuf_iterator::operator++(int)): Same.
+ (istreambuf_iterator::operator*): Same.
2002-04-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init): Set all
of LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
- LD_LIBRARY64_PATH.
+ LD_LIBRARY64_PATH.
+
+2002-04-28 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/5820
+ * config/io/basic_file_stdio.h (__basic_file::sys_getc): Return int.
+ (__basic_file::sys_ungetc): Take int.
+ * config/io/basic_file_stdio.cc (__basic_file::sys_ungetc): Same.
+ * include/bits/fstream.tcc (basic_filebuf::_M_underflow_common):
+ Use sys_getc for unbuffered input.
+ * testsuite/27_io/narrow_stream_objects.cc (test06): New.
+
+ * src/ios.cc (_M_grow_words): Adjust error checking.
+ * testsuite/27_io/ios_base_storage.cc: Same.
2002-04-28 Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de>
* include/ext/stl_hashtable.h: Import __iterator_category
2002-04-28 Paolo Carlini <pcarlini@unitus.it>
- Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de>
+ Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de>
* testsuite/ext/hash_set.cc: New testfile.
+2002-04-27 Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/os/solaris/solaris2.5/bits/os_defines.h: Remove
+ _G_USING_THUNKS.
+ * config/os/solaris/solaris2.6/bits/os_defines.h: Same.
+ * config/os/solaris/solaris2.7/bits/os_defines.h: Same.
+
2002-04-26 Paolo Carlini <pcarlini@unitus.it>
* include/bits/basic_string.h (replace(__pos, __n1, __s, __n2):
Fix and tighten __throw_length_error check.
- * testsuite/21_strings/replace.cc (test04): New.
- * testsuite/21_strings/replace.cc (test02, test03): Tweak.
+ * testsuite/21_strings/replace.cc (test05): New.
+ * testsuite/21_strings/replace.cc (test02, test03, test04): Tweak.
2002-04-23 Loren J. Rittle <ljrittle@acm.org>
@@ -1878,14 +4323,19 @@
* config/cpu/mmix/bits/cpu_limits.h: New file.
* configure.target (CPULIMITSH): Use it.
+2002-04-22 Loren J. Rittle <ljrittle@acm.org>
+
+ * docs/html/17_intro/porting.texi (_GLIBCPP_AVOID_FSEEK): Remove.
+ * docs/html/17_intro/porting.html: Rebuilt.
+
2002-04-20 Jason Merrill <jason@redhat.com>
PR libstdc++/4150
- * include/std/std_streambuf.h (basic_streambuf::_M_set_indeterminate):
+ * include/std/std_streambuf.h (basic_streambuf::_M_set_indeterminate):
Move to filebuf.
(basic_streambuf::_M_set_determinate): Likewise.
(basic_streambuf::_M_is_indeterminate): Likewise.
- * include/bits/std_fstream.h (basic_filebuf::_M_filepos): New
+ * include/bits/std_fstream.h (basic_filebuf::_M_filepos): New
non-static data member.
(basic_filebuf::_M_underflow_common): New non-static member function.
(basic_filebuf::_M_underflow, _M_uflow): Call it.
@@ -1897,20 +4347,20 @@
* include/bits/fstream.tcc (basic_filebuf::_M_really_overflow): Seek
back to _M_out_beg if necessary.
(basic_filebuf::seekoff): Likewise.
- (basic_filebuf::_M_underflow_common): Generalization of old
+ (basic_filebuf::_M_underflow_common): Generalization of old
underflow(). Don't seek back to _M_in_beg.
* src/ios.cc: Lose _GLIBCPP_AVOID_FSEEK stuff.
* config/os/solaris/solaris2.?/bits/os_defines.h: Likewise.
* config/os/bsd/freebsd/bits/os_defines.h: Likewise.
* config/os/mingw32/bits/os_defines.h: Likewise.
- * testsuite/27_io/filebuf_virtuals.cc (test05): Don't overspecify
+ * testsuite/27_io/filebuf_virtuals.cc (test05): Don't overspecify
ungetc test.
2002-04-22 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/istream.tcc (istream::read): Fix.
* testsuite/27_io/istream_unformatted.cc (main): Add.
-
+
2002-04-20 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/6360
@@ -1919,47 +4369,82 @@
* include/bits/streambuf.tcc: Use this->gptr.
* testsuite/27_io/istream_unformatted.cc (test08): Add test.
-2002-04-19 Benjamin Kosnik <bkoz@redhat.com>
+2002-04-18 Benjamin Kosnik <bkoz@redhat.com>
- * include/bits/localefwd.h (locale::id::_M_id): Do this correctly,
- as type safety is important, especially on solaris.
- * include/bits/istream.tcc (istream::read): Clean.
- (istream::readsome): Same.
- * locale.cc: Wrap lines.
+ * include/bits/localefwd.h (locale::id::_M_id): Do this correctly,
+ as type safety is important, especially on solaris.
+ * include/bits/istream.tcc (istream::read): Clean.
+ (istream::readsome): Same.
+ * locale.cc: Wrap lines.
- * testsuite/21_strings/inserters_extractors.cc: Tweaks.
- * testsuite/27_io/instantiations.cc (test): Add bool variable...
- * testsuite/21_strings/capacity.cc: Clean.
+ * testsuite/21_strings/inserters_extractors.cc: Tweaks.
+ * testsuite/27_io/instantiations.cc (test): Add bool variable...
+ * testsuite/21_strings/capacity.cc: Clean.
-2002-04-19 Benjamin Kosnik <bkoz@redhat.com>
+2002-04-17 Phil Edwards <pme@gcc.gnu.org>
- * testsuite/27_io/filebuf_virtuals.cc: Add _S_pback_size instantiation.
+ * docs/doxygen/doxygroups.cc: New group on binary searching.
+ * include/bits/stl_algo.h: Document binary searches and merges.
+ * include/bits/stl_deque.h: The 'map' member is not the 'map' class.
-2002-04-19 Benjamin Kosnik <bkoz@redhat.com>
+2002-04-17 Phil Edwards <pme@gcc.gnu.org>
- * config/linker-map.gnu (__malloc_alloc_template): Add.
- (__default_alloc_template): Same.
- * include/bits/stl_alloc.h (__malloc_alloc_template): Add extern
- template.
- (__default_alloc_template): Same.
+ * docs/doxygen/mainpage.html: Doxygen logo is now a PNG file.
+ * docs/doxygen/run_doxygen: Bump required version.
+ * docs/doxygen/user.cfg.in: Revert accidental change.
+ * docs/html/faq/index.html: Reindent a block of links.
+ (4.4): New note on using dlsym.
+ * docs/html/faq/index.txt: Regenerated.
+
+2002-04-17 Phil Edwards <pme@gcc.gnu.org>
+
+ * testsuite_flags.in (cxxflags): Also pass @EXTRA_CXX_FLAGS@.
+
+2002-04-17 Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/linker-map.gnu (__malloc_alloc_template): Add.
+ (__default_alloc_template): Same.
+ * include/bits/stl_alloc.h (__malloc_alloc_template): Add extern
+ template.
+ (__default_alloc_template): Same.
+
+2002-04-17 Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/27_io/filebuf_virtuals.cc: Add _S_pback_size instantiation.
-2002-04-19 Benjamin Kosnik <bkoz@redhat.com>
+2002-04-16 Benjamin Kosnik <bkoz@redhat.com>
- * src/concept-inst.cc (vector<locale::facet*>): Remove instantiations.
- * src/stl-inst.cc (vector::_M_insert_aux): Remove instantiation.
- (__malloc_alloc_template): Conditionalize.
+ * src/concept-inst.cc (vector<locale::facet*>): Remove instantiations.
+ * src/stl-inst.cc (vector::_M_insert_aux): Remove instantiation.
+ (__malloc_alloc_template): Conditionalize.
- * include/bits/istream.tcc: Remove sputbackc calls.
+ * include/bits/istream.tcc: Remove sputbackc calls.
- * testsuite/19_diagnostics/stdexceptions.cc: Fix comment.
+ * testsuite/19_diagnostics/stdexceptions.cc: Fix comment.
-2002-04-19 Benjamin Kosnik <bkoz@redhat.com>
+2002-04-16 Paolo Carlini <pcarlini@unitus.it>
+
+ * testsuite/24_iterators/rel_ops.cc: New test.
+
+2002-04-16 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
+
+ * include/bits/type_traits.h (__normal_iterator): Declare in
+ __gnu_cxx. Adjust use at global namespace.
+ * include/bits/stl_iterator.h (__normal_iterator): Move definition
+ into __gnu_cxx::. Add more operator overloads. Tidy existing ones.
+ * include/bits/basic_string.h (basic_string): Adjust use of
+ __normal_iterator.
+ * include/bits/stl_vector.h (_Alloc>): Likewise.
+ * src/concept-inst.cc (__gnu_cxx): __normal_iterator<> is now here.
+ * src/string-inst.cc (operator==): Instantiate in __gnu_cxx.
+
+2002-04-15 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/4164
Valgrind fixes.
* config/io/basic_file_stdio.cc (__basic_file::~__basic_file):
Call close.
- (__basic_file::close): Call fflush. Correct return if fclose ok.
+ (__basic_file::close): Call fflush. Correct return if fclose ok.
(__basic_file::is_open): Make const.
Change __c_file_type to __c_file.
* config/io/basic_file_stdio.h: Change __c_file_type to __c_file.
@@ -2039,40 +4524,8 @@
* testsuite/22_locale/num_get_members_char.cc: Fixup.
* testsuite/22_locale/num_get_members_wchar_t.cc: Same.
* testsuite/27_io/filebuf_members.cc: Same.
-
-2002-04-17 Phil Edwards <pme@gcc.gnu.org>
- * docs/doxygen/doxygroups.cc: New group on binary searching.
- * include/bits/stl_algo.h: Document binary searches and merges.
- * include/bits/stl_deque.h: The 'map' member is not the 'map' class.
-
-2002-04-17 Phil Edwards <pme@gcc.gnu.org>
-
- * docs/doxygen/mainpage.html: Doxygen logo is now a PNG file.
- * docs/doxygen/run_doxygen: Bump required version.
- * docs/doxygen/user.cfg.in: Revert accidental change.
- * docs/html/faq/index.html: Reindent a block of links.
- (4.4): New note on using dlsym.
- * docs/html/faq/index.txt: Regenerated.
-
-2002-04-16 Paolo Carlini <pcarlini@unitus.it>
-
- * testsuite/24_iterators/rel_ops.cc: New test.
-
-2002-04-16 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
-
- * include/bits/type_traits.h (__normal_iterator): Declare in
- __gnu_cxx. Adjust use at global namespace.
- * include/bits/stl_iterator.h (__normal_iterator): Move definition
- into __gnu_cxx::. Add more operator overloads. Tidy existing ones.
- * include/bits/basic_string.h (basic_string): Adjust use of
- __normal_iterator.
- * include/bits/stl_vector.h (_Alloc>): Likewise.
- * src/concept-inst.cc (__gnu_cxx): __normal_iterator<> is now here.
- * src/locale-inst.cc (__gnu_cxx): Likewise.
- * src/string-inst.cc (operator==): Instantiate in __gnu_cxx.
-
-2002-04-15 Steve Ellcey <sje@cup.hp.com>
+2002-04-12 Steve Ellcey <sje@cup.hp.com>
* gcc/libstdc++-v3/config/os/hpux/bits/os_defines.h
(strtoll, strtoull): In 64 bit mode HP-UX (IA64 and HPPA)
@@ -2108,7 +4561,7 @@
(has_locale): Adjust.
* src/locale.cc: Adjust.
* src/localename.cc: Same.
-
+
2002-04-09 Benjamin Kosnik <bkoz@redhat.com>
Richard Henderson <rth@redhat.com>
@@ -2133,7 +4586,7 @@
Format.
* src/bitset.cc: Adjust.
* config/linker-map.gnu: Export.
-
+
2002-04-08 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/5180
@@ -2144,7 +4597,7 @@
open modes and which modes.
(stringbuf::seekpos): Same.
* testsuite/27_io/stringbuf_virtuals.cc: New tests.
-
+
2002-04-05 Jonathan Wakely <jw@kayari.org>
* include/bits/stl_algo.h (unique_copy, __gcd, rotate, rotate_copy,
@@ -2158,24 +4611,24 @@
2002-04-04 Benjamin Kosnik <bkoz@redhat.com>
- libstdc++/3457
+ libstdc++/3457
via gawrilow@math.tu-berlin.de
* acinclude.m4 (version_specific_libs): Fix combo usage with
--with-gxx-include-dir.
* aclocal.m4: Regenerate.
* configure: Same.
-
+
2002-04-03 Benjamin Kosnik <bkoz@redhat.com>
- As per DR 184, libstdc++/3139
- * include/std/std_limits.h (__glibcpp_bool_digits): Change to 1.
- (numeric_limits<bool>::is_iec559): False.
- (numeric_limits<bool>::is_modulo): False.
+ As per DR 184, libstdc++/3139
+ * include/std/std_limits.h (__glibcpp_bool_digits): Change to 1.
+ (numeric_limits<bool>::is_iec559): False.
+ (numeric_limits<bool>::is_modulo): False.
* testsuite/27_io/ios_init.cc: Add instantiations.
2002-04-02 Benjamin Kosnik <bkoz@redhat.com>
-
+
libstdc++/5268
* src/ios.cc: (ios_base::Init::_S_ios_destroy): Remove flush calls.
* testsuite/27_io/ios_init.cc (tests04): Add test.
@@ -2187,12 +4640,27 @@
* include/bits/istream.tcc: Use _M_fctype, make consistent with
ostream.
* testsuite/27_io/ios_init.cc (tests03): Add test.
-
+
2002-04-02 Phil Edwards <pme@gcc.gnu.org>
* include/Makefile.am (install-data-local): Use mkinstalldirs.
* include/Makefile.in: Regenerate.
+2002-04-02 Paolo Carlini <pcarlini@unitus.it>
+ Nathan Myers <ncm@cantrip.org>
+ Philip Martin <philip@codematters.co.uk>
+
+ * include/bits/basic_string.h
+ (replace(i1, i2, _CharT* k1, _CharT* k2),
+ replace(i2, i2, const _CharT* k1, const _CharT* k2),
+ replace(i1, i2, iterator k1, iterator k2,
+ replace(i1, i2, const_iterator k1, const_iterator k2):
+ New specializations to optimize for the common cases of
+ pointers and iterators.
+ (replace(pos, n1, s, n2)): Tweak.
+ * include/bits/basic_string.tcc: Tweak comments.
+ * testsuite/21_strings/replace.cc (test04): New tests.
+
2002-04-01 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/5542
@@ -2212,10 +4680,6 @@
2002-04-01 Phil Edwards <pme@gcc.gnu.org>
- * include/bits/c++config: Fix misplaced leading blanks on first line.
-
-2002-04-01 Phil Edwards <pme@gcc.gnu.org>
-
* config/linker-map.gnu: Export __verbose_terminate_handler.
* libsupc++/Makefile.am (sources): Add cxa_demangle.c, dyn-string.c.
Make new LTCOMPILE variable, use it in new special build rules.
@@ -2228,31 +4692,31 @@
verbose_terminate_handler into line with reality.
2002-04-01 Benjamin Kosnik <bkoz@redhat.com>
-
+
libstdc++/3129
* include/bits/basic_ios.h (basic_ios::_M_exception): Move.
- (basic_ios::_M_streambuf_state): Move.
+ (basic_ios::_M_streambuf_state): Move.
* include/bits/ios_base (ios_base): To here.
* include/bits/ios_base.h (ios_base::_S_local_words): To
_S_local_word_size.
(ios_base::_M_word_array): To _M_local_word.
- (ios_base::_M_words_limit): To _M_word_size.
- (ios_base::_M_words): To _M_word.
+ (ios_base::_M_words_limit): To _M_word_size.
+ (ios_base::_M_words): To _M_word.
Comment.
- * include/bits/basic_ios.tcc: Adjust.
+ * include/bits/basic_ios.tcc: Adjust.
* src/ios.cc (ios_base::_M_grow_words): Tweak.
* testsuite/27_io/ios_base_storage.cc: Add tests.
libstdc++/5207
Kenny Simpson <theonetruekenny@yahoo.com>
* include/bits/ios_base.h: Fix.
-
+
Richard Henderson <rth@redhat.com>
* include/bits/ostream.tcc (ostream::operator<<(_CharT)): Correct
last change.
* include/bits/basic_string.h: Tweak formatting.
-
+
2002-04-01 Paolo Carlini <pcarlini@unitus.it>
* config/locale/ieee_1003.1-2001/codecvt_specializations.h
@@ -2285,7 +4749,7 @@
(test02): New tests.
2002-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
- Paolo Carlini <pcarlini@unitus.it>
+ Paolo Carlini <pcarlini@unitus.it>
* testsuite/22_locale/codecvt_members_unicode_wchar_t.cc
(test01): Protect the test with _GLIBCPP_USE_WCHAR_T;
@@ -2304,17 +4768,15 @@
2002-03-27 Phil Edwards <pme@gcc.gnu.org>
- Bulk documentation merge (copy) from trunk.
- * docs/doxygen/Intro.3, docs/doxygen/TODO, docs/doxygen/doxygroups.cc,
- docs/doxygen/mainpage.html, docs/doxygen/run_doxygen,
- docs/doxygen/tables.html, docs/doxygen/user.cfg.in,
- docs/html/Makefile, docs/html/17_intro/howto.html,
- docs/html/19_diagnostics/howto.html, docs/html/20_util/howto.html:
- Merge from trunk.
-
-2002-03-27 Phil Edwards <pme@gcc.gnu.org>
+ * docs/doxygen/Intro.3: Date tweak.
+ * docs/doxygen/TODO: Update.
+ * docs/doxygen/doxygroups.cc: Point to tables.html.
+ * docs/doxygen/mainpage.html: Date tweak.
+ * docs/doxygen/run_doxygen: Version tweak. Copy tables.html over.
+ * docs/doxygen/tables.html: Fill in the blanks.
- * include/bits/stl_algo.h: Remove @maint and @endmaint.
+ * docs/doxygen/user.cfg.in (ALIASES): Remove maint and endmaint.
+ * include/bits/stl_algo.h: Likewise; use expanded form.
* include/bits/stl_alloc.h: Likewise.
* include/bits/stl_construct.h: Likewise.
* include/bits/stl_deque.h: Likewise.
@@ -2338,7 +4800,7 @@
* include/Makefile.in: Regerate.
2002-03-25 Paolo Carlini <pcarlini@unitus.it>
- Richard Henderson <rth@redhat.com>
+ Richard Henderson <rth@redhat.com>
* testsuite/22_locale/codecvt_members_unicode_char.cc
(test01, test02): make sure that the i_lit_base array
@@ -2346,8 +4808,8 @@
2002-03-25 Benjamin Kosnik <bkoz@redhat.com>
- * config/os/newlib/bits/ctype_noninline.h (ctype::classic): Set to
- _ctype_.
+ * config/os/newlib/bits/ctype_noninline.h (ctype::classic): Set to
+ _ctype_.
2002-03-25 Paolo Carlini <pcarlini@unitus.it>
@@ -2358,25 +4820,15 @@
returned by collate::compare are normalized, therefore
test against +-1.
-2002-03-25 Jakub Jelinek <jakub@redhat.com>
-
- PR target/5676
- * acinclude.m4 (GLIBCPP_ENABLE_SJLJ_EXCEPTIONS): Pass -fexceptions
- explicitly.
- * aclocal.m4: Rebuilt.
- * configure: Rebuilt.
- * configure.target (mcore-*-pe*): Add -frtti -fno-exceptions
- by default to c++ flags.
-
2002-03-25 Benjamin Kosnik <bkoz@redhat.com>
- Jakub Jelinek <jakub@redhat.com>
+ Jakub Jelinek <jakub@redhat.com>
* config/locale/gnu/messages_members.h: Correct conditional.
* config/locale/gnu/messages_members.cc: Same.
* config/locale/gnu/time_members.cc: Same.
2002-03-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
- Paolo Carlini <pcarlini@unitus.it>
+ Paolo Carlini <pcarlini@unitus.it>
* testsuite/22_locale/codecvt_members_unicode_char.cc
(test01, test02): Fix i_lit_base arrays, making them
@@ -2418,7 +4870,7 @@
* configure: Likewise.
2002-03-19 Paolo Carlini <pcarlini@unitus.it>
- Ulrich Drepper <drepper@redhat.com>
+ Ulrich Drepper <drepper@redhat.com>
* src/locale-inst.cc (__convert_from_v): Add an additional
__size parameter in the declarations.
@@ -2520,7 +4972,7 @@
* testsuite/thread/pthread4.cc: Lower nominal iteration counter.
2002-03-12 Benjamin Kosnik <bkoz@redhat.com>
- Per Liboriussen <liborius@stofanet.dk>
+ Per Liboriussen <liborius@stofanet.dk>
* config/os/gnu-linux/bits/ctype_noninline.h: Cast to
unsigned char.
@@ -2571,19 +5023,46 @@
* include/bits/stl_bvector.h (_Bit_type): New. Use throughout.
-2002-03-11 Paolo Carlini <pcarlini@unitus.it>
+2002-03-11 Phil Edwards <pme@gcc.gnu.org>
- * include/bits/locale_facets.tcc (collate::do_transform):
- Rewrite to fix problems with long transformed strings.
+ * testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-list-sourcefiles):
+ New function. Build the list of tests to run in testsuite_files.
+ * testsuite/libstdc++-v3.dg/dg.exp: Use it.
+
+2002-03-11 Phil Edwards <pme@gcc.gnu.org>
+
+ * testsuite/21_strings/capacity.cc: Only explicitly instantiate on
+ platforms with no weak support.
+ * testsuite/27_io/ios_init.cc: Likewise.
+
+2002-03-10 Paolo Carlini <pcarlini@unitus.it>
* include/bits/locale_facets.tcc (time_put::do_put):
Consider sizeof(char_type) in allocating the buffer.
+ * include/bits/locale_facets.tcc (collate::do_tranform):
+ Remove redundant variable.
+
+2002-03-10 Ulrich Drepper <drepper@redhat.com>
+ Paolo Carlini <pcarlini@unitus.it>
+
+ * config/locale/generic/collate_members.cc
+ (collate<char,wchar_t>::_M_compare_helper): normalize
+ values returned by strcoll and wcscoll.
+ * config/locale/gnu/collate_members.cc
+ (collate<char,wchar_t>::_M_compare_helper): ditto
+ for __strcoll_l and __wcscoll_l.
+
2002-03-10 Anthony Green <green@redhat.com>
* configure.in: Support cross builds to mingw32 target.
* configure: Rebuilt.
+2002-03-09 Paolo Carlini <pcarlini@unitus.it>
+
+ * include/bits/locale_facets.tcc (collate::do_transform):
+ Rewrite to fix problems with long transformed strings.
+
2002-03-08 Benjamin Kosnik <bkoz@redhat.com>
* c_locale_generic.cc: Move to...
@@ -2663,7 +5142,7 @@
* include/bits/stl_alloc.h: Add extern implicit allocator
instantiations.
* include/bits/basic_string.tcc: Tweak.
- * include/bits/loqcale_facets.tcc: Remove default args. Add
+ * include/bits/locale_facets.tcc: Remove default args. Add
has_facet, use_facet extern instantiations.
* src/stl-inst.cc: Add explicit instantiation.
* src/locale-inst.cc: Clean. Remove locale member template
@@ -2685,7 +5164,18 @@
* testsuite/23_containers/vector_bool.cc: New.
-2002-03-08 Phil Edwards <pme@gcc.gnu.org>
+2002-03-06 Phil Edwards <pme@gcc.gnu.org>
+
+ * docs/doxygen/user.cfg.in: Also document deprecated entries.
+ * docs/html/Makefile: Example rule to rebuild porting-howto.html.
+ * docs/html/17_intro/howto.html: "gcc"->"GCC" changes, when
+ referring to the collection as a whole. New section on which macros
+ can be redefined by the user.
+ * docs/html/19_diagnostics/howto.html: Update note for concepts.
+ * docs/html/20_util/howto.html: Update link to SGI.
+ * docs/html/faq/index.html: Update snapshot versions. New entry
+ on why g++ (but not gcc) must currently predefine certain macros.
+ * docs/html/faq/index.txt: Regenerated.
* include/bits/basic_string.h (basic_string::_S_construct): Fix
names in declaration.
@@ -2696,12 +5186,16 @@
* include/bits/locale_facets.tcc: Remove unneeded header inclusion.
* src/locale.cc: Likewise.
-2002-03-08 Phil Edwards <pme@gcc.gnu.org>
+2002-03-06 Phil Edwards <pme@gcc.gnu.org>
PR libstdc++/5734
* include/bits/stl_vector.h (vector::push_back()): Guard with
_GLIBCPP_DEPRECATED.
+2002-03-06 Phil Edwards <pme@gcc.gnu.org>
+
+ * include/bits/c++config: Fix misplaced leading blanks on first line.
+
2002-03-05 Benjamin Kosnik <bkoz@redhat.com>
* docs/html/17_intro/RELEASE-NOTES: Fix usage.
@@ -2738,12 +5232,12 @@
2002-03-03 Phil Edwards <pme@gcc.gnu.org>
- PR libstdc++/2955
+ PR libstdc++/3955
* include/std/std_sstream.h: Remove trailing spaces.
(basic_stringbuf::_M_stringbuf_init): Also check for ios_base::app.
* testsuite/27_io/stringbuf.cc (test05, test06): New tests.
-2002-03-03 Paolo Carlini <pcarlini@unitus.it>
+2002-03-02 Paolo Carlini <pcarlini@unitus.it>
* testsuite/22_locale/num_get_members_char.cc (test04):
Use a named locale expecting grouping (de_DE).
@@ -2752,7 +5246,12 @@
* testsuite/27_io/ios_manip_basefield.cc (test01):
Extend coverage, uniform treatment of hexs and octs.
-2002-03-01 Paolo Carlini <pcarlini@unitus.it>
+2002-02-28 Richard Henderson <rth@redhat.com>
+
+ * config/linker-map.gnu: Export operator new with unsigned long,
+ and with std::nothrow_t. Likewise operator delete.
+
+2002-02-28 Paolo Carlini <pcarlini@unitus.it>
* include/bits/locale_facets.tcc (num_get::_M_extract_int):
Admit grouping for octals and hexadecimals too.
@@ -2763,14 +5262,11 @@
* testsuite/27_io/ios_manip_basefield.cc: Remove static keyword.
* testsuite/27_io/ios_manip_fmtflags.cc: Remove two of them.
+2002-02-27 Paolo Carlini <pcarlini@unitus.it>
+
* testsuite/27_io/ios_manip_basefield.cc (test01):
Fix for 64 bit machines.
-2002-02-28 Richard Henderson <rth@redhat.com>
-
- * config/linker-map.gnu: Export operator new with unsigned long,
- and with std::nothrow_t. Likewise operator delete.
-
2002-02-26 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/3983
@@ -2784,7 +5280,7 @@
(ios_base::_M_call_callbacks): Adjust.
* testsuite/27_io/ios_init.cc (test02): Adjust testcase.
-2002-02-28 Loren Rittle <ljrittle@acm.org>
+2002-02-26 Loren Rittle <ljrittle@acm.org>
* include/Makefile.am (thread_target_headers): Unconditionally
stage and install gthr-posix.h.
@@ -2825,8 +5321,8 @@
2002-02-22 Philipp Thomas <pthomas@suse.de>
- * include/backward/tempbuf.h: get_temporary_buffer and
- return_temporary_buffer are in namespace std, not in __gnu_cxx.
+ * include/backward/tempbuf.h: get_temporary_buffer and
+ return_temporary_buffer are in namespace std, not in __gnu_cxx.
2002-02-21 Benjamin Kosnik <bkoz@redhat.com>
@@ -2882,7 +5378,7 @@
2002-02-18 Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de>
* testsuite/22_locale/collate_byname.cc (test01): Replace size4
- with size3 for the string collations of str5.
+ with size3 for the string collations of str5.
2002-02-18 Paolo Carlini <pcarlini@unitus.it>
@@ -3020,7 +5516,7 @@
* include/bits/basic_file.h: Remove.
* config/io/c_io_stdio.h: Remove _GLIBCPP_BASIC_FILE_ENCAPSULATION
Declare generic types, specialization.
- * config/io/basic_file_stdio.cc: Definitions.
+ * config/io/basic_file_stdio.cc: Definitions.
* config/io/c_io_libio.h: Remove _GLIBCPP_BASIC_FILE_INHERITANCE.
Declare generic types.
* include/Makefile.am (bits_headers): Remove basic_file.h.
@@ -3102,7 +5598,7 @@
(test02): Same.
2002-02-07 Benjamin Kosnik <bkoz@redhat.com>
- Wolfgang Bangerth <wolfgang.bangerth@iwr.uni-heidelberg.de>
+ Wolfgang Bangerth <wolfgang.bangerth@iwr.uni-heidelberg.de>
* include/bits/basic_ios.tcc (basic_ios::narrow): Add default value.
(basic_ios::widen): Same.
@@ -3324,7 +5820,7 @@
* docs/html/27_io/howto.html: Also link to Langer and Kreft text.
2002-01-28 Paolo Carlini <pcarlini@unitus.it>
- Charles Leggett <CGLeggett@lbl.gov>
+ Charles Leggett <CGLeggett@lbl.gov>
* testsuite/27_io/filebuf_members.cc (test_05): Add test.
@@ -3470,7 +5966,7 @@
2002-01-23 Loren Rittle <ljrittle@acm.org>
- * config/locale/c_locale_generic.cc: Fix typename usage.
+ * config/locale/c_locale_generic.cc: Fix typename usage.
2002-01-22 Benjamin Kosnik <bkoz@redhat.com>
@@ -3659,7 +6155,7 @@
* include/Makefile.in: Regenerate.
2002-01-16 Benjamin Kosnik <bkoz@redhat.com>
- Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de>
+ Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de>
* include/bits/stl_iterator.h (reverse_iterator::_M_current):
Deuglify, should be current.
@@ -3885,9 +6381,9 @@
2002-01-09 Paolo Carlini <pcarlini@unitus.it>
- * libsupc++/exception (bad_exception): Add comment.
- * libsupc++/new (bad_alloc): Same.
- * libsupc++/typeinfo (bad_cast, bad_typeid): Same.
+ * libsupc++/exception (bad_exception): Add comment.
+ * libsupc++/new (bad_alloc): Same.
+ * libsupc++/typeinfo (bad_cast, bad_typeid): Same.
2002-01-09 Paolo Carlini <pcarlini@unitus.it>
@@ -3921,8 +6417,8 @@
2002-01-08 Benjamin Kosnik <bkoz@redhat.com>
- libstdc++/2913
- libstdc++/4879
+ libstdc++/2913
+ libstdc++/4879
* include/bits/fstream.tcc (filebuf::_M_really_overflow): Test
return value of _M_file->sync().
(filebuf::showmanyc): Check for is_open.
@@ -3935,7 +6431,7 @@
* testsuite/27_io/filebuf_members.cc: Add test.
2002-01-07 Benjamin Kosnik <bkoz@redhat.com>
- Craig Rodrigues <rodrigc@mediaone.net>
+ Craig Rodrigues <rodrigc@mediaone.net>
libstdc++/5174
* po/Makefile.am (mkinstalldirs): Add.
@@ -4103,25 +6599,25 @@
* include/bits/stl_numeric.h (power + helpers, iota): Move to...
* include/ext/numeric: ...here, new file.
- * include/bits/stl_function.h (identity_element, unary_compose,
+ * include/bits/stl_function.h (identity_element, unary_compose,
binary_compose, compose1, compose2, identity, select1st,
select2nd, project1st + helper, project2nd + helper,
constant_void_fun + helper, constant_unary_fun + helper,
costant_binary_fun + helper, constant0, constant1, constant2,
subtractive_rng, mem_fun1, mem_fun1_ref): Move to...
- * include/ext/functional: ...here, new file.
- * include/Makefile.am (ext_headers): Add new files.
- * include/Makefile.in: Regenerate.
- * testsuite/ext/headers.cc: Include <ext/numeric> and
+ * include/ext/functional: ...here, new file.
+ * include/Makefile.am (ext_headers): Add new files.
+ * include/Makefile.in: Regenerate.
+ * testsuite/ext/headers.cc: Include <ext/numeric> and
<ext/functional>.
* include/backward/algo.h: Include <ext/numeric>, tweak.
* include/backward/function.h: Include <ext/functional>, tweak.
- * include/ext/ropeimpl.h: Include <ext/numeric>.
+ * include/ext/ropeimpl.h: Include <ext/numeric>.
2002-01-03 Jeffrey A Law <law@redhat.com>
- * config/os/hpux/bits/os_defines.h: Prefix __strtoll and
- __strtoull declarations with __extension__.
+ * config/os/hpux/bits/os_defines.h: Prefix __strtoll and
+ __strtoull declarations with __extension__.
2002-01-03 David Billinghurst <David.Billinghurst@riotinto.com>
@@ -4144,15 +6640,15 @@
* include/bits/stl_algobase.h (copy_n + helpers,
lexicographical_compare_3way + helpers): Move to...
* include/ext/algorithm: ...here.
- * include/bits/stl_uninitialized.h (uninitialized_copy_n +
- helpers): Move to...
- * include/ext/memory: ...here, new file.
- * include/Makefile.am (ext_headers): Add new file.
- * include/Makefile.in: Regenerate.
- * testsuite/ext/headers.cc: Include <ext/memory>.
+ * include/bits/stl_uninitialized.h (uninitialized_copy_n +
+ helpers): Move to...
+ * include/ext/memory: ...here, new file.
+ * include/Makefile.am (ext_headers): Add new file.
+ * include/Makefile.in: Regenerate.
+ * testsuite/ext/headers.cc: Include <ext/memory>.
* include/backward/algobase.h: Include <ext/memory> and
<ext/algorithm>, tweak.
- * include/ext/ropeimpl.h: Include <ext/memory>, tweak.
+ * include/ext/ropeimpl.h: Include <ext/memory>, tweak.
* include/ext/stl_rope.h: Include <ext/memory>, tweak.
2002-01-01 Roger Sayle <roger@eyesopen.com>
diff --git a/contrib/libstdc++/Makefile.am b/contrib/libstdc++/Makefile.am
index 9b0db8f..642bdc3 100644
--- a/contrib/libstdc++/Makefile.am
+++ b/contrib/libstdc++/Makefile.am
@@ -29,6 +29,8 @@ SUBDIRS = include libio libmath libsupc++ src po testsuite
mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
+PWD_COMMAND = $${PWDCMD-pwd}
+
# These two special 'check-script' rules use the bash script 'mkcheck'
# to do testing. This script is not as portable as the dejagnu test
# harness, and is thus off by default. It does produce interesting
@@ -44,42 +46,22 @@ check-script-install: $(top_builddir)/mkcheck
cd testsuite; \
@glibcpp_builddir@/mkcheck 1)
-# Use 'new-abi-baseline' to create an initial symbol file. Then run
-# 'check-abi' to test for changes against that file.
-baseline_file = @baseline_file@
-check-abi: $(top_builddir)/testsuite/abi_check
- -@(cd testsuite; \
- @glibcpp_srcdir@/config/abi/extract_symvers \
- ../src/.libs/libstdc++.so \
- ./current_symbols.txt; \
- ./abi_check --check ./current_symbols.txt ${baseline_file})
-
-new-abi-baseline:
- -@(output=${baseline_file}; \
- if test -f $${output}; then \
- output=$${output}.new; \
- t=`echo $${output} | sed 's=.*config/abi/=='`; \
- echo "Baseline file already exists, writing to $${t} instead."; \
- fi; \
- @glibcpp_srcdir@/config/abi/extract_symvers \
- src/.libs/libstdc++.so $${output})
-
# These rules are messy, but are hella worth it.
doxygen:
- -(srcdir=`cd ${top_srcdir}; pwd`; \
- builddir=`pwd`; \
+ -(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
+ builddir=`${PWD_COMMAND}`; \
/bin/sh ${srcdir}/docs/doxygen/run_doxygen \
--mode=user $${srcdir} $${builddir})
doxygen-maint:
- -(srcdir=`cd ${top_srcdir}; pwd`; \
- builddir=`pwd`; \
+ -(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
+ builddir=`${PWD_COMMAND}`; \
/bin/sh ${srcdir}/docs/doxygen/run_doxygen \
--mode=maint $${srcdir} $${builddir})
doxygen-man:
- -(srcdir=`cd ${top_srcdir}; pwd`; \
- builddir=`pwd`; \
+ -(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
+ builddir=`${PWD_COMMAND}`; \
/bin/sh ${srcdir}/docs/doxygen/run_doxygen \
--mode=man $${srcdir} $${builddir})
@@ -154,6 +136,7 @@ AM_MAKEFLAGS = \
"includedir=$(includedir)" \
"prefix=$(prefix)" \
"tooldir=$(tooldir)" \
+ "gxx_include_dir=$(gxx_include_dir)" \
"AR=$(AR)" \
"AS=$(AS)" \
"LD=$(LD)" \
@@ -165,3 +148,6 @@ AM_MAKEFLAGS = \
"NM_FOR_TARGET=$(NM_FOR_TARGET)" \
"DESTDIR=$(DESTDIR)" \
"WERROR=$(WERROR)"
+
+# Subdir rules rely on $(FLAGS_TO_PASS)
+FLAGS_TO_PASS = $(AM_MAKEFLAGS)
diff --git a/contrib/libstdc++/Makefile.in b/contrib/libstdc++/Makefile.in
index add19e9..4ff8e32 100644
--- a/contrib/libstdc++/Makefile.in
+++ b/contrib/libstdc++/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
@@ -67,15 +67,24 @@ AR = @AR@
AS = @AS@
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
AWK = @AWK@
+BASIC_FILE_CC = @BASIC_FILE_CC@
BASIC_FILE_H = @BASIC_FILE_H@
CC = @CC@
CCODECVT_C = @CCODECVT_C@
+CCODECVT_CC = @CCODECVT_CC@
CCODECVT_H = @CCODECVT_H@
+CCOLLATE_CC = @CCOLLATE_CC@
+CCTYPE_CC = @CCTYPE_CC@
+CLOCALE_CC = @CLOCALE_CC@
CLOCALE_H = @CLOCALE_H@
+CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
+CMESSAGES_CC = @CMESSAGES_CC@
CMESSAGES_H = @CMESSAGES_H@
+CMONEY_CC = @CMONEY_CC@
+CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
-CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@
CSTDIO_H = @CSTDIO_H@
+CTIME_CC = @CTIME_CC@
CTIME_H = @CTIME_H@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -108,11 +117,13 @@ RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
STRIP = @STRIP@
+SYMVER_MAP = @SYMVER_MAP@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_FLAGS = @WARN_FLAGS@
WERROR = @WERROR@
+baseline_dir = @baseline_dir@
check_msgfmt = @check_msgfmt@
enable_shared = @enable_shared@
enable_static = @enable_static@
@@ -140,9 +151,7 @@ SUBDIRS = include libio libmath libsupc++ src po testsuite
mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
-# Use 'new-abi-baseline' to create an initial symbol file. Then run
-# 'check-abi' to test for changes against that file.
-baseline_file = @baseline_file@
+PWD_COMMAND = $${PWDCMD-pwd}
# Multilib support.
MAKEOVERRIDES =
@@ -185,6 +194,7 @@ AM_MAKEFLAGS = \
"includedir=$(includedir)" \
"prefix=$(prefix)" \
"tooldir=$(tooldir)" \
+ "gxx_include_dir=$(gxx_include_dir)" \
"AR=$(AR)" \
"AS=$(AS)" \
"LD=$(LD)" \
@@ -197,6 +207,9 @@ AM_MAKEFLAGS = \
"DESTDIR=$(DESTDIR)" \
"WERROR=$(WERROR)"
+
+# Subdir rules rely on $(FLAGS_TO_PASS)
+FLAGS_TO_PASS = $(AM_MAKEFLAGS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES = mkcheck testsuite_flags
@@ -270,7 +283,7 @@ testsuite_flags: $(top_builddir)/config.status testsuite_flags.in
all-recursive install-data-recursive install-exec-recursive \
installdirs-recursive install-recursive uninstall-recursive install-info-recursive \
check-recursive installcheck-recursive info-recursive dvi-recursive:
- @set fnord $(MAKEFLAGS); amf=$$2; \
+ @set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -290,7 +303,7 @@ check-recursive installcheck-recursive info-recursive dvi-recursive:
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
- @set fnord $(MAKEFLAGS); amf=$$2; \
+ @set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \
@@ -482,39 +495,23 @@ check-script-install: $(top_builddir)/mkcheck
-(chmod + $(top_builddir)/mkcheck; \
cd testsuite; \
@glibcpp_builddir@/mkcheck 1)
-check-abi: $(top_builddir)/testsuite/abi_check
- -@(cd testsuite; \
- @glibcpp_srcdir@/config/abi/extract_symvers \
- ../src/.libs/libstdc++.so \
- ./current_symbols.txt; \
- ./abi_check --check ./current_symbols.txt ${baseline_file})
-
-new-abi-baseline:
- -@(output=${baseline_file}; \
- if test -f $${output}; then \
- output=$${output}.new; \
- t=`echo $${output} | sed 's=.*config/abi/=='`; \
- echo "Baseline file already exists, writing to $${t} instead."; \
- fi; \
- @glibcpp_srcdir@/config/abi/extract_symvers \
- src/.libs/libstdc++.so $${output})
# These rules are messy, but are hella worth it.
doxygen:
- -(srcdir=`cd ${top_srcdir}; pwd`; \
- builddir=`pwd`; \
+ -(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
+ builddir=`${PWD_COMMAND}`; \
/bin/sh ${srcdir}/docs/doxygen/run_doxygen \
--mode=user $${srcdir} $${builddir})
doxygen-maint:
- -(srcdir=`cd ${top_srcdir}; pwd`; \
- builddir=`pwd`; \
+ -(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
+ builddir=`${PWD_COMMAND}`; \
/bin/sh ${srcdir}/docs/doxygen/run_doxygen \
--mode=maint $${srcdir} $${builddir})
doxygen-man:
- -(srcdir=`cd ${top_srcdir}; pwd`; \
- builddir=`pwd`; \
+ -(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
+ builddir=`${PWD_COMMAND}`; \
/bin/sh ${srcdir}/docs/doxygen/run_doxygen \
--mode=man $${srcdir} $${builddir})
diff --git a/contrib/libstdc++/acconfig.h b/contrib/libstdc++/acconfig.h
index 4d18634..91af8fa 100644
--- a/contrib/libstdc++/acconfig.h
+++ b/contrib/libstdc++/acconfig.h
@@ -135,6 +135,15 @@
// Define if the compiler/host combination has __builtin_sqrtl
#undef HAVE___BUILTIN_SQRTL
+// Define if poll is available in <poll.h>.
+#undef HAVE_POLL
+
+// Define if S_ISREG (Posix) is available in <sys/stat.h>.
+#undef HAVE_S_ISREG
+
+// Define if S_IFREG is available in <sys/stat.h>.
+#undef HAVE_S_IFREG
+
// Define if LC_MESSAGES is available in <locale.h>.
#undef HAVE_LC_MESSAGES
diff --git a/contrib/libstdc++/acinclude.m4 b/contrib/libstdc++/acinclude.m4
index 6393278..608cd24 100644
--- a/contrib/libstdc++/acinclude.m4
+++ b/contrib/libstdc++/acinclude.m4
@@ -1,5 +1,5 @@
dnl
-dnl Initialize configure bits.
+dnl Initialize basic configure bits, set toplevel_srcdir for Makefiles.
dnl
dnl GLIBCPP_TOPREL_CONFIGURE
AC_DEFUN(GLIBCPP_TOPREL_CONFIGURE, [
@@ -37,13 +37,10 @@ AC_DEFUN(GLIBCPP_TOPREL_CONFIGURE, [
])
dnl
-dnl Initialize configure bits.
+dnl Initialize the rest of the library configury.
dnl
dnl GLIBCPP_CONFIGURE
AC_DEFUN(GLIBCPP_CONFIGURE, [
-
-#possibly test for the presence of the compiler sources here?
-
# Export build and source directories.
# These need to be absolute paths, yet at the same time need to
# canonicalize only relative paths, because then amd will not unmount
@@ -270,8 +267,7 @@ AC_DEFUN(GLIBCPP_CHECK_COMPILER_FEATURES, [
# this is the suspicious part
CXXFLAGS=''
fi
- if test x"$ac_fdsections" = x"yes" &&
- test x"$enable_debug" = x"no"; then
+ if test x"$ac_fdsections" = x"yes"; then
SECTION_FLAGS='-ffunction-sections -fdata-sections'
fi
AC_MSG_RESULT($ac_fdsections)
@@ -364,7 +360,7 @@ AC_DEFUN(GLIBCPP_CHECK_LINKER_FEATURES, [
fi
# Set linker optimization flags.
- if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then
+ if test x"$with_gnu_ld" = x"yes"; then
OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
fi
@@ -732,7 +728,6 @@ AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT, [
fi
])
-
dnl
dnl Check to see what the underlying c library is like
dnl These checks need to do two things:
@@ -748,7 +743,7 @@ dnl GLIBCPP_CHECK_STDLIB_SUPPORT
AC_DEFUN(GLIBCPP_CHECK_STDLIB_SUPPORT, [
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
+ CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtold)
GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtof)
@@ -790,7 +785,7 @@ dnl GLIBCPP_CHECK_MATH_SUPPORT
AC_DEFUN(GLIBCPP_CHECK_MATH_SUPPORT, [
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
+ CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
dnl Check libm
AC_CHECK_LIB(m, sin, libm="-lm")
@@ -915,7 +910,11 @@ AC_DEFUN(GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT, [
AC_CHECK_FUNCS([__signbitl], , [LIBMATHOBJS="$LIBMATHOBJS signbitl.lo"])
fi
+ if test -n "$LIBMATHOBJS"; then
+ need_libmath=yes
+ fi
AC_SUBST(LIBMATHOBJS)
+ AM_CONDITIONAL(GLIBCPP_BUILD_LIBMATH, test "$need_libmath" = yes)
])
@@ -925,9 +924,9 @@ dnl compilation, pick them up here.
dnl
dnl GLIBCPP_CHECK_TARGET
AC_DEFUN(GLIBCPP_CHECK_TARGET, [
- . [$]{glibcpp_basedir}/configure.target
- AC_MSG_RESULT(CPU config directory is $cpu_include_dir)
- AC_MSG_RESULT(OS config directory is $os_include_dir)
+ . [$]{glibcpp_basedir}/configure.target
+ AC_MSG_RESULT(CPU config directory is $cpu_include_dir)
+ AC_MSG_RESULT(OS config directory is $os_include_dir)
])
@@ -941,6 +940,8 @@ dnl Define HAVE_MBSTATE_T if mbstate_t is not in wchar.h
dnl
dnl GLIBCPP_CHECK_WCHAR_T_SUPPORT
AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
+ dnl Wide characters disabled by default.
+ enable_wchar_t=no
dnl Test wchar.h for mbstate_t, which is needed for char_traits and
dnl others even if wchar_t support is not on.
@@ -986,7 +987,7 @@ AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
ac_wfuncs=no)
dnl Checks for names injected into std:: by the c_std headers.
- AC_CHECK_FUNCS(btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
+ AC_CHECK_FUNCS(btowc wctob fgetwc fgetws fputwc fputws fwide \
fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
@@ -1031,30 +1032,33 @@ AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
dnl At the moment, only enable wchar_t specializations if all the
dnl above support is present.
- AC_MSG_CHECKING([for enabled wchar_t specializations])
if test x"$ac_isoC99_wchar_t" = xyes &&
test x"$ac_XPG2_wchar_t" = xyes; then
- AC_DEFINE(_GLIBCPP_USE_WCHAR_T)
- AC_MSG_RESULT("yes")
- else
- AC_MSG_RESULT("no")
+ AC_DEFINE(_GLIBCPP_USE_WCHAR_T)
+ enable_wchar_t=yes
fi
- else
- dnl Wide characters disabled by the user.
- AC_MSG_WARN([wchar_t support disabled.])
fi
+ AC_MSG_CHECKING([for enabled wchar_t specializations])
+ AC_MSG_RESULT($enable_wchar_t)
+ AM_CONDITIONAL(GLIBCPP_TEST_WCHAR_T, test "$enable_wchar_t" = yes)
])
dnl
-dnl Check for special debugging mode; not for production use.
+dnl Check to see if debugging libraries are to be built.
dnl
dnl GLIBCPP_ENABLE_DEBUG
-dnl --enable-debug sets '-ggdb3 -O0'.
-dnl --disable-debug sets '-g' and whatever optimization options the
-dnl compiler can handle.
-dnl + --enable-maintainer-mode automatically defaults this to on.
-dnl + Perhaps -D/-U of NDEBUG, DEBUG, DEBUG_ASSERT, ...?
+dnl
+dnl --enable-debug
+dnl builds a separate set of debugging libraries in addition to the
+dnl normal (shared, static) libstdc++ binaries.
+dnl
+dnl --disable-debug
+dnl builds only one (non-debug) version of libstdc++.
+dnl
+dnl --enable-debug-flags=FLAGS
+dnl iff --enable-debug == yes, then use FLAGS to build the debug library.
+dnl
dnl + Usage: GLIBCPP_ENABLE_DEBUG[(DEFAULT)]
dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
dnl defaults to `no'.
@@ -1062,7 +1066,7 @@ AC_DEFUN(GLIBCPP_ENABLE_DEBUG, [dnl
define([GLIBCPP_ENABLE_DEBUG_DEFAULT], ifelse($1, yes, yes, no))dnl
AC_ARG_ENABLE(debug,
changequote(<<, >>)dnl
-<< --enable-debug extra debugging, turn off optimization [default=>>GLIBCPP_ENABLE_DEBUG_DEFAULT],
+<< --enable-debug build extra debug library [default=>>GLIBCPP_ENABLE_DEBUG_DEFAULT],
changequote([, ])dnl
[case "${enableval}" in
yes) enable_debug=yes ;;
@@ -1070,17 +1074,56 @@ changequote([, ])dnl
*) AC_MSG_ERROR([Unknown argument to enable/disable extra debugging]) ;;
esac],
enable_debug=GLIBCPP_ENABLE_DEBUG_DEFAULT)dnl
+AC_MSG_CHECKING([for additional debug build])
+AC_MSG_RESULT($enable_debug)
+AM_CONDITIONAL(GLIBCPP_BUILD_DEBUG, test "$enable_debug" = yes)
+])
+
+
+dnl Check for explicit debug flags.
+dnl
+dnl GLIBCPP_ENABLE_DEBUG_FLAGS
+dnl
+dnl --enable-debug-flags='-O1'
+dnl is a general method for passing flags to be used when
+dnl building debug libraries with --enable-debug.
+dnl
+dnl --disable-debug-flags does nothing.
+dnl + Usage: GLIBCPP_ENABLE_DEBUG_FLAGS(default flags)
+dnl If "default flags" is an empty string (or "none"), the effect is
+dnl the same as --disable or --enable=no.
+AC_DEFUN(GLIBCPP_ENABLE_DEBUG_FLAGS, [dnl
+define([GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT], ifelse($1,,, $1))dnl
+AC_ARG_ENABLE(debug_flags,
+changequote(<<, >>)dnl
+<< --enable-debug-flags=FLAGS pass compiler FLAGS when building debug
+ library;[default=>>GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT],
+changequote([, ])dnl
+[case "${enableval}" in
+ none) ;;
+ -*) enable_debug_flags="${enableval}" ;;
+ *) AC_MSG_ERROR([Unknown argument to extra debugging flags]) ;;
+ esac],
+enable_debug_flags=GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT)dnl
dnl Option parsed, now set things appropriately
-case "${enable_debug}" in
- yes)
- DEBUG_FLAGS='-O0 -ggdb3'
- ;;
- no)
- DEBUG_FLAGS='-g'
+case x"$enable_debug" in
+ xyes)
+ case "$enable_debug_flags" in
+ none)
+ DEBUG_FLAGS="-g3 -O0";;
+ -*) #valid input
+ DEBUG_FLAGS="${enableval}"
+ esac
+ ;;
+ xno)
+ DEBUG_FLAGS=""
;;
esac
AC_SUBST(DEBUG_FLAGS)
+
+AC_MSG_CHECKING([for debug build flags])
+AC_MSG_RESULT($DEBUG_FLAGS)
])
@@ -1101,39 +1144,36 @@ dnl If "default flags" is an empty string (or "none"), the effect is
dnl the same as --disable or --enable=no.
AC_DEFUN(GLIBCPP_ENABLE_CXX_FLAGS, [dnl
define([GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT], ifelse($1,,, $1))dnl
-AC_ARG_ENABLE(cxx-flags,
+AC_MSG_CHECKING([for extra compiler flags for building])
+AC_ARG_ENABLE(cxx_flags,
changequote(<<, >>)dnl
<< --enable-cxx-flags=FLAGS pass compiler FLAGS when building library;
- [default=>>GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT],
+ [default=>>GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT],
changequote([, ])dnl
-[case "x$enableval" in
- xyes)
- AC_MSG_ERROR([--enable-cxx-flags needs compiler flags as arguments]) ;;
- xno|x)
- enable_cxx_flags='' ;;
- *)
- enable_cxx_flags="$enableval" ;;
- esac],
-enable_cxx_flags='GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT')
-
-dnl Thinko on my part during design. This kludge is the workaround.
-if test "$enable_cxx_flags" = "none"; then
- enable_cxx_flags='';
-fi
+[case "x$enable_cxx_flags" in
+ xyes)
+ AC_MSG_ERROR([--enable-cxx-flags needs compiler flags as arguments]) ;;
+ xno | xnone | x)
+ enable_cxx_flags='' ;;
+ *)
+ enable_cxx_flags="$enableval" ;;
+esac],
+enable_cxx_flags=GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT)
dnl Run through flags (either default or command-line) and set anything
dnl extra (e.g., #defines) that must accompany particular g++ options.
if test -n "$enable_cxx_flags"; then
- for f in $enable_cxx_flags; do
- case "$f" in
- -fhonor-std) ;;
- -*) ;;
- *) # and we're trying to pass /what/ exactly?
- AC_MSG_ERROR([compiler flags start with a -]) ;;
- esac
- done
+ for f in $enable_cxx_flags; do
+ case "$f" in
+ -fhonor-std) ;;
+ -*) ;;
+ *) # and we're trying to pass /what/ exactly?
+ AC_MSG_ERROR([compiler flags start with a -]) ;;
+ esac
+ done
fi
EXTRA_CXX_FLAGS="$enable_cxx_flags"
+AC_MSG_RESULT($EXTRA_CXX_FLAGS)
AC_SUBST(EXTRA_CXX_FLAGS)
])
@@ -1298,24 +1338,20 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
glibcpp_localedir=${glibcpp_builddir}/po/share/locale
AC_SUBST(glibcpp_localedir)
- # For the time being, transform ctype_noninline.h to ctype_members_char.cc
-# CCTYPE_CHAR_CC=config/${os_include_dir}/ctype_noninline.h
-
AC_SUBST(USE_NLS)
AC_SUBST(CLOCALE_H)
AC_SUBST(CCODECVT_H)
AC_SUBST(CMESSAGES_H)
+ AC_SUBST(CCODECVT_CC)
+ AC_SUBST(CCOLLATE_CC)
+ AC_SUBST(CCTYPE_CC)
+ AC_SUBST(CMESSAGES_CC)
+ AC_SUBST(CMONEY_CC)
+ AC_SUBST(CNUMERIC_CC)
AC_SUBST(CTIME_H)
- AC_LINK_FILES($CLOCALE_CC, src/c++locale.cc)
- AC_LINK_FILES($CCODECVT_CC, src/codecvt_members.cc)
- AC_LINK_FILES($CCOLLATE_CC, src/collate_members.cc)
-# AC_LINK_FILES($CCTYPE_CHAR_CC, src/ctype_members_char.cc)
- AC_LINK_FILES($CCTYPE_CC, src/ctype_members.cc)
- AC_LINK_FILES($CMESSAGES_CC, src/messages_members.cc)
- AC_LINK_FILES($CMONEY_CC, src/monetary_members.cc)
- AC_LINK_FILES($CNUMERIC_CC, src/numeric_members.cc)
- AC_LINK_FILES($CTIME_CC, src/time_members.cc)
- AC_LINK_FILES($CLOCALE_INTERNAL_H, src/c++locale_internal.h)
+ AC_SUBST(CTIME_CC)
+ AC_SUBST(CLOCALE_CC)
+ AC_SUBST(CLOCALE_INTERNAL_H)
])
@@ -1416,7 +1452,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [
esac
AC_SUBST(CSTDIO_H)
AC_SUBST(BASIC_FILE_H)
- AC_LINK_FILES($BASIC_FILE_CC, src/basic_file.cc)
+ AC_SUBST(BASIC_FILE_CC)
# 2000-08-04 bkoz hack
CCODECVT_C=config/io/c_io_libio_codecvt.c
@@ -1499,7 +1535,7 @@ void foo()
}
EOF
old_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="-S -fexceptions"
+ CXXFLAGS=-S
if AC_TRY_EVAL(ac_compile); then
if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then
enable_sjlj_exceptions=yes
@@ -1735,21 +1771,20 @@ AC_DEFUN(GLIBCPP_ENABLE_LONG_LONG, [dnl
dnl
-dnl Check for what kind of C headers to use.
+dnl Check for what type of C headers to use.
dnl
dnl GLIBCPP_ENABLE_CHEADERS
dnl --enable-cheaders= [does stuff].
dnl --disable-cheaders [does not do anything, really].
-dnl + This will eventually need to be 'c_shadow' by default.
dnl + Usage: GLIBCPP_ENABLE_CHEADERS[(DEFAULT)]
-dnl Where DEFAULT is either `c' or `c_std' or 'c_shadow'.
+dnl Where DEFAULT is either `c' or `c_std'.
dnl If ommitted, it defaults to `c_std'.
AC_DEFUN(GLIBCPP_ENABLE_CHEADERS, [dnl
define([GLIBCPP_ENABLE_CHEADERS_DEFAULT], ifelse($1, c_std, c_std, c_std))dnl
AC_MSG_CHECKING([for c header strategy to use])
AC_ARG_ENABLE(cheaders,
changequote(<<, >>)dnl
-<< --enable-cheaders construct "C" header files for g++ [default=>>GLIBCPP_ENABLE_CHEADERS_DEFAULT],
+<< --enable-cheaders=MODEL construct "C" header files for g++ [default=>>GLIBCPP_ENABLE_CHEADERS_DEFAULT],
changequote([, ])
[case "$enableval" in
c)
@@ -1758,9 +1793,6 @@ changequote([, ])
c_std)
enable_cheaders=c_std
;;
- c_shadow)
- enable_cheaders=c_shadow
- ;;
*) AC_MSG_ERROR([Unknown argument to enable/disable "C" headers])
;;
esac],
@@ -1769,9 +1801,6 @@ changequote([, ])
dnl Option parsed, now set things appropriately
case "$enable_cheaders" in
- c_shadow)
- C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_shadow'
- ;;
c_std)
C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std'
;;
@@ -1820,7 +1849,6 @@ dnl TOPLEVEL_INCLUDES
dnl LIBMATH_INCLUDES
dnl LIBSUPCXX_INCLUDES
dnl LIBIO_INCLUDES
-dnl CSHADOW_INCLUDES
dnl
dnl GLIBCPP_EXPORT_INCLUDES
AC_DEFUN(GLIBCPP_EXPORT_INCLUDES, [
@@ -1859,7 +1887,7 @@ AC_DEFUN(GLIBCPP_EXPORT_FLAGS, [
OPTIMIZE_CXXFLAGS=
AC_SUBST(OPTIMIZE_CXXFLAGS)
- WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings -Winline'
+ WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings'
AC_SUBST(WARN_FLAGS)
])
@@ -2041,8 +2069,9 @@ dnl string, '#' otherwise
dnl Check for headers for, and arguments to, the setrlimit() function.
dnl Used only in testsuite_hooks.h.
AC_DEFUN(GLIBCPP_CHECK_SETRLIMIT_ancilliary, [
- AC_TRY_COMPILE([#include <sys/resource.h>
- #include <unistd.h>
+ AC_TRY_COMPILE([#include <unistd.h>
+ #include <sys/time.h>
+ #include <sys/resource.h>
], [ int f = RLIMIT_$1 ; ],
[glibcpp_mresult=1], [glibcpp_mresult=0])
AC_DEFINE_UNQUOTED(HAVE_MEMLIMIT_$1, $glibcpp_mresult,
@@ -2050,7 +2079,7 @@ AC_DEFUN(GLIBCPP_CHECK_SETRLIMIT_ancilliary, [
])
AC_DEFUN(GLIBCPP_CHECK_SETRLIMIT, [
setrlimit_have_headers=yes
- AC_CHECK_HEADERS(sys/resource.h unistd.h,
+ AC_CHECK_HEADERS(unistd.h sys/time.h sys/resource.h,
[],
setrlimit_have_headers=no)
# If don't have the headers, then we can't run the tests now, and we
@@ -2064,8 +2093,9 @@ AC_DEFUN(GLIBCPP_CHECK_SETRLIMIT, [
# Check for rlimit, setrlimit.
AC_CACHE_VAL(ac_setrlimit, [
- AC_TRY_COMPILE([#include <sys/resource.h>
- #include <unistd.h>
+ AC_TRY_COMPILE([#include <unistd.h>
+ #include <sys/time.h>
+ #include <sys/resource.h>
],
[ struct rlimit r; setrlimit(0, &r);],
[ac_setrlimit=yes], [ac_setrlimit=no])
@@ -2089,18 +2119,30 @@ dnl the testsuite_hooks.h header.
dnl
dnl GLIBCPP_CONFIGURE_TESTSUITE [no args]
AC_DEFUN(GLIBCPP_CONFIGURE_TESTSUITE, [
- GLIBCPP_CHECK_SETRLIMIT
+ if test x"$GLIBCPP_IS_CROSS_COMPILING" = xfalse; then
+ # Do checks for memory limit functions.
+ GLIBCPP_CHECK_SETRLIMIT
- # Look for setenv, so that extended locale tests can be performed.
- GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
+ # Look for setenv, so that extended locale tests can be performed.
+ GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
+ fi
# Export file names for ABI checking.
- baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_triplet}/baseline_symbols.txt"
- AC_SUBST(baseline_file)
+ baseline_dir="${glibcpp_srcdir}/config/abi/${abi_baseline_pair}\$(MULTISUBDIR)"
+ AC_SUBST(baseline_dir)
- # Don't do ABI checking unless native.
- AM_CONDITIONAL(GLIBCPP_BUILD_ABI_CHECK,
- test x"$build" = x"$host" && test -z "$with_cross_host")
+ # Determine if checking the ABI is desirable.
+ if test x$enable_symvers = xno; then
+ enable_abi_check=no
+ else
+ case "$host" in
+ *-*-cygwin*)
+ enable_abi_check=no ;;
+ *)
+ enable_abi_check=yes ;;
+ esac
+ fi
+ AM_CONDITIONAL(GLIBCPP_TEST_ABI, test "$enable_abi_check" = yes)
])
@@ -2114,6 +2156,45 @@ AC_DEFUN([AC_LIBTOOL_DLOPEN])
AC_DEFUN([AC_PROG_LD])
])
+dnl
+dnl Check whether S_ISREG (Posix) or S_IFREG is available in <sys/stat.h>.
+dnl
+
+AC_DEFUN(GLIBCPP_CHECK_S_ISREG_OR_S_IFREG, [
+ AC_CACHE_VAL(glibcpp_cv_S_ISREG, [
+ AC_TRY_LINK([#include <sys/stat.h>],
+ [struct stat buffer; fstat(0, &buffer); S_ISREG(buffer.st_mode); ],
+ [glibcpp_cv_S_ISREG=yes],
+ [glibcpp_cv_S_ISREG=no])
+ ])
+ AC_CACHE_VAL(glibcpp_cv_S_IFREG, [
+ AC_TRY_LINK([#include <sys/stat.h>],
+ [struct stat buffer; fstat(0, &buffer); S_IFREG & buffer.st_mode; ],
+ [glibcpp_cv_S_IFREG=yes],
+ [glibcpp_cv_S_IFREG=no])
+ ])
+ if test x$glibcpp_cv_S_ISREG = xyes; then
+ AC_DEFINE(HAVE_S_ISREG)
+ elif test x$glibcpp_cv_S_IFREG = xyes; then
+ AC_DEFINE(HAVE_S_IFREG)
+ fi
+])
+
+dnl
+dnl Check whether poll is available in <poll.h>.
+dnl
+
+AC_DEFUN(GLIBCPP_CHECK_POLL, [
+ AC_CACHE_VAL(glibcpp_cv_POLL, [
+ AC_TRY_COMPILE([#include <poll.h>],
+ [struct pollfd pfd[1]; pfd[0].events = POLLIN; poll(pfd, 1, 0); ],
+ [glibcpp_cv_POLL=yes],
+ [glibcpp_cv_POLL=no])
+ ])
+ if test x$glibcpp_cv_POLL = xyes; then
+ AC_DEFINE(HAVE_POLL)
+ fi
+])
# Check whether LC_MESSAGES is available in <locale.h>.
# Ulrich Drepper <drepper@cygnus.com>, 1995.
@@ -2203,12 +2284,14 @@ if test x$enable_shared = xno ||
fi
# Check to see if libgcc_s exists, indicating that shared libgcc is possible.
-AC_MSG_CHECKING([for shared libgcc])
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS=' -lgcc_s'
-AC_TRY_LINK( , [return 0], glibcpp_shared_libgcc=yes, glibcpp_shared_libgcc=no)
-CFLAGS="$ac_save_CFLAGS"
-AC_MSG_RESULT($glibcpp_shared_libgcc)
+if test $enable_symvers != no; then
+ AC_MSG_CHECKING([for shared libgcc])
+ ac_save_CFLAGS="$CFLAGS"
+ CFLAGS=' -lgcc_s'
+ AC_TRY_LINK(, [return 0], glibcpp_shared_libgcc=yes, glibcpp_shared_libgcc=no)
+ CFLAGS="$ac_save_CFLAGS"
+ AC_MSG_RESULT($glibcpp_shared_libgcc)
+fi
# For GNU ld, we need at least this version. It's 2.12 in the same format
# as the tested-for version. See GLIBCPP_CHECK_LINKER_FEATURES for more.
@@ -2248,15 +2331,15 @@ fi
dnl Everything parsed; figure out what file to use.
case $enable_symvers in
no)
- LINKER_MAP=config/linker-map.dummy
+ SYMVER_MAP=config/linker-map.dummy
;;
gnu)
- LINKER_MAP=config/linker-map.gnu
+ SYMVER_MAP=config/linker-map.gnu
AC_DEFINE(_GLIBCPP_SYMVER)
;;
esac
-AC_LINK_FILES($LINKER_MAP, src/linker.map)
+AC_SUBST(SYMVER_MAP)
AM_CONDITIONAL(GLIBCPP_BUILD_VERSIONED_SHLIB, test $enable_symvers != no)
AC_MSG_CHECKING([versioning on shared library symbols])
AC_MSG_RESULT($enable_symvers)
diff --git a/contrib/libstdc++/aclocal.m4 b/contrib/libstdc++/aclocal.m4
index ef2d3a7..ecc43b4 100644
--- a/contrib/libstdc++/aclocal.m4
+++ b/contrib/libstdc++/aclocal.m4
@@ -11,7 +11,7 @@ dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
dnl PARTICULAR PURPOSE.
dnl
-dnl Initialize configure bits.
+dnl Initialize basic configure bits, set toplevel_srcdir for Makefiles.
dnl
dnl GLIBCPP_TOPREL_CONFIGURE
AC_DEFUN(GLIBCPP_TOPREL_CONFIGURE, [
@@ -49,13 +49,10 @@ AC_DEFUN(GLIBCPP_TOPREL_CONFIGURE, [
])
dnl
-dnl Initialize configure bits.
+dnl Initialize the rest of the library configury.
dnl
dnl GLIBCPP_CONFIGURE
AC_DEFUN(GLIBCPP_CONFIGURE, [
-
-#possibly test for the presence of the compiler sources here?
-
# Export build and source directories.
# These need to be absolute paths, yet at the same time need to
# canonicalize only relative paths, because then amd will not unmount
@@ -282,8 +279,7 @@ AC_DEFUN(GLIBCPP_CHECK_COMPILER_FEATURES, [
# this is the suspicious part
CXXFLAGS=''
fi
- if test x"$ac_fdsections" = x"yes" &&
- test x"$enable_debug" = x"no"; then
+ if test x"$ac_fdsections" = x"yes"; then
SECTION_FLAGS='-ffunction-sections -fdata-sections'
fi
AC_MSG_RESULT($ac_fdsections)
@@ -376,7 +372,7 @@ AC_DEFUN(GLIBCPP_CHECK_LINKER_FEATURES, [
fi
# Set linker optimization flags.
- if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then
+ if test x"$with_gnu_ld" = x"yes"; then
OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
fi
@@ -744,7 +740,6 @@ AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT, [
fi
])
-
dnl
dnl Check to see what the underlying c library is like
dnl These checks need to do two things:
@@ -760,7 +755,7 @@ dnl GLIBCPP_CHECK_STDLIB_SUPPORT
AC_DEFUN(GLIBCPP_CHECK_STDLIB_SUPPORT, [
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
+ CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtold)
GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtof)
@@ -802,7 +797,7 @@ dnl GLIBCPP_CHECK_MATH_SUPPORT
AC_DEFUN(GLIBCPP_CHECK_MATH_SUPPORT, [
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
+ CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
dnl Check libm
AC_CHECK_LIB(m, sin, libm="-lm")
@@ -927,7 +922,11 @@ AC_DEFUN(GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT, [
AC_CHECK_FUNCS([__signbitl], , [LIBMATHOBJS="$LIBMATHOBJS signbitl.lo"])
fi
+ if test -n "$LIBMATHOBJS"; then
+ need_libmath=yes
+ fi
AC_SUBST(LIBMATHOBJS)
+ AM_CONDITIONAL(GLIBCPP_BUILD_LIBMATH, test "$need_libmath" = yes)
])
@@ -937,9 +936,9 @@ dnl compilation, pick them up here.
dnl
dnl GLIBCPP_CHECK_TARGET
AC_DEFUN(GLIBCPP_CHECK_TARGET, [
- . [$]{glibcpp_basedir}/configure.target
- AC_MSG_RESULT(CPU config directory is $cpu_include_dir)
- AC_MSG_RESULT(OS config directory is $os_include_dir)
+ . [$]{glibcpp_basedir}/configure.target
+ AC_MSG_RESULT(CPU config directory is $cpu_include_dir)
+ AC_MSG_RESULT(OS config directory is $os_include_dir)
])
@@ -953,6 +952,8 @@ dnl Define HAVE_MBSTATE_T if mbstate_t is not in wchar.h
dnl
dnl GLIBCPP_CHECK_WCHAR_T_SUPPORT
AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
+ dnl Wide characters disabled by default.
+ enable_wchar_t=no
dnl Test wchar.h for mbstate_t, which is needed for char_traits and
dnl others even if wchar_t support is not on.
@@ -998,7 +999,7 @@ AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
ac_wfuncs=no)
dnl Checks for names injected into std:: by the c_std headers.
- AC_CHECK_FUNCS(btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
+ AC_CHECK_FUNCS(btowc wctob fgetwc fgetws fputwc fputws fwide \
fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
@@ -1043,30 +1044,33 @@ AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
dnl At the moment, only enable wchar_t specializations if all the
dnl above support is present.
- AC_MSG_CHECKING([for enabled wchar_t specializations])
if test x"$ac_isoC99_wchar_t" = xyes &&
test x"$ac_XPG2_wchar_t" = xyes; then
- AC_DEFINE(_GLIBCPP_USE_WCHAR_T)
- AC_MSG_RESULT("yes")
- else
- AC_MSG_RESULT("no")
+ AC_DEFINE(_GLIBCPP_USE_WCHAR_T)
+ enable_wchar_t=yes
fi
- else
- dnl Wide characters disabled by the user.
- AC_MSG_WARN([wchar_t support disabled.])
fi
+ AC_MSG_CHECKING([for enabled wchar_t specializations])
+ AC_MSG_RESULT($enable_wchar_t)
+ AM_CONDITIONAL(GLIBCPP_TEST_WCHAR_T, test "$enable_wchar_t" = yes)
])
dnl
-dnl Check for special debugging mode; not for production use.
+dnl Check to see if debugging libraries are to be built.
dnl
dnl GLIBCPP_ENABLE_DEBUG
-dnl --enable-debug sets '-ggdb3 -O0'.
-dnl --disable-debug sets '-g' and whatever optimization options the
-dnl compiler can handle.
-dnl + --enable-maintainer-mode automatically defaults this to on.
-dnl + Perhaps -D/-U of NDEBUG, DEBUG, DEBUG_ASSERT, ...?
+dnl
+dnl --enable-debug
+dnl builds a separate set of debugging libraries in addition to the
+dnl normal (shared, static) libstdc++ binaries.
+dnl
+dnl --disable-debug
+dnl builds only one (non-debug) version of libstdc++.
+dnl
+dnl --enable-debug-flags=FLAGS
+dnl iff --enable-debug == yes, then use FLAGS to build the debug library.
+dnl
dnl + Usage: GLIBCPP_ENABLE_DEBUG[(DEFAULT)]
dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
dnl defaults to `no'.
@@ -1074,7 +1078,7 @@ AC_DEFUN(GLIBCPP_ENABLE_DEBUG, [dnl
define([GLIBCPP_ENABLE_DEBUG_DEFAULT], ifelse($1, yes, yes, no))dnl
AC_ARG_ENABLE(debug,
changequote(<<, >>)dnl
-<< --enable-debug extra debugging, turn off optimization [default=>>GLIBCPP_ENABLE_DEBUG_DEFAULT],
+<< --enable-debug build extra debug library [default=>>GLIBCPP_ENABLE_DEBUG_DEFAULT],
changequote([, ])dnl
[case "${enableval}" in
yes) enable_debug=yes ;;
@@ -1082,17 +1086,56 @@ changequote([, ])dnl
*) AC_MSG_ERROR([Unknown argument to enable/disable extra debugging]) ;;
esac],
enable_debug=GLIBCPP_ENABLE_DEBUG_DEFAULT)dnl
+AC_MSG_CHECKING([for additional debug build])
+AC_MSG_RESULT($enable_debug)
+AM_CONDITIONAL(GLIBCPP_BUILD_DEBUG, test "$enable_debug" = yes)
+])
+
+
+dnl Check for explicit debug flags.
+dnl
+dnl GLIBCPP_ENABLE_DEBUG_FLAGS
+dnl
+dnl --enable-debug-flags='-O1'
+dnl is a general method for passing flags to be used when
+dnl building debug libraries with --enable-debug.
+dnl
+dnl --disable-debug-flags does nothing.
+dnl + Usage: GLIBCPP_ENABLE_DEBUG_FLAGS(default flags)
+dnl If "default flags" is an empty string (or "none"), the effect is
+dnl the same as --disable or --enable=no.
+AC_DEFUN(GLIBCPP_ENABLE_DEBUG_FLAGS, [dnl
+define([GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT], ifelse($1,,, $1))dnl
+AC_ARG_ENABLE(debug_flags,
+changequote(<<, >>)dnl
+<< --enable-debug-flags=FLAGS pass compiler FLAGS when building debug
+ library;[default=>>GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT],
+changequote([, ])dnl
+[case "${enableval}" in
+ none) ;;
+ -*) enable_debug_flags="${enableval}" ;;
+ *) AC_MSG_ERROR([Unknown argument to extra debugging flags]) ;;
+ esac],
+enable_debug_flags=GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT)dnl
dnl Option parsed, now set things appropriately
-case "${enable_debug}" in
- yes)
- DEBUG_FLAGS='-O0 -ggdb3'
- ;;
- no)
- DEBUG_FLAGS='-g'
+case x"$enable_debug" in
+ xyes)
+ case "$enable_debug_flags" in
+ none)
+ DEBUG_FLAGS="-g3 -O0";;
+ -*) #valid input
+ DEBUG_FLAGS="${enableval}"
+ esac
+ ;;
+ xno)
+ DEBUG_FLAGS=""
;;
esac
AC_SUBST(DEBUG_FLAGS)
+
+AC_MSG_CHECKING([for debug build flags])
+AC_MSG_RESULT($DEBUG_FLAGS)
])
@@ -1113,39 +1156,36 @@ dnl If "default flags" is an empty string (or "none"), the effect is
dnl the same as --disable or --enable=no.
AC_DEFUN(GLIBCPP_ENABLE_CXX_FLAGS, [dnl
define([GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT], ifelse($1,,, $1))dnl
-AC_ARG_ENABLE(cxx-flags,
+AC_MSG_CHECKING([for extra compiler flags for building])
+AC_ARG_ENABLE(cxx_flags,
changequote(<<, >>)dnl
<< --enable-cxx-flags=FLAGS pass compiler FLAGS when building library;
- [default=>>GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT],
+ [default=>>GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT],
changequote([, ])dnl
-[case "x$enableval" in
- xyes)
- AC_MSG_ERROR([--enable-cxx-flags needs compiler flags as arguments]) ;;
- xno|x)
- enable_cxx_flags='' ;;
- *)
- enable_cxx_flags="$enableval" ;;
- esac],
-enable_cxx_flags='GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT')
-
-dnl Thinko on my part during design. This kludge is the workaround.
-if test "$enable_cxx_flags" = "none"; then
- enable_cxx_flags='';
-fi
+[case "x$enable_cxx_flags" in
+ xyes)
+ AC_MSG_ERROR([--enable-cxx-flags needs compiler flags as arguments]) ;;
+ xno | xnone | x)
+ enable_cxx_flags='' ;;
+ *)
+ enable_cxx_flags="$enableval" ;;
+esac],
+enable_cxx_flags=GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT)
dnl Run through flags (either default or command-line) and set anything
dnl extra (e.g., #defines) that must accompany particular g++ options.
if test -n "$enable_cxx_flags"; then
- for f in $enable_cxx_flags; do
- case "$f" in
- -fhonor-std) ;;
- -*) ;;
- *) # and we're trying to pass /what/ exactly?
- AC_MSG_ERROR([compiler flags start with a -]) ;;
- esac
- done
+ for f in $enable_cxx_flags; do
+ case "$f" in
+ -fhonor-std) ;;
+ -*) ;;
+ *) # and we're trying to pass /what/ exactly?
+ AC_MSG_ERROR([compiler flags start with a -]) ;;
+ esac
+ done
fi
EXTRA_CXX_FLAGS="$enable_cxx_flags"
+AC_MSG_RESULT($EXTRA_CXX_FLAGS)
AC_SUBST(EXTRA_CXX_FLAGS)
])
@@ -1310,24 +1350,20 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
glibcpp_localedir=${glibcpp_builddir}/po/share/locale
AC_SUBST(glibcpp_localedir)
- # For the time being, transform ctype_noninline.h to ctype_members_char.cc
-# CCTYPE_CHAR_CC=config/${os_include_dir}/ctype_noninline.h
-
AC_SUBST(USE_NLS)
AC_SUBST(CLOCALE_H)
AC_SUBST(CCODECVT_H)
AC_SUBST(CMESSAGES_H)
+ AC_SUBST(CCODECVT_CC)
+ AC_SUBST(CCOLLATE_CC)
+ AC_SUBST(CCTYPE_CC)
+ AC_SUBST(CMESSAGES_CC)
+ AC_SUBST(CMONEY_CC)
+ AC_SUBST(CNUMERIC_CC)
AC_SUBST(CTIME_H)
- AC_LINK_FILES($CLOCALE_CC, src/c++locale.cc)
- AC_LINK_FILES($CCODECVT_CC, src/codecvt_members.cc)
- AC_LINK_FILES($CCOLLATE_CC, src/collate_members.cc)
-# AC_LINK_FILES($CCTYPE_CHAR_CC, src/ctype_members_char.cc)
- AC_LINK_FILES($CCTYPE_CC, src/ctype_members.cc)
- AC_LINK_FILES($CMESSAGES_CC, src/messages_members.cc)
- AC_LINK_FILES($CMONEY_CC, src/monetary_members.cc)
- AC_LINK_FILES($CNUMERIC_CC, src/numeric_members.cc)
- AC_LINK_FILES($CTIME_CC, src/time_members.cc)
- AC_LINK_FILES($CLOCALE_INTERNAL_H, src/c++locale_internal.h)
+ AC_SUBST(CTIME_CC)
+ AC_SUBST(CLOCALE_CC)
+ AC_SUBST(CLOCALE_INTERNAL_H)
])
@@ -1428,7 +1464,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [
esac
AC_SUBST(CSTDIO_H)
AC_SUBST(BASIC_FILE_H)
- AC_LINK_FILES($BASIC_FILE_CC, src/basic_file.cc)
+ AC_SUBST(BASIC_FILE_CC)
# 2000-08-04 bkoz hack
CCODECVT_C=config/io/c_io_libio_codecvt.c
@@ -1511,7 +1547,7 @@ void foo()
}
EOF
old_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="-S -fexceptions"
+ CXXFLAGS=-S
if AC_TRY_EVAL(ac_compile); then
if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then
enable_sjlj_exceptions=yes
@@ -1747,21 +1783,20 @@ AC_DEFUN(GLIBCPP_ENABLE_LONG_LONG, [dnl
dnl
-dnl Check for what kind of C headers to use.
+dnl Check for what type of C headers to use.
dnl
dnl GLIBCPP_ENABLE_CHEADERS
dnl --enable-cheaders= [does stuff].
dnl --disable-cheaders [does not do anything, really].
-dnl + This will eventually need to be 'c_shadow' by default.
dnl + Usage: GLIBCPP_ENABLE_CHEADERS[(DEFAULT)]
-dnl Where DEFAULT is either `c' or `c_std' or 'c_shadow'.
+dnl Where DEFAULT is either `c' or `c_std'.
dnl If ommitted, it defaults to `c_std'.
AC_DEFUN(GLIBCPP_ENABLE_CHEADERS, [dnl
define([GLIBCPP_ENABLE_CHEADERS_DEFAULT], ifelse($1, c_std, c_std, c_std))dnl
AC_MSG_CHECKING([for c header strategy to use])
AC_ARG_ENABLE(cheaders,
changequote(<<, >>)dnl
-<< --enable-cheaders construct "C" header files for g++ [default=>>GLIBCPP_ENABLE_CHEADERS_DEFAULT],
+<< --enable-cheaders=MODEL construct "C" header files for g++ [default=>>GLIBCPP_ENABLE_CHEADERS_DEFAULT],
changequote([, ])
[case "$enableval" in
c)
@@ -1770,9 +1805,6 @@ changequote([, ])
c_std)
enable_cheaders=c_std
;;
- c_shadow)
- enable_cheaders=c_shadow
- ;;
*) AC_MSG_ERROR([Unknown argument to enable/disable "C" headers])
;;
esac],
@@ -1781,9 +1813,6 @@ changequote([, ])
dnl Option parsed, now set things appropriately
case "$enable_cheaders" in
- c_shadow)
- C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_shadow'
- ;;
c_std)
C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std'
;;
@@ -1832,7 +1861,6 @@ dnl TOPLEVEL_INCLUDES
dnl LIBMATH_INCLUDES
dnl LIBSUPCXX_INCLUDES
dnl LIBIO_INCLUDES
-dnl CSHADOW_INCLUDES
dnl
dnl GLIBCPP_EXPORT_INCLUDES
AC_DEFUN(GLIBCPP_EXPORT_INCLUDES, [
@@ -1871,7 +1899,7 @@ AC_DEFUN(GLIBCPP_EXPORT_FLAGS, [
OPTIMIZE_CXXFLAGS=
AC_SUBST(OPTIMIZE_CXXFLAGS)
- WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings -Winline'
+ WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings'
AC_SUBST(WARN_FLAGS)
])
@@ -2053,8 +2081,9 @@ dnl string, '#' otherwise
dnl Check for headers for, and arguments to, the setrlimit() function.
dnl Used only in testsuite_hooks.h.
AC_DEFUN(GLIBCPP_CHECK_SETRLIMIT_ancilliary, [
- AC_TRY_COMPILE([#include <sys/resource.h>
- #include <unistd.h>
+ AC_TRY_COMPILE([#include <unistd.h>
+ #include <sys/time.h>
+ #include <sys/resource.h>
], [ int f = RLIMIT_$1 ; ],
[glibcpp_mresult=1], [glibcpp_mresult=0])
AC_DEFINE_UNQUOTED(HAVE_MEMLIMIT_$1, $glibcpp_mresult,
@@ -2062,7 +2091,7 @@ AC_DEFUN(GLIBCPP_CHECK_SETRLIMIT_ancilliary, [
])
AC_DEFUN(GLIBCPP_CHECK_SETRLIMIT, [
setrlimit_have_headers=yes
- AC_CHECK_HEADERS(sys/resource.h unistd.h,
+ AC_CHECK_HEADERS(unistd.h sys/time.h sys/resource.h,
[],
setrlimit_have_headers=no)
# If don't have the headers, then we can't run the tests now, and we
@@ -2076,8 +2105,9 @@ AC_DEFUN(GLIBCPP_CHECK_SETRLIMIT, [
# Check for rlimit, setrlimit.
AC_CACHE_VAL(ac_setrlimit, [
- AC_TRY_COMPILE([#include <sys/resource.h>
- #include <unistd.h>
+ AC_TRY_COMPILE([#include <unistd.h>
+ #include <sys/time.h>
+ #include <sys/resource.h>
],
[ struct rlimit r; setrlimit(0, &r);],
[ac_setrlimit=yes], [ac_setrlimit=no])
@@ -2101,18 +2131,30 @@ dnl the testsuite_hooks.h header.
dnl
dnl GLIBCPP_CONFIGURE_TESTSUITE [no args]
AC_DEFUN(GLIBCPP_CONFIGURE_TESTSUITE, [
- GLIBCPP_CHECK_SETRLIMIT
+ if test x"$GLIBCPP_IS_CROSS_COMPILING" = xfalse; then
+ # Do checks for memory limit functions.
+ GLIBCPP_CHECK_SETRLIMIT
- # Look for setenv, so that extended locale tests can be performed.
- GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
+ # Look for setenv, so that extended locale tests can be performed.
+ GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
+ fi
# Export file names for ABI checking.
- baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_triplet}/baseline_symbols.txt"
- AC_SUBST(baseline_file)
+ baseline_dir="${glibcpp_srcdir}/config/abi/${abi_baseline_pair}\$(MULTISUBDIR)"
+ AC_SUBST(baseline_dir)
- # Don't do ABI checking unless native.
- AM_CONDITIONAL(GLIBCPP_BUILD_ABI_CHECK,
- test x"$build" = x"$host" && test -z "$with_cross_host")
+ # Determine if checking the ABI is desirable.
+ if test x$enable_symvers = xno; then
+ enable_abi_check=no
+ else
+ case "$host" in
+ *-*-cygwin*)
+ enable_abi_check=no ;;
+ *)
+ enable_abi_check=yes ;;
+ esac
+ fi
+ AM_CONDITIONAL(GLIBCPP_TEST_ABI, test "$enable_abi_check" = yes)
])
@@ -2126,6 +2168,45 @@ AC_DEFUN([AC_LIBTOOL_DLOPEN])
AC_DEFUN([AC_PROG_LD])
])
+dnl
+dnl Check whether S_ISREG (Posix) or S_IFREG is available in <sys/stat.h>.
+dnl
+
+AC_DEFUN(GLIBCPP_CHECK_S_ISREG_OR_S_IFREG, [
+ AC_CACHE_VAL(glibcpp_cv_S_ISREG, [
+ AC_TRY_LINK([#include <sys/stat.h>],
+ [struct stat buffer; fstat(0, &buffer); S_ISREG(buffer.st_mode); ],
+ [glibcpp_cv_S_ISREG=yes],
+ [glibcpp_cv_S_ISREG=no])
+ ])
+ AC_CACHE_VAL(glibcpp_cv_S_IFREG, [
+ AC_TRY_LINK([#include <sys/stat.h>],
+ [struct stat buffer; fstat(0, &buffer); S_IFREG & buffer.st_mode; ],
+ [glibcpp_cv_S_IFREG=yes],
+ [glibcpp_cv_S_IFREG=no])
+ ])
+ if test x$glibcpp_cv_S_ISREG = xyes; then
+ AC_DEFINE(HAVE_S_ISREG)
+ elif test x$glibcpp_cv_S_IFREG = xyes; then
+ AC_DEFINE(HAVE_S_IFREG)
+ fi
+])
+
+dnl
+dnl Check whether poll is available in <poll.h>.
+dnl
+
+AC_DEFUN(GLIBCPP_CHECK_POLL, [
+ AC_CACHE_VAL(glibcpp_cv_POLL, [
+ AC_TRY_COMPILE([#include <poll.h>],
+ [struct pollfd pfd[1]; pfd[0].events = POLLIN; poll(pfd, 1, 0); ],
+ [glibcpp_cv_POLL=yes],
+ [glibcpp_cv_POLL=no])
+ ])
+ if test x$glibcpp_cv_POLL = xyes; then
+ AC_DEFINE(HAVE_POLL)
+ fi
+])
# Check whether LC_MESSAGES is available in <locale.h>.
# Ulrich Drepper <drepper@cygnus.com>, 1995.
@@ -2215,12 +2296,14 @@ if test x$enable_shared = xno ||
fi
# Check to see if libgcc_s exists, indicating that shared libgcc is possible.
-AC_MSG_CHECKING([for shared libgcc])
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS=' -lgcc_s'
-AC_TRY_LINK( , [return 0], glibcpp_shared_libgcc=yes, glibcpp_shared_libgcc=no)
-CFLAGS="$ac_save_CFLAGS"
-AC_MSG_RESULT($glibcpp_shared_libgcc)
+if test $enable_symvers != no; then
+ AC_MSG_CHECKING([for shared libgcc])
+ ac_save_CFLAGS="$CFLAGS"
+ CFLAGS=' -lgcc_s'
+ AC_TRY_LINK(, [return 0], glibcpp_shared_libgcc=yes, glibcpp_shared_libgcc=no)
+ CFLAGS="$ac_save_CFLAGS"
+ AC_MSG_RESULT($glibcpp_shared_libgcc)
+fi
# For GNU ld, we need at least this version. It's 2.12 in the same format
# as the tested-for version. See GLIBCPP_CHECK_LINKER_FEATURES for more.
@@ -2260,15 +2343,15 @@ fi
dnl Everything parsed; figure out what file to use.
case $enable_symvers in
no)
- LINKER_MAP=config/linker-map.dummy
+ SYMVER_MAP=config/linker-map.dummy
;;
gnu)
- LINKER_MAP=config/linker-map.gnu
+ SYMVER_MAP=config/linker-map.gnu
AC_DEFINE(_GLIBCPP_SYMVER)
;;
esac
-AC_LINK_FILES($LINKER_MAP, src/linker.map)
+AC_SUBST(SYMVER_MAP)
AM_CONDITIONAL(GLIBCPP_BUILD_VERSIONED_SHLIB, test $enable_symvers != no)
AC_MSG_CHECKING([versioning on shared library symbols])
AC_MSG_RESULT($enable_symvers)
diff --git a/contrib/libstdc++/config.h.in b/contrib/libstdc++/config.h.in
index 88768e5..4d9dec3 100644
--- a/contrib/libstdc++/config.h.in
+++ b/contrib/libstdc++/config.h.in
@@ -38,6 +38,18 @@
// Define if gthr-default.h exists (meaning that threading support is enabled).
#undef HAVE_GTHR_DEFAULT
+// Define if drand48 exists.
+#undef HAVE_DRAND48
+
+// Define if getpagesize exists.
+#undef HAVE_GETPAGESIZE
+
+// Define if setenv exists.
+#undef HAVE_SETENV
+
+// Define if sigsetjmp exists.
+#undef HAVE_SIGSETJMP
+
// Define if mbstate_t exists in wchar.h.
#undef HAVE_MBSTATE_T
@@ -101,6 +113,15 @@
// Define if the compiler/host combination has __builtin_sqrtl
#undef HAVE___BUILTIN_SQRTL
+// Define if poll is available in <poll.h>.
+#undef HAVE_POLL
+
+// Define if S_ISREG (Posix) is available in <sys/stat.h>.
+#undef HAVE_S_ISREG
+
+// Define if S_IFREG is available in <sys/stat.h>.
+#undef HAVE_S_IFREG
+
// Define if LC_MESSAGES is available in <locale.h>.
#undef HAVE_LC_MESSAGES
@@ -731,6 +752,12 @@
/* Define if you have the <string.h> header file. */
#undef HAVE_STRING_H
+/* Define if you have the <sys/filio.h> header file. */
+#undef HAVE_SYS_FILIO_H
+
+/* Define if you have the <sys/ioctl.h> header file. */
+#undef HAVE_SYS_IOCTL_H
+
/* Define if you have the <sys/isa_defs.h> header file. */
#undef HAVE_SYS_ISA_DEFS_H
@@ -743,6 +770,9 @@
/* Define if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
+/* Define if you have the <sys/time.h> header file. */
+#undef HAVE_SYS_TIME_H
+
/* Define if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
diff --git a/contrib/libstdc++/config/abi/alpha-freebsd5/baseline_symbols.txt b/contrib/libstdc++/config/abi/alpha-freebsd5/baseline_symbols.txt
new file mode 100644
index 0000000..6afb865
--- /dev/null
+++ b/contrib/libstdc++/config/abi/alpha-freebsd5/baseline_symbols.txt
@@ -0,0 +1,3073 @@
+FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.2
+FUNC:_ZNKSaIcE7addressERKc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE7addressERc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE7addressERKw@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE7addressERw@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13get_allocatorEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE2atEm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5c_strEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5emptyEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_foldEmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_iendEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCPP_3.2
+FUNC:_ZNKSi6gcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs13get_allocatorEv@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs2atEm@@GLIBCPP_3.2
+FUNC:_ZNKSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4copyEPcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5c_strEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5emptyEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6substrEmm@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_foldEmm@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_iendEv@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNKSs8_M_checkEm@@GLIBCPP_3.2
+FUNC:_ZNKSs8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSs9_M_ibeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSsixEm@@GLIBCPP_3.2
+FUNC:_ZNKSt10istrstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10ostrstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10ostrstream6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE15_M_date_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE15_M_time_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE19_M_days_abbreviatedEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE20_M_date_time_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE21_M_months_abbreviatedEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE6_M_putEPcmPKcPK2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE7_M_ampmEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE7_M_daysEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE9_M_monthsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE15_M_date_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE15_M_time_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE19_M_days_abbreviatedEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE20_M_date_time_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE21_M_months_abbreviatedEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE6_M_putEPwmPKwPK2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE7_M_ampmEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE7_M_daysEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11logic_error4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt12strstreambuf6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_filebufIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_filebufIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13runtime_error4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4gptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4pptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5ebackEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5egptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5epptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5pbaseEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE6getlocEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIcSt11char_traitsIcEE6_M_getEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIwSt11char_traitsIwEE6_M_getEv@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_scan_isEmPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE11do_scan_notEmPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEPKcS2_Pm@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEmc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_scan_isEmPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEPwPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_toupperEPwPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_toupperEw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE11do_scan_notEmPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE19_M_convert_to_wmaskEm@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEPKwS2_Pm@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEmw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE9do_narrowEwc@@GLIBCPP_3.2
+FUNC:_ZNKSt6locale4nameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt6localeeqERKS_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE5do_inERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE6do_outERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERKS0_PKcS5_m@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERKS0_PKcS5_m@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE4hashEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE7compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE7do_hashEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE9transformEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE4hashEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE7compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE7do_hashEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE9transformEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intERKSscRSt8ios_basePcS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_widen_intES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatERKSscPKcPcS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_widen_floatES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIdEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIeEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEclRSt8ios_basePcPKcRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertES3_RSt8ios_basecPKci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_group_intERKSswRSt8ios_basePwS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_widen_intES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatERKSswPKwPwS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_widen_floatES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIdEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIeEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwlRSt8ios_basePwPKwRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertES3_RSt8ios_basewPKwi@@GLIBCPP_3.2
+FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE20_M_convert_from_charEPc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE3getEiiiRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6localePKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE5closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE6do_getEiiiRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE7do_openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE8do_closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE18_M_convert_to_charERKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE20_M_convert_from_charEPc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE3getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6localePKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE5closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE7do_openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE8do_closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE11do_truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE12do_falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE8truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE9falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE11do_truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE12do_falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE8truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE9falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numERS3_S5_RiiimRKSt5ctypeIcERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameERS3_S5_RiPPKcmRSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numERS3_S5_RiiimRKSt5ctypeIwERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameERS3_S5_RiPPKwmRSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmPKcSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8valarrayImE4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE10exceptionsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3tieEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4fillEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE6narrowEcc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE10exceptionsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3badEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3eofEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3tieEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4failEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4fillEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4goodEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE6narrowEwc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE7rdstateEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEcvPvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEntEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9exception4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9strstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9strstream6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info10__do_catchEPKS_PPvj@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info14__is_pointer_pEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info15__is_function_pEv@@GLIBCPP_3.2
+FUNC:_ZNSaIcE10deallocateEPcm@@GLIBCPP_3.2
+FUNC:_ZNSaIcE7destroyEPc@@GLIBCPP_3.2
+FUNC:_ZNSaIcE8allocateEmPKv@@GLIBCPP_3.2
+FUNC:_ZNSaIcE9constructEPcRKc@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwE10deallocateEPwm@@GLIBCPP_3.2
+FUNC:_ZNSaIwE7destroyEPw@@GLIBCPP_3.2
+FUNC:_ZNSaIwE8allocateEmPKv@@GLIBCPP_3.2
+FUNC:_ZNSaIwE9constructEPwRKw@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEmwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS2_EES8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS3_S2_EES6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE2atEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_disposeERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refcopyEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refdataEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep13_M_set_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep15_M_set_sharableEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep7_M_grabERKS1_S5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_m@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_RepixEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EE@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEmm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_dataEPw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_leakEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_NS4_IPKwS2_EES9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwS8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_RKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S5_S5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S6_S6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_mw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEmmm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9push_backEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEw@@GLIBCPP_3.2
+FUNC:_ZNSdC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSdC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSdD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPclc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERc@@GLIBCPP_3.2
+FUNC:_ZNSi3getEv@@GLIBCPP_3.2
+FUNC:_ZNSi4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSi4readEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSi5tellgEv@@GLIBCPP_3.2
+FUNC:_ZNSi5ungetEv@@GLIBCPP_3.2
+FUNC:_ZNSi6ignoreEli@@GLIBCPP_3.2
+FUNC:_ZNSi6sentryC1ERSib@@GLIBCPP_3.2
+FUNC:_ZNSi6sentryC2ERSib@@GLIBCPP_3.2
+FUNC:_ZNSi6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPclc@@GLIBCPP_3.2
+FUNC:_ZNSi7putbackEc@@GLIBCPP_3.2
+FUNC:_ZNSi8readsomeEPcl@@GLIBCPP_3.2
+FUNC:_ZNSiC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSiC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSiD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSiD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSiD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSiS_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSirsERPv@@GLIBCPP_3.2
+FUNC:_ZNSirsERb@@GLIBCPP_3.2
+FUNC:_ZNSirsERd@@GLIBCPP_3.2
+FUNC:_ZNSirsERe@@GLIBCPP_3.2
+FUNC:_ZNSirsERf@@GLIBCPP_3.2
+FUNC:_ZNSirsERi@@GLIBCPP_3.2
+FUNC:_ZNSirsERj@@GLIBCPP_3.2
+FUNC:_ZNSirsERl@@GLIBCPP_3.2
+FUNC:_ZNSirsERm@@GLIBCPP_3.2
+FUNC:_ZNSirsERs@@GLIBCPP_3.2
+FUNC:_ZNSirsERt@@GLIBCPP_3.2
+FUNC:_ZNSirsERx@@GLIBCPP_3.2
+FUNC:_ZNSirsERy@@GLIBCPP_3.2
+FUNC:_ZNSo3putEc@@GLIBCPP_3.2
+FUNC:_ZNSo5flushEv@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSo5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSo5writeEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC1ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC2ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSoD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSoD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSoD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSoS_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPKv@@GLIBCPP_3.2
+FUNC:_ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSolsEb@@GLIBCPP_3.2
+FUNC:_ZNSolsEd@@GLIBCPP_3.2
+FUNC:_ZNSolsEe@@GLIBCPP_3.2
+FUNC:_ZNSolsEf@@GLIBCPP_3.2
+FUNC:_ZNSolsEi@@GLIBCPP_3.2
+FUNC:_ZNSolsEj@@GLIBCPP_3.2
+FUNC:_ZNSolsEl@@GLIBCPP_3.2
+FUNC:_ZNSolsEm@@GLIBCPP_3.2
+FUNC:_ZNSolsEs@@GLIBCPP_3.2
+FUNC:_ZNSolsEt@@GLIBCPP_3.2
+FUNC:_ZNSolsEx@@GLIBCPP_3.2
+FUNC:_ZNSolsEy@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_M_leak_hardEv@@GLIBCPP_3.2
+FUNC:_ZNSs12_S_constructEmcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_S_empty_repEv@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcPKcS1_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcS_S_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs2atEm@@GLIBCPP_3.2
+FUNC:_ZNSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_destroyERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_disposeERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_refcopyEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_refdataEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep13_M_set_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep15_M_set_sharableEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep7_M_grabERKSaIcES2_@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep8_M_cloneERKSaIcEm@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep9_S_createEmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_RepixEm@@GLIBCPP_3.2
+FUNC:_ZNSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSs4swapERSs@@GLIBCPP_3.2
+FUNC:_ZNSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSs5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEmm@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmmc@@GLIBCPP_3.2
+FUNC:_ZNSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEm@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEmc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_dataEPc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_leakEv@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcm@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_mc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmPKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmmc@@GLIBCPP_3.2
+FUNC:_ZNSs7reserveEm@@GLIBCPP_3.2
+FUNC:_ZNSs9_M_mutateEmmm@@GLIBCPP_3.2
+FUNC:_ZNSs9push_backEc@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsaSEPKc@@GLIBCPP_3.2
+FUNC:_ZNSsaSERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsaSEc@@GLIBCPP_3.2
+FUNC:_ZNSsixEm@@GLIBCPP_3.2
+FUNC:_ZNSspLEPKc@@GLIBCPP_3.2
+FUNC:_ZNSspLERKSs@@GLIBCPP_3.2
+FUNC:_ZNSspLEc@@GLIBCPP_3.2
+FUNC:_ZNSt10__num_base13_S_format_intERKSt8ios_basePccc@@GLIBCPP_3.2
+FUNC:_ZNSt10__num_base15_S_format_floatERKSt8ios_basePccl@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10money_base20_S_construct_patternEccc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstream6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcE23_M_initialize_timepunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwE23_M_initialize_timepunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE10sys_ungetcEi@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE12_M_open_modeESt13_Ios_OpenmodeRiS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE16showmanyc_helperEv@@GLIBCPP_3.2.3
+FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE6xsgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE6xsputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE7seekposElSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_getcEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEP7__sFILESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmodeb@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC1EPP13pthread_mutex@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC2EPP13pthread_mutex@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7_M_freeEPc@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8_M_allocEm@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8_M_setupEPcS0_l@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPFPvmEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKal@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKhl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPalS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPclS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPhlS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1El@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPFPvmEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKal@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKhl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPalS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPclS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPhlS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2El@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE17_M_output_unshiftEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_really_overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_set_determinateEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_is_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_underflow_commonEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE20_M_set_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPclRlS4_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE17_M_output_unshiftEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_really_overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_set_determinateEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_is_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_underflow_commonEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE20_M_set_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwlRlS4_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwlw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_Ew@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEli@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC1ERS2_b@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC2ERS2_b@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwlw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7putbackEw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRS2_S3_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERPv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERd@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERe@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERf@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERm@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERs@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERt@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERx@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERy@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC1ERS2_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC2ERS2_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRS2_S3_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPKv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEf@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEm@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEs@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE14_M_in_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_buf_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_pback_createEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE16_M_pback_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5gbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6snextcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7pubsyncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7sungetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8in_availEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8pubimbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9sputbackcEc@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE14_M_in_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_buf_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_pback_createEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE16_M_pback_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5gbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5pbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputcEw@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6sbumpcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6snextcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7pubsyncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7sungetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8in_availEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9sputbackcEw@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEmm@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE14_M_really_syncEmm@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10reallocateEPvmm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_round_upEm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE14_S_chunk_allocEmRi@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE17_S_freelist_indexEm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE8allocateEm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE9_S_refillEm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcE13classic_tableEv@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC1EPKmbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC1EPiPKmbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EPKmbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EPiPKmbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_@@GLIBCPP_3.2
+FUNC:_ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale11_M_coalesceERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale21_S_normalize_categoryEj@@GLIBCPP_3.2
+FUNC:_ZNSt6locale2idC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale2idC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPNS_5facetE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1EPPNS_5facetEmb@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1ERKS0_m@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2EPPNS_5facetEmb@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2ERKS0_m@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet16_M_add_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet17_S_clone_c_localeERPi@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet18_S_create_c_localeERPiPKcS1_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_M_remove_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERPi@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale6globalERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale7classicEv@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1EPNS_5_ImplE@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_PKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2EPNS_5_ImplE@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_PKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeaSERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base13_M_grow_wordsEi@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base15sync_with_stdioEb@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base17_M_call_callbacksENS_5eventE@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base20_M_dispose_callbacksEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4Init13_S_ios_createEb@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4Init14_S_ios_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base6xallocEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7_M_initEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwE22_M_initialize_numpunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC1ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC2ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEixEm@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5rdbufEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE7copyfmtERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE3tieEPSt13basic_ostreamIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4fillEw@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5rdbufEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE7copyfmtERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt9strstream6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD2Ev@@GLIBCPP_3.2
+FUNC:_ZSt10unexpectedv@@GLIBCPP_3.2
+FUNC:_ZSt13set_terminatePFvvE@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIlEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vImEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIxEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIyEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14set_unexpectedPFvvE@@GLIBCPP_3.2
+FUNC:_ZSt15set_new_handlerPFvvE@@GLIBCPP_3.2
+FUNC:_ZSt16__throw_bad_castv@@GLIBCPP_3.2
+FUNC:_ZSt17__throw_bad_allocv@@GLIBCPP_3.2
+FUNC:_ZSt18__throw_bad_typeidv@@GLIBCPP_3.2
+FUNC:_ZSt18uncaught_exceptionv@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_range_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_domain_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_length_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_out_of_rangePKc@@GLIBCPP_3.2
+FUNC:_ZSt21__throw_bad_exceptionv@@GLIBCPP_3.2
+FUNC:_ZSt21__throw_runtime_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt22__throw_overflow_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt23__throw_underflow_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt24__throw_invalid_argumentPKc@@GLIBCPP_3.2
+FUNC:_ZSt24__uninitialized_copy_auxIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsET0_T_SA_S9_12__false_type@@GLIBCPP_3.2
+FUNC:_ZSt26__uninitialized_fill_n_auxIPSsmSsET_S1_T0_RKT1_12__false_type@@GLIBCPP_3.2
+FUNC:_ZSt2wsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt2wsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endlIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt5flushIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt10moneypunctIcLb0EEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt10moneypunctIwLb0EEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt11__timepunctIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt11__timepunctIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt5ctypeIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt5ctypeIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7codecvtIcc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7codecvtIwc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7collateIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7collateIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8messagesIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8messagesIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8numpunctIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8numpunctIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9terminatev@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIcLb0EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIcLb1EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIwLb0EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIwLb1EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt11__timepunctIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt11__timepunctIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt5ctypeIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7collateIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7collateIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8messagesIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8messagesIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8numpunctIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8numpunctIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKa@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKh@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_a@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIfcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIfwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_S3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_@@GLIBCPP_3.2.1
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ERKS6_S8_@@GLIBCPP_3.2.1
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ra@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Rh@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIfcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIfwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZThn16_NSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSiD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSiD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSoD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSoD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10istrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10istrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10ostrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10ostrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZdaPv@@GLIBCPP_3.2
+FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZdlPv@@GLIBCPP_3.2
+FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znam@@GLIBCPP_3.2
+FUNC:_ZnamRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znwm@@GLIBCPP_3.2
+FUNC:_ZnwmRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:__cxa_allocate_exception@@CXXABI_1.2
+FUNC:__cxa_bad_cast@@CXXABI_1.2
+FUNC:__cxa_bad_typeid@@CXXABI_1.2
+FUNC:__cxa_begin_catch@@CXXABI_1.2
+FUNC:__cxa_call_unexpected@@CXXABI_1.2
+FUNC:__cxa_current_exception_type@@CXXABI_1.2
+FUNC:__cxa_demangle@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append_char@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_clear@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_delete@@CXXABI_1.2
+FUNC:__cxa_dyn_string_eq@@CXXABI_1.2
+FUNC:__cxa_dyn_string_init@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert_char@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_new@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_release@@CXXABI_1.2
+FUNC:__cxa_dyn_string_resize@@CXXABI_1.2
+FUNC:__cxa_dyn_string_substring@@CXXABI_1.2
+FUNC:__cxa_end_catch@@CXXABI_1.2
+FUNC:__cxa_free_exception@@CXXABI_1.2
+FUNC:__cxa_get_globals@@CXXABI_1.2
+FUNC:__cxa_get_globals_fast@@CXXABI_1.2
+FUNC:__cxa_guard_abort@@CXXABI_1.2.1
+FUNC:__cxa_guard_acquire@@CXXABI_1.2.1
+FUNC:__cxa_guard_release@@CXXABI_1.2.1
+FUNC:__cxa_pure_virtual@@CXXABI_1.2
+FUNC:__cxa_rethrow@@CXXABI_1.2
+FUNC:__cxa_throw@@CXXABI_1.2
+FUNC:__cxa_vec_cctor@@CXXABI_1.2
+FUNC:__cxa_vec_cleanup@@CXXABI_1.2
+FUNC:__cxa_vec_ctor@@CXXABI_1.2
+FUNC:__cxa_vec_delete2@@CXXABI_1.2
+FUNC:__cxa_vec_delete3@@CXXABI_1.2
+FUNC:__cxa_vec_delete@@CXXABI_1.2
+FUNC:__cxa_vec_dtor@@CXXABI_1.2
+FUNC:__cxa_vec_new2@@CXXABI_1.2
+FUNC:__cxa_vec_new3@@CXXABI_1.2
+FUNC:__cxa_vec_new@@CXXABI_1.2
+FUNC:__dynamic_cast@@CXXABI_1.2
+FUNC:__gxx_personality_v0@@CXXABI_1.2
+FUNC:__signbitf@@GLIBCPP_3.2.1
+FUNC:atan2l@@GLIBCPP_3.2.1
+FUNC:coshl@@GLIBCPP_3.2.1
+FUNC:cosl@@GLIBCPP_3.2.1
+FUNC:expl@@GLIBCPP_3.2.1
+FUNC:hypotl@@GLIBCPP_3.2.1
+FUNC:log10l@@GLIBCPP_3.2.1
+FUNC:logl@@GLIBCPP_3.2.1
+FUNC:nan@@GLIBCPP_3.2.1
+FUNC:powl@@GLIBCPP_3.2.1
+FUNC:sinhl@@GLIBCPP_3.2.1
+FUNC:sinl@@GLIBCPP_3.2.1
+FUNC:sqrtl@@GLIBCPP_3.2.1
+FUNC:tanhl@@GLIBCPP_3.2.1
+FUNC:tanl@@GLIBCPP_3.2.1
+OBJECT:0:CXXABI_1.2
+OBJECT:0:CXXABI_1.2.1
+OBJECT:0:GLIBCPP_3.2
+OBJECT:0:GLIBCPP_3.2.1
+OBJECT:0:GLIBCPP_3.2.2
+OBJECT:0:GLIBCPP_3.2.3
+OBJECT:104:_ZTVSt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:112:_ZNSt11__timepunctIcE12_S_timezonesE@@GLIBCPP_3.2
+OBJECT:112:_ZNSt11__timepunctIwE12_S_timezonesE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSd@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt9strstream@@GLIBCPP_3.2
+OBJECT:128:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_free_listE@@GLIBCPP_3.2
+OBJECT:128:_ZTVN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt12strstreambuf@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt8bad_cast@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt8ios_base@@GLIBCPP_3.2
+OBJECT:136:_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:136:_ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9bad_alloc@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9exception@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9strstream@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9time_base@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9type_info@@GLIBCPP_3.2
+OBJECT:14:_ZTSSt7collateIcE@@GLIBCPP_3.2
+OBJECT:14:_ZTSSt7collateIwE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10__num_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10bad_typeid@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10ctype_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10istrstream@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10money_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10ostrstream@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8messagesIcE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8messagesIwE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_get_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_get_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_put_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_put_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_get_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_get_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_put_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_put_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt9codecvt_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt9codecvt_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_get_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_get_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_put_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_put_w@@GLIBCPP_3.2
+OBJECT:16:_ZTINSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10__num_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10ctype_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10money_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt12codecvt_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt13messages_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:16:_ZTISt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:16:_ZTISt8ios_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt9exception@@GLIBCPP_3.2
+OBJECT:16:_ZTISt9time_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt9type_info@@GLIBCPP_3.2
+OBJECT:16:_ZTIa@@GLIBCPP_3.2
+OBJECT:16:_ZTIb@@GLIBCPP_3.2
+OBJECT:16:_ZTIc@@GLIBCPP_3.2
+OBJECT:16:_ZTId@@GLIBCPP_3.2
+OBJECT:16:_ZTIe@@GLIBCPP_3.2
+OBJECT:16:_ZTIf@@GLIBCPP_3.2
+OBJECT:16:_ZTIh@@GLIBCPP_3.2
+OBJECT:16:_ZTIi@@GLIBCPP_3.2
+OBJECT:16:_ZTIj@@GLIBCPP_3.2
+OBJECT:16:_ZTIl@@GLIBCPP_3.2
+OBJECT:16:_ZTIm@@GLIBCPP_3.2
+OBJECT:16:_ZTIs@@GLIBCPP_3.2
+OBJECT:16:_ZTIt@@GLIBCPP_3.2
+OBJECT:16:_ZTIv@@GLIBCPP_3.2
+OBJECT:16:_ZTIw@@GLIBCPP_3.2
+OBJECT:16:_ZTIx@@GLIBCPP_3.2
+OBJECT:16:_ZTIy@@GLIBCPP_3.2
+OBJECT:16:_ZTSSt11logic_error@@GLIBCPP_3.2
+OBJECT:16:_ZTSSt11range_error@@GLIBCPP_3.2
+OBJECT:16:_ZTTSi@@GLIBCPP_3.2
+OBJECT:16:_ZTTSo@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12codecvt_base@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12domain_error@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12length_error@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12out_of_range@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12strstreambuf@@GLIBCPP_3.2
+OBJECT:18:_ZTSNSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13bad_exception@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13messages_base@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13runtime_error@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt14overflow_error@@GLIBCPP_3.2
+OBJECT:1:_ZNSs4_Rep11_S_terminalE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIcLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIcLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIwLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIwLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt8ios_base4Init20_S_synced_with_stdioE@@GLIBCPP_3.2
+OBJECT:1:_ZSt7nothrow@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt15underflow_error@@GLIBCPP_3.2
+OBJECT:21:_ZTSSt16invalid_argument@@GLIBCPP_3.2
+OBJECT:224:_ZSt9facet_vec@@GLIBCPP_3.2
+OBJECT:22:_ZTSNSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:23:_ZNSt10__num_base8_S_atomsE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZNSt6locale5_Impl13_S_id_collateE@@GLIBCPP_3.2
+OBJECT:24:_ZNSt6locale5_Impl14_S_id_messagesE@@GLIBCPP_3.2
+OBJECT:24:_ZSt7ctype_w@@GLIBCPP_3.2
+OBJECT:24:_ZSt9collate_c@@GLIBCPP_3.2
+OBJECT:24:_ZSt9collate_w@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTINSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt10bad_typeid@@GLIBCPP_3.2
+OBJECT:24:_ZTISt10istrstream@@GLIBCPP_3.2
+OBJECT:24:_ZTISt10ostrstream@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11logic_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11range_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12domain_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12length_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12out_of_range@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12strstreambuf@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13bad_exception@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13runtime_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14overflow_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15underflow_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt16invalid_argument@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7collateIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7collateIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt8bad_cast@@GLIBCPP_3.2
+OBJECT:24:_ZTISt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9bad_alloc@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9strstream@@GLIBCPP_3.2
+OBJECT:256:_ZSt12_S_bit_count@@GLIBCPP_3.2
+OBJECT:256:_ZSt12_S_first_one@@GLIBCPP_3.2
+OBJECT:272:_ZSt4cerr@@GLIBCPP_3.2
+OBJECT:272:_ZSt4clog@@GLIBCPP_3.2
+OBJECT:272:_ZSt4cout@@GLIBCPP_3.2
+OBJECT:272:_ZSt5wcerr@@GLIBCPP_3.2
+OBJECT:272:_ZSt5wclog@@GLIBCPP_3.2
+OBJECT:272:_ZSt5wcout@@GLIBCPP_3.2
+OBJECT:280:_ZSt3cin@@GLIBCPP_3.2
+OBJECT:280:_ZSt4wcin@@GLIBCPP_3.2
+OBJECT:28:_ZTSSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:28:_ZTSSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:2:_ZTSa@@GLIBCPP_3.2
+OBJECT:2:_ZTSb@@GLIBCPP_3.2
+OBJECT:2:_ZTSc@@GLIBCPP_3.2
+OBJECT:2:_ZTSd@@GLIBCPP_3.2
+OBJECT:2:_ZTSe@@GLIBCPP_3.2
+OBJECT:2:_ZTSf@@GLIBCPP_3.2
+OBJECT:2:_ZTSh@@GLIBCPP_3.2
+OBJECT:2:_ZTSi@@GLIBCPP_3.2
+OBJECT:2:_ZTSj@@GLIBCPP_3.2
+OBJECT:2:_ZTSl@@GLIBCPP_3.2
+OBJECT:2:_ZTSm@@GLIBCPP_3.2
+OBJECT:2:_ZTSs@@GLIBCPP_3.2
+OBJECT:2:_ZTSt@@GLIBCPP_3.2
+OBJECT:2:_ZTSv@@GLIBCPP_3.2
+OBJECT:2:_ZTSw@@GLIBCPP_3.2
+OBJECT:2:_ZTSx@@GLIBCPP_3.2
+OBJECT:2:_ZTSy@@GLIBCPP_3.2
+OBJECT:32:_ZNSbIwSt11char_traitsIwESaIwEE20_S_empty_rep_storageE@@GLIBCPP_3.2
+OBJECT:32:_ZNSs20_S_empty_rep_storageE@@GLIBCPP_3.2
+OBJECT:32:_ZSt10messages_c@@GLIBCPP_3.2
+OBJECT:32:_ZSt10messages_w@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKa@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKb@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKc@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKd@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKe@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKf@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKh@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKi@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKj@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKl@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKm@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKs@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKt@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKv@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKw@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKx@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKy@@GLIBCPP_3.2
+OBJECT:32:_ZTIPa@@GLIBCPP_3.2
+OBJECT:32:_ZTIPb@@GLIBCPP_3.2
+OBJECT:32:_ZTIPc@@GLIBCPP_3.2
+OBJECT:32:_ZTIPd@@GLIBCPP_3.2
+OBJECT:32:_ZTIPe@@GLIBCPP_3.2
+OBJECT:32:_ZTIPf@@GLIBCPP_3.2
+OBJECT:32:_ZTIPh@@GLIBCPP_3.2
+OBJECT:32:_ZTIPi@@GLIBCPP_3.2
+OBJECT:32:_ZTIPj@@GLIBCPP_3.2
+OBJECT:32:_ZTIPl@@GLIBCPP_3.2
+OBJECT:32:_ZTIPm@@GLIBCPP_3.2
+OBJECT:32:_ZTIPs@@GLIBCPP_3.2
+OBJECT:32:_ZTIPt@@GLIBCPP_3.2
+OBJECT:32:_ZTIPv@@GLIBCPP_3.2
+OBJECT:32:_ZTIPw@@GLIBCPP_3.2
+OBJECT:32:_ZTIPx@@GLIBCPP_3.2
+OBJECT:32:_ZTIPy@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt10istrstream@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt10ostrstream@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTVNSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:32:_ZTVSt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:32:_ZTVSt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:32:_ZTVSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTVSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:33:_ZTSN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:34:_ZTSSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:36:_ZTSN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:36:_ZTSSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:36:_ZTSSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:37:_ZTSN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:37:_ZTSN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:38:_ZTSN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:3:_ZTSPa@@GLIBCPP_3.2
+OBJECT:3:_ZTSPb@@GLIBCPP_3.2
+OBJECT:3:_ZTSPc@@GLIBCPP_3.2
+OBJECT:3:_ZTSPd@@GLIBCPP_3.2
+OBJECT:3:_ZTSPe@@GLIBCPP_3.2
+OBJECT:3:_ZTSPf@@GLIBCPP_3.2
+OBJECT:3:_ZTSPh@@GLIBCPP_3.2
+OBJECT:3:_ZTSPi@@GLIBCPP_3.2
+OBJECT:3:_ZTSPj@@GLIBCPP_3.2
+OBJECT:3:_ZTSPl@@GLIBCPP_3.2
+OBJECT:3:_ZTSPm@@GLIBCPP_3.2
+OBJECT:3:_ZTSPs@@GLIBCPP_3.2
+OBJECT:3:_ZTSPt@@GLIBCPP_3.2
+OBJECT:3:_ZTSPv@@GLIBCPP_3.2
+OBJECT:3:_ZTSPw@@GLIBCPP_3.2
+OBJECT:3:_ZTSPx@@GLIBCPP_3.2
+OBJECT:3:_ZTSPy@@GLIBCPP_3.2
+OBJECT:3:_ZTSSd@@GLIBCPP_3.2
+OBJECT:3:_ZTSSi@@GLIBCPP_3.2
+OBJECT:3:_ZTSSo@@GLIBCPP_3.2
+OBJECT:408:_ZSt11timepunct_c@@GLIBCPP_3.2
+OBJECT:408:_ZSt11timepunct_w@@GLIBCPP_3.2
+OBJECT:40:_ZNSt6locale5_Impl11_S_id_ctypeE@@GLIBCPP_3.2
+OBJECT:40:_ZSt10numpunct_c@@GLIBCPP_3.2
+OBJECT:40:_ZTSN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVNSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt10bad_typeid@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt11logic_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt11range_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt12domain_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt12length_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt12out_of_range@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt13bad_exception@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt13runtime_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt14overflow_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt15underflow_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt16invalid_argument@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt8bad_cast@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt9bad_alloc@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt9exception@@GLIBCPP_3.2
+OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:41:_ZTSSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:46:_ZTSN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:46:_ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:46:_ZTSSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:48:_ZSt10numpunct_w@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10money_base18_S_default_patternE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_force_newE@@GLIBCPP_3.2.2
+OBJECT:4:_ZNSt6locale2id12_S_highwaterE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale3allE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale4noneE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale4timeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale5ctypeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale7collateE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale7numericE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale8messagesE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale8monetaryE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base10floatfieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base10scientificE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base11adjustfieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base18_S_local_word_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base2inE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3appE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3ateE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3begE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3curE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3decE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3endE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3hexE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3octE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3outE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base4Init16_S_ios_base_initE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base4leftE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5fixedE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5rightE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5truncE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6badbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6binaryE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6eofbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6skipwsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7failbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7goodbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7showposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7unitbufE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base8internalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base8showbaseE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9basefieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9boolalphaE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9showpointE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9uppercaseE@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKa@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKb@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKc@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKd@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKe@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKf@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKh@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKi@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKj@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKl@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKm@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKs@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKt@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKv@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKw@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKx@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKy@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt6locale5_Impl10_S_id_timeE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt6locale5_Impl13_S_id_numericE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt6locale5_Impl19_S_facet_categoriesE@@GLIBCPP_3.2
+OBJECT:56:_ZSt7ctype_c@@GLIBCPP_3.2
+OBJECT:56:_ZTISi@@GLIBCPP_3.2
+OBJECT:56:_ZTISo@@GLIBCPP_3.2
+OBJECT:56:_ZTISt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZTISt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZTISt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:56:_ZTISt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZTTSd@@GLIBCPP_3.2
+OBJECT:56:_ZTTSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt7collateIcE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt7collateIwE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt8messagesIcE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt8messagesIwE@@GLIBCPP_3.2
+OBJECT:576:_ZSt7buf_cin@@GLIBCPP_3.2
+OBJECT:576:_ZSt8buf_cerr@@GLIBCPP_3.2
+OBJECT:576:_ZSt8buf_cout@@GLIBCPP_3.2
+OBJECT:584:_ZSt8buf_wcin@@GLIBCPP_3.2
+OBJECT:584:_ZSt9buf_wcerr@@GLIBCPP_3.2
+OBJECT:584:_ZSt9buf_wcout@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt9type_info@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZNSt6locale5_Impl14_S_id_monetaryE@@GLIBCPP_3.2
+OBJECT:72:_ZSt13c_locale_impl@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_fc@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_fw@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_tc@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_tw@@GLIBCPP_3.2
+OBJECT:72:_ZTISd@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8messagesIcE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8messagesIwE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTVN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:72:_ZTVN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:72:_ZTVN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:72:_ZTVSt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:72:_ZTVSt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:72:_ZTVSt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:72:_ZTVSt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt9strstream@@GLIBCPP_3.2
+OBJECT:80:_ZTVSi@@GLIBCPP_3.2
+OBJECT:80:_ZTVSo@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt10istrstream@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt10ostrstream@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:88:_ZTVN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:88:_ZTVN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:88:_ZTVN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt11__timepunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt11__timepunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7collateIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7collateIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8messagesIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8messagesIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8numpunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8numpunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCPP_3.2
+OBJECT:8:_ZNSs4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSs4nposE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10__num_base11_S_atoms_inE@@GLIBCPP_3.2.3
+OBJECT:8:_ZNSt10__num_base12_S_atoms_outE@@GLIBCPP_3.2.3
+OBJECT:8:_ZNSt10ctype_base5alnumE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5alphaE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5cntrlE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5digitE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5graphE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5lowerE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5printE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5punctE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5spaceE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5upperE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base6xdigitE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt11__timepunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt11__timepunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_end_freeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_heap_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE13_S_start_freeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt5ctypeIcE10table_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt5ctypeIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt5ctypeIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale10_S_classicE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale17_S_num_categoriesE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale5facet11_S_c_localeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale9_S_globalE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7codecvtIcc11__mbstate_tE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7codecvtIwc11__mbstate_tE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7collateIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7collateIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8messagesIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8messagesIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8numpunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8numpunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZSt8c_locale@@GLIBCPP_3.2
+OBJECT:96:_ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:96:_ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
diff --git a/contrib/libstdc++/config/abi/alpha-linux-gnu/baseline_symbols.txt b/contrib/libstdc++/config/abi/alpha-linux-gnu/baseline_symbols.txt
new file mode 100644
index 0000000..b2df36d
--- /dev/null
+++ b/contrib/libstdc++/config/abi/alpha-linux-gnu/baseline_symbols.txt
@@ -0,0 +1,3031 @@
+FUNC:__cxa_allocate_exception@@CXXABI_1.2
+FUNC:__cxa_bad_cast@@CXXABI_1.2
+FUNC:__cxa_bad_typeid@@CXXABI_1.2
+FUNC:__cxa_begin_catch@@CXXABI_1.2
+FUNC:__cxa_call_unexpected@@CXXABI_1.2
+FUNC:__cxa_current_exception_type@@CXXABI_1.2
+FUNC:__cxa_demangle@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append_char@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append@@CXXABI_1.2
+FUNC:__cxa_dyn_string_clear@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy@@CXXABI_1.2
+FUNC:__cxa_dyn_string_delete@@CXXABI_1.2
+FUNC:__cxa_dyn_string_eq@@CXXABI_1.2
+FUNC:__cxa_dyn_string_init@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert_char@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert@@CXXABI_1.2
+FUNC:__cxa_dyn_string_new@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend@@CXXABI_1.2
+FUNC:__cxa_dyn_string_release@@CXXABI_1.2
+FUNC:__cxa_dyn_string_resize@@CXXABI_1.2
+FUNC:__cxa_dyn_string_substring@@CXXABI_1.2
+FUNC:__cxa_end_catch@@CXXABI_1.2
+FUNC:__cxa_free_exception@@CXXABI_1.2
+FUNC:__cxa_get_globals@@CXXABI_1.2
+FUNC:__cxa_get_globals_fast@@CXXABI_1.2
+FUNC:__cxa_pure_virtual@@CXXABI_1.2
+FUNC:__cxa_rethrow@@CXXABI_1.2
+FUNC:__cxa_throw@@CXXABI_1.2
+FUNC:__cxa_vec_cctor@@CXXABI_1.2
+FUNC:__cxa_vec_cleanup@@CXXABI_1.2
+FUNC:__cxa_vec_ctor@@CXXABI_1.2
+FUNC:__cxa_vec_delete2@@CXXABI_1.2
+FUNC:__cxa_vec_delete3@@CXXABI_1.2
+FUNC:__cxa_vec_delete@@CXXABI_1.2
+FUNC:__cxa_vec_dtor@@CXXABI_1.2
+FUNC:__cxa_vec_new2@@CXXABI_1.2
+FUNC:__cxa_vec_new3@@CXXABI_1.2
+FUNC:__cxa_vec_new@@CXXABI_1.2
+FUNC:__dynamic_cast@@CXXABI_1.2
+FUNC:__gxx_personality_v0@@CXXABI_1.2
+FUNC:_ZdaPv@@GLIBCPP_3.2
+FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZdlPv@@GLIBCPP_3.2
+FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.2
+FUNC:_Znam@@GLIBCPP_3.2
+FUNC:_ZnamRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE7addressERc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE7addressERKc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE7addressERKw@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE7addressERw@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13get_allocatorEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE2atEm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5c_strEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5emptyEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_foldEmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_iendEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCPP_3.2
+FUNC:_ZNKSi6gcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs13get_allocatorEv@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs2atEm@@GLIBCPP_3.2
+FUNC:_ZNKSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4copyEPcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5c_strEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5emptyEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6substrEmm@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_foldEmm@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_iendEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8_M_checkEm@@GLIBCPP_3.2
+FUNC:_ZNKSs9_M_ibeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSsixEm@@GLIBCPP_3.2
+FUNC:_ZNKSt10istrstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10ostrstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10ostrstream6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt11logic_error4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE15_M_date_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE15_M_time_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE19_M_days_abbreviatedEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE20_M_date_time_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE21_M_months_abbreviatedEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE6_M_putEPcmPKcPK2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE7_M_ampmEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE7_M_daysEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE9_M_monthsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE15_M_date_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE15_M_time_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE19_M_days_abbreviatedEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE20_M_date_time_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE21_M_months_abbreviatedEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE6_M_putEPwmPKwPK2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE7_M_ampmEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE7_M_daysEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt12strstreambuf6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_filebufIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_filebufIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13runtime_error4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4gptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4pptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5ebackEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5egptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5epptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5pbaseEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE6getlocEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIcSt11char_traitsIcEE6_M_getEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIwSt11char_traitsIwEE6_M_getEv@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_scan_isEtPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE11do_scan_notEtPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEPKcS2_Pt@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEtc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_scan_isEtPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEPwPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_toupperEPwPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_toupperEw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE11do_scan_notEtPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE19_M_convert_to_wmaskEt@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEPKwS2_Pt@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEtw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE9do_narrowEwc@@GLIBCPP_3.2
+FUNC:_ZNKSt6locale4nameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt6localeeqERKS_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE5do_inERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE6do_outERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERKS0_PKcS5_m@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERKS0_PKcS5_m@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE4hashEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE7compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE7do_hashEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE9transformEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE4hashEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE7compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE7do_hashEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE9transformEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_widen_intES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_widen_floatES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIdEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIeEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertES3_RSt8ios_basecPKci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_widen_intES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_widen_floatES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIdEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIeEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertES3_RSt8ios_basewPKwi@@GLIBCPP_3.2
+FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE20_M_convert_from_charEPc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE3getEiiiRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6localePKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE5closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE6do_getEiiiRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE7do_openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE8do_closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE18_M_convert_to_charERKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE20_M_convert_from_charEPc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE3getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6localePKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE5closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE7do_openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE8do_closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE11do_truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE12do_falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE8truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE9falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE11do_truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE12do_falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE8truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE9falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numERS3_S5_RiiimRKSt5ctypeIcERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameERS3_S5_RiPPKcmRSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numERS3_S5_RiiimRKSt5ctypeIwERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameERS3_S5_RiPPKwmRSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmPKcSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8valarrayImE4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE10exceptionsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3tieEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4fillEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE6narrowEcc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE10exceptionsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3badEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3eofEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3tieEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4failEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4fillEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4goodEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE6narrowEwc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE7rdstateEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEcvPvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEntEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9exception4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9strstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9strstream6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info10__do_catchEPKS_PPvj@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info14__is_pointer_pEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info15__is_function_pEv@@GLIBCPP_3.2
+FUNC:_ZNSaIcE10deallocateEPcm@@GLIBCPP_3.2
+FUNC:_ZNSaIcE7destroyEPc@@GLIBCPP_3.2
+FUNC:_ZNSaIcE8allocateEmPKv@@GLIBCPP_3.2
+FUNC:_ZNSaIcE9constructEPcRKc@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwE10deallocateEPwm@@GLIBCPP_3.2
+FUNC:_ZNSaIwE7destroyEPw@@GLIBCPP_3.2
+FUNC:_ZNSaIwE8allocateEmPKv@@GLIBCPP_3.2
+FUNC:_ZNSaIwE9constructEPwRKw@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEmwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS2_EES8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS3_S2_EES6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE2atEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_disposeERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refcopyEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refdataEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep13_M_set_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep15_M_set_sharableEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep7_M_grabERKS1_S5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_m@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_RepixEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEmm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EE@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_dataEPw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_leakEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_mw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_NS4_IPKwS2_EES9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwS8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_RKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S5_S5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S6_S6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEmmm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9push_backEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEw@@GLIBCPP_3.2
+FUNC:_ZNSdC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSdC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSdD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPclc@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi3getERc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSi3getEv@@GLIBCPP_3.2
+FUNC:_ZNSi4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSi4readEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSi5tellgEv@@GLIBCPP_3.2
+FUNC:_ZNSi5ungetEv@@GLIBCPP_3.2
+FUNC:_ZNSi6ignoreEli@@GLIBCPP_3.2
+FUNC:_ZNSi6sentryC1ERSib@@GLIBCPP_3.2
+FUNC:_ZNSi6sentryC2ERSib@@GLIBCPP_3.2
+FUNC:_ZNSi6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPclc@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi7putbackEc@@GLIBCPP_3.2
+FUNC:_ZNSi8readsomeEPcl@@GLIBCPP_3.2
+FUNC:_ZNSiC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSiC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSiD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSiD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSiD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSiS_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSirsERb@@GLIBCPP_3.2
+FUNC:_ZNSirsERd@@GLIBCPP_3.2
+FUNC:_ZNSirsERe@@GLIBCPP_3.2
+FUNC:_ZNSirsERf@@GLIBCPP_3.2
+FUNC:_ZNSirsERi@@GLIBCPP_3.2
+FUNC:_ZNSirsERj@@GLIBCPP_3.2
+FUNC:_ZNSirsERl@@GLIBCPP_3.2
+FUNC:_ZNSirsERm@@GLIBCPP_3.2
+FUNC:_ZNSirsERPv@@GLIBCPP_3.2
+FUNC:_ZNSirsERs@@GLIBCPP_3.2
+FUNC:_ZNSirsERt@@GLIBCPP_3.2
+FUNC:_ZNSirsERx@@GLIBCPP_3.2
+FUNC:_ZNSirsERy@@GLIBCPP_3.2
+FUNC:_ZNSo3putEc@@GLIBCPP_3.2
+FUNC:_ZNSo5flushEv@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSo5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSo5writeEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC1ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC2ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSoD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSoD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSoD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSolsEb@@GLIBCPP_3.2
+FUNC:_ZNSolsEd@@GLIBCPP_3.2
+FUNC:_ZNSolsEe@@GLIBCPP_3.2
+FUNC:_ZNSolsEf@@GLIBCPP_3.2
+FUNC:_ZNSolsEi@@GLIBCPP_3.2
+FUNC:_ZNSolsEj@@GLIBCPP_3.2
+FUNC:_ZNSolsEl@@GLIBCPP_3.2
+FUNC:_ZNSolsEm@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSoS_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPKv@@GLIBCPP_3.2
+FUNC:_ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSolsEs@@GLIBCPP_3.2
+FUNC:_ZNSolsEt@@GLIBCPP_3.2
+FUNC:_ZNSolsEx@@GLIBCPP_3.2
+FUNC:_ZNSolsEy@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_M_leak_hardEv@@GLIBCPP_3.2
+FUNC:_ZNSs12_S_constructEmcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_S_empty_repEv@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcPKcS1_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcS_S_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_@@GLIBCPP_3.2
+FUNC:_ZNSs2atEm@@GLIBCPP_3.2
+FUNC:_ZNSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_destroyERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_disposeERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_refcopyEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_refdataEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep13_M_set_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep15_M_set_sharableEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep7_M_grabERKSaIcES2_@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep8_M_cloneERKSaIcEm@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep9_S_createEmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_RepixEm@@GLIBCPP_3.2
+FUNC:_ZNSs4swapERSs@@GLIBCPP_3.2
+FUNC:_ZNSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSs5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEmm@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmmc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEm@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_dataEPc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_leakEv@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmmc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmPKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_mc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcm@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNSs7reserveEm@@GLIBCPP_3.2
+FUNC:_ZNSs9_M_mutateEmmm@@GLIBCPP_3.2
+FUNC:_ZNSs9push_backEc@@GLIBCPP_3.2
+FUNC:_ZNSsaSEc@@GLIBCPP_3.2
+FUNC:_ZNSsaSEPKc@@GLIBCPP_3.2
+FUNC:_ZNSsaSERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsixEm@@GLIBCPP_3.2
+FUNC:_ZNSspLEc@@GLIBCPP_3.2
+FUNC:_ZNSspLEPKc@@GLIBCPP_3.2
+FUNC:_ZNSspLERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10money_base20_S_construct_patternEccc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10__num_base13_S_format_intERKSt8ios_basePccc@@GLIBCPP_3.2
+FUNC:_ZNSt10__num_base15_S_format_floatERKSt8ios_basePccl@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstream6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcE23_M_initialize_timepunctEP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwE23_M_initialize_timepunctEP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE10sys_ungetcEi@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE12_M_open_modeESt13_Ios_OpenmodeRiS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE6xsgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE6xsputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE7seekposElSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_getcEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmodeb@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEP8_IO_FILESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC1EP15pthread_mutex_t@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7_M_freeEPc@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8_M_allocEm@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8_M_setupEPcS0_l@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1El@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPalS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPclS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPFPvmEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPhlS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKal@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKhl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2El@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPalS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPclS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPFPvmEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPhlS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKal@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKhl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE17_M_output_unshiftEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_really_overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_set_determinateEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_is_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_underflow_commonEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE20_M_set_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPclRlS4_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE17_M_output_unshiftEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_really_overflowEj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_set_determinateEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_is_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_underflow_commonEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE20_M_set_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwlRlS4_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE8overflowEj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwlw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_Ew@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreElj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC1ERS2_b@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC2ERS2_b@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwlw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7putbackEw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRS2_S3_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERd@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERe@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERf@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERm@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERPv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERs@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERt@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERx@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERy@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC1ERS2_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC2ERS2_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEf@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEm@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRS2_S3_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPKv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEs@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE14_M_in_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_buf_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_pback_createEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE16_M_pback_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5gbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6snextcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7pubsyncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7sungetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8in_availEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8pubimbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9sputbackcEc@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE14_M_in_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_buf_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_pback_createEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE16_M_pback_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5gbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5pbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputcEw@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6sbumpcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6snextcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7pubsyncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7sungetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8in_availEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8overflowEj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9sputbackcEw@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEmm@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE14_M_really_syncEmm@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10reallocateEPvmm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_round_upEm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE14_S_chunk_allocEmRi@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE17_S_freelist_indexEm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE8allocateEm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE9_S_refillEm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcE13classic_tableEv@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC1EP15__locale_structPKtbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC1EPKtbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EP15__locale_structPKtbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EPKtbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_@@GLIBCPP_3.2
+FUNC:_ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale11_M_coalesceERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale21_S_normalize_categoryEj@@GLIBCPP_3.2
+FUNC:_ZNSt6locale2idC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale2idC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet16_M_add_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet17_S_clone_c_localeERP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet18_S_create_c_localeERP15__locale_structPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_M_remove_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPNS_5facetE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1EPPNS_5facetEmb@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1ERKS0_m@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2EPPNS_5facetEmb@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2ERKS0_m@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale6globalERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale7classicEv@@GLIBCPP_3.2
+FUNC:_ZNSt6localeaSERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1EPNS_5_ImplE@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_PKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2EPNS_5_ImplE@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_PKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base13_M_grow_wordsEi@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base15sync_with_stdioEb@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base17_M_call_callbacksENS_5eventE@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base20_M_dispose_callbacksEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4Init13_S_ios_createEb@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4Init14_S_ios_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base6xallocEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7_M_initEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwE22_M_initialize_numpunctEP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC1ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC2ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEixEm@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5rdbufEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE7copyfmtERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE3tieEPSt13basic_ostreamIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4fillEw@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5rdbufEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE7copyfmtERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt9strstream6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD2Ev@@GLIBCPP_3.2
+FUNC:_Znwm@@GLIBCPP_3.2
+FUNC:_ZnwmRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZSt10unexpectedv@@GLIBCPP_3.2
+FUNC:_ZSt13set_terminatePFvvE@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIlEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vImEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIxEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIyEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14set_unexpectedPFvvE@@GLIBCPP_3.2
+FUNC:_ZSt15set_new_handlerPFvvE@@GLIBCPP_3.2
+FUNC:_ZSt16__throw_bad_castv@@GLIBCPP_3.2
+FUNC:_ZSt17__throw_bad_allocv@@GLIBCPP_3.2
+FUNC:_ZSt18__throw_bad_typeidv@@GLIBCPP_3.2
+FUNC:_ZSt18uncaught_exceptionv@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_range_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_domain_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_length_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_out_of_rangePKc@@GLIBCPP_3.2
+FUNC:_ZSt21__throw_bad_exceptionv@@GLIBCPP_3.2
+FUNC:_ZSt21__throw_runtime_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt22__throw_overflow_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt23__throw_underflow_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt24__throw_invalid_argumentPKc@@GLIBCPP_3.2
+FUNC:_ZSt24__uninitialized_copy_auxIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsET0_T_SA_S9_12__false_type@@GLIBCPP_3.2
+FUNC:_ZSt26__uninitialized_fill_n_auxIPSsmSsET_S1_T0_RKT1_12__false_type@@GLIBCPP_3.2
+FUNC:_ZSt2wsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt2wsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endlIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt5flushIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt10moneypunctIcLb0EEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt10moneypunctIwLb0EEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt11__timepunctIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt11__timepunctIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt5ctypeIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt5ctypeIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7codecvtIcc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7codecvtIwc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7collateIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7collateIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8messagesIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8messagesIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8numpunctIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8numpunctIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9terminatev@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIcLb0EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIcLb1EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIwLb0EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIwLb1EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt11__timepunctIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt11__timepunctIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt5ctypeIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7collateIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7collateIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8messagesIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8messagesIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8numpunctIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8numpunctIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIfcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIfwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_a@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKa@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKh@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_S3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIfcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIfwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ra@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Rh@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZThn16_NSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSiD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSiD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSoD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSoD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10istrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10istrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10ostrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10ostrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt9strstreamD1Ev@@GLIBCPP_3.2
+OBJECT:0:CXXABI_1.2
+OBJECT:0:GLIBCPP_3.2
+OBJECT:104:_ZTVSt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:112:_ZNSt11__timepunctIcE12_S_timezonesE@@GLIBCPP_3.2
+OBJECT:112:_ZNSt11__timepunctIwE12_S_timezonesE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSd@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt9strstream@@GLIBCPP_3.2
+OBJECT:128:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_free_listE@@GLIBCPP_3.2
+OBJECT:128:_ZTVN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt12strstreambuf@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt8bad_cast@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt8ios_base@@GLIBCPP_3.2
+OBJECT:136:_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:136:_ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9bad_alloc@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9exception@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9strstream@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9time_base@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9type_info@@GLIBCPP_3.2
+OBJECT:14:_ZTSSt7collateIcE@@GLIBCPP_3.2
+OBJECT:14:_ZTSSt7collateIwE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10bad_typeid@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10ctype_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10istrstream@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10money_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10__num_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10ostrstream@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8messagesIcE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8messagesIwE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_get_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_get_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_put_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_put_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_get_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_get_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_put_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_put_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt9codecvt_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt9codecvt_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_get_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_get_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_put_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_put_w@@GLIBCPP_3.2
+OBJECT:16:_ZTIa@@GLIBCPP_3.2
+OBJECT:16:_ZTIb@@GLIBCPP_3.2
+OBJECT:16:_ZTIc@@GLIBCPP_3.2
+OBJECT:16:_ZTId@@GLIBCPP_3.2
+OBJECT:16:_ZTIe@@GLIBCPP_3.2
+OBJECT:16:_ZTIf@@GLIBCPP_3.2
+OBJECT:16:_ZTIh@@GLIBCPP_3.2
+OBJECT:16:_ZTIi@@GLIBCPP_3.2
+OBJECT:16:_ZTIj@@GLIBCPP_3.2
+OBJECT:16:_ZTIl@@GLIBCPP_3.2
+OBJECT:16:_ZTIm@@GLIBCPP_3.2
+OBJECT:16:_ZTINSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:16:_ZTIs@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10ctype_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10money_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10__num_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt12codecvt_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt13messages_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:16:_ZTISt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:16:_ZTISt8ios_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt9exception@@GLIBCPP_3.2
+OBJECT:16:_ZTISt9time_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt9type_info@@GLIBCPP_3.2
+OBJECT:16:_ZTIt@@GLIBCPP_3.2
+OBJECT:16:_ZTIv@@GLIBCPP_3.2
+OBJECT:16:_ZTIw@@GLIBCPP_3.2
+OBJECT:16:_ZTIx@@GLIBCPP_3.2
+OBJECT:16:_ZTIy@@GLIBCPP_3.2
+OBJECT:16:_ZTSSt11logic_error@@GLIBCPP_3.2
+OBJECT:16:_ZTSSt11range_error@@GLIBCPP_3.2
+OBJECT:16:_ZTTSi@@GLIBCPP_3.2
+OBJECT:16:_ZTTSo@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12codecvt_base@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12domain_error@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12length_error@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12out_of_range@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12strstreambuf@@GLIBCPP_3.2
+OBJECT:18:_ZTSNSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13bad_exception@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13messages_base@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13runtime_error@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt14overflow_error@@GLIBCPP_3.2
+OBJECT:1:_ZNSs4_Rep11_S_terminalE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIcLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIcLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIwLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIwLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt8ios_base4Init20_S_synced_with_stdioE@@GLIBCPP_3.2
+OBJECT:1:_ZSt7nothrow@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt15underflow_error@@GLIBCPP_3.2
+OBJECT:21:_ZTSSt16invalid_argument@@GLIBCPP_3.2
+OBJECT:224:_ZSt9facet_vec@@GLIBCPP_3.2
+OBJECT:22:_ZTSNSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:23:_ZNSt10__num_base8_S_atomsE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:248:_ZSt7buf_cin@@GLIBCPP_3.2
+OBJECT:248:_ZSt8buf_cerr@@GLIBCPP_3.2
+OBJECT:248:_ZSt8buf_cout@@GLIBCPP_3.2
+OBJECT:24:_ZNSt6locale5_Impl13_S_id_collateE@@GLIBCPP_3.2
+OBJECT:24:_ZNSt6locale5_Impl14_S_id_messagesE@@GLIBCPP_3.2
+OBJECT:24:_ZSt7ctype_w@@GLIBCPP_3.2
+OBJECT:24:_ZSt9collate_c@@GLIBCPP_3.2
+OBJECT:24:_ZSt9collate_w@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTINSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt10bad_typeid@@GLIBCPP_3.2
+OBJECT:24:_ZTISt10istrstream@@GLIBCPP_3.2
+OBJECT:24:_ZTISt10ostrstream@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11logic_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11range_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12domain_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12length_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12out_of_range@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12strstreambuf@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13bad_exception@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13runtime_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14overflow_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15underflow_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt16invalid_argument@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7collateIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7collateIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt8bad_cast@@GLIBCPP_3.2
+OBJECT:24:_ZTISt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9bad_alloc@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9strstream@@GLIBCPP_3.2
+OBJECT:256:_ZSt12_S_bit_count@@GLIBCPP_3.2
+OBJECT:256:_ZSt12_S_first_one@@GLIBCPP_3.2
+OBJECT:256:_ZSt8buf_wcin@@GLIBCPP_3.2
+OBJECT:256:_ZSt9buf_wcerr@@GLIBCPP_3.2
+OBJECT:256:_ZSt9buf_wcout@@GLIBCPP_3.2
+OBJECT:272:_ZSt4cerr@@GLIBCPP_3.2
+OBJECT:272:_ZSt4clog@@GLIBCPP_3.2
+OBJECT:272:_ZSt4cout@@GLIBCPP_3.2
+OBJECT:272:_ZSt5wcerr@@GLIBCPP_3.2
+OBJECT:272:_ZSt5wclog@@GLIBCPP_3.2
+OBJECT:272:_ZSt5wcout@@GLIBCPP_3.2
+OBJECT:280:_ZSt3cin@@GLIBCPP_3.2
+OBJECT:280:_ZSt4wcin@@GLIBCPP_3.2
+OBJECT:28:_ZTSSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:28:_ZTSSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5alnumE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5alphaE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5cntrlE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5digitE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5graphE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5lowerE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5printE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5punctE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5spaceE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5upperE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base6xdigitE@@GLIBCPP_3.2
+OBJECT:2:_ZTSa@@GLIBCPP_3.2
+OBJECT:2:_ZTSb@@GLIBCPP_3.2
+OBJECT:2:_ZTSc@@GLIBCPP_3.2
+OBJECT:2:_ZTSd@@GLIBCPP_3.2
+OBJECT:2:_ZTSe@@GLIBCPP_3.2
+OBJECT:2:_ZTSf@@GLIBCPP_3.2
+OBJECT:2:_ZTSh@@GLIBCPP_3.2
+OBJECT:2:_ZTSi@@GLIBCPP_3.2
+OBJECT:2:_ZTSj@@GLIBCPP_3.2
+OBJECT:2:_ZTSl@@GLIBCPP_3.2
+OBJECT:2:_ZTSm@@GLIBCPP_3.2
+OBJECT:2:_ZTSs@@GLIBCPP_3.2
+OBJECT:2:_ZTSt@@GLIBCPP_3.2
+OBJECT:2:_ZTSv@@GLIBCPP_3.2
+OBJECT:2:_ZTSw@@GLIBCPP_3.2
+OBJECT:2:_ZTSx@@GLIBCPP_3.2
+OBJECT:2:_ZTSy@@GLIBCPP_3.2
+OBJECT:32:_ZNSbIwSt11char_traitsIwESaIwEE20_S_empty_rep_storageE@@GLIBCPP_3.2
+OBJECT:32:_ZNSs20_S_empty_rep_storageE@@GLIBCPP_3.2
+OBJECT:32:_ZSt10messages_c@@GLIBCPP_3.2
+OBJECT:32:_ZSt10messages_w@@GLIBCPP_3.2
+OBJECT:32:_ZTIPa@@GLIBCPP_3.2
+OBJECT:32:_ZTIPb@@GLIBCPP_3.2
+OBJECT:32:_ZTIPc@@GLIBCPP_3.2
+OBJECT:32:_ZTIPd@@GLIBCPP_3.2
+OBJECT:32:_ZTIPe@@GLIBCPP_3.2
+OBJECT:32:_ZTIPf@@GLIBCPP_3.2
+OBJECT:32:_ZTIPh@@GLIBCPP_3.2
+OBJECT:32:_ZTIPi@@GLIBCPP_3.2
+OBJECT:32:_ZTIPj@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKa@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKb@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKc@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKd@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKe@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKf@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKh@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKi@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKj@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKl@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKm@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKs@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKt@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKv@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKw@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKx@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKy@@GLIBCPP_3.2
+OBJECT:32:_ZTIPl@@GLIBCPP_3.2
+OBJECT:32:_ZTIPm@@GLIBCPP_3.2
+OBJECT:32:_ZTIPs@@GLIBCPP_3.2
+OBJECT:32:_ZTIPt@@GLIBCPP_3.2
+OBJECT:32:_ZTIPv@@GLIBCPP_3.2
+OBJECT:32:_ZTIPw@@GLIBCPP_3.2
+OBJECT:32:_ZTIPx@@GLIBCPP_3.2
+OBJECT:32:_ZTIPy@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt10istrstream@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt10ostrstream@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTVNSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:32:_ZTVSt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:32:_ZTVSt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:32:_ZTVSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTVSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:33:_ZTSN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:34:_ZTSSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:36:_ZTSN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:36:_ZTSSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:36:_ZTSSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:37:_ZTSN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:37:_ZTSN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:38:_ZTSN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:3:_ZTSPa@@GLIBCPP_3.2
+OBJECT:3:_ZTSPb@@GLIBCPP_3.2
+OBJECT:3:_ZTSPc@@GLIBCPP_3.2
+OBJECT:3:_ZTSPd@@GLIBCPP_3.2
+OBJECT:3:_ZTSPe@@GLIBCPP_3.2
+OBJECT:3:_ZTSPf@@GLIBCPP_3.2
+OBJECT:3:_ZTSPh@@GLIBCPP_3.2
+OBJECT:3:_ZTSPi@@GLIBCPP_3.2
+OBJECT:3:_ZTSPj@@GLIBCPP_3.2
+OBJECT:3:_ZTSPl@@GLIBCPP_3.2
+OBJECT:3:_ZTSPm@@GLIBCPP_3.2
+OBJECT:3:_ZTSPs@@GLIBCPP_3.2
+OBJECT:3:_ZTSPt@@GLIBCPP_3.2
+OBJECT:3:_ZTSPv@@GLIBCPP_3.2
+OBJECT:3:_ZTSPw@@GLIBCPP_3.2
+OBJECT:3:_ZTSPx@@GLIBCPP_3.2
+OBJECT:3:_ZTSPy@@GLIBCPP_3.2
+OBJECT:3:_ZTSSd@@GLIBCPP_3.2
+OBJECT:3:_ZTSSi@@GLIBCPP_3.2
+OBJECT:3:_ZTSSo@@GLIBCPP_3.2
+OBJECT:408:_ZSt11timepunct_c@@GLIBCPP_3.2
+OBJECT:408:_ZSt11timepunct_w@@GLIBCPP_3.2
+OBJECT:40:_ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE@@GLIBCPP_3.2
+OBJECT:40:_ZNSt6locale5_Impl11_S_id_ctypeE@@GLIBCPP_3.2
+OBJECT:40:_ZSt10numpunct_c@@GLIBCPP_3.2
+OBJECT:40:_ZTSN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVNSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt10bad_typeid@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt11logic_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt11range_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt12domain_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt12length_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt12out_of_range@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt13bad_exception@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt13runtime_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt14overflow_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt15underflow_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt16invalid_argument@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt8bad_cast@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt9bad_alloc@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt9exception@@GLIBCPP_3.2
+OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:41:_ZTSSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:46:_ZTSN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:46:_ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:46:_ZTSSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:48:_ZSt10numpunct_w@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10money_base18_S_default_patternE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale2id12_S_highwaterE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale3allE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale4noneE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale4timeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale5ctypeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale7collateE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale7numericE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale8messagesE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale8monetaryE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base10floatfieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base10scientificE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base11adjustfieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base18_S_local_word_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base2inE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3appE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3ateE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3begE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3curE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3decE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3endE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3hexE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3octE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3outE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base4Init16_S_ios_base_initE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base4leftE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5fixedE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5rightE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5truncE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6badbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6binaryE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6eofbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6skipwsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7failbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7goodbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7showposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7unitbufE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base8internalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base8showbaseE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9basefieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9boolalphaE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9showpointE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9uppercaseE@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKa@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKb@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKc@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKd@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKe@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKf@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKh@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKi@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKj@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKl@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKm@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKs@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKt@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKv@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKw@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKx@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKy@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt6locale5_Impl10_S_id_timeE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt6locale5_Impl13_S_id_numericE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt6locale5_Impl19_S_facet_categoriesE@@GLIBCPP_3.2
+OBJECT:56:_ZSt7ctype_c@@GLIBCPP_3.2
+OBJECT:56:_ZTISi@@GLIBCPP_3.2
+OBJECT:56:_ZTISo@@GLIBCPP_3.2
+OBJECT:56:_ZTISt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZTISt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZTISt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:56:_ZTISt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZTTSd@@GLIBCPP_3.2
+OBJECT:56:_ZTTSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt7collateIcE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt7collateIwE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt8messagesIcE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt8messagesIwE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt9type_info@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZNSt6locale5_Impl14_S_id_monetaryE@@GLIBCPP_3.2
+OBJECT:72:_ZSt13c_locale_impl@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_fc@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_fw@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_tc@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_tw@@GLIBCPP_3.2
+OBJECT:72:_ZTISd@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8messagesIcE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8messagesIwE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTVN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:72:_ZTVN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:72:_ZTVN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:72:_ZTVSt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:72:_ZTVSt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:72:_ZTVSt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:72:_ZTVSt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt9strstream@@GLIBCPP_3.2
+OBJECT:80:_ZTVSi@@GLIBCPP_3.2
+OBJECT:80:_ZTVSo@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt10istrstream@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt10ostrstream@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:88:_ZTVN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:88:_ZTVN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:88:_ZTVN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt11__timepunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt11__timepunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7collateIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7collateIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8messagesIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8messagesIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8numpunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8numpunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCPP_3.2
+OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSs4nposE@@GLIBCPP_3.2
+OBJECT:8:_ZNSs4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt11__timepunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt11__timepunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_end_freeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_heap_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE13_S_start_freeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt5ctypeIcE10table_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt5ctypeIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt5ctypeIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale10_S_classicE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale17_S_num_categoriesE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale5facet11_S_c_localeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale9_S_globalE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7codecvtIcc11__mbstate_tE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7codecvtIwc11__mbstate_tE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7collateIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7collateIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8messagesIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8messagesIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8numpunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8numpunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZSt8c_locale@@GLIBCPP_3.2
+OBJECT:96:_ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:96:_ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
diff --git a/contrib/libstdc++/config/abi/i386-freebsd4/baseline_symbols.txt b/contrib/libstdc++/config/abi/i386-freebsd4/baseline_symbols.txt
new file mode 100644
index 0000000..5372a28
--- /dev/null
+++ b/contrib/libstdc++/config/abi/i386-freebsd4/baseline_symbols.txt
@@ -0,0 +1,2043 @@
+FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.2
+FUNC:_ZNKSaIcE7addressERKc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE7addressERc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE7addressERKw@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE7addressERw@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSi6gcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs13get_allocatorEv@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs2atEj@@GLIBCPP_3.2
+FUNC:_ZNKSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4copyEPcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5c_strEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5emptyEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6substrEjj@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_foldEjj@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_iendEv@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNKSs8_M_checkEj@@GLIBCPP_3.2
+FUNC:_ZNKSs8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSs9_M_ibeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSsixEj@@GLIBCPP_3.2
+FUNC:_ZNKSt10istrstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10ostrstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10ostrstream6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE15_M_date_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE15_M_time_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE19_M_days_abbreviatedEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE20_M_date_time_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE21_M_months_abbreviatedEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE6_M_putEPcjPKcPK2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE7_M_ampmEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE7_M_daysEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE9_M_monthsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11logic_error4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt12strstreambuf6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_filebufIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13runtime_error4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIcSt11char_traitsIcEE6_M_getEv@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_scan_isEmPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE11do_scan_notEmPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEPKcS2_Pm@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEmc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@GLIBCPP_3.2
+FUNC:_ZNKSt6locale4nameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt6localeeqERKS_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE5do_inERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE6do_outERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERKS0_PKcS5_j@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE4hashEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE7compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE7do_hashEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE9transformEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intERKSscRSt8ios_basePcS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_widen_intES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatERKSscPKcPcS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_widen_floatES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIdEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIeEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertES3_RSt8ios_basecPKci@@GLIBCPP_3.2
+FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE20_M_convert_from_charEPc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE3getEiiiRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6localePKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE5closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE6do_getEiiiRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE7do_openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE8do_closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE11do_truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE12do_falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE8truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE9falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numERS3_S5_RiiijRKSt5ctypeIcERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameERS3_S5_RiPPKcjRSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmPKcSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8valarrayIjE4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE10exceptionsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3tieEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4fillEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE6narrowEcc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9exception4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9strstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9strstream6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info10__do_catchEPKS_PPvj@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info14__is_pointer_pEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info15__is_function_pEv@@GLIBCPP_3.2
+FUNC:_ZNSaIcE10deallocateEPcj@@GLIBCPP_3.2
+FUNC:_ZNSaIcE7destroyEPc@@GLIBCPP_3.2
+FUNC:_ZNSaIcE8allocateEjPKv@@GLIBCPP_3.2
+FUNC:_ZNSaIcE9constructEPcRKc@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwE10deallocateEPwj@@GLIBCPP_3.2
+FUNC:_ZNSaIwE7destroyEPw@@GLIBCPP_3.2
+FUNC:_ZNSaIwE8allocateEjPKv@@GLIBCPP_3.2
+FUNC:_ZNSaIwE9constructEPwRKw@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSdC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSdC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSdD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPci@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPcic@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERc@@GLIBCPP_3.2
+FUNC:_ZNSi3getEv@@GLIBCPP_3.2
+FUNC:_ZNSi4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSi4readEPci@@GLIBCPP_3.2
+FUNC:_ZNSi4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSi5tellgEv@@GLIBCPP_3.2
+FUNC:_ZNSi5ungetEv@@GLIBCPP_3.2
+FUNC:_ZNSi6ignoreEii@@GLIBCPP_3.2
+FUNC:_ZNSi6sentryC1ERSib@@GLIBCPP_3.2
+FUNC:_ZNSi6sentryC2ERSib@@GLIBCPP_3.2
+FUNC:_ZNSi6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPci@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPcic@@GLIBCPP_3.2
+FUNC:_ZNSi7putbackEc@@GLIBCPP_3.2
+FUNC:_ZNSi8readsomeEPci@@GLIBCPP_3.2
+FUNC:_ZNSiC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSiC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSiD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSiD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSiD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSiS_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSirsERPv@@GLIBCPP_3.2
+FUNC:_ZNSirsERb@@GLIBCPP_3.2
+FUNC:_ZNSirsERd@@GLIBCPP_3.2
+FUNC:_ZNSirsERe@@GLIBCPP_3.2
+FUNC:_ZNSirsERf@@GLIBCPP_3.2
+FUNC:_ZNSirsERi@@GLIBCPP_3.2
+FUNC:_ZNSirsERj@@GLIBCPP_3.2
+FUNC:_ZNSirsERl@@GLIBCPP_3.2
+FUNC:_ZNSirsERm@@GLIBCPP_3.2
+FUNC:_ZNSirsERs@@GLIBCPP_3.2
+FUNC:_ZNSirsERt@@GLIBCPP_3.2
+FUNC:_ZNSirsERx@@GLIBCPP_3.2
+FUNC:_ZNSirsERy@@GLIBCPP_3.2
+FUNC:_ZNSo3putEc@@GLIBCPP_3.2
+FUNC:_ZNSo5flushEv@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSo5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSo5writeEPKci@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC1ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC2ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSoD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSoD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSoD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSoS_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPKv@@GLIBCPP_3.2
+FUNC:_ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSolsEb@@GLIBCPP_3.2
+FUNC:_ZNSolsEd@@GLIBCPP_3.2
+FUNC:_ZNSolsEe@@GLIBCPP_3.2
+FUNC:_ZNSolsEf@@GLIBCPP_3.2
+FUNC:_ZNSolsEi@@GLIBCPP_3.2
+FUNC:_ZNSolsEj@@GLIBCPP_3.2
+FUNC:_ZNSolsEl@@GLIBCPP_3.2
+FUNC:_ZNSolsEm@@GLIBCPP_3.2
+FUNC:_ZNSolsEs@@GLIBCPP_3.2
+FUNC:_ZNSolsEt@@GLIBCPP_3.2
+FUNC:_ZNSolsEx@@GLIBCPP_3.2
+FUNC:_ZNSolsEy@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_M_leak_hardEv@@GLIBCPP_3.2
+FUNC:_ZNSs12_S_constructEjcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_S_empty_repEv@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcPKcS1_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcS_S_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs2atEj@@GLIBCPP_3.2
+FUNC:_ZNSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_destroyERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_disposeERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_refcopyEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_refdataEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep13_M_set_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep15_M_set_sharableEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep7_M_grabERKSaIcES2_@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep8_M_cloneERKSaIcEj@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep9_S_createEjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_RepixEj@@GLIBCPP_3.2
+FUNC:_ZNSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSs4swapERSs@@GLIBCPP_3.2
+FUNC:_ZNSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSs5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEjj@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjjc@@GLIBCPP_3.2
+FUNC:_ZNSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEj@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEjc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_dataEPc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_leakEv@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcj@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjPKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjjc@@GLIBCPP_3.2
+FUNC:_ZNSs7reserveEj@@GLIBCPP_3.2
+FUNC:_ZNSs9_M_mutateEjjj@@GLIBCPP_3.2
+FUNC:_ZNSs9push_backEc@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsaSEPKc@@GLIBCPP_3.2
+FUNC:_ZNSsaSERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsaSEc@@GLIBCPP_3.2
+FUNC:_ZNSsixEj@@GLIBCPP_3.2
+FUNC:_ZNSspLEPKc@@GLIBCPP_3.2
+FUNC:_ZNSspLERKSs@@GLIBCPP_3.2
+FUNC:_ZNSspLEc@@GLIBCPP_3.2
+FUNC:_ZNSt10__num_base13_S_format_intERKSt8ios_basePccc@@GLIBCPP_3.2
+FUNC:_ZNSt10__num_base15_S_format_floatERKSt8ios_basePcci@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10money_base20_S_construct_patternEccc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstream6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcE23_M_initialize_timepunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE10sys_ungetcEi@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE12_M_open_modeESt13_Ios_OpenmodeRiS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE16showmanyc_helperEv@@GLIBCPP_3.2.3
+FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE6xsgetnEPci@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE6xsputnEPKci@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE7seekposElSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_getcEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEP7__sFILESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmodeb@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC1EPP13pthread_mutex@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC2EPP13pthread_mutex@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf6setbufEPci@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7_M_freeEPc@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8_M_allocEj@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8_M_setupEPcS0_i@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPFPvjEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKai@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKhi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPaiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPciS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPhiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1Ei@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPFPvjEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKai@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKhi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPaiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPciS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPhiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2Ei@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE17_M_output_unshiftEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_really_overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_set_determinateEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_is_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_underflow_commonEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE20_M_set_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPciRiS4_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPci@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPci@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKci@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE14_M_in_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_buf_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_pback_createEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE16_M_pback_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5gbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6snextcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7pubsyncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7sungetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8in_availEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8pubimbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9sputbackcEc@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEjj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvj@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10reallocateEPvjj@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_round_upEj@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE14_S_chunk_allocEjRi@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE17_S_freelist_indexEj@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE8allocateEj@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE9_S_refillEj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcE13classic_tableEv@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC1EPKmbj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC1EPiPKmbj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EPKmbj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EPiPKmbj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_@@GLIBCPP_3.2
+FUNC:_ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale11_M_coalesceERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale21_S_normalize_categoryEj@@GLIBCPP_3.2
+FUNC:_ZNSt6locale2idC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale2idC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPNS_5facetE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1EPPNS_5facetEjb@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1ERKS0_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2EPPNS_5facetEjb@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2ERKS0_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet16_M_add_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet17_S_clone_c_localeERPi@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet18_S_create_c_localeERPiPKcS1_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_M_remove_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERPi@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale6globalERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale7classicEv@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1EPNS_5_ImplE@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_PKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2EPNS_5_ImplE@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_PKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeaSERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1EPij@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2EPij@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base13_M_grow_wordsEi@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base15sync_with_stdioEb@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base17_M_call_callbacksENS_5eventE@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base20_M_dispose_callbacksEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4Init13_S_ios_createEb@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4Init14_S_ios_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base6xallocEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7_M_initEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1EPij@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2EPij@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC1ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC2ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEixEj@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5rdbufEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE7copyfmtERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt9strstream6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD2Ev@@GLIBCPP_3.2
+FUNC:_ZSt10unexpectedv@@GLIBCPP_3.2
+FUNC:_ZSt13set_terminatePFvvE@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIlEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vImEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIxEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIyEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14set_unexpectedPFvvE@@GLIBCPP_3.2
+FUNC:_ZSt15set_new_handlerPFvvE@@GLIBCPP_3.2
+FUNC:_ZSt16__throw_bad_castv@@GLIBCPP_3.2
+FUNC:_ZSt17__throw_bad_allocv@@GLIBCPP_3.2
+FUNC:_ZSt18__throw_bad_typeidv@@GLIBCPP_3.2
+FUNC:_ZSt18uncaught_exceptionv@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_range_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_domain_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_length_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_out_of_rangePKc@@GLIBCPP_3.2
+FUNC:_ZSt21__throw_bad_exceptionv@@GLIBCPP_3.2
+FUNC:_ZSt21__throw_runtime_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt22__throw_overflow_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt23__throw_underflow_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt24__throw_invalid_argumentPKc@@GLIBCPP_3.2
+FUNC:_ZSt24__uninitialized_copy_auxIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsET0_T_SA_S9_12__false_type@@GLIBCPP_3.2
+FUNC:_ZSt26__uninitialized_fill_n_auxIPSsjSsET_S1_T0_RKT1_12__false_type@@GLIBCPP_3.2
+FUNC:_ZSt2wsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt10moneypunctIcLb0EEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt11__timepunctIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt5ctypeIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7codecvtIcc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7collateIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8messagesIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8numpunctIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9terminatev@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIcLb0EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIcLb1EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt11__timepunctIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7collateIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8messagesIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8numpunctIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKa@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKh@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_a@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIfcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_@@GLIBCPP_3.2.1
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ra@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Rh@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIfcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZThn8_NSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSiD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSiD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSoD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSoD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt10istrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt10istrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt10ostrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt10ostrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZdaPv@@GLIBCPP_3.2
+FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZdlPv@@GLIBCPP_3.2
+FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znaj@@GLIBCPP_3.2
+FUNC:_ZnajRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znwj@@GLIBCPP_3.2
+FUNC:_ZnwjRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:__cxa_allocate_exception@@CXXABI_1.2
+FUNC:__cxa_bad_cast@@CXXABI_1.2
+FUNC:__cxa_bad_typeid@@CXXABI_1.2
+FUNC:__cxa_begin_catch@@CXXABI_1.2
+FUNC:__cxa_call_unexpected@@CXXABI_1.2
+FUNC:__cxa_current_exception_type@@CXXABI_1.2
+FUNC:__cxa_demangle@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append_char@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_clear@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_delete@@CXXABI_1.2
+FUNC:__cxa_dyn_string_eq@@CXXABI_1.2
+FUNC:__cxa_dyn_string_init@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert_char@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_new@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_release@@CXXABI_1.2
+FUNC:__cxa_dyn_string_resize@@CXXABI_1.2
+FUNC:__cxa_dyn_string_substring@@CXXABI_1.2
+FUNC:__cxa_end_catch@@CXXABI_1.2
+FUNC:__cxa_free_exception@@CXXABI_1.2
+FUNC:__cxa_get_globals@@CXXABI_1.2
+FUNC:__cxa_get_globals_fast@@CXXABI_1.2
+FUNC:__cxa_guard_abort@@CXXABI_1.2.1
+FUNC:__cxa_guard_acquire@@CXXABI_1.2.1
+FUNC:__cxa_guard_release@@CXXABI_1.2.1
+FUNC:__cxa_pure_virtual@@CXXABI_1.2
+FUNC:__cxa_rethrow@@CXXABI_1.2
+FUNC:__cxa_throw@@CXXABI_1.2
+FUNC:__cxa_vec_cctor@@CXXABI_1.2
+FUNC:__cxa_vec_cleanup@@CXXABI_1.2
+FUNC:__cxa_vec_ctor@@CXXABI_1.2
+FUNC:__cxa_vec_delete2@@CXXABI_1.2
+FUNC:__cxa_vec_delete3@@CXXABI_1.2
+FUNC:__cxa_vec_delete@@CXXABI_1.2
+FUNC:__cxa_vec_dtor@@CXXABI_1.2
+FUNC:__cxa_vec_new2@@CXXABI_1.2
+FUNC:__cxa_vec_new3@@CXXABI_1.2
+FUNC:__cxa_vec_new@@CXXABI_1.2
+FUNC:__dynamic_cast@@CXXABI_1.2
+FUNC:__gxx_personality_v0@@CXXABI_1.2
+FUNC:__signbit@@GLIBCPP_3.2.1
+FUNC:__signbitf@@GLIBCPP_3.2.1
+FUNC:atan2l@@GLIBCPP_3.2.1
+FUNC:coshl@@GLIBCPP_3.2.1
+FUNC:cosl@@GLIBCPP_3.2.1
+FUNC:expl@@GLIBCPP_3.2.1
+FUNC:hypotl@@GLIBCPP_3.2.1
+FUNC:log10l@@GLIBCPP_3.2.1
+FUNC:logl@@GLIBCPP_3.2.1
+FUNC:nan@@GLIBCPP_3.2.1
+FUNC:powl@@GLIBCPP_3.2.1
+FUNC:sinhl@@GLIBCPP_3.2.1
+FUNC:sinl@@GLIBCPP_3.2.1
+FUNC:sqrtl@@GLIBCPP_3.2.1
+FUNC:tanhl@@GLIBCPP_3.2.1
+FUNC:tanl@@GLIBCPP_3.2.1
+OBJECT:0:CXXABI_1.2
+OBJECT:0:CXXABI_1.2.1
+OBJECT:0:GLIBCPP_3.2
+OBJECT:0:GLIBCPP_3.2.1
+OBJECT:0:GLIBCPP_3.2.2
+OBJECT:0:GLIBCPP_3.2.3
+OBJECT:12:_ZNSt6locale5_Impl11_S_id_ctypeE@@GLIBCPP_3.2
+OBJECT:12:_ZSt9collate_c@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTINSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt10bad_typeid@@GLIBCPP_3.2
+OBJECT:12:_ZTISt10istrstream@@GLIBCPP_3.2
+OBJECT:12:_ZTISt10ostrstream@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11logic_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11range_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt12domain_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt12length_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt12out_of_range@@GLIBCPP_3.2
+OBJECT:12:_ZTISt12strstreambuf@@GLIBCPP_3.2
+OBJECT:12:_ZTISt13bad_exception@@GLIBCPP_3.2
+OBJECT:12:_ZTISt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt13runtime_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14overflow_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15underflow_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt16invalid_argument@@GLIBCPP_3.2
+OBJECT:12:_ZTISt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt7collateIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt8bad_cast@@GLIBCPP_3.2
+OBJECT:12:_ZTISt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt9bad_alloc@@GLIBCPP_3.2
+OBJECT:12:_ZTISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt9strstream@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt8bad_cast@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt8ios_base@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9bad_alloc@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9exception@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9strstream@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9time_base@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9type_info@@GLIBCPP_3.2
+OBJECT:140:_ZSt4cerr@@GLIBCPP_3.2
+OBJECT:140:_ZSt4clog@@GLIBCPP_3.2
+OBJECT:140:_ZSt4cout@@GLIBCPP_3.2
+OBJECT:144:_ZSt3cin@@GLIBCPP_3.2
+OBJECT:14:_ZTSSt7collateIcE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10__num_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10bad_typeid@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10ctype_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10istrstream@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10money_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10ostrstream@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8messagesIcE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:16:_ZNSs20_S_empty_rep_storageE@@GLIBCPP_3.2
+OBJECT:16:_ZNSt6locale5_Impl10_S_id_timeE@@GLIBCPP_3.2
+OBJECT:16:_ZNSt6locale5_Impl13_S_id_numericE@@GLIBCPP_3.2
+OBJECT:16:_ZSt10messages_c@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKa@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKb@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKc@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKd@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKe@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKf@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKh@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKi@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKj@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKl@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKm@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKs@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKt@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKv@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKw@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKx@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKy@@GLIBCPP_3.2
+OBJECT:16:_ZTIPa@@GLIBCPP_3.2
+OBJECT:16:_ZTIPb@@GLIBCPP_3.2
+OBJECT:16:_ZTIPc@@GLIBCPP_3.2
+OBJECT:16:_ZTIPd@@GLIBCPP_3.2
+OBJECT:16:_ZTIPe@@GLIBCPP_3.2
+OBJECT:16:_ZTIPf@@GLIBCPP_3.2
+OBJECT:16:_ZTIPh@@GLIBCPP_3.2
+OBJECT:16:_ZTIPi@@GLIBCPP_3.2
+OBJECT:16:_ZTIPj@@GLIBCPP_3.2
+OBJECT:16:_ZTIPl@@GLIBCPP_3.2
+OBJECT:16:_ZTIPm@@GLIBCPP_3.2
+OBJECT:16:_ZTIPs@@GLIBCPP_3.2
+OBJECT:16:_ZTIPt@@GLIBCPP_3.2
+OBJECT:16:_ZTIPv@@GLIBCPP_3.2
+OBJECT:16:_ZTIPw@@GLIBCPP_3.2
+OBJECT:16:_ZTIPx@@GLIBCPP_3.2
+OBJECT:16:_ZTIPy@@GLIBCPP_3.2
+OBJECT:16:_ZTSSt11logic_error@@GLIBCPP_3.2
+OBJECT:16:_ZTSSt11range_error@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt10istrstream@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt10ostrstream@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:16:_ZTVNSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:16:_ZTVSt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:16:_ZTVSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12codecvt_base@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12domain_error@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12length_error@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12out_of_range@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12strstreambuf@@GLIBCPP_3.2
+OBJECT:18:_ZTSNSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13bad_exception@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13messages_base@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13runtime_error@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt14overflow_error@@GLIBCPP_3.2
+OBJECT:1:_ZNSs4_Rep11_S_terminalE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIcLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIcLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt8ios_base4Init20_S_synced_with_stdioE@@GLIBCPP_3.2
+OBJECT:1:_ZSt7nothrow@@GLIBCPP_3.2
+OBJECT:204:_ZSt11timepunct_c@@GLIBCPP_3.2
+OBJECT:20:_ZNSt6locale5_Impl14_S_id_monetaryE@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt15underflow_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVNSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt10bad_typeid@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt11logic_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt11range_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt12domain_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt12length_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt12out_of_range@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt13bad_exception@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt13runtime_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt14overflow_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt15underflow_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt16invalid_argument@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt8bad_cast@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt9bad_alloc@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt9exception@@GLIBCPP_3.2
+OBJECT:21:_ZTSSt16invalid_argument@@GLIBCPP_3.2
+OBJECT:22:_ZTSNSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:23:_ZNSt10__num_base8_S_atomsE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZSt10numpunct_c@@GLIBCPP_3.2
+OBJECT:24:_ZTVSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTVSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:256:_ZSt12_S_bit_count@@GLIBCPP_3.2
+OBJECT:256:_ZSt12_S_first_one@@GLIBCPP_3.2
+OBJECT:28:_ZNSt6locale5_Impl19_S_facet_categoriesE@@GLIBCPP_3.2
+OBJECT:28:_ZSt7ctype_c@@GLIBCPP_3.2
+OBJECT:28:_ZTSSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:28:_ZTTSd@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt7collateIcE@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt8messagesIcE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:2:_ZTSa@@GLIBCPP_3.2
+OBJECT:2:_ZTSb@@GLIBCPP_3.2
+OBJECT:2:_ZTSc@@GLIBCPP_3.2
+OBJECT:2:_ZTSd@@GLIBCPP_3.2
+OBJECT:2:_ZTSe@@GLIBCPP_3.2
+OBJECT:2:_ZTSf@@GLIBCPP_3.2
+OBJECT:2:_ZTSh@@GLIBCPP_3.2
+OBJECT:2:_ZTSi@@GLIBCPP_3.2
+OBJECT:2:_ZTSj@@GLIBCPP_3.2
+OBJECT:2:_ZTSl@@GLIBCPP_3.2
+OBJECT:2:_ZTSm@@GLIBCPP_3.2
+OBJECT:2:_ZTSs@@GLIBCPP_3.2
+OBJECT:2:_ZTSt@@GLIBCPP_3.2
+OBJECT:2:_ZTSv@@GLIBCPP_3.2
+OBJECT:2:_ZTSw@@GLIBCPP_3.2
+OBJECT:2:_ZTSx@@GLIBCPP_3.2
+OBJECT:2:_ZTSy@@GLIBCPP_3.2
+OBJECT:32:_ZTISi@@GLIBCPP_3.2
+OBJECT:32:_ZTISo@@GLIBCPP_3.2
+OBJECT:32:_ZTISt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTVN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:32:_ZTVN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:32:_ZTVN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:32:_ZTVN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:32:_ZTVSt9type_info@@GLIBCPP_3.2
+OBJECT:33:_ZTSN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:36:_ZSt13c_locale_impl@@GLIBCPP_3.2
+OBJECT:36:_ZTSN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:36:_ZTSSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:36:_ZTVN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:36:_ZTVN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:36:_ZTVN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:36:_ZTVSt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:36:_ZTVSt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:37:_ZTSN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:37:_ZTSN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:38:_ZTSN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:3:_ZTSPa@@GLIBCPP_3.2
+OBJECT:3:_ZTSPb@@GLIBCPP_3.2
+OBJECT:3:_ZTSPc@@GLIBCPP_3.2
+OBJECT:3:_ZTSPd@@GLIBCPP_3.2
+OBJECT:3:_ZTSPe@@GLIBCPP_3.2
+OBJECT:3:_ZTSPf@@GLIBCPP_3.2
+OBJECT:3:_ZTSPh@@GLIBCPP_3.2
+OBJECT:3:_ZTSPi@@GLIBCPP_3.2
+OBJECT:3:_ZTSPj@@GLIBCPP_3.2
+OBJECT:3:_ZTSPl@@GLIBCPP_3.2
+OBJECT:3:_ZTSPm@@GLIBCPP_3.2
+OBJECT:3:_ZTSPs@@GLIBCPP_3.2
+OBJECT:3:_ZTSPt@@GLIBCPP_3.2
+OBJECT:3:_ZTSPv@@GLIBCPP_3.2
+OBJECT:3:_ZTSPw@@GLIBCPP_3.2
+OBJECT:3:_ZTSPx@@GLIBCPP_3.2
+OBJECT:3:_ZTSPy@@GLIBCPP_3.2
+OBJECT:3:_ZTSSd@@GLIBCPP_3.2
+OBJECT:3:_ZTSSi@@GLIBCPP_3.2
+OBJECT:3:_ZTSSo@@GLIBCPP_3.2
+OBJECT:40:_ZSt13moneypunct_fc@@GLIBCPP_3.2
+OBJECT:40:_ZSt13moneypunct_tc@@GLIBCPP_3.2
+OBJECT:40:_ZTISd@@GLIBCPP_3.2
+OBJECT:40:_ZTISt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt8messagesIcE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTTSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTTSt9strstream@@GLIBCPP_3.2
+OBJECT:40:_ZTVSi@@GLIBCPP_3.2
+OBJECT:40:_ZTVSo@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt10istrstream@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt10ostrstream@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:44:_ZTVN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:44:_ZTVN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:44:_ZTVN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:44:_ZTVSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:44:_ZTVSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:44:_ZTVSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:46:_ZTSN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:46:_ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:480:_ZSt7buf_cin@@GLIBCPP_3.2
+OBJECT:480:_ZSt8buf_cerr@@GLIBCPP_3.2
+OBJECT:480:_ZSt8buf_cout@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:4:_ZNSs4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSs4nposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10__num_base11_S_atoms_inE@@GLIBCPP_3.2.3
+OBJECT:4:_ZNSt10__num_base12_S_atoms_outE@@GLIBCPP_3.2.3
+OBJECT:4:_ZNSt10ctype_base5alnumE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5alphaE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5cntrlE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5digitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5graphE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5lowerE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5printE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5punctE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5spaceE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5upperE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base6xdigitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10money_base18_S_default_patternE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt11__timepunctIcE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_end_freeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_force_newE@@GLIBCPP_3.2.2
+OBJECT:4:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_heap_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt24__default_alloc_templateILb1ELi0EE13_S_start_freeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt5ctypeIcE10table_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt5ctypeIcE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale10_S_classicE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale17_S_num_categoriesE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale2id12_S_highwaterE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale3allE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale4noneE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale4timeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale5ctypeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale5facet11_S_c_localeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale7collateE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale7numericE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale8messagesE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale8monetaryE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale9_S_globalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7codecvtIcc11__mbstate_tE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7collateIcE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base10floatfieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base10scientificE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base11adjustfieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base18_S_local_word_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base2inE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3appE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3ateE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3begE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3curE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3decE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3endE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3hexE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3octE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3outE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base4Init16_S_ios_base_initE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base4leftE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5fixedE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5rightE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5truncE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6badbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6binaryE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6eofbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6skipwsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7failbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7goodbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7showposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7unitbufE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base8internalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base8showbaseE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9basefieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9boolalphaE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9showpointE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9uppercaseE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8messagesIcE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8numpunctIcE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZSt8c_locale@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKa@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKb@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKc@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKd@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKe@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKf@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKh@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKi@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKj@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKl@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKm@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKs@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKt@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKv@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKw@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKx@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKy@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt11__timepunctIcE12_S_timezonesE@@GLIBCPP_3.2
+OBJECT:56:_ZSt9facet_vec@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSd@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt9strstream@@GLIBCPP_3.2
+OBJECT:64:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_free_listE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt12strstreambuf@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:68:_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt11__timepunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7collateIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8messagesIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8numpunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale5_Impl13_S_id_collateE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale5_Impl14_S_id_messagesE@@GLIBCPP_3.2
+OBJECT:8:_ZSt10time_get_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt10time_put_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt11money_get_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt11money_put_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt9codecvt_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt9num_get_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt9num_put_c@@GLIBCPP_3.2
+OBJECT:8:_ZTINSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10__num_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10ctype_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10money_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt12codecvt_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt13messages_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:8:_ZTISt8ios_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt9exception@@GLIBCPP_3.2
+OBJECT:8:_ZTISt9time_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt9type_info@@GLIBCPP_3.2
+OBJECT:8:_ZTIa@@GLIBCPP_3.2
+OBJECT:8:_ZTIb@@GLIBCPP_3.2
+OBJECT:8:_ZTIc@@GLIBCPP_3.2
+OBJECT:8:_ZTId@@GLIBCPP_3.2
+OBJECT:8:_ZTIe@@GLIBCPP_3.2
+OBJECT:8:_ZTIf@@GLIBCPP_3.2
+OBJECT:8:_ZTIh@@GLIBCPP_3.2
+OBJECT:8:_ZTIi@@GLIBCPP_3.2
+OBJECT:8:_ZTIj@@GLIBCPP_3.2
+OBJECT:8:_ZTIl@@GLIBCPP_3.2
+OBJECT:8:_ZTIm@@GLIBCPP_3.2
+OBJECT:8:_ZTIs@@GLIBCPP_3.2
+OBJECT:8:_ZTIt@@GLIBCPP_3.2
+OBJECT:8:_ZTIv@@GLIBCPP_3.2
+OBJECT:8:_ZTIw@@GLIBCPP_3.2
+OBJECT:8:_ZTIx@@GLIBCPP_3.2
+OBJECT:8:_ZTIy@@GLIBCPP_3.2
+OBJECT:8:_ZTTSi@@GLIBCPP_3.2
+OBJECT:8:_ZTTSo@@GLIBCPP_3.2
diff --git a/contrib/libstdc++/config/abi/i386-freebsd5/baseline_symbols.txt b/contrib/libstdc++/config/abi/i386-freebsd5/baseline_symbols.txt
new file mode 100644
index 0000000..c66b031
--- /dev/null
+++ b/contrib/libstdc++/config/abi/i386-freebsd5/baseline_symbols.txt
@@ -0,0 +1,3073 @@
+FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.2
+FUNC:_ZNKSaIcE7addressERKc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE7addressERc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE7addressERKw@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE7addressERw@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwjj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_j@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13get_allocatorEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwjj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_j@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwjj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_j@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE2atEj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwjj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwjj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_j@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5c_strEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5emptyEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwjj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_j@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEjj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_foldEjj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_iendEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_jj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCPP_3.2
+FUNC:_ZNKSi6gcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs13get_allocatorEv@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs2atEj@@GLIBCPP_3.2
+FUNC:_ZNKSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4copyEPcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5c_strEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5emptyEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6substrEjj@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_foldEjj@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_iendEv@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNKSs8_M_checkEj@@GLIBCPP_3.2
+FUNC:_ZNKSs8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSs9_M_ibeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSsixEj@@GLIBCPP_3.2
+FUNC:_ZNKSt10istrstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10ostrstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10ostrstream6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE15_M_date_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE15_M_time_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE19_M_days_abbreviatedEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE20_M_date_time_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE21_M_months_abbreviatedEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE6_M_putEPcjPKcPK2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE7_M_ampmEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE7_M_daysEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE9_M_monthsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE15_M_date_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE15_M_time_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE19_M_days_abbreviatedEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE20_M_date_time_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE21_M_months_abbreviatedEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE6_M_putEPwjPKwPK2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE7_M_ampmEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE7_M_daysEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11logic_error4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt12strstreambuf6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_filebufIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_filebufIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13runtime_error4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4gptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4pptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5ebackEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5egptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5epptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5pbaseEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE6getlocEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIcSt11char_traitsIcEE6_M_getEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIwSt11char_traitsIwEE6_M_getEv@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_scan_isEmPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE11do_scan_notEmPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEPKcS2_Pm@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEmc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_scan_isEmPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEPwPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_toupperEPwPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_toupperEw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE11do_scan_notEmPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE19_M_convert_to_wmaskEm@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEPKwS2_Pm@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEmw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE9do_narrowEwc@@GLIBCPP_3.2
+FUNC:_ZNKSt6locale4nameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt6localeeqERKS_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE5do_inERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE6do_outERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERKS0_PKcS5_j@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERKS0_PKcS5_j@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE4hashEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE7compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE7do_hashEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE9transformEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE4hashEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE7compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE7do_hashEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE9transformEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intERKSscRSt8ios_basePcS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_widen_intES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatERKSscPKcPcS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_widen_floatES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIdEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIeEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertES3_RSt8ios_basecPKci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_group_intERKSswRSt8ios_basePwS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_widen_intES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatERKSswPKwPwS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_widen_floatES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIdEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIeEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwiRSt8ios_basePwPKwRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertES3_RSt8ios_basewPKwi@@GLIBCPP_3.2
+FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE20_M_convert_from_charEPc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE3getEiiiRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6localePKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE5closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE6do_getEiiiRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE7do_openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE8do_closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE18_M_convert_to_charERKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE20_M_convert_from_charEPc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE3getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6localePKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE5closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE7do_openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE8do_closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE11do_truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE12do_falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE8truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE9falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE11do_truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE12do_falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE8truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE9falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numERS3_S5_RiiijRKSt5ctypeIcERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameERS3_S5_RiPPKcjRSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numERS3_S5_RiiijRKSt5ctypeIwERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameERS3_S5_RiPPKwjRSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmPKcSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8valarrayIjE4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE10exceptionsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3tieEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4fillEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE6narrowEcc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE10exceptionsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3badEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3eofEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3tieEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4failEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4fillEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4goodEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE6narrowEwc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE7rdstateEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEcvPvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEntEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9exception4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9strstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9strstream6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info10__do_catchEPKS_PPvj@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info14__is_pointer_pEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info15__is_function_pEv@@GLIBCPP_3.2
+FUNC:_ZNSaIcE10deallocateEPcj@@GLIBCPP_3.2
+FUNC:_ZNSaIcE7destroyEPc@@GLIBCPP_3.2
+FUNC:_ZNSaIcE8allocateEjPKv@@GLIBCPP_3.2
+FUNC:_ZNSaIcE9constructEPcRKc@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwE10deallocateEPwj@@GLIBCPP_3.2
+FUNC:_ZNSaIwE7destroyEPw@@GLIBCPP_3.2
+FUNC:_ZNSaIwE8allocateEjPKv@@GLIBCPP_3.2
+FUNC:_ZNSaIwE9constructEPwRKw@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEjwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS2_EES8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS3_S2_EES6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE2atEj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_disposeERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refcopyEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refdataEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep13_M_set_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep15_M_set_sharableEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep7_M_grabERKS1_S5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_j@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEjRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_RepixEj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EE@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEjj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_jj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEjw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_jj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEjw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEjw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKwj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_jj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjjw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEjw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_dataEPw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_leakEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_NS4_IPKwS2_EES9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwS8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_RKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S5_S5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S6_S6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_jw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKwj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_jj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjjw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEjjj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9push_backEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEw@@GLIBCPP_3.2
+FUNC:_ZNSdC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSdC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSdD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPci@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPcic@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERc@@GLIBCPP_3.2
+FUNC:_ZNSi3getEv@@GLIBCPP_3.2
+FUNC:_ZNSi4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSi4readEPci@@GLIBCPP_3.2
+FUNC:_ZNSi4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSi5tellgEv@@GLIBCPP_3.2
+FUNC:_ZNSi5ungetEv@@GLIBCPP_3.2
+FUNC:_ZNSi6ignoreEii@@GLIBCPP_3.2
+FUNC:_ZNSi6sentryC1ERSib@@GLIBCPP_3.2
+FUNC:_ZNSi6sentryC2ERSib@@GLIBCPP_3.2
+FUNC:_ZNSi6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPci@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPcic@@GLIBCPP_3.2
+FUNC:_ZNSi7putbackEc@@GLIBCPP_3.2
+FUNC:_ZNSi8readsomeEPci@@GLIBCPP_3.2
+FUNC:_ZNSiC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSiC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSiD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSiD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSiD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSiS_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSirsERPv@@GLIBCPP_3.2
+FUNC:_ZNSirsERb@@GLIBCPP_3.2
+FUNC:_ZNSirsERd@@GLIBCPP_3.2
+FUNC:_ZNSirsERe@@GLIBCPP_3.2
+FUNC:_ZNSirsERf@@GLIBCPP_3.2
+FUNC:_ZNSirsERi@@GLIBCPP_3.2
+FUNC:_ZNSirsERj@@GLIBCPP_3.2
+FUNC:_ZNSirsERl@@GLIBCPP_3.2
+FUNC:_ZNSirsERm@@GLIBCPP_3.2
+FUNC:_ZNSirsERs@@GLIBCPP_3.2
+FUNC:_ZNSirsERt@@GLIBCPP_3.2
+FUNC:_ZNSirsERx@@GLIBCPP_3.2
+FUNC:_ZNSirsERy@@GLIBCPP_3.2
+FUNC:_ZNSo3putEc@@GLIBCPP_3.2
+FUNC:_ZNSo5flushEv@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSo5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSo5writeEPKci@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC1ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC2ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSoD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSoD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSoD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSoS_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPKv@@GLIBCPP_3.2
+FUNC:_ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSolsEb@@GLIBCPP_3.2
+FUNC:_ZNSolsEd@@GLIBCPP_3.2
+FUNC:_ZNSolsEe@@GLIBCPP_3.2
+FUNC:_ZNSolsEf@@GLIBCPP_3.2
+FUNC:_ZNSolsEi@@GLIBCPP_3.2
+FUNC:_ZNSolsEj@@GLIBCPP_3.2
+FUNC:_ZNSolsEl@@GLIBCPP_3.2
+FUNC:_ZNSolsEm@@GLIBCPP_3.2
+FUNC:_ZNSolsEs@@GLIBCPP_3.2
+FUNC:_ZNSolsEt@@GLIBCPP_3.2
+FUNC:_ZNSolsEx@@GLIBCPP_3.2
+FUNC:_ZNSolsEy@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_M_leak_hardEv@@GLIBCPP_3.2
+FUNC:_ZNSs12_S_constructEjcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_S_empty_repEv@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcPKcS1_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcS_S_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs2atEj@@GLIBCPP_3.2
+FUNC:_ZNSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_destroyERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_disposeERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_refcopyEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_refdataEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep13_M_set_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep15_M_set_sharableEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep7_M_grabERKSaIcES2_@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep8_M_cloneERKSaIcEj@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep9_S_createEjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_RepixEj@@GLIBCPP_3.2
+FUNC:_ZNSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSs4swapERSs@@GLIBCPP_3.2
+FUNC:_ZNSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSs5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEjj@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjjc@@GLIBCPP_3.2
+FUNC:_ZNSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEj@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEjc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_dataEPc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_leakEv@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcj@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjPKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjjc@@GLIBCPP_3.2
+FUNC:_ZNSs7reserveEj@@GLIBCPP_3.2
+FUNC:_ZNSs9_M_mutateEjjj@@GLIBCPP_3.2
+FUNC:_ZNSs9push_backEc@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsaSEPKc@@GLIBCPP_3.2
+FUNC:_ZNSsaSERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsaSEc@@GLIBCPP_3.2
+FUNC:_ZNSsixEj@@GLIBCPP_3.2
+FUNC:_ZNSspLEPKc@@GLIBCPP_3.2
+FUNC:_ZNSspLERKSs@@GLIBCPP_3.2
+FUNC:_ZNSspLEc@@GLIBCPP_3.2
+FUNC:_ZNSt10__num_base13_S_format_intERKSt8ios_basePccc@@GLIBCPP_3.2
+FUNC:_ZNSt10__num_base15_S_format_floatERKSt8ios_basePcci@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10money_base20_S_construct_patternEccc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstream6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcE23_M_initialize_timepunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwE23_M_initialize_timepunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE10sys_ungetcEi@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE12_M_open_modeESt13_Ios_OpenmodeRiS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE16showmanyc_helperEv@@GLIBCPP_3.2.3
+FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE6xsgetnEPci@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE6xsputnEPKci@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE7seekposElSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_getcEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEP7__sFILESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmodeb@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC1EPP13pthread_mutex@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC2EPP13pthread_mutex@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf6setbufEPci@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7_M_freeEPc@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8_M_allocEj@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8_M_setupEPcS0_i@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPFPvjEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKai@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKhi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPaiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPciS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPhiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1Ei@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPFPvjEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKai@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKhi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPaiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPciS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPhiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2Ei@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE17_M_output_unshiftEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_really_overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_set_determinateEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_is_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_underflow_commonEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE20_M_set_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPciRiS4_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPci@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPci@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKci@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE17_M_output_unshiftEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_really_overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_set_determinateEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_is_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_underflow_commonEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE20_M_set_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwiRiS4_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwiw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_Ew@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEii@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC1ERS2_b@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC2ERS2_b@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwiw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7putbackEw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRS2_S3_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERPv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERd@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERe@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERf@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERm@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERs@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERt@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERx@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERy@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC1ERS2_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC2ERS2_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRS2_S3_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPKv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEf@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEm@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEs@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE14_M_in_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_buf_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_pback_createEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE16_M_pback_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5gbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6snextcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7pubsyncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7sungetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8in_availEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8pubimbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9sputbackcEc@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE14_M_in_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_buf_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_pback_createEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE16_M_pback_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5gbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5pbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputcEw@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6sbumpcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6snextcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7pubsyncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7sungetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8in_availEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9sputbackcEw@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEjj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE14_M_really_syncEjj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvj@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10reallocateEPvjj@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_round_upEj@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE14_S_chunk_allocEjRi@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE17_S_freelist_indexEj@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE8allocateEj@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE9_S_refillEj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcE13classic_tableEv@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC1EPKmbj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC1EPiPKmbj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EPKmbj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EPiPKmbj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1EPij@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2EPij@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_@@GLIBCPP_3.2
+FUNC:_ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale11_M_coalesceERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale21_S_normalize_categoryEj@@GLIBCPP_3.2
+FUNC:_ZNSt6locale2idC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale2idC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPNS_5facetE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1EPPNS_5facetEjb@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1ERKS0_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2EPPNS_5facetEjb@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2ERKS0_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet16_M_add_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet17_S_clone_c_localeERPi@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet18_S_create_c_localeERPiPKcS1_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_M_remove_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERPi@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale6globalERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale7classicEv@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1EPNS_5_ImplE@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_PKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2EPNS_5_ImplE@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_PKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeaSERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1EPij@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2EPij@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1EPij@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2EPij@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base13_M_grow_wordsEi@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base15sync_with_stdioEb@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base17_M_call_callbacksENS_5eventE@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base20_M_dispose_callbacksEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4Init13_S_ios_createEb@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4Init14_S_ios_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base6xallocEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7_M_initEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1EPij@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2EPij@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwE22_M_initialize_numpunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1EPij@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2EPij@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC1ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC2ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEixEj@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5rdbufEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE7copyfmtERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE3tieEPSt13basic_ostreamIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4fillEw@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5rdbufEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE7copyfmtERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt9strstream6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD2Ev@@GLIBCPP_3.2
+FUNC:_ZSt10unexpectedv@@GLIBCPP_3.2
+FUNC:_ZSt13set_terminatePFvvE@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIlEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vImEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIxEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIyEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14set_unexpectedPFvvE@@GLIBCPP_3.2
+FUNC:_ZSt15set_new_handlerPFvvE@@GLIBCPP_3.2
+FUNC:_ZSt16__throw_bad_castv@@GLIBCPP_3.2
+FUNC:_ZSt17__throw_bad_allocv@@GLIBCPP_3.2
+FUNC:_ZSt18__throw_bad_typeidv@@GLIBCPP_3.2
+FUNC:_ZSt18uncaught_exceptionv@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_range_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_domain_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_length_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_out_of_rangePKc@@GLIBCPP_3.2
+FUNC:_ZSt21__throw_bad_exceptionv@@GLIBCPP_3.2
+FUNC:_ZSt21__throw_runtime_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt22__throw_overflow_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt23__throw_underflow_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt24__throw_invalid_argumentPKc@@GLIBCPP_3.2
+FUNC:_ZSt24__uninitialized_copy_auxIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsET0_T_SA_S9_12__false_type@@GLIBCPP_3.2
+FUNC:_ZSt26__uninitialized_fill_n_auxIPSsjSsET_S1_T0_RKT1_12__false_type@@GLIBCPP_3.2
+FUNC:_ZSt2wsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt2wsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endlIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt5flushIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt10moneypunctIcLb0EEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt10moneypunctIwLb0EEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt11__timepunctIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt11__timepunctIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt5ctypeIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt5ctypeIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7codecvtIcc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7codecvtIwc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7collateIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7collateIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8messagesIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8messagesIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8numpunctIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8numpunctIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9terminatev@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIcLb0EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIcLb1EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIwLb0EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIwLb1EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt11__timepunctIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt11__timepunctIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt5ctypeIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7collateIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7collateIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8messagesIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8messagesIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8numpunctIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8numpunctIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKa@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKh@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_a@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIfcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIfwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_S3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_@@GLIBCPP_3.2.1
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ERKS6_S8_@@GLIBCPP_3.2.1
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ra@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Rh@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIfcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIfwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZThn8_NSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSiD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSiD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSoD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSoD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt10istrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt10istrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt10ostrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt10ostrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZdaPv@@GLIBCPP_3.2
+FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZdlPv@@GLIBCPP_3.2
+FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znaj@@GLIBCPP_3.2
+FUNC:_ZnajRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znwj@@GLIBCPP_3.2
+FUNC:_ZnwjRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:__cxa_allocate_exception@@CXXABI_1.2
+FUNC:__cxa_bad_cast@@CXXABI_1.2
+FUNC:__cxa_bad_typeid@@CXXABI_1.2
+FUNC:__cxa_begin_catch@@CXXABI_1.2
+FUNC:__cxa_call_unexpected@@CXXABI_1.2
+FUNC:__cxa_current_exception_type@@CXXABI_1.2
+FUNC:__cxa_demangle@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append_char@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_clear@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_delete@@CXXABI_1.2
+FUNC:__cxa_dyn_string_eq@@CXXABI_1.2
+FUNC:__cxa_dyn_string_init@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert_char@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_new@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_release@@CXXABI_1.2
+FUNC:__cxa_dyn_string_resize@@CXXABI_1.2
+FUNC:__cxa_dyn_string_substring@@CXXABI_1.2
+FUNC:__cxa_end_catch@@CXXABI_1.2
+FUNC:__cxa_free_exception@@CXXABI_1.2
+FUNC:__cxa_get_globals@@CXXABI_1.2
+FUNC:__cxa_get_globals_fast@@CXXABI_1.2
+FUNC:__cxa_guard_abort@@CXXABI_1.2.1
+FUNC:__cxa_guard_acquire@@CXXABI_1.2.1
+FUNC:__cxa_guard_release@@CXXABI_1.2.1
+FUNC:__cxa_pure_virtual@@CXXABI_1.2
+FUNC:__cxa_rethrow@@CXXABI_1.2
+FUNC:__cxa_throw@@CXXABI_1.2
+FUNC:__cxa_vec_cctor@@CXXABI_1.2
+FUNC:__cxa_vec_cleanup@@CXXABI_1.2
+FUNC:__cxa_vec_ctor@@CXXABI_1.2
+FUNC:__cxa_vec_delete2@@CXXABI_1.2
+FUNC:__cxa_vec_delete3@@CXXABI_1.2
+FUNC:__cxa_vec_delete@@CXXABI_1.2
+FUNC:__cxa_vec_dtor@@CXXABI_1.2
+FUNC:__cxa_vec_new2@@CXXABI_1.2
+FUNC:__cxa_vec_new3@@CXXABI_1.2
+FUNC:__cxa_vec_new@@CXXABI_1.2
+FUNC:__dynamic_cast@@CXXABI_1.2
+FUNC:__gxx_personality_v0@@CXXABI_1.2
+FUNC:__signbitf@@GLIBCPP_3.2.1
+FUNC:atan2l@@GLIBCPP_3.2.1
+FUNC:coshl@@GLIBCPP_3.2.1
+FUNC:cosl@@GLIBCPP_3.2.1
+FUNC:expl@@GLIBCPP_3.2.1
+FUNC:hypotl@@GLIBCPP_3.2.1
+FUNC:log10l@@GLIBCPP_3.2.1
+FUNC:logl@@GLIBCPP_3.2.1
+FUNC:nan@@GLIBCPP_3.2.1
+FUNC:powl@@GLIBCPP_3.2.1
+FUNC:sinhl@@GLIBCPP_3.2.1
+FUNC:sinl@@GLIBCPP_3.2.1
+FUNC:sqrtl@@GLIBCPP_3.2.1
+FUNC:tanhl@@GLIBCPP_3.2.1
+FUNC:tanl@@GLIBCPP_3.2.1
+OBJECT:0:CXXABI_1.2
+OBJECT:0:CXXABI_1.2.1
+OBJECT:0:GLIBCPP_3.2
+OBJECT:0:GLIBCPP_3.2.1
+OBJECT:0:GLIBCPP_3.2.2
+OBJECT:0:GLIBCPP_3.2.3
+OBJECT:112:_ZSt9facet_vec@@GLIBCPP_3.2
+OBJECT:12:_ZNSt6locale5_Impl13_S_id_collateE@@GLIBCPP_3.2
+OBJECT:12:_ZNSt6locale5_Impl14_S_id_messagesE@@GLIBCPP_3.2
+OBJECT:12:_ZSt7ctype_w@@GLIBCPP_3.2
+OBJECT:12:_ZSt9collate_c@@GLIBCPP_3.2
+OBJECT:12:_ZSt9collate_w@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTINSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt10bad_typeid@@GLIBCPP_3.2
+OBJECT:12:_ZTISt10istrstream@@GLIBCPP_3.2
+OBJECT:12:_ZTISt10ostrstream@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11logic_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11range_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt12domain_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt12length_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt12out_of_range@@GLIBCPP_3.2
+OBJECT:12:_ZTISt12strstreambuf@@GLIBCPP_3.2
+OBJECT:12:_ZTISt13bad_exception@@GLIBCPP_3.2
+OBJECT:12:_ZTISt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt13runtime_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14overflow_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15underflow_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt16invalid_argument@@GLIBCPP_3.2
+OBJECT:12:_ZTISt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt7collateIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt7collateIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt8bad_cast@@GLIBCPP_3.2
+OBJECT:12:_ZTISt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt9bad_alloc@@GLIBCPP_3.2
+OBJECT:12:_ZTISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt9strstream@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt8bad_cast@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt8ios_base@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9bad_alloc@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9exception@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9strstream@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9time_base@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9type_info@@GLIBCPP_3.2
+OBJECT:140:_ZSt4cerr@@GLIBCPP_3.2
+OBJECT:140:_ZSt4clog@@GLIBCPP_3.2
+OBJECT:140:_ZSt4cout@@GLIBCPP_3.2
+OBJECT:144:_ZSt3cin@@GLIBCPP_3.2
+OBJECT:144:_ZSt5wcerr@@GLIBCPP_3.2
+OBJECT:144:_ZSt5wclog@@GLIBCPP_3.2
+OBJECT:144:_ZSt5wcout@@GLIBCPP_3.2
+OBJECT:148:_ZSt4wcin@@GLIBCPP_3.2
+OBJECT:14:_ZTSSt7collateIcE@@GLIBCPP_3.2
+OBJECT:14:_ZTSSt7collateIwE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10__num_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10bad_typeid@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10ctype_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10istrstream@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10money_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10ostrstream@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8messagesIcE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8messagesIwE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:16:_ZNSbIwSt11char_traitsIwESaIwEE20_S_empty_rep_storageE@@GLIBCPP_3.2
+OBJECT:16:_ZNSs20_S_empty_rep_storageE@@GLIBCPP_3.2
+OBJECT:16:_ZSt10messages_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt10messages_w@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKa@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKb@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKc@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKd@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKe@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKf@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKh@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKi@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKj@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKl@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKm@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKs@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKt@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKv@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKw@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKx@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKy@@GLIBCPP_3.2
+OBJECT:16:_ZTIPa@@GLIBCPP_3.2
+OBJECT:16:_ZTIPb@@GLIBCPP_3.2
+OBJECT:16:_ZTIPc@@GLIBCPP_3.2
+OBJECT:16:_ZTIPd@@GLIBCPP_3.2
+OBJECT:16:_ZTIPe@@GLIBCPP_3.2
+OBJECT:16:_ZTIPf@@GLIBCPP_3.2
+OBJECT:16:_ZTIPh@@GLIBCPP_3.2
+OBJECT:16:_ZTIPi@@GLIBCPP_3.2
+OBJECT:16:_ZTIPj@@GLIBCPP_3.2
+OBJECT:16:_ZTIPl@@GLIBCPP_3.2
+OBJECT:16:_ZTIPm@@GLIBCPP_3.2
+OBJECT:16:_ZTIPs@@GLIBCPP_3.2
+OBJECT:16:_ZTIPt@@GLIBCPP_3.2
+OBJECT:16:_ZTIPv@@GLIBCPP_3.2
+OBJECT:16:_ZTIPw@@GLIBCPP_3.2
+OBJECT:16:_ZTIPx@@GLIBCPP_3.2
+OBJECT:16:_ZTIPy@@GLIBCPP_3.2
+OBJECT:16:_ZTSSt11logic_error@@GLIBCPP_3.2
+OBJECT:16:_ZTSSt11range_error@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt10istrstream@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt10ostrstream@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:16:_ZTVNSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:16:_ZTVSt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:16:_ZTVSt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:16:_ZTVSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:16:_ZTVSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12codecvt_base@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12domain_error@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12length_error@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12out_of_range@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12strstreambuf@@GLIBCPP_3.2
+OBJECT:18:_ZTSNSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13bad_exception@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13messages_base@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13runtime_error@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt14overflow_error@@GLIBCPP_3.2
+OBJECT:1:_ZNSs4_Rep11_S_terminalE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIcLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIcLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIwLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIwLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt8ios_base4Init20_S_synced_with_stdioE@@GLIBCPP_3.2
+OBJECT:1:_ZSt7nothrow@@GLIBCPP_3.2
+OBJECT:204:_ZSt11timepunct_c@@GLIBCPP_3.2
+OBJECT:204:_ZSt11timepunct_w@@GLIBCPP_3.2
+OBJECT:20:_ZNSt6locale5_Impl11_S_id_ctypeE@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt15underflow_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVNSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt10bad_typeid@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt11logic_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt11range_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt12domain_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt12length_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt12out_of_range@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt13bad_exception@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt13runtime_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt14overflow_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt15underflow_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt16invalid_argument@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt8bad_cast@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt9bad_alloc@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt9exception@@GLIBCPP_3.2
+OBJECT:21:_ZTSSt16invalid_argument@@GLIBCPP_3.2
+OBJECT:22:_ZTSNSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:23:_ZNSt10__num_base8_S_atomsE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZSt10numpunct_c@@GLIBCPP_3.2
+OBJECT:24:_ZTVSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTVSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTVSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTVSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:256:_ZSt12_S_bit_count@@GLIBCPP_3.2
+OBJECT:256:_ZSt12_S_first_one@@GLIBCPP_3.2
+OBJECT:28:_ZNSt6locale5_Impl10_S_id_timeE@@GLIBCPP_3.2
+OBJECT:28:_ZNSt6locale5_Impl13_S_id_numericE@@GLIBCPP_3.2
+OBJECT:28:_ZNSt6locale5_Impl19_S_facet_categoriesE@@GLIBCPP_3.2
+OBJECT:28:_ZSt10numpunct_w@@GLIBCPP_3.2
+OBJECT:28:_ZSt7ctype_c@@GLIBCPP_3.2
+OBJECT:28:_ZTSSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:28:_ZTSSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:28:_ZTTSd@@GLIBCPP_3.2
+OBJECT:28:_ZTTSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt7collateIcE@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt7collateIwE@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt8messagesIcE@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt8messagesIwE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:2:_ZTSa@@GLIBCPP_3.2
+OBJECT:2:_ZTSb@@GLIBCPP_3.2
+OBJECT:2:_ZTSc@@GLIBCPP_3.2
+OBJECT:2:_ZTSd@@GLIBCPP_3.2
+OBJECT:2:_ZTSe@@GLIBCPP_3.2
+OBJECT:2:_ZTSf@@GLIBCPP_3.2
+OBJECT:2:_ZTSh@@GLIBCPP_3.2
+OBJECT:2:_ZTSi@@GLIBCPP_3.2
+OBJECT:2:_ZTSj@@GLIBCPP_3.2
+OBJECT:2:_ZTSl@@GLIBCPP_3.2
+OBJECT:2:_ZTSm@@GLIBCPP_3.2
+OBJECT:2:_ZTSs@@GLIBCPP_3.2
+OBJECT:2:_ZTSt@@GLIBCPP_3.2
+OBJECT:2:_ZTSv@@GLIBCPP_3.2
+OBJECT:2:_ZTSw@@GLIBCPP_3.2
+OBJECT:2:_ZTSx@@GLIBCPP_3.2
+OBJECT:2:_ZTSy@@GLIBCPP_3.2
+OBJECT:32:_ZTISi@@GLIBCPP_3.2
+OBJECT:32:_ZTISo@@GLIBCPP_3.2
+OBJECT:32:_ZTISt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTISt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTISt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTISt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTVN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:32:_ZTVN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:32:_ZTVN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:32:_ZTVN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:32:_ZTVSt9type_info@@GLIBCPP_3.2
+OBJECT:33:_ZTSN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:34:_ZTSSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:36:_ZNSt6locale5_Impl14_S_id_monetaryE@@GLIBCPP_3.2
+OBJECT:36:_ZSt13c_locale_impl@@GLIBCPP_3.2
+OBJECT:36:_ZTSN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:36:_ZTSSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:36:_ZTSSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:36:_ZTVN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:36:_ZTVN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:36:_ZTVN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:36:_ZTVSt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:36:_ZTVSt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:36:_ZTVSt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:36:_ZTVSt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:37:_ZTSN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:37:_ZTSN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:38:_ZTSN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:3:_ZTSPa@@GLIBCPP_3.2
+OBJECT:3:_ZTSPb@@GLIBCPP_3.2
+OBJECT:3:_ZTSPc@@GLIBCPP_3.2
+OBJECT:3:_ZTSPd@@GLIBCPP_3.2
+OBJECT:3:_ZTSPe@@GLIBCPP_3.2
+OBJECT:3:_ZTSPf@@GLIBCPP_3.2
+OBJECT:3:_ZTSPh@@GLIBCPP_3.2
+OBJECT:3:_ZTSPi@@GLIBCPP_3.2
+OBJECT:3:_ZTSPj@@GLIBCPP_3.2
+OBJECT:3:_ZTSPl@@GLIBCPP_3.2
+OBJECT:3:_ZTSPm@@GLIBCPP_3.2
+OBJECT:3:_ZTSPs@@GLIBCPP_3.2
+OBJECT:3:_ZTSPt@@GLIBCPP_3.2
+OBJECT:3:_ZTSPv@@GLIBCPP_3.2
+OBJECT:3:_ZTSPw@@GLIBCPP_3.2
+OBJECT:3:_ZTSPx@@GLIBCPP_3.2
+OBJECT:3:_ZTSPy@@GLIBCPP_3.2
+OBJECT:3:_ZTSSd@@GLIBCPP_3.2
+OBJECT:3:_ZTSSi@@GLIBCPP_3.2
+OBJECT:3:_ZTSSo@@GLIBCPP_3.2
+OBJECT:40:_ZSt13moneypunct_fc@@GLIBCPP_3.2
+OBJECT:40:_ZSt13moneypunct_tc@@GLIBCPP_3.2
+OBJECT:40:_ZTISd@@GLIBCPP_3.2
+OBJECT:40:_ZTISt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt8messagesIcE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt8messagesIwE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTTSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTTSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTTSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTTSt9strstream@@GLIBCPP_3.2
+OBJECT:40:_ZTVSi@@GLIBCPP_3.2
+OBJECT:40:_ZTVSo@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt10istrstream@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt10ostrstream@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:41:_ZTSSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:44:_ZSt13moneypunct_fw@@GLIBCPP_3.2
+OBJECT:44:_ZSt13moneypunct_tw@@GLIBCPP_3.2
+OBJECT:44:_ZTVN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:44:_ZTVN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:44:_ZTVN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:44:_ZTVSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:44:_ZTVSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:44:_ZTVSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:44:_ZTVSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:44:_ZTVSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:44:_ZTVSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:46:_ZTSN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:46:_ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:46:_ZTSSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:480:_ZSt7buf_cin@@GLIBCPP_3.2
+OBJECT:480:_ZSt8buf_cerr@@GLIBCPP_3.2
+OBJECT:480:_ZSt8buf_cout@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:496:_ZSt8buf_wcin@@GLIBCPP_3.2
+OBJECT:496:_ZSt9buf_wcerr@@GLIBCPP_3.2
+OBJECT:496:_ZSt9buf_wcout@@GLIBCPP_3.2
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSs4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSs4nposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10__num_base11_S_atoms_inE@@GLIBCPP_3.2.3
+OBJECT:4:_ZNSt10__num_base12_S_atoms_outE@@GLIBCPP_3.2.3
+OBJECT:4:_ZNSt10ctype_base5alnumE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5alphaE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5cntrlE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5digitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5graphE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5lowerE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5printE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5punctE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5spaceE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5upperE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base6xdigitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10money_base18_S_default_patternE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt11__timepunctIcE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt11__timepunctIwE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_end_freeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_force_newE@@GLIBCPP_3.2.2
+OBJECT:4:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_heap_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt24__default_alloc_templateILb1ELi0EE13_S_start_freeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt5ctypeIcE10table_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt5ctypeIcE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt5ctypeIwE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale10_S_classicE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale17_S_num_categoriesE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale2id12_S_highwaterE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale3allE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale4noneE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale4timeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale5ctypeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale5facet11_S_c_localeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale7collateE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale7numericE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale8messagesE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale8monetaryE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale9_S_globalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7codecvtIcc11__mbstate_tE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7codecvtIwc11__mbstate_tE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7collateIcE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7collateIwE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base10floatfieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base10scientificE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base11adjustfieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base18_S_local_word_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base2inE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3appE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3ateE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3begE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3curE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3decE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3endE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3hexE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3octE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3outE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base4Init16_S_ios_base_initE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base4leftE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5fixedE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5rightE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5truncE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6badbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6binaryE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6eofbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6skipwsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7failbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7goodbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7showposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7unitbufE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base8internalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base8showbaseE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9basefieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9boolalphaE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9showpointE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9uppercaseE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8messagesIcE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8messagesIwE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8numpunctIcE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8numpunctIwE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZSt8c_locale@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKa@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKb@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKc@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKd@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKe@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKf@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKh@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKi@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKj@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKl@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKm@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKs@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKt@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKv@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKw@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKx@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKy@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt11__timepunctIcE12_S_timezonesE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt11__timepunctIwE12_S_timezonesE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSd@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt9strstream@@GLIBCPP_3.2
+OBJECT:64:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_free_listE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt12strstreambuf@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:68:_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:68:_ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt11__timepunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt11__timepunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7collateIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7collateIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8messagesIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8messagesIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8numpunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8numpunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZSt10time_get_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt10time_get_w@@GLIBCPP_3.2
+OBJECT:8:_ZSt10time_put_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt10time_put_w@@GLIBCPP_3.2
+OBJECT:8:_ZSt11money_get_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt11money_get_w@@GLIBCPP_3.2
+OBJECT:8:_ZSt11money_put_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt11money_put_w@@GLIBCPP_3.2
+OBJECT:8:_ZSt9codecvt_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt9codecvt_w@@GLIBCPP_3.2
+OBJECT:8:_ZSt9num_get_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt9num_get_w@@GLIBCPP_3.2
+OBJECT:8:_ZSt9num_put_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt9num_put_w@@GLIBCPP_3.2
+OBJECT:8:_ZTINSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10__num_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10ctype_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10money_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt12codecvt_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt13messages_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:8:_ZTISt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:8:_ZTISt8ios_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt9exception@@GLIBCPP_3.2
+OBJECT:8:_ZTISt9time_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt9type_info@@GLIBCPP_3.2
+OBJECT:8:_ZTIa@@GLIBCPP_3.2
+OBJECT:8:_ZTIb@@GLIBCPP_3.2
+OBJECT:8:_ZTIc@@GLIBCPP_3.2
+OBJECT:8:_ZTId@@GLIBCPP_3.2
+OBJECT:8:_ZTIe@@GLIBCPP_3.2
+OBJECT:8:_ZTIf@@GLIBCPP_3.2
+OBJECT:8:_ZTIh@@GLIBCPP_3.2
+OBJECT:8:_ZTIi@@GLIBCPP_3.2
+OBJECT:8:_ZTIj@@GLIBCPP_3.2
+OBJECT:8:_ZTIl@@GLIBCPP_3.2
+OBJECT:8:_ZTIm@@GLIBCPP_3.2
+OBJECT:8:_ZTIs@@GLIBCPP_3.2
+OBJECT:8:_ZTIt@@GLIBCPP_3.2
+OBJECT:8:_ZTIv@@GLIBCPP_3.2
+OBJECT:8:_ZTIw@@GLIBCPP_3.2
+OBJECT:8:_ZTIx@@GLIBCPP_3.2
+OBJECT:8:_ZTIy@@GLIBCPP_3.2
+OBJECT:8:_ZTTSi@@GLIBCPP_3.2
+OBJECT:8:_ZTTSo@@GLIBCPP_3.2
+OBJECT:8:_ZTTSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:8:_ZTTSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
diff --git a/contrib/libstdc++/config/abi/i486-linux-gnu/baseline_symbols.txt b/contrib/libstdc++/config/abi/i486-linux-gnu/baseline_symbols.txt
new file mode 100644
index 0000000..018ef0e
--- /dev/null
+++ b/contrib/libstdc++/config/abi/i486-linux-gnu/baseline_symbols.txt
@@ -0,0 +1,3058 @@
+FUNC:__cxa_allocate_exception@@CXXABI_1.2
+FUNC:__cxa_bad_cast@@CXXABI_1.2
+FUNC:__cxa_bad_typeid@@CXXABI_1.2
+FUNC:__cxa_begin_catch@@CXXABI_1.2
+FUNC:__cxa_call_unexpected@@CXXABI_1.2
+FUNC:__cxa_current_exception_type@@CXXABI_1.2
+FUNC:__cxa_demangle@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append_char@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append@@CXXABI_1.2
+FUNC:__cxa_dyn_string_clear@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy@@CXXABI_1.2
+FUNC:__cxa_dyn_string_delete@@CXXABI_1.2
+FUNC:__cxa_dyn_string_eq@@CXXABI_1.2
+FUNC:__cxa_dyn_string_init@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert_char@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert@@CXXABI_1.2
+FUNC:__cxa_dyn_string_new@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend@@CXXABI_1.2
+FUNC:__cxa_dyn_string_release@@CXXABI_1.2
+FUNC:__cxa_dyn_string_resize@@CXXABI_1.2
+FUNC:__cxa_dyn_string_substring@@CXXABI_1.2
+FUNC:__cxa_end_catch@@CXXABI_1.2
+FUNC:__cxa_free_exception@@CXXABI_1.2
+FUNC:__cxa_get_globals@@CXXABI_1.2
+FUNC:__cxa_get_globals_fast@@CXXABI_1.2
+FUNC:__cxa_guard_abort@@CXXABI_1.2.1
+FUNC:__cxa_guard_acquire@@CXXABI_1.2.1
+FUNC:__cxa_guard_release@@CXXABI_1.2.1
+FUNC:__cxa_pure_virtual@@CXXABI_1.2
+FUNC:__cxa_rethrow@@CXXABI_1.2
+FUNC:__cxa_throw@@CXXABI_1.2
+FUNC:__cxa_vec_cctor@@CXXABI_1.2
+FUNC:__cxa_vec_cleanup@@CXXABI_1.2
+FUNC:__cxa_vec_ctor@@CXXABI_1.2
+FUNC:__cxa_vec_delete2@@CXXABI_1.2
+FUNC:__cxa_vec_delete3@@CXXABI_1.2
+FUNC:__cxa_vec_delete@@CXXABI_1.2
+FUNC:__cxa_vec_dtor@@CXXABI_1.2
+FUNC:__cxa_vec_new2@@CXXABI_1.2
+FUNC:__cxa_vec_new3@@CXXABI_1.2
+FUNC:__cxa_vec_new@@CXXABI_1.2
+FUNC:__dynamic_cast@@CXXABI_1.2
+FUNC:__gxx_personality_v0@@CXXABI_1.2
+FUNC:_ZdaPv@@GLIBCPP_3.2
+FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZdlPv@@GLIBCPP_3.2
+FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.2
+FUNC:_Znaj@@GLIBCPP_3.2
+FUNC:_ZnajRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE7addressERc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE7addressERKc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE7addressERKw@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE7addressERw@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwjj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_j@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13get_allocatorEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwjj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_j@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwjj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_j@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE2atEj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwjj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwjj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_j@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5c_strEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5emptyEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwjj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_j@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEjj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_jj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_foldEjj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_iendEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCPP_3.2
+FUNC:_ZNKSi6gcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs13get_allocatorEv@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs2atEj@@GLIBCPP_3.2
+FUNC:_ZNKSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4copyEPcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5c_strEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5emptyEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6substrEjj@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_foldEjj@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_iendEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8_M_checkEj@@GLIBCPP_3.2
+FUNC:_ZNKSs9_M_ibeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSsixEj@@GLIBCPP_3.2
+FUNC:_ZNKSt10istrstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10ostrstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10ostrstream6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt11logic_error4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE15_M_date_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE15_M_time_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE19_M_days_abbreviatedEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE20_M_date_time_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE21_M_months_abbreviatedEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE6_M_putEPcjPKcPK2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE7_M_ampmEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE7_M_daysEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE9_M_monthsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE15_M_date_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE15_M_time_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE19_M_days_abbreviatedEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE20_M_date_time_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE21_M_months_abbreviatedEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE6_M_putEPwjPKwPK2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE7_M_ampmEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE7_M_daysEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt12strstreambuf6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_filebufIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_filebufIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13runtime_error4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4gptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4pptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5ebackEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5egptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5epptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5pbaseEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE6getlocEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIcSt11char_traitsIcEE6_M_getEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIwSt11char_traitsIwEE6_M_getEv@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_scan_isEtPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE11do_scan_notEtPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEPKcS2_Pt@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEtc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_scan_isEtPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEPwPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_toupperEPwPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_toupperEw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE11do_scan_notEtPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE19_M_convert_to_wmaskEt@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEPKwS2_Pt@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEtw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE9do_narrowEwc@@GLIBCPP_3.2
+FUNC:_ZNKSt6locale4nameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt6localeeqERKS_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE5do_inERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE6do_outERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERKS0_PKcS5_j@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERKS0_PKcS5_j@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE4hashEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE7compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE7do_hashEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE9transformEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE4hashEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE7compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE7do_hashEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE9transformEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intERKSscRSt8ios_basePcS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_widen_intES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatERKSscPKcPcS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_widen_floatES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIdEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIeEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertES3_RSt8ios_basecPKci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_group_intERKSswRSt8ios_basePwS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_widen_intES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatERKSswPKwPwS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_widen_floatES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIdEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIeEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwiRSt8ios_basePwPKwRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertES3_RSt8ios_basewPKwi@@GLIBCPP_3.2
+FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE20_M_convert_from_charEPc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE3getEiiiRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6localePKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE5closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE6do_getEiiiRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE7do_openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE8do_closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE18_M_convert_to_charERKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE20_M_convert_from_charEPc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE3getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6localePKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE5closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE7do_openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE8do_closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE11do_truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE12do_falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE8truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE9falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE11do_truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE12do_falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE8truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE9falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numERS3_S5_RiiijRKSt5ctypeIcERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameERS3_S5_RiPPKcjRSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numERS3_S5_RiiijRKSt5ctypeIwERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameERS3_S5_RiPPKwjRSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmPKcSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8valarrayIjE4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE10exceptionsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3tieEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4fillEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE6narrowEcc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE10exceptionsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3badEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3eofEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3tieEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4failEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4fillEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4goodEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE6narrowEwc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE7rdstateEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEcvPvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEntEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9exception4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9strstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9strstream6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info10__do_catchEPKS_PPvj@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info14__is_pointer_pEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info15__is_function_pEv@@GLIBCPP_3.2
+FUNC:_ZNSaIcE10deallocateEPcj@@GLIBCPP_3.2
+FUNC:_ZNSaIcE7destroyEPc@@GLIBCPP_3.2
+FUNC:_ZNSaIcE8allocateEjPKv@@GLIBCPP_3.2
+FUNC:_ZNSaIcE9constructEPcRKc@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwE10deallocateEPwj@@GLIBCPP_3.2
+FUNC:_ZNSaIwE7destroyEPw@@GLIBCPP_3.2
+FUNC:_ZNSaIwE8allocateEjPKv@@GLIBCPP_3.2
+FUNC:_ZNSaIwE9constructEPwRKw@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEjwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS2_EES8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS3_S2_EES6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE2atEj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_disposeERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refcopyEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refdataEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep13_M_set_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep15_M_set_sharableEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep7_M_grabERKS1_S5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_j@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEjRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_RepixEj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEjj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EE@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEjw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_jj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEjw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_jj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjjw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKwj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_jj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEjw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEjw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_dataEPw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_leakEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjjw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKwj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_jj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_jw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_NS4_IPKwS2_EES9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwS8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_RKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S5_S5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S6_S6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEjjj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9push_backEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEw@@GLIBCPP_3.2
+FUNC:_ZNSdC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSdC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSdD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPcic@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPci@@GLIBCPP_3.2
+FUNC:_ZNSi3getERc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSi3getEv@@GLIBCPP_3.2
+FUNC:_ZNSi4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSi4readEPci@@GLIBCPP_3.2
+FUNC:_ZNSi4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSi5tellgEv@@GLIBCPP_3.2
+FUNC:_ZNSi5ungetEv@@GLIBCPP_3.2
+FUNC:_ZNSi6ignoreEii@@GLIBCPP_3.2
+FUNC:_ZNSi6sentryC1ERSib@@GLIBCPP_3.2
+FUNC:_ZNSi6sentryC2ERSib@@GLIBCPP_3.2
+FUNC:_ZNSi6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPcic@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPci@@GLIBCPP_3.2
+FUNC:_ZNSi7putbackEc@@GLIBCPP_3.2
+FUNC:_ZNSi8readsomeEPci@@GLIBCPP_3.2
+FUNC:_ZNSiC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSiC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSiD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSiD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSiD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSiS_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSirsERb@@GLIBCPP_3.2
+FUNC:_ZNSirsERd@@GLIBCPP_3.2
+FUNC:_ZNSirsERe@@GLIBCPP_3.2
+FUNC:_ZNSirsERf@@GLIBCPP_3.2
+FUNC:_ZNSirsERi@@GLIBCPP_3.2
+FUNC:_ZNSirsERj@@GLIBCPP_3.2
+FUNC:_ZNSirsERl@@GLIBCPP_3.2
+FUNC:_ZNSirsERm@@GLIBCPP_3.2
+FUNC:_ZNSirsERPv@@GLIBCPP_3.2
+FUNC:_ZNSirsERs@@GLIBCPP_3.2
+FUNC:_ZNSirsERt@@GLIBCPP_3.2
+FUNC:_ZNSirsERx@@GLIBCPP_3.2
+FUNC:_ZNSirsERy@@GLIBCPP_3.2
+FUNC:_ZNSo3putEc@@GLIBCPP_3.2
+FUNC:_ZNSo5flushEv@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSo5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSo5writeEPKci@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC1ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC2ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSoD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSoD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSoD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSolsEb@@GLIBCPP_3.2
+FUNC:_ZNSolsEd@@GLIBCPP_3.2
+FUNC:_ZNSolsEe@@GLIBCPP_3.2
+FUNC:_ZNSolsEf@@GLIBCPP_3.2
+FUNC:_ZNSolsEi@@GLIBCPP_3.2
+FUNC:_ZNSolsEj@@GLIBCPP_3.2
+FUNC:_ZNSolsEl@@GLIBCPP_3.2
+FUNC:_ZNSolsEm@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSoS_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPKv@@GLIBCPP_3.2
+FUNC:_ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSolsEs@@GLIBCPP_3.2
+FUNC:_ZNSolsEt@@GLIBCPP_3.2
+FUNC:_ZNSolsEx@@GLIBCPP_3.2
+FUNC:_ZNSolsEy@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_M_leak_hardEv@@GLIBCPP_3.2
+FUNC:_ZNSs12_S_constructEjcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_S_empty_repEv@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcPKcS1_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcS_S_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_@@GLIBCPP_3.2
+FUNC:_ZNSs2atEj@@GLIBCPP_3.2
+FUNC:_ZNSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_destroyERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_disposeERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_refcopyEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_refdataEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep13_M_set_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep15_M_set_sharableEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep7_M_grabERKSaIcES2_@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep8_M_cloneERKSaIcEj@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep9_S_createEjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_RepixEj@@GLIBCPP_3.2
+FUNC:_ZNSs4swapERSs@@GLIBCPP_3.2
+FUNC:_ZNSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSs5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEjj@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjjc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEj@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_dataEPc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_leakEv@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjjc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjPKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcj@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNSs7reserveEj@@GLIBCPP_3.2
+FUNC:_ZNSs9_M_mutateEjjj@@GLIBCPP_3.2
+FUNC:_ZNSs9push_backEc@@GLIBCPP_3.2
+FUNC:_ZNSsaSEc@@GLIBCPP_3.2
+FUNC:_ZNSsaSEPKc@@GLIBCPP_3.2
+FUNC:_ZNSsaSERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsixEj@@GLIBCPP_3.2
+FUNC:_ZNSspLEc@@GLIBCPP_3.2
+FUNC:_ZNSspLEPKc@@GLIBCPP_3.2
+FUNC:_ZNSspLERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10money_base20_S_construct_patternEccc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10__num_base13_S_format_intERKSt8ios_basePccc@@GLIBCPP_3.2
+FUNC:_ZNSt10__num_base15_S_format_floatERKSt8ios_basePcci@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstream6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcE23_M_initialize_timepunctEP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwE23_M_initialize_timepunctEP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE10sys_ungetcEi@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE12_M_open_modeESt13_Ios_OpenmodeRiS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE16showmanyc_helperEv@@GLIBCPP_3.2.3
+FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE6xsgetnEPci@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE6xsputnEPKci@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE7seekposElSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_getcEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmodeb@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEP8_IO_FILESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC1EP15pthread_mutex_t@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf6setbufEPci@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7_M_freeEPc@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8_M_allocEj@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8_M_setupEPcS0_i@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1Ei@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPaiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPciS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPFPvjEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPhiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKai@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKhi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2Ei@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPaiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPciS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPFPvjEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPhiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKai@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKhi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE17_M_output_unshiftEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_really_overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_set_determinateEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_is_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_underflow_commonEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE20_M_set_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPciRiS4_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPci@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPci@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKci@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE17_M_output_unshiftEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_really_overflowEj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_set_determinateEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_is_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_underflow_commonEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE20_M_set_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwiRiS4_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE8overflowEj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwiw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_Ew@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEij@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC1ERS2_b@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC2ERS2_b@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwiw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7putbackEw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRS2_S3_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERd@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERe@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERf@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERm@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERPv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERs@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERt@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERx@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERy@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC1ERS2_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC2ERS2_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEf@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEm@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRS2_S3_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPKv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEs@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE14_M_in_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_buf_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_pback_createEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE16_M_pback_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5gbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6snextcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7pubsyncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7sungetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8in_availEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8pubimbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9sputbackcEc@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE14_M_in_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_buf_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_pback_createEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE16_M_pback_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5gbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5pbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputcEw@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6sbumpcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6snextcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7pubsyncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7sungetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8in_availEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8overflowEj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9sputbackcEw@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEjj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE14_M_really_syncEjj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvj@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10reallocateEPvjj@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_round_upEj@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE14_S_chunk_allocEjRi@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE17_S_freelist_indexEj@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE8allocateEj@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE9_S_refillEj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcE13classic_tableEv@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC1EP15__locale_structPKtbj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC1EPKtbj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EP15__locale_structPKtbj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EPKtbj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_@@GLIBCPP_3.2
+FUNC:_ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale11_M_coalesceERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale21_S_normalize_categoryEj@@GLIBCPP_3.2
+FUNC:_ZNSt6locale2idC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale2idC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet16_M_add_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet17_S_clone_c_localeERP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet18_S_create_c_localeERP15__locale_structPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_M_remove_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPNS_5facetE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1EPPNS_5facetEjb@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1ERKS0_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2EPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2EPPNS_5facetEjb@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2ERKS0_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale6globalERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale7classicEv@@GLIBCPP_3.2
+FUNC:_ZNSt6localeaSERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1EPNS_5_ImplE@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_PKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2EPNS_5_ImplE@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_PKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base13_M_grow_wordsEi@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base15sync_with_stdioEb@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base17_M_call_callbacksENS_5eventE@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base20_M_dispose_callbacksEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4Init13_S_ios_createEb@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4Init14_S_ios_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base6xallocEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7_M_initEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwE22_M_initialize_numpunctEP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC1ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC2ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEixEj@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5rdbufEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE7copyfmtERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE3tieEPSt13basic_ostreamIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4fillEw@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5rdbufEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE7copyfmtERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt9strstream6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD2Ev@@GLIBCPP_3.2
+FUNC:_Znwj@@GLIBCPP_3.2
+FUNC:_ZnwjRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZSt10unexpectedv@@GLIBCPP_3.2
+FUNC:_ZSt13set_terminatePFvvE@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIlEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vImEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIxEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIyEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14set_unexpectedPFvvE@@GLIBCPP_3.2
+FUNC:_ZSt15set_new_handlerPFvvE@@GLIBCPP_3.2
+FUNC:_ZSt16__throw_bad_castv@@GLIBCPP_3.2
+FUNC:_ZSt17__throw_bad_allocv@@GLIBCPP_3.2
+FUNC:_ZSt18__throw_bad_typeidv@@GLIBCPP_3.2
+FUNC:_ZSt18uncaught_exceptionv@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_range_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_domain_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_length_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_out_of_rangePKc@@GLIBCPP_3.2
+FUNC:_ZSt21__throw_bad_exceptionv@@GLIBCPP_3.2
+FUNC:_ZSt21__throw_runtime_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt22__throw_overflow_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt23__throw_underflow_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt24__throw_invalid_argumentPKc@@GLIBCPP_3.2
+FUNC:_ZSt24__uninitialized_copy_auxIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsET0_T_SA_S9_12__false_type@@GLIBCPP_3.2
+FUNC:_ZSt26__uninitialized_fill_n_auxIPSsjSsET_S1_T0_RKT1_12__false_type@@GLIBCPP_3.2
+FUNC:_ZSt2wsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt2wsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endlIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt5flushIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt10moneypunctIcLb0EEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt10moneypunctIwLb0EEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt11__timepunctIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt11__timepunctIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt5ctypeIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt5ctypeIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7codecvtIcc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7codecvtIwc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7collateIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7collateIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8messagesIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8messagesIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8numpunctIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8numpunctIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9terminatev@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIcLb0EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIcLb1EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIwLb0EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIwLb1EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt11__timepunctIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt11__timepunctIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt5ctypeIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7collateIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7collateIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8messagesIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8messagesIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8numpunctIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8numpunctIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIfcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIfwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_a@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKa@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKh@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_S3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_@@GLIBCPP_3.2.1
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ERKS6_S8_@@GLIBCPP_3.2.1
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIfcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIfwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ra@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Rh@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZThn8_NSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZThn8_NSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSiD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSiD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSoD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSoD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt10istrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt10istrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt10ostrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt10ostrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n12_NSt9strstreamD1Ev@@GLIBCPP_3.2
+OBJECT:0:CXXABI_1.2
+OBJECT:0:CXXABI_1.2.1
+OBJECT:0:GLIBCPP_3.2
+OBJECT:0:GLIBCPP_3.2.1
+OBJECT:0:GLIBCPP_3.2.2
+OBJECT:0:GLIBCPP_3.2.3
+OBJECT:112:_ZSt9facet_vec@@GLIBCPP_3.2
+OBJECT:12:_ZNSt6locale5_Impl13_S_id_collateE@@GLIBCPP_3.2
+OBJECT:12:_ZNSt6locale5_Impl14_S_id_messagesE@@GLIBCPP_3.2
+OBJECT:12:_ZSt7ctype_w@@GLIBCPP_3.2
+OBJECT:12:_ZSt9collate_c@@GLIBCPP_3.2
+OBJECT:12:_ZSt9collate_w@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTINSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt10bad_typeid@@GLIBCPP_3.2
+OBJECT:12:_ZTISt10istrstream@@GLIBCPP_3.2
+OBJECT:12:_ZTISt10ostrstream@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11logic_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11range_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt12domain_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt12length_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt12out_of_range@@GLIBCPP_3.2
+OBJECT:12:_ZTISt12strstreambuf@@GLIBCPP_3.2
+OBJECT:12:_ZTISt13bad_exception@@GLIBCPP_3.2
+OBJECT:12:_ZTISt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt13runtime_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt14overflow_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt15underflow_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt16invalid_argument@@GLIBCPP_3.2
+OBJECT:12:_ZTISt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt7collateIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt7collateIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt8bad_cast@@GLIBCPP_3.2
+OBJECT:12:_ZTISt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt9bad_alloc@@GLIBCPP_3.2
+OBJECT:12:_ZTISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt9strstream@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt8bad_cast@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt8ios_base@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9bad_alloc@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9exception@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9strstream@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9time_base@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9type_info@@GLIBCPP_3.2
+OBJECT:140:_ZSt4cerr@@GLIBCPP_3.2
+OBJECT:140:_ZSt4clog@@GLIBCPP_3.2
+OBJECT:140:_ZSt4cout@@GLIBCPP_3.2
+OBJECT:140:_ZSt7buf_cin@@GLIBCPP_3.2
+OBJECT:140:_ZSt8buf_cerr@@GLIBCPP_3.2
+OBJECT:140:_ZSt8buf_cout@@GLIBCPP_3.2
+OBJECT:144:_ZSt3cin@@GLIBCPP_3.2
+OBJECT:144:_ZSt5wcerr@@GLIBCPP_3.2
+OBJECT:144:_ZSt5wclog@@GLIBCPP_3.2
+OBJECT:144:_ZSt5wcout@@GLIBCPP_3.2
+OBJECT:148:_ZSt4wcin@@GLIBCPP_3.2
+OBJECT:14:_ZTSSt7collateIcE@@GLIBCPP_3.2
+OBJECT:14:_ZTSSt7collateIwE@@GLIBCPP_3.2
+OBJECT:156:_ZSt8buf_wcin@@GLIBCPP_3.2
+OBJECT:156:_ZSt9buf_wcerr@@GLIBCPP_3.2
+OBJECT:156:_ZSt9buf_wcout@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10bad_typeid@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10ctype_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10istrstream@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10money_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10__num_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10ostrstream@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8messagesIcE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8messagesIwE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:16:_ZNSbIwSt11char_traitsIwESaIwEE20_S_empty_rep_storageE@@GLIBCPP_3.2
+OBJECT:16:_ZNSs20_S_empty_rep_storageE@@GLIBCPP_3.2
+OBJECT:16:_ZSt10messages_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt10messages_w@@GLIBCPP_3.2
+OBJECT:16:_ZTIPa@@GLIBCPP_3.2
+OBJECT:16:_ZTIPb@@GLIBCPP_3.2
+OBJECT:16:_ZTIPc@@GLIBCPP_3.2
+OBJECT:16:_ZTIPd@@GLIBCPP_3.2
+OBJECT:16:_ZTIPe@@GLIBCPP_3.2
+OBJECT:16:_ZTIPf@@GLIBCPP_3.2
+OBJECT:16:_ZTIPh@@GLIBCPP_3.2
+OBJECT:16:_ZTIPi@@GLIBCPP_3.2
+OBJECT:16:_ZTIPj@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKa@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKb@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKc@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKd@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKe@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKf@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKh@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKi@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKj@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKl@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKm@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKs@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKt@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKv@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKw@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKx@@GLIBCPP_3.2
+OBJECT:16:_ZTIPKy@@GLIBCPP_3.2
+OBJECT:16:_ZTIPl@@GLIBCPP_3.2
+OBJECT:16:_ZTIPm@@GLIBCPP_3.2
+OBJECT:16:_ZTIPs@@GLIBCPP_3.2
+OBJECT:16:_ZTIPt@@GLIBCPP_3.2
+OBJECT:16:_ZTIPv@@GLIBCPP_3.2
+OBJECT:16:_ZTIPw@@GLIBCPP_3.2
+OBJECT:16:_ZTIPx@@GLIBCPP_3.2
+OBJECT:16:_ZTIPy@@GLIBCPP_3.2
+OBJECT:16:_ZTSSt11logic_error@@GLIBCPP_3.2
+OBJECT:16:_ZTSSt11range_error@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt10istrstream@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt10ostrstream@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:16:_ZTVNSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:16:_ZTVSt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:16:_ZTVSt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:16:_ZTVSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:16:_ZTVSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12codecvt_base@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12domain_error@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12length_error@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12out_of_range@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12strstreambuf@@GLIBCPP_3.2
+OBJECT:18:_ZTSNSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13bad_exception@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13messages_base@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13runtime_error@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt14overflow_error@@GLIBCPP_3.2
+OBJECT:1:_ZNSs4_Rep11_S_terminalE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIcLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIcLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIwLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIwLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt8ios_base4Init20_S_synced_with_stdioE@@GLIBCPP_3.2
+OBJECT:1:_ZSt7nothrow@@GLIBCPP_3.2
+OBJECT:204:_ZSt11timepunct_c@@GLIBCPP_3.2
+OBJECT:204:_ZSt11timepunct_w@@GLIBCPP_3.2
+OBJECT:20:_ZNSt6locale5_Impl11_S_id_ctypeE@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt15underflow_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVNSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt10bad_typeid@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt11logic_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt11range_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt12domain_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt12length_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt12out_of_range@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt13bad_exception@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt13runtime_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt14overflow_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt15underflow_error@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt16invalid_argument@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt8bad_cast@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt9bad_alloc@@GLIBCPP_3.2
+OBJECT:20:_ZTVSt9exception@@GLIBCPP_3.2
+OBJECT:21:_ZTSSt16invalid_argument@@GLIBCPP_3.2
+OBJECT:22:_ZTSNSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:23:_ZNSt10__num_base8_S_atomsE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE@@GLIBCPP_3.2
+OBJECT:24:_ZSt10numpunct_c@@GLIBCPP_3.2
+OBJECT:24:_ZTVSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTVSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTVSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTVSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:256:_ZSt12_S_bit_count@@GLIBCPP_3.2
+OBJECT:256:_ZSt12_S_first_one@@GLIBCPP_3.2
+OBJECT:28:_ZNSt6locale5_Impl10_S_id_timeE@@GLIBCPP_3.2
+OBJECT:28:_ZNSt6locale5_Impl13_S_id_numericE@@GLIBCPP_3.2
+OBJECT:28:_ZNSt6locale5_Impl19_S_facet_categoriesE@@GLIBCPP_3.2
+OBJECT:28:_ZSt10numpunct_w@@GLIBCPP_3.2
+OBJECT:28:_ZSt7ctype_c@@GLIBCPP_3.2
+OBJECT:28:_ZTSSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:28:_ZTSSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:28:_ZTTSd@@GLIBCPP_3.2
+OBJECT:28:_ZTTSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt7collateIcE@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt7collateIwE@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt8messagesIcE@@GLIBCPP_3.2
+OBJECT:28:_ZTVSt8messagesIwE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5alnumE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5alphaE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5cntrlE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5digitE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5graphE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5lowerE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5printE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5punctE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5spaceE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5upperE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base6xdigitE@@GLIBCPP_3.2
+OBJECT:2:_ZTSa@@GLIBCPP_3.2
+OBJECT:2:_ZTSb@@GLIBCPP_3.2
+OBJECT:2:_ZTSc@@GLIBCPP_3.2
+OBJECT:2:_ZTSd@@GLIBCPP_3.2
+OBJECT:2:_ZTSe@@GLIBCPP_3.2
+OBJECT:2:_ZTSf@@GLIBCPP_3.2
+OBJECT:2:_ZTSh@@GLIBCPP_3.2
+OBJECT:2:_ZTSi@@GLIBCPP_3.2
+OBJECT:2:_ZTSj@@GLIBCPP_3.2
+OBJECT:2:_ZTSl@@GLIBCPP_3.2
+OBJECT:2:_ZTSm@@GLIBCPP_3.2
+OBJECT:2:_ZTSs@@GLIBCPP_3.2
+OBJECT:2:_ZTSt@@GLIBCPP_3.2
+OBJECT:2:_ZTSv@@GLIBCPP_3.2
+OBJECT:2:_ZTSw@@GLIBCPP_3.2
+OBJECT:2:_ZTSx@@GLIBCPP_3.2
+OBJECT:2:_ZTSy@@GLIBCPP_3.2
+OBJECT:32:_ZTISi@@GLIBCPP_3.2
+OBJECT:32:_ZTISo@@GLIBCPP_3.2
+OBJECT:32:_ZTISt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTISt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTISt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTISt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTVN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:32:_ZTVN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:32:_ZTVN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:32:_ZTVN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:32:_ZTVSt9type_info@@GLIBCPP_3.2
+OBJECT:33:_ZTSN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:34:_ZTSSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:36:_ZNSt6locale5_Impl14_S_id_monetaryE@@GLIBCPP_3.2
+OBJECT:36:_ZSt13c_locale_impl@@GLIBCPP_3.2
+OBJECT:36:_ZTSN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:36:_ZTSSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:36:_ZTSSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:36:_ZTVN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:36:_ZTVN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:36:_ZTVN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:36:_ZTVSt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:36:_ZTVSt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:36:_ZTVSt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:36:_ZTVSt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:37:_ZTSN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:37:_ZTSN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:38:_ZTSN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:3:_ZTSPa@@GLIBCPP_3.2
+OBJECT:3:_ZTSPb@@GLIBCPP_3.2
+OBJECT:3:_ZTSPc@@GLIBCPP_3.2
+OBJECT:3:_ZTSPd@@GLIBCPP_3.2
+OBJECT:3:_ZTSPe@@GLIBCPP_3.2
+OBJECT:3:_ZTSPf@@GLIBCPP_3.2
+OBJECT:3:_ZTSPh@@GLIBCPP_3.2
+OBJECT:3:_ZTSPi@@GLIBCPP_3.2
+OBJECT:3:_ZTSPj@@GLIBCPP_3.2
+OBJECT:3:_ZTSPl@@GLIBCPP_3.2
+OBJECT:3:_ZTSPm@@GLIBCPP_3.2
+OBJECT:3:_ZTSPs@@GLIBCPP_3.2
+OBJECT:3:_ZTSPt@@GLIBCPP_3.2
+OBJECT:3:_ZTSPv@@GLIBCPP_3.2
+OBJECT:3:_ZTSPw@@GLIBCPP_3.2
+OBJECT:3:_ZTSPx@@GLIBCPP_3.2
+OBJECT:3:_ZTSPy@@GLIBCPP_3.2
+OBJECT:3:_ZTSSd@@GLIBCPP_3.2
+OBJECT:3:_ZTSSi@@GLIBCPP_3.2
+OBJECT:3:_ZTSSo@@GLIBCPP_3.2
+OBJECT:40:_ZSt13moneypunct_fc@@GLIBCPP_3.2
+OBJECT:40:_ZSt13moneypunct_tc@@GLIBCPP_3.2
+OBJECT:40:_ZTISd@@GLIBCPP_3.2
+OBJECT:40:_ZTISt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt8messagesIcE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt8messagesIwE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTTSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTTSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTTSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTTSt9strstream@@GLIBCPP_3.2
+OBJECT:40:_ZTVSi@@GLIBCPP_3.2
+OBJECT:40:_ZTVSo@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt10istrstream@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt10ostrstream@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:41:_ZTSSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:44:_ZSt13moneypunct_fw@@GLIBCPP_3.2
+OBJECT:44:_ZSt13moneypunct_tw@@GLIBCPP_3.2
+OBJECT:44:_ZTVN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:44:_ZTVN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:44:_ZTVN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:44:_ZTVSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:44:_ZTVSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:44:_ZTVSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:44:_ZTVSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:44:_ZTVSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:44:_ZTVSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:46:_ZTSN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:46:_ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:46:_ZTSSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSs4nposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSs4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10money_base18_S_default_patternE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10__num_base11_S_atoms_inE@@GLIBCPP_3.2.3
+OBJECT:4:_ZNSt10__num_base12_S_atoms_outE@@GLIBCPP_3.2.3
+OBJECT:4:_ZNSt11__timepunctIcE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt11__timepunctIwE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_end_freeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_force_newE@@GLIBCPP_3.2.2
+OBJECT:4:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_heap_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt24__default_alloc_templateILb1ELi0EE13_S_start_freeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt5ctypeIcE10table_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt5ctypeIcE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt5ctypeIwE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale10_S_classicE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale17_S_num_categoriesE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale2id12_S_highwaterE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale3allE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale4noneE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale4timeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale5ctypeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale5facet11_S_c_localeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale7collateE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale7numericE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale8messagesE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale8monetaryE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale9_S_globalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7codecvtIcc11__mbstate_tE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7codecvtIwc11__mbstate_tE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7collateIcE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7collateIwE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base10floatfieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base10scientificE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base11adjustfieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base18_S_local_word_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base2inE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3appE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3ateE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3begE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3curE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3decE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3endE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3hexE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3octE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3outE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base4Init16_S_ios_base_initE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base4leftE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5fixedE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5rightE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5truncE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6badbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6binaryE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6eofbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6skipwsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7failbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7goodbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7showposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7unitbufE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base8internalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base8showbaseE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9basefieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9boolalphaE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9showpointE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9uppercaseE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8messagesIcE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8messagesIwE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8numpunctIcE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8numpunctIwE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:4:_ZSt8c_locale@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKa@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKb@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKc@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKd@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKe@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKf@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKh@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKi@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKj@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKl@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKm@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKs@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKt@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKv@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKw@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKx@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKy@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:52:_ZTVSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt11__timepunctIcE12_S_timezonesE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt11__timepunctIwE12_S_timezonesE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSd@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTVSt9strstream@@GLIBCPP_3.2
+OBJECT:64:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_free_listE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt12strstreambuf@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:68:_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:68:_ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt11__timepunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt11__timepunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7collateIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7collateIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8messagesIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8messagesIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8numpunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8numpunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZSt10time_get_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt10time_get_w@@GLIBCPP_3.2
+OBJECT:8:_ZSt10time_put_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt10time_put_w@@GLIBCPP_3.2
+OBJECT:8:_ZSt11money_get_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt11money_get_w@@GLIBCPP_3.2
+OBJECT:8:_ZSt11money_put_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt11money_put_w@@GLIBCPP_3.2
+OBJECT:8:_ZSt9codecvt_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt9codecvt_w@@GLIBCPP_3.2
+OBJECT:8:_ZSt9num_get_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt9num_get_w@@GLIBCPP_3.2
+OBJECT:8:_ZSt9num_put_c@@GLIBCPP_3.2
+OBJECT:8:_ZSt9num_put_w@@GLIBCPP_3.2
+OBJECT:8:_ZTIa@@GLIBCPP_3.2
+OBJECT:8:_ZTIb@@GLIBCPP_3.2
+OBJECT:8:_ZTIc@@GLIBCPP_3.2
+OBJECT:8:_ZTId@@GLIBCPP_3.2
+OBJECT:8:_ZTIe@@GLIBCPP_3.2
+OBJECT:8:_ZTIf@@GLIBCPP_3.2
+OBJECT:8:_ZTIh@@GLIBCPP_3.2
+OBJECT:8:_ZTIi@@GLIBCPP_3.2
+OBJECT:8:_ZTIj@@GLIBCPP_3.2
+OBJECT:8:_ZTIl@@GLIBCPP_3.2
+OBJECT:8:_ZTIm@@GLIBCPP_3.2
+OBJECT:8:_ZTINSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:8:_ZTIs@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10ctype_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10money_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10__num_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt12codecvt_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt13messages_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:8:_ZTISt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:8:_ZTISt8ios_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt9exception@@GLIBCPP_3.2
+OBJECT:8:_ZTISt9time_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt9type_info@@GLIBCPP_3.2
+OBJECT:8:_ZTIt@@GLIBCPP_3.2
+OBJECT:8:_ZTIv@@GLIBCPP_3.2
+OBJECT:8:_ZTIw@@GLIBCPP_3.2
+OBJECT:8:_ZTIx@@GLIBCPP_3.2
+OBJECT:8:_ZTIy@@GLIBCPP_3.2
+OBJECT:8:_ZTTSi@@GLIBCPP_3.2
+OBJECT:8:_ZTTSo@@GLIBCPP_3.2
+OBJECT:8:_ZTTSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:8:_ZTTSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
diff --git a/contrib/libstdc++/config/abi/ia64-linux-gnu/baseline_symbols.txt b/contrib/libstdc++/config/abi/ia64-linux-gnu/baseline_symbols.txt
new file mode 100644
index 0000000..eb729d3
--- /dev/null
+++ b/contrib/libstdc++/config/abi/ia64-linux-gnu/baseline_symbols.txt
@@ -0,0 +1,3031 @@
+FUNC:__cxa_allocate_exception@@CXXABI_1.2
+FUNC:__cxa_bad_cast@@CXXABI_1.2
+FUNC:__cxa_bad_typeid@@CXXABI_1.2
+FUNC:__cxa_begin_catch@@CXXABI_1.2
+FUNC:__cxa_call_unexpected@@CXXABI_1.2
+FUNC:__cxa_current_exception_type@@CXXABI_1.2
+FUNC:__cxa_demangle@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append_char@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append@@CXXABI_1.2
+FUNC:__cxa_dyn_string_clear@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy@@CXXABI_1.2
+FUNC:__cxa_dyn_string_delete@@CXXABI_1.2
+FUNC:__cxa_dyn_string_eq@@CXXABI_1.2
+FUNC:__cxa_dyn_string_init@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert_char@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert@@CXXABI_1.2
+FUNC:__cxa_dyn_string_new@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend@@CXXABI_1.2
+FUNC:__cxa_dyn_string_release@@CXXABI_1.2
+FUNC:__cxa_dyn_string_resize@@CXXABI_1.2
+FUNC:__cxa_dyn_string_substring@@CXXABI_1.2
+FUNC:__cxa_end_catch@@CXXABI_1.2
+FUNC:__cxa_free_exception@@CXXABI_1.2
+FUNC:__cxa_get_globals@@CXXABI_1.2
+FUNC:__cxa_get_globals_fast@@CXXABI_1.2
+FUNC:__cxa_pure_virtual@@CXXABI_1.2
+FUNC:__cxa_rethrow@@CXXABI_1.2
+FUNC:__cxa_throw@@CXXABI_1.2
+FUNC:__cxa_vec_cctor@@CXXABI_1.2
+FUNC:__cxa_vec_cleanup@@CXXABI_1.2
+FUNC:__cxa_vec_ctor@@CXXABI_1.2
+FUNC:__cxa_vec_delete2@@CXXABI_1.2
+FUNC:__cxa_vec_delete3@@CXXABI_1.2
+FUNC:__cxa_vec_delete@@CXXABI_1.2
+FUNC:__cxa_vec_dtor@@CXXABI_1.2
+FUNC:__cxa_vec_new2@@CXXABI_1.2
+FUNC:__cxa_vec_new3@@CXXABI_1.2
+FUNC:__cxa_vec_new@@CXXABI_1.2
+FUNC:__dynamic_cast@@CXXABI_1.2
+FUNC:__gxx_personality_v0@@CXXABI_1.2
+FUNC:_ZdaPv@@GLIBCPP_3.2
+FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZdlPv@@GLIBCPP_3.2
+FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.2
+FUNC:_Znam@@GLIBCPP_3.2
+FUNC:_ZnamRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE7addressERc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE7addressERKc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE7addressERKw@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE7addressERw@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13get_allocatorEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE2atEm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5c_strEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5emptyEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_foldEmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_iendEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCPP_3.2
+FUNC:_ZNKSi6gcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs13get_allocatorEv@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs2atEm@@GLIBCPP_3.2
+FUNC:_ZNKSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4copyEPcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5c_strEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5emptyEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6substrEmm@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_foldEmm@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_iendEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8_M_checkEm@@GLIBCPP_3.2
+FUNC:_ZNKSs9_M_ibeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSsixEm@@GLIBCPP_3.2
+FUNC:_ZNKSt10istrstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10ostrstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10ostrstream6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt11logic_error4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE15_M_date_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE15_M_time_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE19_M_days_abbreviatedEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE20_M_date_time_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE21_M_months_abbreviatedEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE6_M_putEPcmPKcPK2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE7_M_ampmEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE7_M_daysEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE9_M_monthsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE15_M_date_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE15_M_time_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE19_M_days_abbreviatedEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE20_M_date_time_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE21_M_months_abbreviatedEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE6_M_putEPwmPKwPK2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE7_M_ampmEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE7_M_daysEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt12strstreambuf6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_filebufIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_filebufIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13runtime_error4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4gptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4pptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5ebackEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5egptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5epptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5pbaseEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE6getlocEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIcSt11char_traitsIcEE6_M_getEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIwSt11char_traitsIwEE6_M_getEv@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_scan_isEtPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE11do_scan_notEtPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEPKcS2_Pt@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEtc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_scan_isEtPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEPwPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_toupperEPwPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_toupperEw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE11do_scan_notEtPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE19_M_convert_to_wmaskEt@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEPKwS2_Pt@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEtw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE9do_narrowEwc@@GLIBCPP_3.2
+FUNC:_ZNKSt6locale4nameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt6localeeqERKS_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE5do_inERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE6do_outERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERKS0_PKcS5_m@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERKS0_PKcS5_m@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE4hashEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE7compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE7do_hashEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE9transformEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE4hashEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE7compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE7do_hashEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE9transformEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_widen_intES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_widen_floatES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIdEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIeEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertES3_RSt8ios_basecPKci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_widen_intES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_widen_floatES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIdEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIeEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertES3_RSt8ios_basewPKwi@@GLIBCPP_3.2
+FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE20_M_convert_from_charEPc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE3getEiiiRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6localePKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE5closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE6do_getEiiiRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE7do_openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE8do_closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE18_M_convert_to_charERKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE20_M_convert_from_charEPc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE3getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6localePKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE5closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE7do_openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE8do_closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE11do_truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE12do_falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE8truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE9falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE11do_truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE12do_falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE8truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE9falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numERS3_S5_RiiimRKSt5ctypeIcERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameERS3_S5_RiPPKcmRSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numERS3_S5_RiiimRKSt5ctypeIwERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameERS3_S5_RiPPKwmRSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmPKcSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8valarrayImE4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE10exceptionsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3tieEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4fillEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE6narrowEcc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE10exceptionsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3badEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3eofEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3tieEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4failEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4fillEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4goodEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE6narrowEwc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE7rdstateEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEcvPvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEntEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9exception4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9strstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9strstream6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info10__do_catchEPKS_PPvj@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info14__is_pointer_pEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info15__is_function_pEv@@GLIBCPP_3.2
+FUNC:_ZNSaIcE10deallocateEPcm@@GLIBCPP_3.2
+FUNC:_ZNSaIcE7destroyEPc@@GLIBCPP_3.2
+FUNC:_ZNSaIcE8allocateEmPKv@@GLIBCPP_3.2
+FUNC:_ZNSaIcE9constructEPcRKc@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwE10deallocateEPwm@@GLIBCPP_3.2
+FUNC:_ZNSaIwE7destroyEPw@@GLIBCPP_3.2
+FUNC:_ZNSaIwE8allocateEmPKv@@GLIBCPP_3.2
+FUNC:_ZNSaIwE9constructEPwRKw@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEmwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS2_EES8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS3_S2_EES6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE2atEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_disposeERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refcopyEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refdataEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep13_M_set_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep15_M_set_sharableEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep7_M_grabERKS1_S5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_m@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_RepixEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEmm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EE@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_dataEPw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_leakEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_mw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_NS4_IPKwS2_EES9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwS8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_RKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S5_S5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S6_S6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEmmm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9push_backEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEw@@GLIBCPP_3.2
+FUNC:_ZNSdC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSdC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSdD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPclc@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi3getERc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSi3getEv@@GLIBCPP_3.2
+FUNC:_ZNSi4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSi4readEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSi5tellgEv@@GLIBCPP_3.2
+FUNC:_ZNSi5ungetEv@@GLIBCPP_3.2
+FUNC:_ZNSi6ignoreEli@@GLIBCPP_3.2
+FUNC:_ZNSi6sentryC1ERSib@@GLIBCPP_3.2
+FUNC:_ZNSi6sentryC2ERSib@@GLIBCPP_3.2
+FUNC:_ZNSi6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPclc@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi7putbackEc@@GLIBCPP_3.2
+FUNC:_ZNSi8readsomeEPcl@@GLIBCPP_3.2
+FUNC:_ZNSiC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSiC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSiD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSiD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSiD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSiS_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSirsERb@@GLIBCPP_3.2
+FUNC:_ZNSirsERd@@GLIBCPP_3.2
+FUNC:_ZNSirsERe@@GLIBCPP_3.2
+FUNC:_ZNSirsERf@@GLIBCPP_3.2
+FUNC:_ZNSirsERi@@GLIBCPP_3.2
+FUNC:_ZNSirsERj@@GLIBCPP_3.2
+FUNC:_ZNSirsERl@@GLIBCPP_3.2
+FUNC:_ZNSirsERm@@GLIBCPP_3.2
+FUNC:_ZNSirsERPv@@GLIBCPP_3.2
+FUNC:_ZNSirsERs@@GLIBCPP_3.2
+FUNC:_ZNSirsERt@@GLIBCPP_3.2
+FUNC:_ZNSirsERx@@GLIBCPP_3.2
+FUNC:_ZNSirsERy@@GLIBCPP_3.2
+FUNC:_ZNSo3putEc@@GLIBCPP_3.2
+FUNC:_ZNSo5flushEv@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSo5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSo5writeEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC1ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC2ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSoD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSoD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSoD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSolsEb@@GLIBCPP_3.2
+FUNC:_ZNSolsEd@@GLIBCPP_3.2
+FUNC:_ZNSolsEe@@GLIBCPP_3.2
+FUNC:_ZNSolsEf@@GLIBCPP_3.2
+FUNC:_ZNSolsEi@@GLIBCPP_3.2
+FUNC:_ZNSolsEj@@GLIBCPP_3.2
+FUNC:_ZNSolsEl@@GLIBCPP_3.2
+FUNC:_ZNSolsEm@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSoS_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPKv@@GLIBCPP_3.2
+FUNC:_ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSolsEs@@GLIBCPP_3.2
+FUNC:_ZNSolsEt@@GLIBCPP_3.2
+FUNC:_ZNSolsEx@@GLIBCPP_3.2
+FUNC:_ZNSolsEy@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_M_leak_hardEv@@GLIBCPP_3.2
+FUNC:_ZNSs12_S_constructEmcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_S_empty_repEv@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcPKcS1_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcS_S_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_@@GLIBCPP_3.2
+FUNC:_ZNSs2atEm@@GLIBCPP_3.2
+FUNC:_ZNSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_destroyERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_disposeERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_refcopyEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_refdataEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep13_M_set_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep15_M_set_sharableEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep7_M_grabERKSaIcES2_@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep8_M_cloneERKSaIcEm@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep9_S_createEmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_RepixEm@@GLIBCPP_3.2
+FUNC:_ZNSs4swapERSs@@GLIBCPP_3.2
+FUNC:_ZNSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSs5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEmm@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmmc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEm@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_dataEPc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_leakEv@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmmc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmPKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_mc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcm@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNSs7reserveEm@@GLIBCPP_3.2
+FUNC:_ZNSs9_M_mutateEmmm@@GLIBCPP_3.2
+FUNC:_ZNSs9push_backEc@@GLIBCPP_3.2
+FUNC:_ZNSsaSEc@@GLIBCPP_3.2
+FUNC:_ZNSsaSEPKc@@GLIBCPP_3.2
+FUNC:_ZNSsaSERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsixEm@@GLIBCPP_3.2
+FUNC:_ZNSspLEc@@GLIBCPP_3.2
+FUNC:_ZNSspLEPKc@@GLIBCPP_3.2
+FUNC:_ZNSspLERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10money_base20_S_construct_patternEccc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10__num_base13_S_format_intERKSt8ios_basePccc@@GLIBCPP_3.2
+FUNC:_ZNSt10__num_base15_S_format_floatERKSt8ios_basePccl@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstream6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcE23_M_initialize_timepunctEP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwE23_M_initialize_timepunctEP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE10sys_ungetcEi@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE12_M_open_modeESt13_Ios_OpenmodeRiS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE6xsgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE6xsputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE7seekposElSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_getcEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmodeb@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEP8_IO_FILESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC1EP15pthread_mutex_t@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7_M_freeEPc@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8_M_allocEm@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8_M_setupEPcS0_l@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1El@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPalS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPclS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPFPvmEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPhlS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKal@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKhl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2El@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPalS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPclS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPFPvmEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPhlS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKal@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKhl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE17_M_output_unshiftEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_really_overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_set_determinateEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_is_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_underflow_commonEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE20_M_set_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPclRlS4_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE17_M_output_unshiftEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_really_overflowEj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_set_determinateEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_is_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_underflow_commonEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE20_M_set_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwlRlS4_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE8overflowEj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwlw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_Ew@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreElj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC1ERS2_b@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC2ERS2_b@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwlw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7putbackEw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRS2_S3_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERd@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERe@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERf@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERm@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERPv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERs@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERt@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERx@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERy@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC1ERS2_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC2ERS2_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEf@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEm@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRS2_S3_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPKv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEs@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE14_M_in_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_buf_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_pback_createEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE16_M_pback_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5gbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6snextcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7pubsyncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7sungetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8in_availEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8pubimbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9sputbackcEc@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE14_M_in_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_buf_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_pback_createEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE16_M_pback_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5gbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5pbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputcEw@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6sbumpcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6snextcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7pubsyncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7sungetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8in_availEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8overflowEj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9sputbackcEw@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEmm@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE14_M_really_syncEmm@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10reallocateEPvmm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_round_upEm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE14_S_chunk_allocEmRi@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE17_S_freelist_indexEm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE8allocateEm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE9_S_refillEm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcE13classic_tableEv@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC1EP15__locale_structPKtbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC1EPKtbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EP15__locale_structPKtbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EPKtbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_@@GLIBCPP_3.2
+FUNC:_ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale11_M_coalesceERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale21_S_normalize_categoryEj@@GLIBCPP_3.2
+FUNC:_ZNSt6locale2idC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale2idC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet16_M_add_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet17_S_clone_c_localeERP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet18_S_create_c_localeERP15__locale_structPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_M_remove_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPNS_5facetE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1EPPNS_5facetEmb@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1ERKS0_m@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2EPPNS_5facetEmb@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2ERKS0_m@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale6globalERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale7classicEv@@GLIBCPP_3.2
+FUNC:_ZNSt6localeaSERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1EPNS_5_ImplE@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_PKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2EPNS_5_ImplE@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_PKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base13_M_grow_wordsEi@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base15sync_with_stdioEb@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base17_M_call_callbacksENS_5eventE@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base20_M_dispose_callbacksEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4Init13_S_ios_createEb@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4Init14_S_ios_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base6xallocEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7_M_initEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwE22_M_initialize_numpunctEP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC1ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC2ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEixEm@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5rdbufEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE7copyfmtERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE3tieEPSt13basic_ostreamIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4fillEw@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5rdbufEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE7copyfmtERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt9strstream6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD2Ev@@GLIBCPP_3.2
+FUNC:_Znwm@@GLIBCPP_3.2
+FUNC:_ZnwmRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZSt10unexpectedv@@GLIBCPP_3.2
+FUNC:_ZSt13set_terminatePFvvE@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIlEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vImEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIxEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIyEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14set_unexpectedPFvvE@@GLIBCPP_3.2
+FUNC:_ZSt15set_new_handlerPFvvE@@GLIBCPP_3.2
+FUNC:_ZSt16__throw_bad_castv@@GLIBCPP_3.2
+FUNC:_ZSt17__throw_bad_allocv@@GLIBCPP_3.2
+FUNC:_ZSt18__throw_bad_typeidv@@GLIBCPP_3.2
+FUNC:_ZSt18uncaught_exceptionv@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_range_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_domain_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_length_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_out_of_rangePKc@@GLIBCPP_3.2
+FUNC:_ZSt21__throw_bad_exceptionv@@GLIBCPP_3.2
+FUNC:_ZSt21__throw_runtime_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt22__throw_overflow_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt23__throw_underflow_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt24__throw_invalid_argumentPKc@@GLIBCPP_3.2
+FUNC:_ZSt24__uninitialized_copy_auxIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsET0_T_SA_S9_12__false_type@@GLIBCPP_3.2
+FUNC:_ZSt26__uninitialized_fill_n_auxIPSsmSsET_S1_T0_RKT1_12__false_type@@GLIBCPP_3.2
+FUNC:_ZSt2wsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt2wsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endlIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt5flushIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt10moneypunctIcLb0EEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt10moneypunctIwLb0EEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt11__timepunctIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt11__timepunctIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt5ctypeIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt5ctypeIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7codecvtIcc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7codecvtIwc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7collateIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7collateIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8messagesIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8messagesIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8numpunctIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8numpunctIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9terminatev@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIcLb0EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIcLb1EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIwLb0EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIwLb1EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt11__timepunctIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt11__timepunctIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt5ctypeIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7collateIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7collateIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8messagesIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8messagesIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8numpunctIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8numpunctIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIfcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIfwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_a@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKa@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKh@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_S3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIfcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIfwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ra@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Rh@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZThn16_NSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSiD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSiD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSoD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSoD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10istrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10istrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10ostrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10ostrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt9strstreamD1Ev@@GLIBCPP_3.2
+OBJECT:0:CXXABI_1.2
+OBJECT:0:GLIBCPP_3.2
+OBJECT:112:_ZNSt11__timepunctIcE12_S_timezonesE@@GLIBCPP_3.2
+OBJECT:112:_ZNSt11__timepunctIwE12_S_timezonesE@@GLIBCPP_3.2
+OBJECT:112:_ZTVN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:112:_ZTVN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:112:_ZTVN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:112:_ZTVN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:112:_ZTVSi@@GLIBCPP_3.2
+OBJECT:112:_ZTVSo@@GLIBCPP_3.2
+OBJECT:112:_ZTVSt10istrstream@@GLIBCPP_3.2
+OBJECT:112:_ZTVSt10ostrstream@@GLIBCPP_3.2
+OBJECT:112:_ZTVSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:112:_ZTVSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:112:_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:112:_ZTVSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:112:_ZTVSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:112:_ZTVSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:112:_ZTVSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:112:_ZTVSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:112:_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:112:_ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:112:_ZTVSt9type_info@@GLIBCPP_3.2
+OBJECT:128:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_free_listE@@GLIBCPP_3.2
+OBJECT:128:_ZTVN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:128:_ZTVN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:128:_ZTVN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt8bad_cast@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt8ios_base@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9bad_alloc@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9exception@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9strstream@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9time_base@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9type_info@@GLIBCPP_3.2
+OBJECT:144:_ZTVSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:144:_ZTVSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:144:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:144:_ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:14:_ZTSSt7collateIcE@@GLIBCPP_3.2
+OBJECT:14:_ZTSSt7collateIwE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10bad_typeid@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10ctype_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10istrstream@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10money_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10__num_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10ostrstream@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8messagesIcE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8messagesIwE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:160:_ZTVN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:160:_ZTVN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:160:_ZTVN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:160:_ZTVSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:160:_ZTVSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:160:_ZTVSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:160:_ZTVSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:160:_ZTVSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:160:_ZTVSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:168:_ZTVSd@@GLIBCPP_3.2
+OBJECT:168:_ZTVSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:168:_ZTVSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:168:_ZTVSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:168:_ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:168:_ZTVSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:168:_ZTVSt9strstream@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_get_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_get_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_put_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_put_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_get_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_get_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_put_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_put_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt9codecvt_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt9codecvt_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_get_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_get_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_put_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_put_w@@GLIBCPP_3.2
+OBJECT:16:_ZTIa@@GLIBCPP_3.2
+OBJECT:16:_ZTIb@@GLIBCPP_3.2
+OBJECT:16:_ZTIc@@GLIBCPP_3.2
+OBJECT:16:_ZTId@@GLIBCPP_3.2
+OBJECT:16:_ZTIe@@GLIBCPP_3.2
+OBJECT:16:_ZTIf@@GLIBCPP_3.2
+OBJECT:16:_ZTIh@@GLIBCPP_3.2
+OBJECT:16:_ZTIi@@GLIBCPP_3.2
+OBJECT:16:_ZTIj@@GLIBCPP_3.2
+OBJECT:16:_ZTIl@@GLIBCPP_3.2
+OBJECT:16:_ZTIm@@GLIBCPP_3.2
+OBJECT:16:_ZTINSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:16:_ZTIs@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10ctype_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10money_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10__num_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt12codecvt_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt13messages_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:16:_ZTISt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:16:_ZTISt8ios_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt9exception@@GLIBCPP_3.2
+OBJECT:16:_ZTISt9time_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt9type_info@@GLIBCPP_3.2
+OBJECT:16:_ZTIt@@GLIBCPP_3.2
+OBJECT:16:_ZTIv@@GLIBCPP_3.2
+OBJECT:16:_ZTIw@@GLIBCPP_3.2
+OBJECT:16:_ZTIx@@GLIBCPP_3.2
+OBJECT:16:_ZTIy@@GLIBCPP_3.2
+OBJECT:16:_ZTSSt11logic_error@@GLIBCPP_3.2
+OBJECT:16:_ZTSSt11range_error@@GLIBCPP_3.2
+OBJECT:16:_ZTTSi@@GLIBCPP_3.2
+OBJECT:16:_ZTTSo@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:176:_ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:176:_ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12codecvt_base@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12domain_error@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12length_error@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12out_of_range@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12strstreambuf@@GLIBCPP_3.2
+OBJECT:18:_ZTSNSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13bad_exception@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13messages_base@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13runtime_error@@GLIBCPP_3.2
+OBJECT:192:_ZTVSt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:192:_ZTVSt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:192:_ZTVSt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:192:_ZTVSt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:192:_ZTVSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:192:_ZTVSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:192:_ZTVSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:192:_ZTVSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt14overflow_error@@GLIBCPP_3.2
+OBJECT:1:_ZNSs4_Rep11_S_terminalE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIcLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIcLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIwLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIwLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt8ios_base4Init20_S_synced_with_stdioE@@GLIBCPP_3.2
+OBJECT:1:_ZSt7nothrow@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt15underflow_error@@GLIBCPP_3.2
+OBJECT:21:_ZTSSt16invalid_argument@@GLIBCPP_3.2
+OBJECT:224:_ZSt9facet_vec@@GLIBCPP_3.2
+OBJECT:224:_ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:224:_ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:22:_ZTSNSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:23:_ZNSt10__num_base8_S_atomsE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:240:_ZTVN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:240:_ZTVN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:240:_ZTVSt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:240:_ZTVSt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:240:_ZTVSt12strstreambuf@@GLIBCPP_3.2
+OBJECT:240:_ZTVSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:240:_ZTVSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:240:_ZTVSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:240:_ZTVSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:240:_ZTVSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:240:_ZTVSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:240:_ZTVSt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:240:_ZTVSt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:248:_ZSt7buf_cin@@GLIBCPP_3.2
+OBJECT:248:_ZSt8buf_cerr@@GLIBCPP_3.2
+OBJECT:248:_ZSt8buf_cout@@GLIBCPP_3.2
+OBJECT:24:_ZNSt6locale5_Impl13_S_id_collateE@@GLIBCPP_3.2
+OBJECT:24:_ZNSt6locale5_Impl14_S_id_messagesE@@GLIBCPP_3.2
+OBJECT:24:_ZSt7ctype_w@@GLIBCPP_3.2
+OBJECT:24:_ZSt9collate_c@@GLIBCPP_3.2
+OBJECT:24:_ZSt9collate_w@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTINSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt10bad_typeid@@GLIBCPP_3.2
+OBJECT:24:_ZTISt10istrstream@@GLIBCPP_3.2
+OBJECT:24:_ZTISt10ostrstream@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11logic_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11range_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12domain_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12length_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12out_of_range@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12strstreambuf@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13bad_exception@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13runtime_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14overflow_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15underflow_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt16invalid_argument@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7collateIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7collateIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt8bad_cast@@GLIBCPP_3.2
+OBJECT:24:_ZTISt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9bad_alloc@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9strstream@@GLIBCPP_3.2
+OBJECT:256:_ZSt12_S_bit_count@@GLIBCPP_3.2
+OBJECT:256:_ZSt12_S_first_one@@GLIBCPP_3.2
+OBJECT:256:_ZSt8buf_wcin@@GLIBCPP_3.2
+OBJECT:256:_ZSt9buf_wcerr@@GLIBCPP_3.2
+OBJECT:256:_ZSt9buf_wcout@@GLIBCPP_3.2
+OBJECT:256:_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:256:_ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:272:_ZSt4cerr@@GLIBCPP_3.2
+OBJECT:272:_ZSt4clog@@GLIBCPP_3.2
+OBJECT:272:_ZSt4cout@@GLIBCPP_3.2
+OBJECT:272:_ZSt5wcerr@@GLIBCPP_3.2
+OBJECT:272:_ZSt5wclog@@GLIBCPP_3.2
+OBJECT:272:_ZSt5wcout@@GLIBCPP_3.2
+OBJECT:280:_ZSt3cin@@GLIBCPP_3.2
+OBJECT:280:_ZSt4wcin@@GLIBCPP_3.2
+OBJECT:28:_ZTSSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:28:_ZTSSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5alnumE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5alphaE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5cntrlE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5digitE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5graphE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5lowerE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5printE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5punctE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5spaceE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5upperE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base6xdigitE@@GLIBCPP_3.2
+OBJECT:2:_ZTSa@@GLIBCPP_3.2
+OBJECT:2:_ZTSb@@GLIBCPP_3.2
+OBJECT:2:_ZTSc@@GLIBCPP_3.2
+OBJECT:2:_ZTSd@@GLIBCPP_3.2
+OBJECT:2:_ZTSe@@GLIBCPP_3.2
+OBJECT:2:_ZTSf@@GLIBCPP_3.2
+OBJECT:2:_ZTSh@@GLIBCPP_3.2
+OBJECT:2:_ZTSi@@GLIBCPP_3.2
+OBJECT:2:_ZTSj@@GLIBCPP_3.2
+OBJECT:2:_ZTSl@@GLIBCPP_3.2
+OBJECT:2:_ZTSm@@GLIBCPP_3.2
+OBJECT:2:_ZTSs@@GLIBCPP_3.2
+OBJECT:2:_ZTSt@@GLIBCPP_3.2
+OBJECT:2:_ZTSv@@GLIBCPP_3.2
+OBJECT:2:_ZTSw@@GLIBCPP_3.2
+OBJECT:2:_ZTSx@@GLIBCPP_3.2
+OBJECT:2:_ZTSy@@GLIBCPP_3.2
+OBJECT:32:_ZNSbIwSt11char_traitsIwESaIwEE20_S_empty_rep_storageE@@GLIBCPP_3.2
+OBJECT:32:_ZNSs20_S_empty_rep_storageE@@GLIBCPP_3.2
+OBJECT:32:_ZSt10messages_c@@GLIBCPP_3.2
+OBJECT:32:_ZSt10messages_w@@GLIBCPP_3.2
+OBJECT:32:_ZTIPa@@GLIBCPP_3.2
+OBJECT:32:_ZTIPb@@GLIBCPP_3.2
+OBJECT:32:_ZTIPc@@GLIBCPP_3.2
+OBJECT:32:_ZTIPd@@GLIBCPP_3.2
+OBJECT:32:_ZTIPe@@GLIBCPP_3.2
+OBJECT:32:_ZTIPf@@GLIBCPP_3.2
+OBJECT:32:_ZTIPh@@GLIBCPP_3.2
+OBJECT:32:_ZTIPi@@GLIBCPP_3.2
+OBJECT:32:_ZTIPj@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKa@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKb@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKc@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKd@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKe@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKf@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKh@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKi@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKj@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKl@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKm@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKs@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKt@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKv@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKw@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKx@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKy@@GLIBCPP_3.2
+OBJECT:32:_ZTIPl@@GLIBCPP_3.2
+OBJECT:32:_ZTIPm@@GLIBCPP_3.2
+OBJECT:32:_ZTIPs@@GLIBCPP_3.2
+OBJECT:32:_ZTIPt@@GLIBCPP_3.2
+OBJECT:32:_ZTIPv@@GLIBCPP_3.2
+OBJECT:32:_ZTIPw@@GLIBCPP_3.2
+OBJECT:32:_ZTIPx@@GLIBCPP_3.2
+OBJECT:32:_ZTIPy@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt10istrstream@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt10ostrstream@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:33:_ZTSN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:34:_ZTSSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:36:_ZTSN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:36:_ZTSSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:36:_ZTSSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:37:_ZTSN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:37:_ZTSN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:38:_ZTSN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:3:_ZTSPa@@GLIBCPP_3.2
+OBJECT:3:_ZTSPb@@GLIBCPP_3.2
+OBJECT:3:_ZTSPc@@GLIBCPP_3.2
+OBJECT:3:_ZTSPd@@GLIBCPP_3.2
+OBJECT:3:_ZTSPe@@GLIBCPP_3.2
+OBJECT:3:_ZTSPf@@GLIBCPP_3.2
+OBJECT:3:_ZTSPh@@GLIBCPP_3.2
+OBJECT:3:_ZTSPi@@GLIBCPP_3.2
+OBJECT:3:_ZTSPj@@GLIBCPP_3.2
+OBJECT:3:_ZTSPl@@GLIBCPP_3.2
+OBJECT:3:_ZTSPm@@GLIBCPP_3.2
+OBJECT:3:_ZTSPs@@GLIBCPP_3.2
+OBJECT:3:_ZTSPt@@GLIBCPP_3.2
+OBJECT:3:_ZTSPv@@GLIBCPP_3.2
+OBJECT:3:_ZTSPw@@GLIBCPP_3.2
+OBJECT:3:_ZTSPx@@GLIBCPP_3.2
+OBJECT:3:_ZTSPy@@GLIBCPP_3.2
+OBJECT:3:_ZTSSd@@GLIBCPP_3.2
+OBJECT:3:_ZTSSi@@GLIBCPP_3.2
+OBJECT:3:_ZTSSo@@GLIBCPP_3.2
+OBJECT:408:_ZSt11timepunct_c@@GLIBCPP_3.2
+OBJECT:408:_ZSt11timepunct_w@@GLIBCPP_3.2
+OBJECT:40:_ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE@@GLIBCPP_3.2
+OBJECT:40:_ZNSt6locale5_Impl11_S_id_ctypeE@@GLIBCPP_3.2
+OBJECT:40:_ZSt10numpunct_c@@GLIBCPP_3.2
+OBJECT:40:_ZTSN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:41:_ZTSSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:46:_ZTSN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:46:_ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:46:_ZTSSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:48:_ZSt10numpunct_w@@GLIBCPP_3.2
+OBJECT:48:_ZTVNSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10money_base18_S_default_patternE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale2id12_S_highwaterE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale3allE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale4noneE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale4timeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale5ctypeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale7collateE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale7numericE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale8messagesE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale8monetaryE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base10floatfieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base10scientificE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base11adjustfieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base18_S_local_word_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base2inE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3appE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3ateE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3begE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3curE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3decE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3endE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3hexE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3octE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3outE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base4Init16_S_ios_base_initE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base4leftE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5fixedE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5rightE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5truncE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6badbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6binaryE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6eofbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6skipwsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7failbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7goodbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7showposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7unitbufE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base8internalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base8showbaseE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9basefieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9boolalphaE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9showpointE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9uppercaseE@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKa@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKb@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKc@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKd@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKe@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKf@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKh@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKi@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKj@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKl@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKm@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKs@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKt@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKv@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKw@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKx@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKy@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt6locale5_Impl10_S_id_timeE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt6locale5_Impl13_S_id_numericE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt6locale5_Impl19_S_facet_categoriesE@@GLIBCPP_3.2
+OBJECT:56:_ZSt7ctype_c@@GLIBCPP_3.2
+OBJECT:56:_ZTISi@@GLIBCPP_3.2
+OBJECT:56:_ZTISo@@GLIBCPP_3.2
+OBJECT:56:_ZTISt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZTISt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZTISt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:56:_ZTISt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZTTSd@@GLIBCPP_3.2
+OBJECT:56:_ZTTSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVNSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt10bad_typeid@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt11logic_error@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt11range_error@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt12domain_error@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt12length_error@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt12out_of_range@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt13bad_exception@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt13runtime_error@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt14overflow_error@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt15underflow_error@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt16invalid_argument@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt8bad_cast@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt9bad_alloc@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt9exception@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZNSt6locale5_Impl14_S_id_monetaryE@@GLIBCPP_3.2
+OBJECT:72:_ZSt13c_locale_impl@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_fc@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_fw@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_tc@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_tw@@GLIBCPP_3.2
+OBJECT:72:_ZTISd@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8messagesIcE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8messagesIwE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt9strstream@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt11__timepunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt11__timepunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7collateIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7collateIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8messagesIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8messagesIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8numpunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8numpunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCPP_3.2
+OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSs4nposE@@GLIBCPP_3.2
+OBJECT:8:_ZNSs4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt11__timepunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt11__timepunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_end_freeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_heap_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE13_S_start_freeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt5ctypeIcE10table_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt5ctypeIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt5ctypeIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale10_S_classicE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale17_S_num_categoriesE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale5facet11_S_c_localeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale9_S_globalE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7codecvtIcc11__mbstate_tE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7codecvtIwc11__mbstate_tE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7collateIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7collateIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8messagesIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8messagesIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8numpunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8numpunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZSt8c_locale@@GLIBCPP_3.2
+OBJECT:96:_ZTVSt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:96:_ZTVSt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:96:_ZTVSt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:96:_ZTVSt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:96:_ZTVSt7collateIcE@@GLIBCPP_3.2
+OBJECT:96:_ZTVSt7collateIwE@@GLIBCPP_3.2
+OBJECT:96:_ZTVSt8messagesIcE@@GLIBCPP_3.2
+OBJECT:96:_ZTVSt8messagesIwE@@GLIBCPP_3.2
diff --git a/contrib/libstdc++/config/abi/sparc-freebsd5/baseline_symbols.txt b/contrib/libstdc++/config/abi/sparc-freebsd5/baseline_symbols.txt
new file mode 100644
index 0000000..b63c4a3
--- /dev/null
+++ b/contrib/libstdc++/config/abi/sparc-freebsd5/baseline_symbols.txt
@@ -0,0 +1,3073 @@
+FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.2
+FUNC:_ZNKSaIcE7addressERKc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE7addressERc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE7addressERKw@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE7addressERw@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13get_allocatorEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE2atEm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5c_strEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5emptyEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_foldEmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_iendEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCPP_3.2
+FUNC:_ZNKSi6gcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs13get_allocatorEv@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs2atEm@@GLIBCPP_3.2
+FUNC:_ZNKSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4copyEPcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5c_strEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5emptyEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6substrEmm@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_foldEmm@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_iendEv@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNKSs8_M_checkEm@@GLIBCPP_3.2
+FUNC:_ZNKSs8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSs9_M_ibeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSsixEm@@GLIBCPP_3.2
+FUNC:_ZNKSt10istrstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10ostrstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10ostrstream6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE15_M_date_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE15_M_time_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE19_M_days_abbreviatedEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE20_M_date_time_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE21_M_months_abbreviatedEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE6_M_putEPcmPKcPK2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE7_M_ampmEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE7_M_daysEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE9_M_monthsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE15_M_date_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE15_M_time_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE19_M_days_abbreviatedEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE20_M_date_time_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE21_M_months_abbreviatedEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE6_M_putEPwmPKwPK2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE7_M_ampmEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE7_M_daysEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11logic_error4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt12strstreambuf6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_filebufIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_filebufIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13runtime_error4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4gptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4pptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5ebackEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5egptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5epptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5pbaseEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE6getlocEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIcSt11char_traitsIcEE6_M_getEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIwSt11char_traitsIwEE6_M_getEv@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_scan_isEmPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE11do_scan_notEmPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEPKcS2_Pm@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEmc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_scan_isEmPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEPwPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_toupperEPwPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_toupperEw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE11do_scan_notEmPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE19_M_convert_to_wmaskEm@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEPKwS2_Pm@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEmw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE9do_narrowEwc@@GLIBCPP_3.2
+FUNC:_ZNKSt6locale4nameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt6localeeqERKS_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE5do_inERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE6do_outERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERKS0_PKcS5_m@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERKS0_PKcS5_m@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE4hashEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE7compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE7do_hashEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE9transformEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE4hashEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE7compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE7do_hashEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE9transformEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intERKSscRSt8ios_basePcS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_widen_intES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatERKSscPKcPcS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_widen_floatES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIdEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIeEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEclRSt8ios_basePcPKcRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertES3_RSt8ios_basecPKci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_group_intERKSswRSt8ios_basePwS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_widen_intES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatERKSswPKwPwS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_widen_floatES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIdEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIeEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwlRSt8ios_basePwPKwRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertES3_RSt8ios_basewPKwi@@GLIBCPP_3.2
+FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE20_M_convert_from_charEPc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE3getEiiiRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6localePKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE5closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE6do_getEiiiRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE7do_openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE8do_closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE18_M_convert_to_charERKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE20_M_convert_from_charEPc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE3getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6localePKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE5closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE7do_openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE8do_closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE11do_truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE12do_falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE8truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE9falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE11do_truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE12do_falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE8truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE9falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numERS3_S5_RiiimRKSt5ctypeIcERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameERS3_S5_RiPPKcmRSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numERS3_S5_RiiimRKSt5ctypeIwERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameERS3_S5_RiPPKwmRSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmPKcSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8valarrayImE4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE10exceptionsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3tieEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4fillEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE6narrowEcc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE10exceptionsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3badEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3eofEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3tieEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4failEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4fillEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4goodEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE6narrowEwc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE7rdstateEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEcvPvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEntEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9exception4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9strstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9strstream6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info10__do_catchEPKS_PPvj@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info14__is_pointer_pEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info15__is_function_pEv@@GLIBCPP_3.2
+FUNC:_ZNSaIcE10deallocateEPcm@@GLIBCPP_3.2
+FUNC:_ZNSaIcE7destroyEPc@@GLIBCPP_3.2
+FUNC:_ZNSaIcE8allocateEmPKv@@GLIBCPP_3.2
+FUNC:_ZNSaIcE9constructEPcRKc@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwE10deallocateEPwm@@GLIBCPP_3.2
+FUNC:_ZNSaIwE7destroyEPw@@GLIBCPP_3.2
+FUNC:_ZNSaIwE8allocateEmPKv@@GLIBCPP_3.2
+FUNC:_ZNSaIwE9constructEPwRKw@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEmwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS2_EES8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS3_S2_EES6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE2atEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_disposeERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refcopyEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refdataEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep13_M_set_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep15_M_set_sharableEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep7_M_grabERKS1_S5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_m@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_RepixEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EE@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEmm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_dataEPw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_leakEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_NS4_IPKwS2_EES9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwS8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_RKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S5_S5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S6_S6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_mw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEmmm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9push_backEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEw@@GLIBCPP_3.2
+FUNC:_ZNSdC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSdC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSdD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPclc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERc@@GLIBCPP_3.2
+FUNC:_ZNSi3getEv@@GLIBCPP_3.2
+FUNC:_ZNSi4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSi4readEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSi5tellgEv@@GLIBCPP_3.2
+FUNC:_ZNSi5ungetEv@@GLIBCPP_3.2
+FUNC:_ZNSi6ignoreEli@@GLIBCPP_3.2
+FUNC:_ZNSi6sentryC1ERSib@@GLIBCPP_3.2
+FUNC:_ZNSi6sentryC2ERSib@@GLIBCPP_3.2
+FUNC:_ZNSi6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPclc@@GLIBCPP_3.2
+FUNC:_ZNSi7putbackEc@@GLIBCPP_3.2
+FUNC:_ZNSi8readsomeEPcl@@GLIBCPP_3.2
+FUNC:_ZNSiC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSiC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSiD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSiD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSiD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSiS_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSirsERPv@@GLIBCPP_3.2
+FUNC:_ZNSirsERb@@GLIBCPP_3.2
+FUNC:_ZNSirsERd@@GLIBCPP_3.2
+FUNC:_ZNSirsERe@@GLIBCPP_3.2
+FUNC:_ZNSirsERf@@GLIBCPP_3.2
+FUNC:_ZNSirsERi@@GLIBCPP_3.2
+FUNC:_ZNSirsERj@@GLIBCPP_3.2
+FUNC:_ZNSirsERl@@GLIBCPP_3.2
+FUNC:_ZNSirsERm@@GLIBCPP_3.2
+FUNC:_ZNSirsERs@@GLIBCPP_3.2
+FUNC:_ZNSirsERt@@GLIBCPP_3.2
+FUNC:_ZNSirsERx@@GLIBCPP_3.2
+FUNC:_ZNSirsERy@@GLIBCPP_3.2
+FUNC:_ZNSo3putEc@@GLIBCPP_3.2
+FUNC:_ZNSo5flushEv@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSo5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSo5writeEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC1ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC2ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSoD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSoD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSoD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSoS_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPKv@@GLIBCPP_3.2
+FUNC:_ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSolsEb@@GLIBCPP_3.2
+FUNC:_ZNSolsEd@@GLIBCPP_3.2
+FUNC:_ZNSolsEe@@GLIBCPP_3.2
+FUNC:_ZNSolsEf@@GLIBCPP_3.2
+FUNC:_ZNSolsEi@@GLIBCPP_3.2
+FUNC:_ZNSolsEj@@GLIBCPP_3.2
+FUNC:_ZNSolsEl@@GLIBCPP_3.2
+FUNC:_ZNSolsEm@@GLIBCPP_3.2
+FUNC:_ZNSolsEs@@GLIBCPP_3.2
+FUNC:_ZNSolsEt@@GLIBCPP_3.2
+FUNC:_ZNSolsEx@@GLIBCPP_3.2
+FUNC:_ZNSolsEy@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_M_leak_hardEv@@GLIBCPP_3.2
+FUNC:_ZNSs12_S_constructEmcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_S_empty_repEv@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcPKcS1_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcS_S_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs2atEm@@GLIBCPP_3.2
+FUNC:_ZNSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_destroyERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_disposeERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_refcopyEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_refdataEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep13_M_set_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep15_M_set_sharableEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep7_M_grabERKSaIcES2_@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep8_M_cloneERKSaIcEm@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep9_S_createEmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_RepixEm@@GLIBCPP_3.2
+FUNC:_ZNSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSs4swapERSs@@GLIBCPP_3.2
+FUNC:_ZNSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSs5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEmm@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmmc@@GLIBCPP_3.2
+FUNC:_ZNSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEm@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEmc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_dataEPc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_leakEv@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcm@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_mc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmPKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmmc@@GLIBCPP_3.2
+FUNC:_ZNSs7reserveEm@@GLIBCPP_3.2
+FUNC:_ZNSs9_M_mutateEmmm@@GLIBCPP_3.2
+FUNC:_ZNSs9push_backEc@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsaSEPKc@@GLIBCPP_3.2
+FUNC:_ZNSsaSERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsaSEc@@GLIBCPP_3.2
+FUNC:_ZNSsixEm@@GLIBCPP_3.2
+FUNC:_ZNSspLEPKc@@GLIBCPP_3.2
+FUNC:_ZNSspLERKSs@@GLIBCPP_3.2
+FUNC:_ZNSspLEc@@GLIBCPP_3.2
+FUNC:_ZNSt10__num_base13_S_format_intERKSt8ios_basePccc@@GLIBCPP_3.2
+FUNC:_ZNSt10__num_base15_S_format_floatERKSt8ios_basePccl@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10money_base20_S_construct_patternEccc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstream6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcE23_M_initialize_timepunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwE23_M_initialize_timepunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE10sys_ungetcEi@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE12_M_open_modeESt13_Ios_OpenmodeRiS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE16showmanyc_helperEv@@GLIBCPP_3.2.3
+FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE6xsgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE6xsputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE7seekposElSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_getcEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEP7__sFILESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmodeb@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC1EPP13pthread_mutex@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC2EPP13pthread_mutex@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7_M_freeEPc@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8_M_allocEm@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8_M_setupEPcS0_l@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPFPvmEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKal@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKhl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPalS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPclS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPhlS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1El@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPFPvmEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKal@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKhl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPalS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPclS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPhlS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2El@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE17_M_output_unshiftEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_really_overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_set_determinateEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_is_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_underflow_commonEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE20_M_set_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPclRlS4_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE17_M_output_unshiftEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_really_overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_set_determinateEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_is_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_underflow_commonEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE20_M_set_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwlRlS4_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwlw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_Ew@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEli@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC1ERS2_b@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC2ERS2_b@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwlw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7putbackEw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRS2_S3_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERPv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERd@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERe@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERf@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERm@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERs@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERt@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERx@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERy@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC1ERS2_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC2ERS2_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRS2_S3_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPKv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEf@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEm@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEs@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE14_M_in_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_buf_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_pback_createEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE16_M_pback_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5gbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6snextcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7pubsyncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7sungetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8in_availEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8pubimbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9sputbackcEc@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE14_M_in_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_buf_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_pback_createEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE16_M_pback_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5gbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5pbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputcEw@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6sbumpcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6snextcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7pubsyncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7sungetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8in_availEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9sputbackcEw@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEmm@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE14_M_really_syncEmm@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10reallocateEPvmm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_round_upEm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE14_S_chunk_allocEmRi@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE17_S_freelist_indexEm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE8allocateEm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE9_S_refillEm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcE13classic_tableEv@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC1EPKmbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC1EPiPKmbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EPKmbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EPiPKmbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_@@GLIBCPP_3.2
+FUNC:_ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale11_M_coalesceERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale21_S_normalize_categoryEj@@GLIBCPP_3.2
+FUNC:_ZNSt6locale2idC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale2idC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPNS_5facetE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1EPPNS_5facetEmb@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1ERKS0_m@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2EPPNS_5facetEmb@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2ERKS0_m@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet16_M_add_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet17_S_clone_c_localeERPi@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet18_S_create_c_localeERPiPKcS1_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_M_remove_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERPi@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale6globalERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale7classicEv@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1EPNS_5_ImplE@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_PKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2EPNS_5_ImplE@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_PKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeaSERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base13_M_grow_wordsEi@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base15sync_with_stdioEb@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base17_M_call_callbacksENS_5eventE@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base20_M_dispose_callbacksEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4Init13_S_ios_createEb@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4Init14_S_ios_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base6xallocEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7_M_initEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwE22_M_initialize_numpunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC1ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC2ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEixEm@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5rdbufEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE7copyfmtERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE3tieEPSt13basic_ostreamIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4fillEw@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5rdbufEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE7copyfmtERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt9strstream6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD2Ev@@GLIBCPP_3.2
+FUNC:_ZSt10unexpectedv@@GLIBCPP_3.2
+FUNC:_ZSt13set_terminatePFvvE@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIlEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vImEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIxEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIyEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14set_unexpectedPFvvE@@GLIBCPP_3.2
+FUNC:_ZSt15set_new_handlerPFvvE@@GLIBCPP_3.2
+FUNC:_ZSt16__throw_bad_castv@@GLIBCPP_3.2
+FUNC:_ZSt17__throw_bad_allocv@@GLIBCPP_3.2
+FUNC:_ZSt18__throw_bad_typeidv@@GLIBCPP_3.2
+FUNC:_ZSt18uncaught_exceptionv@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_range_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_domain_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_length_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_out_of_rangePKc@@GLIBCPP_3.2
+FUNC:_ZSt21__throw_bad_exceptionv@@GLIBCPP_3.2
+FUNC:_ZSt21__throw_runtime_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt22__throw_overflow_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt23__throw_underflow_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt24__throw_invalid_argumentPKc@@GLIBCPP_3.2
+FUNC:_ZSt24__uninitialized_copy_auxIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsET0_T_SA_S9_12__false_type@@GLIBCPP_3.2
+FUNC:_ZSt26__uninitialized_fill_n_auxIPSsmSsET_S1_T0_RKT1_12__false_type@@GLIBCPP_3.2
+FUNC:_ZSt2wsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt2wsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endlIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt5flushIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt10moneypunctIcLb0EEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt10moneypunctIwLb0EEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt11__timepunctIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt11__timepunctIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt5ctypeIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt5ctypeIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7codecvtIcc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7codecvtIwc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7collateIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7collateIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8messagesIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8messagesIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8numpunctIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8numpunctIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9terminatev@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIcLb0EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIcLb1EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIwLb0EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIwLb1EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt11__timepunctIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt11__timepunctIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt5ctypeIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7collateIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7collateIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8messagesIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8messagesIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8numpunctIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8numpunctIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKa@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKh@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_a@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIfcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIfwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_S3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_@@GLIBCPP_3.2.1
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ERKS6_S8_@@GLIBCPP_3.2.1
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ra@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Rh@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIfcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIfwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZThn16_NSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSiD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSiD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSoD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSoD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10istrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10istrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10ostrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10ostrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZdaPv@@GLIBCPP_3.2
+FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZdlPv@@GLIBCPP_3.2
+FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znam@@GLIBCPP_3.2
+FUNC:_ZnamRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znwm@@GLIBCPP_3.2
+FUNC:_ZnwmRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:__cxa_allocate_exception@@CXXABI_1.2
+FUNC:__cxa_bad_cast@@CXXABI_1.2
+FUNC:__cxa_bad_typeid@@CXXABI_1.2
+FUNC:__cxa_begin_catch@@CXXABI_1.2
+FUNC:__cxa_call_unexpected@@CXXABI_1.2
+FUNC:__cxa_current_exception_type@@CXXABI_1.2
+FUNC:__cxa_demangle@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append_char@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_clear@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_delete@@CXXABI_1.2
+FUNC:__cxa_dyn_string_eq@@CXXABI_1.2
+FUNC:__cxa_dyn_string_init@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert_char@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_new@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_release@@CXXABI_1.2
+FUNC:__cxa_dyn_string_resize@@CXXABI_1.2
+FUNC:__cxa_dyn_string_substring@@CXXABI_1.2
+FUNC:__cxa_end_catch@@CXXABI_1.2
+FUNC:__cxa_free_exception@@CXXABI_1.2
+FUNC:__cxa_get_globals@@CXXABI_1.2
+FUNC:__cxa_get_globals_fast@@CXXABI_1.2
+FUNC:__cxa_guard_abort@@CXXABI_1.2.1
+FUNC:__cxa_guard_acquire@@CXXABI_1.2.1
+FUNC:__cxa_guard_release@@CXXABI_1.2.1
+FUNC:__cxa_pure_virtual@@CXXABI_1.2
+FUNC:__cxa_rethrow@@CXXABI_1.2
+FUNC:__cxa_throw@@CXXABI_1.2
+FUNC:__cxa_vec_cctor@@CXXABI_1.2
+FUNC:__cxa_vec_cleanup@@CXXABI_1.2
+FUNC:__cxa_vec_ctor@@CXXABI_1.2
+FUNC:__cxa_vec_delete2@@CXXABI_1.2
+FUNC:__cxa_vec_delete3@@CXXABI_1.2
+FUNC:__cxa_vec_delete@@CXXABI_1.2
+FUNC:__cxa_vec_dtor@@CXXABI_1.2
+FUNC:__cxa_vec_new2@@CXXABI_1.2
+FUNC:__cxa_vec_new3@@CXXABI_1.2
+FUNC:__cxa_vec_new@@CXXABI_1.2
+FUNC:__dynamic_cast@@CXXABI_1.2
+FUNC:__gxx_personality_v0@@CXXABI_1.2
+FUNC:__signbitf@@GLIBCPP_3.2.1
+FUNC:atan2l@@GLIBCPP_3.2.1
+FUNC:coshl@@GLIBCPP_3.2.1
+FUNC:cosl@@GLIBCPP_3.2.1
+FUNC:expl@@GLIBCPP_3.2.1
+FUNC:hypotl@@GLIBCPP_3.2.1
+FUNC:log10l@@GLIBCPP_3.2.1
+FUNC:logl@@GLIBCPP_3.2.1
+FUNC:nan@@GLIBCPP_3.2.1
+FUNC:powl@@GLIBCPP_3.2.1
+FUNC:sinhl@@GLIBCPP_3.2.1
+FUNC:sinl@@GLIBCPP_3.2.1
+FUNC:sqrtl@@GLIBCPP_3.2.1
+FUNC:tanhl@@GLIBCPP_3.2.1
+FUNC:tanl@@GLIBCPP_3.2.1
+OBJECT:0:CXXABI_1.2
+OBJECT:0:CXXABI_1.2.1
+OBJECT:0:GLIBCPP_3.2
+OBJECT:0:GLIBCPP_3.2.1
+OBJECT:0:GLIBCPP_3.2.2
+OBJECT:0:GLIBCPP_3.2.3
+OBJECT:104:_ZTVSt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:112:_ZNSt11__timepunctIcE12_S_timezonesE@@GLIBCPP_3.2
+OBJECT:112:_ZNSt11__timepunctIwE12_S_timezonesE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSd@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt9strstream@@GLIBCPP_3.2
+OBJECT:128:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_free_listE@@GLIBCPP_3.2
+OBJECT:128:_ZTVN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt12strstreambuf@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt8bad_cast@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt8ios_base@@GLIBCPP_3.2
+OBJECT:136:_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:136:_ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9bad_alloc@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9exception@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9strstream@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9time_base@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9type_info@@GLIBCPP_3.2
+OBJECT:14:_ZTSSt7collateIcE@@GLIBCPP_3.2
+OBJECT:14:_ZTSSt7collateIwE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10__num_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10bad_typeid@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10ctype_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10istrstream@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10money_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10ostrstream@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8messagesIcE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8messagesIwE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_get_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_get_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_put_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_put_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_get_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_get_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_put_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_put_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt9codecvt_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt9codecvt_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_get_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_get_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_put_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_put_w@@GLIBCPP_3.2
+OBJECT:16:_ZTINSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10__num_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10ctype_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10money_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt12codecvt_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt13messages_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:16:_ZTISt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:16:_ZTISt8ios_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt9exception@@GLIBCPP_3.2
+OBJECT:16:_ZTISt9time_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt9type_info@@GLIBCPP_3.2
+OBJECT:16:_ZTIa@@GLIBCPP_3.2
+OBJECT:16:_ZTIb@@GLIBCPP_3.2
+OBJECT:16:_ZTIc@@GLIBCPP_3.2
+OBJECT:16:_ZTId@@GLIBCPP_3.2
+OBJECT:16:_ZTIe@@GLIBCPP_3.2
+OBJECT:16:_ZTIf@@GLIBCPP_3.2
+OBJECT:16:_ZTIh@@GLIBCPP_3.2
+OBJECT:16:_ZTIi@@GLIBCPP_3.2
+OBJECT:16:_ZTIj@@GLIBCPP_3.2
+OBJECT:16:_ZTIl@@GLIBCPP_3.2
+OBJECT:16:_ZTIm@@GLIBCPP_3.2
+OBJECT:16:_ZTIs@@GLIBCPP_3.2
+OBJECT:16:_ZTIt@@GLIBCPP_3.2
+OBJECT:16:_ZTIv@@GLIBCPP_3.2
+OBJECT:16:_ZTIw@@GLIBCPP_3.2
+OBJECT:16:_ZTIx@@GLIBCPP_3.2
+OBJECT:16:_ZTIy@@GLIBCPP_3.2
+OBJECT:16:_ZTSSt11logic_error@@GLIBCPP_3.2
+OBJECT:16:_ZTSSt11range_error@@GLIBCPP_3.2
+OBJECT:16:_ZTTSi@@GLIBCPP_3.2
+OBJECT:16:_ZTTSo@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12codecvt_base@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12domain_error@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12length_error@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12out_of_range@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12strstreambuf@@GLIBCPP_3.2
+OBJECT:18:_ZTSNSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13bad_exception@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13messages_base@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13runtime_error@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt14overflow_error@@GLIBCPP_3.2
+OBJECT:1:_ZNSs4_Rep11_S_terminalE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIcLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIcLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIwLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIwLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt8ios_base4Init20_S_synced_with_stdioE@@GLIBCPP_3.2
+OBJECT:1:_ZSt7nothrow@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt15underflow_error@@GLIBCPP_3.2
+OBJECT:21:_ZTSSt16invalid_argument@@GLIBCPP_3.2
+OBJECT:224:_ZSt9facet_vec@@GLIBCPP_3.2
+OBJECT:22:_ZTSNSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:23:_ZNSt10__num_base8_S_atomsE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZNSt6locale5_Impl13_S_id_collateE@@GLIBCPP_3.2
+OBJECT:24:_ZNSt6locale5_Impl14_S_id_messagesE@@GLIBCPP_3.2
+OBJECT:24:_ZSt7ctype_w@@GLIBCPP_3.2
+OBJECT:24:_ZSt9collate_c@@GLIBCPP_3.2
+OBJECT:24:_ZSt9collate_w@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTINSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt10bad_typeid@@GLIBCPP_3.2
+OBJECT:24:_ZTISt10istrstream@@GLIBCPP_3.2
+OBJECT:24:_ZTISt10ostrstream@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11logic_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11range_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12domain_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12length_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12out_of_range@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12strstreambuf@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13bad_exception@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13runtime_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14overflow_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15underflow_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt16invalid_argument@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7collateIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7collateIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt8bad_cast@@GLIBCPP_3.2
+OBJECT:24:_ZTISt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9bad_alloc@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9strstream@@GLIBCPP_3.2
+OBJECT:256:_ZSt12_S_bit_count@@GLIBCPP_3.2
+OBJECT:256:_ZSt12_S_first_one@@GLIBCPP_3.2
+OBJECT:272:_ZSt4cerr@@GLIBCPP_3.2
+OBJECT:272:_ZSt4clog@@GLIBCPP_3.2
+OBJECT:272:_ZSt4cout@@GLIBCPP_3.2
+OBJECT:272:_ZSt5wcerr@@GLIBCPP_3.2
+OBJECT:272:_ZSt5wclog@@GLIBCPP_3.2
+OBJECT:272:_ZSt5wcout@@GLIBCPP_3.2
+OBJECT:280:_ZSt3cin@@GLIBCPP_3.2
+OBJECT:280:_ZSt4wcin@@GLIBCPP_3.2
+OBJECT:28:_ZTSSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:28:_ZTSSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:2:_ZTSa@@GLIBCPP_3.2
+OBJECT:2:_ZTSb@@GLIBCPP_3.2
+OBJECT:2:_ZTSc@@GLIBCPP_3.2
+OBJECT:2:_ZTSd@@GLIBCPP_3.2
+OBJECT:2:_ZTSe@@GLIBCPP_3.2
+OBJECT:2:_ZTSf@@GLIBCPP_3.2
+OBJECT:2:_ZTSh@@GLIBCPP_3.2
+OBJECT:2:_ZTSi@@GLIBCPP_3.2
+OBJECT:2:_ZTSj@@GLIBCPP_3.2
+OBJECT:2:_ZTSl@@GLIBCPP_3.2
+OBJECT:2:_ZTSm@@GLIBCPP_3.2
+OBJECT:2:_ZTSs@@GLIBCPP_3.2
+OBJECT:2:_ZTSt@@GLIBCPP_3.2
+OBJECT:2:_ZTSv@@GLIBCPP_3.2
+OBJECT:2:_ZTSw@@GLIBCPP_3.2
+OBJECT:2:_ZTSx@@GLIBCPP_3.2
+OBJECT:2:_ZTSy@@GLIBCPP_3.2
+OBJECT:32:_ZNSbIwSt11char_traitsIwESaIwEE20_S_empty_rep_storageE@@GLIBCPP_3.2
+OBJECT:32:_ZNSs20_S_empty_rep_storageE@@GLIBCPP_3.2
+OBJECT:32:_ZSt10messages_c@@GLIBCPP_3.2
+OBJECT:32:_ZSt10messages_w@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKa@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKb@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKc@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKd@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKe@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKf@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKh@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKi@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKj@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKl@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKm@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKs@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKt@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKv@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKw@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKx@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKy@@GLIBCPP_3.2
+OBJECT:32:_ZTIPa@@GLIBCPP_3.2
+OBJECT:32:_ZTIPb@@GLIBCPP_3.2
+OBJECT:32:_ZTIPc@@GLIBCPP_3.2
+OBJECT:32:_ZTIPd@@GLIBCPP_3.2
+OBJECT:32:_ZTIPe@@GLIBCPP_3.2
+OBJECT:32:_ZTIPf@@GLIBCPP_3.2
+OBJECT:32:_ZTIPh@@GLIBCPP_3.2
+OBJECT:32:_ZTIPi@@GLIBCPP_3.2
+OBJECT:32:_ZTIPj@@GLIBCPP_3.2
+OBJECT:32:_ZTIPl@@GLIBCPP_3.2
+OBJECT:32:_ZTIPm@@GLIBCPP_3.2
+OBJECT:32:_ZTIPs@@GLIBCPP_3.2
+OBJECT:32:_ZTIPt@@GLIBCPP_3.2
+OBJECT:32:_ZTIPv@@GLIBCPP_3.2
+OBJECT:32:_ZTIPw@@GLIBCPP_3.2
+OBJECT:32:_ZTIPx@@GLIBCPP_3.2
+OBJECT:32:_ZTIPy@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt10istrstream@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt10ostrstream@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTVNSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:32:_ZTVSt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:32:_ZTVSt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:32:_ZTVSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTVSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:33:_ZTSN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:34:_ZTSSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:36:_ZTSN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:36:_ZTSSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:36:_ZTSSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:37:_ZTSN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:37:_ZTSN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:38:_ZTSN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:3:_ZTSPa@@GLIBCPP_3.2
+OBJECT:3:_ZTSPb@@GLIBCPP_3.2
+OBJECT:3:_ZTSPc@@GLIBCPP_3.2
+OBJECT:3:_ZTSPd@@GLIBCPP_3.2
+OBJECT:3:_ZTSPe@@GLIBCPP_3.2
+OBJECT:3:_ZTSPf@@GLIBCPP_3.2
+OBJECT:3:_ZTSPh@@GLIBCPP_3.2
+OBJECT:3:_ZTSPi@@GLIBCPP_3.2
+OBJECT:3:_ZTSPj@@GLIBCPP_3.2
+OBJECT:3:_ZTSPl@@GLIBCPP_3.2
+OBJECT:3:_ZTSPm@@GLIBCPP_3.2
+OBJECT:3:_ZTSPs@@GLIBCPP_3.2
+OBJECT:3:_ZTSPt@@GLIBCPP_3.2
+OBJECT:3:_ZTSPv@@GLIBCPP_3.2
+OBJECT:3:_ZTSPw@@GLIBCPP_3.2
+OBJECT:3:_ZTSPx@@GLIBCPP_3.2
+OBJECT:3:_ZTSPy@@GLIBCPP_3.2
+OBJECT:3:_ZTSSd@@GLIBCPP_3.2
+OBJECT:3:_ZTSSi@@GLIBCPP_3.2
+OBJECT:3:_ZTSSo@@GLIBCPP_3.2
+OBJECT:408:_ZSt11timepunct_c@@GLIBCPP_3.2
+OBJECT:408:_ZSt11timepunct_w@@GLIBCPP_3.2
+OBJECT:40:_ZNSt6locale5_Impl11_S_id_ctypeE@@GLIBCPP_3.2
+OBJECT:40:_ZTSN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVNSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt10bad_typeid@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt11logic_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt11range_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt12domain_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt12length_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt12out_of_range@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt13bad_exception@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt13runtime_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt14overflow_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt15underflow_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt16invalid_argument@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt8bad_cast@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt9bad_alloc@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt9exception@@GLIBCPP_3.2
+OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:41:_ZTSSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:46:_ZTSN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:46:_ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:46:_ZTSSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:48:_ZSt10numpunct_c@@GLIBCPP_3.2
+OBJECT:48:_ZSt10numpunct_w@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10money_base18_S_default_patternE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale3allE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale4noneE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale4timeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale5ctypeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale7collateE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale7numericE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale8messagesE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale8monetaryE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base10floatfieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base10scientificE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base11adjustfieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base18_S_local_word_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base2inE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3appE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3ateE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3begE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3curE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3decE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3endE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3hexE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3octE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3outE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base4Init16_S_ios_base_initE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base4leftE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5fixedE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5rightE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5truncE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6badbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6binaryE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6eofbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6skipwsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7failbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7goodbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7showposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7unitbufE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base8internalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base8showbaseE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9basefieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9boolalphaE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9showpointE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9uppercaseE@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKa@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKb@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKc@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKd@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKe@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKf@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKh@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKi@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKj@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKl@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKm@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKs@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKt@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKv@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKw@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKx@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKy@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt6locale5_Impl10_S_id_timeE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt6locale5_Impl13_S_id_numericE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt6locale5_Impl19_S_facet_categoriesE@@GLIBCPP_3.2
+OBJECT:56:_ZSt7ctype_c@@GLIBCPP_3.2
+OBJECT:56:_ZTISi@@GLIBCPP_3.2
+OBJECT:56:_ZTISo@@GLIBCPP_3.2
+OBJECT:56:_ZTISt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZTISt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZTISt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:56:_ZTISt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZTTSd@@GLIBCPP_3.2
+OBJECT:56:_ZTTSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt7collateIcE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt7collateIwE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt8messagesIcE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt8messagesIwE@@GLIBCPP_3.2
+OBJECT:576:_ZSt7buf_cin@@GLIBCPP_3.2
+OBJECT:576:_ZSt8buf_cerr@@GLIBCPP_3.2
+OBJECT:576:_ZSt8buf_cout@@GLIBCPP_3.2
+OBJECT:584:_ZSt8buf_wcin@@GLIBCPP_3.2
+OBJECT:584:_ZSt9buf_wcerr@@GLIBCPP_3.2
+OBJECT:584:_ZSt9buf_wcout@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt9type_info@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZNSt6locale5_Impl14_S_id_monetaryE@@GLIBCPP_3.2
+OBJECT:72:_ZSt13c_locale_impl@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_fc@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_fw@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_tc@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_tw@@GLIBCPP_3.2
+OBJECT:72:_ZTISd@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8messagesIcE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8messagesIwE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTVN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:72:_ZTVN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:72:_ZTVN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:72:_ZTVSt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:72:_ZTVSt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:72:_ZTVSt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:72:_ZTVSt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt9strstream@@GLIBCPP_3.2
+OBJECT:80:_ZTVSi@@GLIBCPP_3.2
+OBJECT:80:_ZTVSo@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt10istrstream@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt10ostrstream@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:88:_ZTVN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:88:_ZTVN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:88:_ZTVN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt11__timepunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt11__timepunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7collateIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7collateIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8messagesIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8messagesIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8numpunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8numpunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCPP_3.2
+OBJECT:8:_ZNSs4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSs4nposE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10__num_base11_S_atoms_inE@@GLIBCPP_3.2.3
+OBJECT:8:_ZNSt10__num_base12_S_atoms_outE@@GLIBCPP_3.2.3
+OBJECT:8:_ZNSt10ctype_base5alnumE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5alphaE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5cntrlE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5digitE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5graphE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5lowerE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5printE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5punctE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5spaceE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5upperE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base6xdigitE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt11__timepunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt11__timepunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_end_freeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_force_newE@@GLIBCPP_3.2.2
+OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_heap_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE13_S_start_freeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt5ctypeIcE10table_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt5ctypeIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt5ctypeIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale10_S_classicE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale17_S_num_categoriesE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale2id12_S_highwaterE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale5facet11_S_c_localeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale9_S_globalE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7codecvtIcc11__mbstate_tE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7codecvtIwc11__mbstate_tE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7collateIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7collateIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8messagesIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8messagesIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8numpunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8numpunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZSt8c_locale@@GLIBCPP_3.2
+OBJECT:96:_ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:96:_ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
diff --git a/contrib/libstdc++/config/abi/x86_64-linux-gnu/baseline_symbols.txt b/contrib/libstdc++/config/abi/x86_64-linux-gnu/baseline_symbols.txt
new file mode 100644
index 0000000..15af156
--- /dev/null
+++ b/contrib/libstdc++/config/abi/x86_64-linux-gnu/baseline_symbols.txt
@@ -0,0 +1,3034 @@
+FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.2
+FUNC:_ZNKSaIcE7addressERKc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE7addressERc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE7addressERKw@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE7addressERw@@GLIBCPP_3.2
+FUNC:_ZNKSaIwE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13get_allocatorEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE2atEm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5c_strEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5emptyEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_m@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_foldEmm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_iendEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCPP_3.2
+FUNC:_ZNKSi6gcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs13find_first_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs13get_allocatorEv@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs16find_last_not_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs17find_first_not_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs2atEm@@GLIBCPP_3.2
+FUNC:_ZNKSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4copyEPcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5c_strEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5emptyEv@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6substrEmm@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_foldEmm@@GLIBCPP_3.2
+FUNC:_ZNKSs7_M_iendEv@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNKSs8_M_checkEm@@GLIBCPP_3.2
+FUNC:_ZNKSs8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8max_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSs9_M_ibeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSsixEm@@GLIBCPP_3.2
+FUNC:_ZNKSt10istrstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb0EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIcLb1EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb0EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE10neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE10pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE11frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_neg_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13do_pos_formatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_curr_symbolEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE14do_frac_digitsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_negative_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_positive_signEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10moneypunctIwLb1EE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10ostrstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt10ostrstream6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE15_M_date_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE15_M_time_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE19_M_days_abbreviatedEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE20_M_date_time_formatsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE21_M_months_abbreviatedEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE6_M_putEPcmPKcPK2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE7_M_ampmEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE7_M_daysEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIcE9_M_monthsEPPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE15_M_date_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE15_M_time_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE19_M_days_abbreviatedEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE20_M_date_time_formatsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE21_M_months_abbreviatedEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE6_M_putEPwmPKwPK2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE7_M_ampmEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE7_M_daysEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt11logic_error4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt12strstreambuf6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_filebufIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_filebufIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt13runtime_error4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4gptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4pptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5ebackEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5egptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5epptrEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5pbaseEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE6getlocEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIcSt11char_traitsIcEE6_M_getEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIwSt11char_traitsIwEE6_M_getEv@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_scan_isEtPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE11do_scan_notEtPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEPKcS2_Pt@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEtc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_scan_isEtPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEPwPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_tolowerEw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_toupperEPwPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_toupperEw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE11do_scan_notEtPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE19_M_convert_to_wmaskEt@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEPKwS2_Pt@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEtw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE9do_narrowEwc@@GLIBCPP_3.2
+FUNC:_ZNKSt6locale4nameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt6localeeqERKS_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE5do_inERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE6do_outERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERKS0_PKcS5_m@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_@@GLIBCPP_3.2
+FUNC:_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERKS0_PKcS5_m@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE4hashEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE7compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE7do_hashEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE9transformEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE4hashEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE7compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE7do_hashEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE9transformEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_widen_intES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_widen_floatES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIdEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIeEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertES3_RSt8ios_basecPKci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_widen_intES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_widen_floatES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIdEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIeEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewb@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewd@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertES3_RSt8ios_basewPKwi@@GLIBCPP_3.2
+FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE20_M_convert_from_charEPc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE3getEiiiRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6localePKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE5closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE6do_getEiiiRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE7do_openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIcE8do_closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE18_M_convert_to_charERKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE20_M_convert_from_charEPc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE3getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6localePKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE5closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE7do_openERKSsRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNKSt8messagesIwE8do_closeEi@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE11do_truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE12do_falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE8truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIcE9falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE11do_groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE11do_truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE12do_falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE13decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE13thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE16do_decimal_pointEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE16do_thousands_sepEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE8groupingEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE8truenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8numpunctIwE9falsenameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numERS3_S5_RiiimRKSt5ctypeIcERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameERS3_S5_RiPPKcmRSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numERS3_S5_RiiimRKSt5ctypeIwERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameERS3_S5_RiPPKwmRSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmPKcSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8valarrayImE4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE10exceptionsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3tieEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4fillEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE6narrowEcc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE10exceptionsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3badEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3eofEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3tieEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4failEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4fillEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4goodEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE6narrowEwc@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE7rdstateEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEcvPvEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEntEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9exception4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9strstream5rdbufEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9strstream6pcountEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info10__do_catchEPKS_PPvj@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info14__is_pointer_pEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_info15__is_function_pEv@@GLIBCPP_3.2
+FUNC:_ZNSaIcE10deallocateEPcm@@GLIBCPP_3.2
+FUNC:_ZNSaIcE7destroyEPc@@GLIBCPP_3.2
+FUNC:_ZNSaIcE8allocateEmPKv@@GLIBCPP_3.2
+FUNC:_ZNSaIcE9constructEPcRKc@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIcEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwE10deallocateEPwm@@GLIBCPP_3.2
+FUNC:_ZNSaIwE7destroyEPw@@GLIBCPP_3.2
+FUNC:_ZNSaIwE8allocateEmPKv@@GLIBCPP_3.2
+FUNC:_ZNSaIwE9constructEPwRKw@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSaIwEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSaIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEmwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS2_EES8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS3_S2_EES6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE2atEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_disposeERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refcopyEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refdataEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep13_M_set_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep15_M_set_sharableEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep7_M_grabERKS1_S5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_m@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_RepixEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EE@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEmm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_dataEPw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_leakEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_NS4_IPKwS2_EES9_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwS8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_RKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S5_S5_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S6_S6_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_mw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKwm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmmw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEmmm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9push_backEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mmRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEw@@GLIBCPP_3.2
+FUNC:_ZNSdC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSdC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSdD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPclc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERc@@GLIBCPP_3.2
+FUNC:_ZNSi3getEv@@GLIBCPP_3.2
+FUNC:_ZNSi4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSi4readEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSi5tellgEv@@GLIBCPP_3.2
+FUNC:_ZNSi5ungetEv@@GLIBCPP_3.2
+FUNC:_ZNSi6ignoreEli@@GLIBCPP_3.2
+FUNC:_ZNSi6sentryC1ERSib@@GLIBCPP_3.2
+FUNC:_ZNSi6sentryC2ERSib@@GLIBCPP_3.2
+FUNC:_ZNSi6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPclc@@GLIBCPP_3.2
+FUNC:_ZNSi7putbackEc@@GLIBCPP_3.2
+FUNC:_ZNSi8readsomeEPcl@@GLIBCPP_3.2
+FUNC:_ZNSiC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSiC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSiD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSiD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSiD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSiS_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2
+FUNC:_ZNSirsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSirsERPv@@GLIBCPP_3.2
+FUNC:_ZNSirsERb@@GLIBCPP_3.2
+FUNC:_ZNSirsERd@@GLIBCPP_3.2
+FUNC:_ZNSirsERe@@GLIBCPP_3.2
+FUNC:_ZNSirsERf@@GLIBCPP_3.2
+FUNC:_ZNSirsERi@@GLIBCPP_3.2
+FUNC:_ZNSirsERj@@GLIBCPP_3.2
+FUNC:_ZNSirsERl@@GLIBCPP_3.2
+FUNC:_ZNSirsERm@@GLIBCPP_3.2
+FUNC:_ZNSirsERs@@GLIBCPP_3.2
+FUNC:_ZNSirsERt@@GLIBCPP_3.2
+FUNC:_ZNSirsERx@@GLIBCPP_3.2
+FUNC:_ZNSirsERy@@GLIBCPP_3.2
+FUNC:_ZNSo3putEc@@GLIBCPP_3.2
+FUNC:_ZNSo5flushEv@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSo5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSo5writeEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC1ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC2ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSoD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSoD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSoD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSoS_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2
+FUNC:_ZNSolsEPKv@@GLIBCPP_3.2
+FUNC:_ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSolsEb@@GLIBCPP_3.2
+FUNC:_ZNSolsEd@@GLIBCPP_3.2
+FUNC:_ZNSolsEe@@GLIBCPP_3.2
+FUNC:_ZNSolsEf@@GLIBCPP_3.2
+FUNC:_ZNSolsEi@@GLIBCPP_3.2
+FUNC:_ZNSolsEj@@GLIBCPP_3.2
+FUNC:_ZNSolsEl@@GLIBCPP_3.2
+FUNC:_ZNSolsEm@@GLIBCPP_3.2
+FUNC:_ZNSolsEs@@GLIBCPP_3.2
+FUNC:_ZNSolsEt@@GLIBCPP_3.2
+FUNC:_ZNSolsEx@@GLIBCPP_3.2
+FUNC:_ZNSolsEy@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_M_leak_hardEv@@GLIBCPP_3.2
+FUNC:_ZNSs12_S_constructEmcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_S_empty_repEv@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcPKcS1_@@GLIBCPP_3.2
+FUNC:_ZNSs13_S_copy_charsEPcS_S_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs2atEm@@GLIBCPP_3.2
+FUNC:_ZNSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_destroyERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_disposeERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_refcopyEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep10_M_refdataEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep13_M_set_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep15_M_set_sharableEv@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep7_M_grabERKSaIcES2_@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep8_M_cloneERKSaIcEm@@GLIBCPP_3.2
+FUNC:_ZNSs4_Rep9_S_createEmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs4_RepixEm@@GLIBCPP_3.2
+FUNC:_ZNSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSs4swapERSs@@GLIBCPP_3.2
+FUNC:_ZNSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSs5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEmm@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmmc@@GLIBCPP_3.2
+FUNC:_ZNSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEm@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEmc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_dataEPc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_leakEv@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcm@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_mc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmPKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmmc@@GLIBCPP_3.2
+FUNC:_ZNSs7reserveEm@@GLIBCPP_3.2
+FUNC:_ZNSs9_M_mutateEmmm@@GLIBCPP_3.2
+FUNC:_ZNSs9push_backEc@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsaSEPKc@@GLIBCPP_3.2
+FUNC:_ZNSsaSERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsaSEc@@GLIBCPP_3.2
+FUNC:_ZNSsixEm@@GLIBCPP_3.2
+FUNC:_ZNSspLEPKc@@GLIBCPP_3.2
+FUNC:_ZNSspLERKSs@@GLIBCPP_3.2
+FUNC:_ZNSspLEc@@GLIBCPP_3.2
+FUNC:_ZNSt10__num_base13_S_format_intERKSt8ios_basePccc@@GLIBCPP_3.2
+FUNC:_ZNSt10__num_base15_S_format_floatERKSt8ios_basePccl@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10money_base20_S_construct_patternEccc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstream6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ostrstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcE23_M_initialize_timepunctEP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwE23_M_initialize_timepunctEP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11logic_errorD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11range_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE10sys_ungetcEi@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE12_M_open_modeESt13_Ios_OpenmodeRiS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE6xsgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE6xsputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE7seekposElSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_getcEv@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEP8_IO_FILESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmodeb@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC1EP15pthread_mutex_t@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12ctype_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12domain_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12length_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12out_of_rangeD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7_M_freeEPc@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8_M_allocEm@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8_M_setupEPcS0_l@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambuf9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPFPvmEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKal@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKhl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPalS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPclS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPhlS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1El@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPFPvmEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKal@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKhl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPalS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPclS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPhlS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2El@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE17_M_output_unshiftEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_really_overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_set_determinateEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_is_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_underflow_commonEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE20_M_set_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPclRlS4_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE17_M_output_unshiftEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_really_overflowEj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_set_determinateEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_is_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_underflow_commonEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE20_M_set_indeterminateEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwlRlS4_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE8overflowEj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwlw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_Ew@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreElj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC1ERS2_b@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC2ERS2_b@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwlw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7putbackEw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRS2_S3_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERPv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERd@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERe@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERf@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERm@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERs@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERt@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERx@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERy@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC1ERS2_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC2ERS2_@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRS2_S3_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPKv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEb@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEf@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEj@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEl@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEm@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEs@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13runtime_errorD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14collate_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt14overflow_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE14_M_in_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_buf_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_pback_createEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE16_M_pback_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5gbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6snextcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7pubsyncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7sungetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8in_availEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8pubimbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9sputbackcEc@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE14_M_in_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_buf_sizeEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_cur_moveEl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_pback_createEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE16_M_pback_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5gbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5pbumpEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputcEw@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6sbumpcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6snextcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7pubsyncEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7sungetcEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8in_availEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8overflowEj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9sputbackcEw@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2ERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEmm@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPcl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE14_M_really_syncEmm@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwl@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15messages_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15numpunct_bynameIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt15underflow_errorD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt16invalid_argumentD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIcLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EEC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt17moneypunct_bynameIwLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_round_upEm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE14_S_chunk_allocEmRi@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE17_S_freelist_indexEm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE8allocateEm@@GLIBCPP_3.2
+FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE9_S_refillEm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcE13classic_tableEv@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC1EP15__locale_structPKtbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC1EPKtbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EP15__locale_structPKtbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EPKtbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_@@GLIBCPP_3.2
+FUNC:_ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale11_M_coalesceERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale21_S_normalize_categoryEj@@GLIBCPP_3.2
+FUNC:_ZNSt6locale2idC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale2idC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPNS_5facetE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_j@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1EPPNS_5facetEmb@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC1ERKS0_m@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2EPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2EPPNS_5facetEmb@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplC2ERKS0_m@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_ImplD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet16_M_add_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet17_S_clone_c_localeERP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet18_S_create_c_localeERP15__locale_structPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_M_remove_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facetD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6locale6globalERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale7classicEv@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1EPNS_5_ImplE@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_PKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1ERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2EPNS_5_ImplE@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_PKcj@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2ERKS_S1_j@@GLIBCPP_3.2
+FUNC:_ZNSt6localeC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt6localeaSERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIcc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7codecvtIwc11__mbstate_tED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8bad_castD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base13_M_grow_wordsEi@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base15sync_with_stdioEb@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base17_M_call_callbacksENS_5eventE@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base20_M_dispose_callbacksEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4Init13_S_ios_createEb@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4Init14_S_ios_destroyEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4InitD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base6xallocEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7_M_initEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7failureD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2EP15__locale_structPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwE22_M_initialize_numpunctEP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2EP15__locale_structm@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC1ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC2ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEixEm@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5rdbufEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE7copyfmtERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE3tieEPSt13basic_ostreamIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4fillEw@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5rdbufEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE7copyfmtERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9exceptionD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt9strstream6freezeEb@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9strstreamD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD2Ev@@GLIBCPP_3.2
+FUNC:_ZSt10unexpectedv@@GLIBCPP_3.2
+FUNC:_ZSt13set_terminatePFvvE@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIlEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vImEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIxEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIyEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2
+FUNC:_ZSt14set_unexpectedPFvvE@@GLIBCPP_3.2
+FUNC:_ZSt15set_new_handlerPFvvE@@GLIBCPP_3.2
+FUNC:_ZSt16__throw_bad_castv@@GLIBCPP_3.2
+FUNC:_ZSt17__throw_bad_allocv@@GLIBCPP_3.2
+FUNC:_ZSt18__throw_bad_typeidv@@GLIBCPP_3.2
+FUNC:_ZSt18uncaught_exceptionv@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt19__throw_range_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_domain_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_length_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt20__throw_out_of_rangePKc@@GLIBCPP_3.2
+FUNC:_ZSt21__throw_bad_exceptionv@@GLIBCPP_3.2
+FUNC:_ZSt21__throw_runtime_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt22__throw_overflow_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt23__throw_underflow_errorPKc@@GLIBCPP_3.2
+FUNC:_ZSt24__throw_invalid_argumentPKc@@GLIBCPP_3.2
+FUNC:_ZSt24__uninitialized_copy_auxIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsET0_T_SA_S9_12__false_type@@GLIBCPP_3.2
+FUNC:_ZSt26__uninitialized_fill_n_auxIPSsmSsET_S1_T0_RKT1_12__false_type@@GLIBCPP_3.2
+FUNC:_ZSt2wsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt2wsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endlIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt4endsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt5flushIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt10moneypunctIcLb0EEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt10moneypunctIwLb0EEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt11__timepunctIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt11__timepunctIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt5ctypeIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt5ctypeIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7codecvtIcc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7codecvtIwc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7collateIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7collateIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8messagesIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8messagesIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8numpunctIcEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8numpunctIwEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9has_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9terminatev@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIcLb0EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIcLb1EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIwLb0EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt10moneypunctIwLb1EEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt11__timepunctIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt11__timepunctIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt5ctypeIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7collateIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7collateIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8messagesIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8messagesIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8numpunctIcEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8numpunctIwEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZSt9use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKa@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKh@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_a@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCPP_3.2
+FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIfcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIfwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_S3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ra@@GLIBCPP_3.2
+FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Rh@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIfcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIfwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2
+FUNC:_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2
+FUNC:_ZThn16_NSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZThn16_NSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSdD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSdD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSiD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSiD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSoD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSoD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10istrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10istrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10ostrstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt10ostrstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt9strstreamD0Ev@@GLIBCPP_3.2
+FUNC:_ZTv0_n24_NSt9strstreamD1Ev@@GLIBCPP_3.2
+FUNC:_ZdaPv@@GLIBCPP_3.2
+FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZdlPv@@GLIBCPP_3.2
+FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znam@@GLIBCPP_3.2
+FUNC:_ZnamRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znwm@@GLIBCPP_3.2
+FUNC:_ZnwmRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:__cxa_allocate_exception@@CXXABI_1.2
+FUNC:__cxa_bad_cast@@CXXABI_1.2
+FUNC:__cxa_bad_typeid@@CXXABI_1.2
+FUNC:__cxa_begin_catch@@CXXABI_1.2
+FUNC:__cxa_call_unexpected@@CXXABI_1.2
+FUNC:__cxa_current_exception_type@@CXXABI_1.2
+FUNC:__cxa_demangle@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append_char@@CXXABI_1.2
+FUNC:__cxa_dyn_string_append_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_clear@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_delete@@CXXABI_1.2
+FUNC:__cxa_dyn_string_eq@@CXXABI_1.2
+FUNC:__cxa_dyn_string_init@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert_char@@CXXABI_1.2
+FUNC:__cxa_dyn_string_insert_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_new@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend_cstr@@CXXABI_1.2
+FUNC:__cxa_dyn_string_release@@CXXABI_1.2
+FUNC:__cxa_dyn_string_resize@@CXXABI_1.2
+FUNC:__cxa_dyn_string_substring@@CXXABI_1.2
+FUNC:__cxa_end_catch@@CXXABI_1.2
+FUNC:__cxa_free_exception@@CXXABI_1.2
+FUNC:__cxa_get_globals@@CXXABI_1.2
+FUNC:__cxa_get_globals_fast@@CXXABI_1.2
+FUNC:__cxa_pure_virtual@@CXXABI_1.2
+FUNC:__cxa_rethrow@@CXXABI_1.2
+FUNC:__cxa_throw@@CXXABI_1.2
+FUNC:__cxa_vec_cctor@@CXXABI_1.2
+FUNC:__cxa_vec_cleanup@@CXXABI_1.2
+FUNC:__cxa_vec_ctor@@CXXABI_1.2
+FUNC:__cxa_vec_delete2@@CXXABI_1.2
+FUNC:__cxa_vec_delete3@@CXXABI_1.2
+FUNC:__cxa_vec_delete@@CXXABI_1.2
+FUNC:__cxa_vec_dtor@@CXXABI_1.2
+FUNC:__cxa_vec_new2@@CXXABI_1.2
+FUNC:__cxa_vec_new3@@CXXABI_1.2
+FUNC:__cxa_vec_new@@CXXABI_1.2
+FUNC:__dynamic_cast@@CXXABI_1.2
+FUNC:__gxx_personality_v0@@CXXABI_1.2
+OBJECT:0:CXXABI_1.2
+OBJECT:0:GLIBCPP_3.2
+OBJECT:104:_ZTVSt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:104:_ZTVSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:112:_ZNSt11__timepunctIcE12_S_timezonesE@@GLIBCPP_3.2
+OBJECT:112:_ZNSt11__timepunctIwE12_S_timezonesE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSd@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:120:_ZTVSt9strstream@@GLIBCPP_3.2
+OBJECT:128:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_free_listE@@GLIBCPP_3.2
+OBJECT:128:_ZTVN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt12strstreambuf@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:128:_ZTVSt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt8bad_cast@@GLIBCPP_3.2
+OBJECT:12:_ZTSSt8ios_base@@GLIBCPP_3.2
+OBJECT:136:_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:136:_ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9bad_alloc@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9exception@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9strstream@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9time_base@@GLIBCPP_3.2
+OBJECT:13:_ZTSSt9type_info@@GLIBCPP_3.2
+OBJECT:14:_ZTSSt7collateIcE@@GLIBCPP_3.2
+OBJECT:14:_ZTSSt7collateIwE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10__num_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10bad_typeid@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10ctype_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10istrstream@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10money_base@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt10ostrstream@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8messagesIcE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8messagesIwE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:15:_ZTSSt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_get_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_get_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_put_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt10time_put_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_get_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_get_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_put_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt11money_put_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_get_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_get_w@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_put_c@@GLIBCPP_3.2
+OBJECT:16:_ZSt9num_put_w@@GLIBCPP_3.2
+OBJECT:16:_ZTINSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10__num_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10ctype_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10money_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt12codecvt_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt13messages_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:16:_ZTISt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:16:_ZTISt8ios_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt9exception@@GLIBCPP_3.2
+OBJECT:16:_ZTISt9time_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt9type_info@@GLIBCPP_3.2
+OBJECT:16:_ZTIa@@GLIBCPP_3.2
+OBJECT:16:_ZTIb@@GLIBCPP_3.2
+OBJECT:16:_ZTIc@@GLIBCPP_3.2
+OBJECT:16:_ZTId@@GLIBCPP_3.2
+OBJECT:16:_ZTIe@@GLIBCPP_3.2
+OBJECT:16:_ZTIf@@GLIBCPP_3.2
+OBJECT:16:_ZTIh@@GLIBCPP_3.2
+OBJECT:16:_ZTIi@@GLIBCPP_3.2
+OBJECT:16:_ZTIj@@GLIBCPP_3.2
+OBJECT:16:_ZTIl@@GLIBCPP_3.2
+OBJECT:16:_ZTIm@@GLIBCPP_3.2
+OBJECT:16:_ZTIs@@GLIBCPP_3.2
+OBJECT:16:_ZTIt@@GLIBCPP_3.2
+OBJECT:16:_ZTIv@@GLIBCPP_3.2
+OBJECT:16:_ZTIw@@GLIBCPP_3.2
+OBJECT:16:_ZTIx@@GLIBCPP_3.2
+OBJECT:16:_ZTIy@@GLIBCPP_3.2
+OBJECT:16:_ZTSSt11logic_error@@GLIBCPP_3.2
+OBJECT:16:_ZTSSt11range_error@@GLIBCPP_3.2
+OBJECT:16:_ZTTSi@@GLIBCPP_3.2
+OBJECT:16:_ZTTSo@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:16:_ZTTSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12codecvt_base@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12domain_error@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12length_error@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12out_of_range@@GLIBCPP_3.2
+OBJECT:17:_ZTSSt12strstreambuf@@GLIBCPP_3.2
+OBJECT:18:_ZTSNSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13bad_exception@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13messages_base@@GLIBCPP_3.2
+OBJECT:18:_ZTSSt13runtime_error@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:19:_ZTSSt14overflow_error@@GLIBCPP_3.2
+OBJECT:1:_ZNSs4_Rep11_S_terminalE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIcLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIcLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIwLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt10moneypunctIwLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIaE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIbE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIcE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIdE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIeE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIfE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIhE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIiE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIjE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIlE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsImE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIsE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsItE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIwE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIxE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt14numeric_limitsIyE9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIcLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb0EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt17moneypunct_bynameIwLb1EE4intlE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base10is_boundedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base10is_integerE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base12has_infinityE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base13has_quiet_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base14is_specializedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base15has_denorm_lossE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base15tinyness_beforeE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base17has_signaling_NaNE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base5trapsE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base8is_exactE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCPP_3.2
+OBJECT:1:_ZNSt8ios_base4Init20_S_synced_with_stdioE@@GLIBCPP_3.2
+OBJECT:1:_ZSt7nothrow@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:20:_ZTSSt15underflow_error@@GLIBCPP_3.2
+OBJECT:21:_ZTSSt16invalid_argument@@GLIBCPP_3.2
+OBJECT:224:_ZSt9facet_vec@@GLIBCPP_3.2
+OBJECT:22:_ZTSNSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:22:_ZTSSt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:23:_ZNSt10__num_base8_S_atomsE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:23:_ZTSSt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:248:_ZSt7buf_cin@@GLIBCPP_3.2
+OBJECT:248:_ZSt8buf_cerr@@GLIBCPP_3.2
+OBJECT:248:_ZSt8buf_cout@@GLIBCPP_3.2
+OBJECT:24:_ZNSt6locale5_Impl13_S_id_collateE@@GLIBCPP_3.2
+OBJECT:24:_ZNSt6locale5_Impl14_S_id_messagesE@@GLIBCPP_3.2
+OBJECT:24:_ZSt7ctype_w@@GLIBCPP_3.2
+OBJECT:24:_ZSt9codecvt_c@@GLIBCPP_3.2
+OBJECT:24:_ZSt9codecvt_w@@GLIBCPP_3.2
+OBJECT:24:_ZSt9collate_c@@GLIBCPP_3.2
+OBJECT:24:_ZSt9collate_w@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTINSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt10bad_typeid@@GLIBCPP_3.2
+OBJECT:24:_ZTISt10istrstream@@GLIBCPP_3.2
+OBJECT:24:_ZTISt10ostrstream@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11logic_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11range_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12ctype_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12ctype_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12domain_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12length_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12out_of_range@@GLIBCPP_3.2
+OBJECT:24:_ZTISt12strstreambuf@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13bad_exception@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt13runtime_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt14overflow_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt15underflow_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt16invalid_argument@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt5ctypeIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt5ctypeIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7collateIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt7collateIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt8bad_cast@@GLIBCPP_3.2
+OBJECT:24:_ZTISt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9bad_alloc@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt9strstream@@GLIBCPP_3.2
+OBJECT:256:_ZSt12_S_bit_count@@GLIBCPP_3.2
+OBJECT:256:_ZSt12_S_first_one@@GLIBCPP_3.2
+OBJECT:256:_ZSt8buf_wcin@@GLIBCPP_3.2
+OBJECT:256:_ZSt9buf_wcerr@@GLIBCPP_3.2
+OBJECT:256:_ZSt9buf_wcout@@GLIBCPP_3.2
+OBJECT:272:_ZSt4cerr@@GLIBCPP_3.2
+OBJECT:272:_ZSt4clog@@GLIBCPP_3.2
+OBJECT:272:_ZSt4cout@@GLIBCPP_3.2
+OBJECT:272:_ZSt5wcerr@@GLIBCPP_3.2
+OBJECT:272:_ZSt5wclog@@GLIBCPP_3.2
+OBJECT:272:_ZSt5wcout@@GLIBCPP_3.2
+OBJECT:280:_ZSt3cin@@GLIBCPP_3.2
+OBJECT:280:_ZSt4wcin@@GLIBCPP_3.2
+OBJECT:28:_ZTSSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:28:_ZTSSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:29:_ZTSSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5alnumE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5alphaE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5cntrlE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5digitE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5graphE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5lowerE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5printE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5punctE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5spaceE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base5upperE@@GLIBCPP_3.2
+OBJECT:2:_ZNSt10ctype_base6xdigitE@@GLIBCPP_3.2
+OBJECT:2:_ZTSa@@GLIBCPP_3.2
+OBJECT:2:_ZTSb@@GLIBCPP_3.2
+OBJECT:2:_ZTSc@@GLIBCPP_3.2
+OBJECT:2:_ZTSd@@GLIBCPP_3.2
+OBJECT:2:_ZTSe@@GLIBCPP_3.2
+OBJECT:2:_ZTSf@@GLIBCPP_3.2
+OBJECT:2:_ZTSh@@GLIBCPP_3.2
+OBJECT:2:_ZTSi@@GLIBCPP_3.2
+OBJECT:2:_ZTSj@@GLIBCPP_3.2
+OBJECT:2:_ZTSl@@GLIBCPP_3.2
+OBJECT:2:_ZTSm@@GLIBCPP_3.2
+OBJECT:2:_ZTSs@@GLIBCPP_3.2
+OBJECT:2:_ZTSt@@GLIBCPP_3.2
+OBJECT:2:_ZTSv@@GLIBCPP_3.2
+OBJECT:2:_ZTSw@@GLIBCPP_3.2
+OBJECT:2:_ZTSx@@GLIBCPP_3.2
+OBJECT:2:_ZTSy@@GLIBCPP_3.2
+OBJECT:32:_ZNSbIwSt11char_traitsIwESaIwEE20_S_empty_rep_storageE@@GLIBCPP_3.2
+OBJECT:32:_ZNSs20_S_empty_rep_storageE@@GLIBCPP_3.2
+OBJECT:32:_ZSt10messages_c@@GLIBCPP_3.2
+OBJECT:32:_ZSt10messages_w@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKa@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKb@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKc@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKd@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKe@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKf@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKh@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKi@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKj@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKl@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKm@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKs@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKt@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKv@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKw@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKx@@GLIBCPP_3.2
+OBJECT:32:_ZTIPKy@@GLIBCPP_3.2
+OBJECT:32:_ZTIPa@@GLIBCPP_3.2
+OBJECT:32:_ZTIPb@@GLIBCPP_3.2
+OBJECT:32:_ZTIPc@@GLIBCPP_3.2
+OBJECT:32:_ZTIPd@@GLIBCPP_3.2
+OBJECT:32:_ZTIPe@@GLIBCPP_3.2
+OBJECT:32:_ZTIPf@@GLIBCPP_3.2
+OBJECT:32:_ZTIPh@@GLIBCPP_3.2
+OBJECT:32:_ZTIPi@@GLIBCPP_3.2
+OBJECT:32:_ZTIPj@@GLIBCPP_3.2
+OBJECT:32:_ZTIPl@@GLIBCPP_3.2
+OBJECT:32:_ZTIPm@@GLIBCPP_3.2
+OBJECT:32:_ZTIPs@@GLIBCPP_3.2
+OBJECT:32:_ZTIPt@@GLIBCPP_3.2
+OBJECT:32:_ZTIPv@@GLIBCPP_3.2
+OBJECT:32:_ZTIPw@@GLIBCPP_3.2
+OBJECT:32:_ZTIPx@@GLIBCPP_3.2
+OBJECT:32:_ZTIPy@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt10istrstream@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt10ostrstream@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:32:_ZTVNSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:32:_ZTVSt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:32:_ZTVSt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:32:_ZTVSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:32:_ZTVSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:33:_ZTSN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:34:_ZTSSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:34:_ZTSSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:36:_ZTSN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:36:_ZTSSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:36:_ZTSSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:37:_ZTSN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:37:_ZTSN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:38:_ZTSN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:39:_ZTSSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:3:_ZTSPa@@GLIBCPP_3.2
+OBJECT:3:_ZTSPb@@GLIBCPP_3.2
+OBJECT:3:_ZTSPc@@GLIBCPP_3.2
+OBJECT:3:_ZTSPd@@GLIBCPP_3.2
+OBJECT:3:_ZTSPe@@GLIBCPP_3.2
+OBJECT:3:_ZTSPf@@GLIBCPP_3.2
+OBJECT:3:_ZTSPh@@GLIBCPP_3.2
+OBJECT:3:_ZTSPi@@GLIBCPP_3.2
+OBJECT:3:_ZTSPj@@GLIBCPP_3.2
+OBJECT:3:_ZTSPl@@GLIBCPP_3.2
+OBJECT:3:_ZTSPm@@GLIBCPP_3.2
+OBJECT:3:_ZTSPs@@GLIBCPP_3.2
+OBJECT:3:_ZTSPt@@GLIBCPP_3.2
+OBJECT:3:_ZTSPv@@GLIBCPP_3.2
+OBJECT:3:_ZTSPw@@GLIBCPP_3.2
+OBJECT:3:_ZTSPx@@GLIBCPP_3.2
+OBJECT:3:_ZTSPy@@GLIBCPP_3.2
+OBJECT:3:_ZTSSd@@GLIBCPP_3.2
+OBJECT:3:_ZTSSi@@GLIBCPP_3.2
+OBJECT:3:_ZTSSo@@GLIBCPP_3.2
+OBJECT:408:_ZSt11timepunct_c@@GLIBCPP_3.2
+OBJECT:408:_ZSt11timepunct_w@@GLIBCPP_3.2
+OBJECT:40:_ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE@@GLIBCPP_3.2
+OBJECT:40:_ZNSt6locale5_Impl11_S_id_ctypeE@@GLIBCPP_3.2
+OBJECT:40:_ZSt10numpunct_c@@GLIBCPP_3.2
+OBJECT:40:_ZTSN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:40:_ZTSSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVNSt8ios_base7failureE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt10bad_typeid@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt11logic_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt11range_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt12domain_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt12length_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt12out_of_range@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt13bad_exception@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt13runtime_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt14overflow_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt15underflow_error@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt16invalid_argument@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt8bad_cast@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt9bad_alloc@@GLIBCPP_3.2
+OBJECT:40:_ZTVSt9exception@@GLIBCPP_3.2
+OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:41:_ZTSSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:45:_ZTSSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:46:_ZTSN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:46:_ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:46:_ZTSSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:48:_ZSt10numpunct_w@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:49:_ZTSSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10money_base18_S_default_patternE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIaE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIbE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIcE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIdE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIeE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIfE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIhE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIiE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIjE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIlE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsImE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIsE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsItE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIwE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIxE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt14numeric_limitsIyE8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base10has_denormE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base11round_styleE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base12max_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base12min_exponentE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base14max_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base14min_exponent10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base5radixE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base6digitsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt21__numeric_limits_base8digits10E@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale2id12_S_highwaterE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale3allE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale4noneE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale4timeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale5ctypeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale7collateE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale7numericE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale8messagesE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt6locale8monetaryE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base10floatfieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base10scientificE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base11adjustfieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base18_S_local_word_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base2inE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3appE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3ateE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3begE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3curE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3decE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3endE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3hexE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3octE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base3outE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base4Init16_S_ios_base_initE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base4leftE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5fixedE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5rightE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base5truncE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6badbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6binaryE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6eofbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base6skipwsE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7failbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7goodbitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7showposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base7unitbufE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base8internalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base8showbaseE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9basefieldE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9boolalphaE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9showpointE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt8ios_base9uppercaseE@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKa@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKb@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKc@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKd@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKe@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKf@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKh@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKi@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKj@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKl@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKm@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKs@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKt@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKv@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKw@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKx@@GLIBCPP_3.2
+OBJECT:4:_ZTSPKy@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:50:_ZTSSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt6locale5_Impl10_S_id_timeE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt6locale5_Impl13_S_id_numericE@@GLIBCPP_3.2
+OBJECT:56:_ZNSt6locale5_Impl19_S_facet_categoriesE@@GLIBCPP_3.2
+OBJECT:56:_ZSt7ctype_c@@GLIBCPP_3.2
+OBJECT:56:_ZTISi@@GLIBCPP_3.2
+OBJECT:56:_ZTISo@@GLIBCPP_3.2
+OBJECT:56:_ZTISt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZTISt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZTISt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:56:_ZTISt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZTTSd@@GLIBCPP_3.2
+OBJECT:56:_ZTTSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt14collate_bynameIcE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt14collate_bynameIwE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt15messages_bynameIcE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt15messages_bynameIwE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt7collateIcE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt7collateIwE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt8messagesIcE@@GLIBCPP_3.2
+OBJECT:56:_ZTVSt8messagesIwE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:58:_ZTSSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:59:_ZTSSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:60:_ZTSSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2
+OBJECT:64:_ZTVN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2
+OBJECT:64:_ZTVSt9type_info@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:67:_ZTSSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZNSt6locale5_Impl14_S_id_monetaryE@@GLIBCPP_3.2
+OBJECT:72:_ZSt13c_locale_impl@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_fc@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_fw@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_tc@@GLIBCPP_3.2
+OBJECT:72:_ZSt13moneypunct_tw@@GLIBCPP_3.2
+OBJECT:72:_ZTISd@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIcLb0EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIcLb1EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIwLb0EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt10moneypunctIwLb1EE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt21__ctype_abstract_baseIcE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt21__ctype_abstract_baseIwE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8messagesIcE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8messagesIwE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:72:_ZTVN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2
+OBJECT:72:_ZTVN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2
+OBJECT:72:_ZTVN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2
+OBJECT:72:_ZTVSt15numpunct_bynameIcE@@GLIBCPP_3.2
+OBJECT:72:_ZTVSt15numpunct_bynameIwE@@GLIBCPP_3.2
+OBJECT:72:_ZTVSt8numpunctIcE@@GLIBCPP_3.2
+OBJECT:72:_ZTVSt8numpunctIwE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTTSt9strstream@@GLIBCPP_3.2
+OBJECT:80:_ZTVSi@@GLIBCPP_3.2
+OBJECT:80:_ZTVSo@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt10istrstream@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt10ostrstream@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:80:_ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:88:_ZTVN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2
+OBJECT:88:_ZTVN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2
+OBJECT:88:_ZTVN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:88:_ZTVSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt11__timepunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt11__timepunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7collateIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7collateIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8messagesIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8messagesIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8numpunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8numpunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZGVNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCPP_3.2
+OBJECT:8:_ZNSs4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSs4nposE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt11__timepunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt11__timepunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_end_freeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_heap_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE13_S_start_freeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt5ctypeIcE10table_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt5ctypeIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt5ctypeIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale10_S_classicE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale17_S_num_categoriesE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale5facet11_S_c_localeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt6locale9_S_globalE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7codecvtIcc11__mbstate_tE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7codecvtIwc11__mbstate_tE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7collateIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7collateIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8messagesIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8messagesIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8numpunctIcE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8numpunctIwE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2
+OBJECT:8:_ZSt8c_locale@@GLIBCPP_3.2
+OBJECT:96:_ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:96:_ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
diff --git a/contrib/libstdc++/config/cpu/alpha/atomicity.h b/contrib/libstdc++/config/cpu/alpha/atomicity.h
new file mode 100644
index 0000000..895d87a
--- /dev/null
+++ b/contrib/libstdc++/config/cpu/alpha/atomicity.h
@@ -0,0 +1,76 @@
+// Low-level functions for atomic operations: Alpha version -*- C++ -*-
+
+// Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _BITS_ATOMICITY_H
+#define _BITS_ATOMICITY_H 1
+
+/* @@@ With gas we can play nice .subsection games to get the
+ non-predicted branch pointing forward. But Digital assemblers
+ don't understand those directives. This isn't a terribly
+ important issue, so just ignore it. */
+
+typedef int _Atomic_word;
+
+static inline _Atomic_word
+__attribute__ ((__unused__))
+__exchange_and_add (volatile _Atomic_word* __mem, int __val)
+{
+ register int __result, __tmp;
+
+ __asm__ __volatile__ (
+ "\n$Lxadd_%=:\n\t"
+ "ldl_l %0,%3\n\t"
+ "addl %0,%4,%1\n\t"
+ "stl_c %1,%2\n\t"
+ "beq %1,$Lxadd_%=\n\t"
+ "mb"
+ : "=&r"(__result), "=&r"(__tmp), "=m"(*__mem)
+ : "m" (*__mem), "r"(__val));
+
+ return __result;
+}
+
+static inline void
+__attribute__ ((__unused__))
+__atomic_add (volatile _Atomic_word* __mem, int __val)
+{
+ register _Atomic_word __result;
+
+ __asm__ __volatile__ (
+ "\n$Ladd_%=:\n\t"
+ "ldl_l %0,%2\n\t"
+ "addl %0,%3,%0\n\t"
+ "stl_c %0,%1\n\t"
+ "beq %0,$Ladd_%=\n\t"
+ "mb"
+ : "=&r"(__result), "=m"(*__mem)
+ : "m" (*__mem), "r"(__val));
+}
+
+#endif /* atomicity.h */
diff --git a/contrib/libstdc++/config/cpu/cris/atomicity.h b/contrib/libstdc++/config/cpu/cris/atomicity.h
new file mode 100644
index 0000000..55c374f
--- /dev/null
+++ b/contrib/libstdc++/config/cpu/cris/atomicity.h
@@ -0,0 +1,79 @@
+// Low-level functions for atomic operations: CRIS version -*- C++ -*-
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _BITS_ATOMICITY_H
+#define _BITS_ATOMICITY_H 1
+
+// This entity must not cross a page boundary.
+typedef int _Atomic_word __attribute__ ((__aligned__ (4)));
+
+static inline _Atomic_word
+__attribute__ ((__unused__))
+__exchange_and_add (_Atomic_word* __mem, int __val)
+{
+ int __tmp;
+ _Atomic_word __result;
+
+#if (__CRIS_arch_version >= 10)
+ __asm__ __volatile__ (" clearf \n"
+ "0: \n"
+ " move.d %4,%2 \n"
+ " move.d [%3],%0 \n"
+ " add.d %0,%2 \n"
+ " ax \n"
+ " move.d %2,[%3] \n"
+ " bwf 0b \n"
+ " clearf \n"
+ : "=&r" (__result), "=m" (*__mem), "=&r" (__tmp)
+ : "r" (__mem), "g" (__val), "m" (*__mem)
+ : "memory");
+#else
+ __asm__ __volatile__ (" move $ccr,$r9 \n"
+ " di \n"
+ " move.d %4,%2 \n"
+ " move.d [%3],%0 \n"
+ " add.d %0,%2 \n"
+ " move.d %2,[%3] \n"
+ " move $r9,$ccr \n"
+ : "=&r" (__result), "=m" (*__mem), "=&r" (__tmp)
+ : "r" (__mem), "g" (__val), "m" (*__mem)
+ : "memory", "r9");
+#endif
+
+ return __result;
+}
+
+static inline void
+__attribute__ ((__unused__))
+__atomic_add (_Atomic_word* __mem, int __val)
+{
+ __exchange_and_add (__mem, __val);
+}
+
+#endif /* atomicity.h */
diff --git a/contrib/libstdc++/config/cpu/generic/atomicity.h b/contrib/libstdc++/config/cpu/generic/atomicity.h
new file mode 100644
index 0000000..829a77c
--- /dev/null
+++ b/contrib/libstdc++/config/cpu/generic/atomicity.h
@@ -0,0 +1,77 @@
+// Low-level functions for atomic operations: Generic version -*- C++ -*-
+
+// Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _BITS_ATOMICITY_H
+#define _BITS_ATOMICITY_H 1
+
+#include <bits/gthr.h>
+
+#define _GLIBCPP_NEED_GENERIC_MUTEX
+
+typedef int _Atomic_word;
+
+namespace __gnu_cxx
+{
+ extern __gthread_mutex_t _Atomic_add_mutex;
+
+#ifndef __GTHREAD_MUTEX_INIT
+ extern __gthread_once_t _Atomic_add_mutex_once;
+ extern void __gthread_atomic_add_mutex_once();
+#endif
+}
+
+static inline _Atomic_word
+__attribute__ ((__unused__))
+__exchange_and_add (volatile _Atomic_word* __mem, int __val)
+{
+#ifndef __GTHREAD_MUTEX_INIT
+ __gthread_once (&__gnu_cxx::_Atomic_add_mutex_once,
+ __gnu_cxx::__gthread_atomic_add_mutex_once);
+#endif
+
+ _Atomic_word __result;
+
+ __gthread_mutex_lock (&__gnu_cxx::_Atomic_add_mutex);
+
+ __result = *__mem;
+ *__mem += __val;
+
+ __gthread_mutex_unlock (&__gnu_cxx::_Atomic_add_mutex);
+ return __result;
+}
+
+
+static inline void
+__attribute__ ((__unused__))
+__atomic_add (volatile _Atomic_word* __mem, int __val)
+{
+ (void) __exchange_and_add (__mem, __val);
+}
+
+#endif /* atomicity.h */
diff --git a/contrib/libstdc++/config/cpu/hppa/atomicity.h b/contrib/libstdc++/config/cpu/hppa/atomicity.h
new file mode 100644
index 0000000..d99ac34
--- /dev/null
+++ b/contrib/libstdc++/config/cpu/hppa/atomicity.h
@@ -0,0 +1,90 @@
+/* Low-level functions for atomic operations. PA-RISC version. -*- C++ -*-
+ Copyright 2002 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef _BITS_ATOMICITY_H
+#define _BITS_ATOMICITY_H 1
+
+typedef int _Atomic_word;
+
+template <int __inst>
+struct __Atomicity_lock
+{
+ static volatile int _S_atomicity_lock;
+};
+
+template <int __inst>
+volatile int
+__Atomicity_lock<__inst>::_S_atomicity_lock __attribute__ ((aligned (16))) = 1;
+
+/* Because of the lack of weak support when using the hpux
+ som linker, we explicitly instantiate the atomicity lock
+ in src/misc-inst.cc when _GLIBCPP_INST_ATOMICITY_LOCK
+ is defined. */
+#ifndef _GLIBCPP_INST_ATOMICITY_LOCK
+template volatile int __Atomicity_lock<0>::_S_atomicity_lock;
+#endif
+
+static inline int
+__attribute__ ((__unused__))
+__exchange_and_add (volatile _Atomic_word* __mem, int __val)
+{
+ _Atomic_word result;
+ int tmp;
+ volatile int& lock = __Atomicity_lock<0>::_S_atomicity_lock;
+
+ __asm__ __volatile__ ("ldcw 0(%1),%0\n\t"
+ "cmpib,<>,n 0,%0,.+20\n\t"
+ "ldw 0(%1),%0\n\t"
+ "cmpib,= 0,%0,.-4\n\t"
+ "nop\n\t"
+ "b,n .-20"
+ : "=&r" (tmp)
+ : "r" (&lock));
+
+ result = *__mem;
+ *__mem = result + __val;
+ /* Reset lock with PA 2.0 "ordered" store. */
+ __asm__ __volatile__ ("stw,ma %1,0(%0)"
+ : : "r" (&lock), "r" (tmp) : "memory");
+ return result;
+}
+
+static inline void
+__attribute__ ((__unused__))
+__atomic_add (_Atomic_word* __mem, int __val)
+{
+ int tmp;
+ volatile int& lock = __Atomicity_lock<0>::_S_atomicity_lock;
+
+ __asm__ __volatile__ ("ldcw 0(%1),%0\n\t"
+ "cmpib,<>,n 0,%0,.+20\n\t"
+ "ldw 0(%1),%0\n\t"
+ "cmpib,= 0,%0,.-4\n\t"
+ "nop\n\t"
+ "b,n .-20"
+ : "=&r" (tmp)
+ : "r" (&lock));
+
+ *__mem += __val;
+ /* Reset lock with PA 2.0 "ordered" store. */
+ __asm__ __volatile__ ("stw,ma %1,0(%0)"
+ : : "r" (&lock), "r" (tmp) : "memory");
+}
+
+#endif
diff --git a/contrib/libstdc++/config/cpu/i386/atomicity.h b/contrib/libstdc++/config/cpu/i386/atomicity.h
new file mode 100644
index 0000000..d619dbb
--- /dev/null
+++ b/contrib/libstdc++/config/cpu/i386/atomicity.h
@@ -0,0 +1,75 @@
+// Low-level functions for atomic operations: x86, x >= 3 version -*- C++ -*-
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _BITS_ATOMICITY_H
+#define _BITS_ATOMICITY_H 1
+
+typedef int _Atomic_word;
+
+template <int __inst>
+struct __Atomicity_lock
+{
+ static volatile _Atomic_word _S_atomicity_lock;
+};
+
+template <int __inst>
+volatile _Atomic_word __Atomicity_lock<__inst>::_S_atomicity_lock = 0;
+
+template volatile _Atomic_word __Atomicity_lock<0>::_S_atomicity_lock;
+
+static inline _Atomic_word
+__attribute__ ((__unused__))
+__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+{
+ register _Atomic_word __result, __tmp = 1;
+
+ /* obtain the atomic exchange/add spin lock */
+ do {
+ __asm__ __volatile__ ("xchg{l} {%0,%1|%1,%0}"
+ : "+m" (__Atomicity_lock<0>::_S_atomicity_lock),
+ "+r" (__tmp));
+ } while (__tmp);
+
+ __result = *__mem;
+ *__mem += __val;
+
+ /* release spin lock */
+ __Atomicity_lock<0>::_S_atomicity_lock = 0;
+
+ return __result;
+}
+
+static inline void
+__attribute__ ((__unused__))
+__atomic_add (volatile _Atomic_word* __mem, int __val)
+{
+ __exchange_and_add (__mem, __val);
+}
+
+#endif /* atomicity.h */
diff --git a/contrib/libstdc++/config/cpu/i486/atomicity.h b/contrib/libstdc++/config/cpu/i486/atomicity.h
new file mode 100644
index 0000000..7c65fab
--- /dev/null
+++ b/contrib/libstdc++/config/cpu/i486/atomicity.h
@@ -0,0 +1,57 @@
+// Low-level functions for atomic operations: x86, x >= 4 version -*- C++ -*-
+
+// Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _BITS_ATOMICITY_H
+#define _BITS_ATOMICITY_H 1
+
+typedef int _Atomic_word;
+
+static inline _Atomic_word
+__attribute__ ((__unused__))
+__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+{
+ register _Atomic_word __result;
+ __asm__ __volatile__ ("lock; xadd{l} {%0,%1|%1,%0}"
+ : "=r" (__result), "+m" (*__mem)
+ : "0" (__val)
+ : "memory");
+ return __result;
+}
+
+static inline void
+__attribute__ ((__unused__))
+__atomic_add (volatile _Atomic_word* __mem, int __val)
+{
+ __asm__ __volatile__ ("lock; add{l} {%1,%0|%0,%1}"
+ : "+m" (*__mem) : "ir" (__val) : "memory");
+}
+
+#endif /* atomicity.h */
+
+
diff --git a/contrib/libstdc++/config/cpu/ia64/atomicity.h b/contrib/libstdc++/config/cpu/ia64/atomicity.h
new file mode 100644
index 0000000..e28e149
--- /dev/null
+++ b/contrib/libstdc++/config/cpu/ia64/atomicity.h
@@ -0,0 +1,51 @@
+// Low-level functions for atomic operations: IA64 version -*- C++ -*-
+
+// Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _BITS_ATOMICITY_H
+#define _BITS_ATOMICITY_H 1
+
+#include <ia64intrin.h>
+
+typedef int _Atomic_word;
+
+static inline _Atomic_word
+__attribute__ ((__unused__))
+__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+{
+ return __sync_fetch_and_add (__mem, __val);
+}
+
+static inline void
+__attribute__ ((__unused__))
+__atomic_add (volatile _Atomic_word* __mem, int __val)
+{
+ __sync_fetch_and_add (__mem, __val);
+}
+
+#endif /* atomicity.h */
diff --git a/contrib/libstdc++/config/cpu/m68k/atomicity.h b/contrib/libstdc++/config/cpu/m68k/atomicity.h
new file mode 100644
index 0000000..db32735
--- /dev/null
+++ b/contrib/libstdc++/config/cpu/m68k/atomicity.h
@@ -0,0 +1,158 @@
+// Low-level functions for atomic operations: m68k version -*- C++ -*-
+
+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _BITS_ATOMICITY_H
+#define _BITS_ATOMICITY_H 1
+
+typedef int _Atomic_word;
+
+#if defined(__mc68020__) || defined(__mc68030__) \
+ || defined(__mc68040__) || defined(__mc68060__)
+// These variants support compare-and-swap.
+
+static inline _Atomic_word
+__attribute__ ((__unused__))
+__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+{
+ register _Atomic_word __result = *__mem;
+ register _Atomic_word __temp;
+ __asm__ __volatile__ ("1: move%.l %0,%1\n\t"
+ "add%.l %2,%1\n\t"
+ "cas%.l %0,%1,%3\n\t"
+ "jne 1b"
+ : "=d" (__result), "=&d" (__temp)
+ : "d" (__val), "m" (*__mem), "0" (__result)
+ : "memory");
+ return __result;
+}
+
+#elif defined(__rtems__)
+ /*
+ * TAS/JBNE is unsafe on systems with strict priority-based scheduling.
+ * Disable interrupts, which we can do only from supervisor mode.
+ */
+static inline _Atomic_word
+__attribute__ ((__unused__))
+__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+{
+ _Atomic_word __result;
+ short __level, __tmpsr;
+ __asm__ __volatile__ ("move%.w %%sr,%0\n\tor%.l %0,%1\n\tmove%.w %1,%%sr"
+ : "=d"(__level), "=d"(__tmpsr) : "1"(0x700));
+
+ __result = *__mem;
+ *__mem = __result + __val;
+
+ __asm__ __volatile__ ("move%.w %0,%%sr" : : "d"(__level));
+
+ return __result;
+}
+
+#elif !defined(__mcf5200__) && !defined(__mcf5300__)
+// 68000, 68010, cpu32 and 5400 support test-and-set.
+
+template <int __inst>
+struct __Atomicity_lock
+{
+ static volatile unsigned char _S_atomicity_lock;
+};
+
+template <int __inst>
+volatile unsigned char __Atomicity_lock<__inst>::_S_atomicity_lock = 0;
+
+template volatile unsigned char __Atomicity_lock<0>::_S_atomicity_lock;
+
+static inline _Atomic_word
+__attribute__ ((__unused__))
+__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+{
+ _Atomic_word __result;
+
+ __asm__ __volatile__("1: tas %0\n\tjbne 1b"
+ : "=m"(__Atomicity_lock<0>::_S_atomicity_lock)
+ : "m"(__Atomicity_lock<0>::_S_atomicity_lock));
+
+ __result = *__mem;
+ *__mem = __result + __val;
+
+ __Atomicity_lock<0>::_S_atomicity_lock = 0;
+
+ return __result;
+}
+
+#elif defined(__vxWorks__) || defined(__embedded__)
+// The best we can hope for is to disable interrupts, which we
+// can only do from supervisor mode.
+
+static inline _Atomic_word
+__attribute__ ((__unused__))
+__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+{
+ _Atomic_word __result;
+ short __level, __tmpsr;
+ __asm__ __volatile__ ("move%.w %%sr,%0\n\tor%.l %0,%1\n\tmove%.w %1,%%sr"
+ : "=d"(__level), "=d"(__tmpsr) : "1"(0x700));
+
+ __result = *__mem;
+ *__mem = __result + __val;
+
+ __asm__ __volatile__ ("move%.w %0,%%sr" : : "d"(__level));
+
+ return __result;
+}
+
+#else
+// These variants do not support any atomic operations at all.
+
+#warning "__exchange_and_add is not atomic for this target"
+
+static inline _Atomic_word
+__attribute__ ((__unused__))
+__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+{
+ _Atomic_word __result;
+
+ __result = *__mem;
+ *__mem = __result + __val;
+
+ return __result;
+}
+
+#endif /* CAS / IRQ / TAS */
+
+static inline void
+__attribute__ ((__unused__))
+__atomic_add (volatile _Atomic_word* __mem, int __val)
+{
+ // Careful: using add.l with a memory destination is not
+ // architecturally guaranteed to be atomic.
+ (void) __exchange_and_add (__mem, __val);
+}
+
+#endif /* atomicity.h */
diff --git a/contrib/libstdc++/config/cpu/mips/atomicity.h b/contrib/libstdc++/config/cpu/mips/atomicity.h
new file mode 100644
index 0000000..7bacabd
--- /dev/null
+++ b/contrib/libstdc++/config/cpu/mips/atomicity.h
@@ -0,0 +1,81 @@
+// Low-level functions for atomic operations.
+
+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _BITS_ATOMICITY_H
+#define _BITS_ATOMICITY_H 1
+
+typedef int _Atomic_word;
+
+static inline int
+__attribute__ ((__unused__))
+__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+{
+ int __result, __tmp;
+
+ __asm__ __volatile__
+ ("/* Inline exchange & add */\n\t"
+ "1:\n\t"
+ ".set push\n\t"
+ ".set mips2\n\t"
+ "ll %0,%3\n\t"
+ "addu %1,%4,%0\n\t"
+ "sc %1,%2\n\t"
+ ".set pop\n\t"
+ "beqz %1,1b\n\t"
+ "/* End exchange & add */"
+ : "=&r"(__result), "=&r"(__tmp), "=m"(*__mem)
+ : "m" (*__mem), "r"(__val)
+ : "memory");
+
+ return __result;
+}
+
+static inline void
+__attribute__ ((__unused__))
+__atomic_add (volatile _Atomic_word *__mem, int __val)
+{
+ int __result;
+
+ __asm__ __volatile__
+ ("/* Inline atomic add */\n\t"
+ "1:\n\t"
+ ".set push\n\t"
+ ".set mips2\n\t"
+ "ll %0,%2\n\t"
+ "addu %0,%3,%0\n\t"
+ "sc %0,%1\n\t"
+ ".set pop\n\t"
+ "beqz %0,1b\n\t"
+ "/* End atomic add */"
+ : "=&r"(__result), "=m"(*__mem)
+ : "m" (*__mem), "r"(__val)
+ : "memory");
+}
+
+#endif /* atomicity.h */
diff --git a/contrib/libstdc++/config/cpu/powerpc/atomicity.h b/contrib/libstdc++/config/cpu/powerpc/atomicity.h
new file mode 100644
index 0000000..b5370fc
--- /dev/null
+++ b/contrib/libstdc++/config/cpu/powerpc/atomicity.h
@@ -0,0 +1,78 @@
+// Low-level functions for atomic operations: PowerPC version -*- C++ -*-
+
+// Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _BITS_ATOMICITY_H
+#define _BITS_ATOMICITY_H 1
+
+#ifdef __PPC405__
+#define _STWCX "sync \n\tstwcx. "
+#else
+#define _STWCX "stwcx. "
+#endif
+
+typedef int _Atomic_word;
+
+static inline _Atomic_word
+__attribute__ ((__unused__))
+__exchange_and_add (volatile _Atomic_word* __mem, int __val)
+{
+ _Atomic_word __tmp, __res;
+ __asm__ __volatile__ (
+ "/* Inline exchange & add */\n"
+ "0:\t"
+ "lwarx %0,0,%2 \n\t"
+ "add%I3 %1,%0,%3 \n\t"
+ _STWCX " %1,0,%2 \n\t"
+ "bne- 0b \n\t"
+ "/* End exchange & add */"
+ : "=&b"(__res), "=&r"(__tmp)
+ : "r" (__mem), "Ir"(__val)
+ : "cr0", "memory");
+ return __res;
+}
+
+static inline void
+__attribute__ ((__unused__))
+__atomic_add (volatile _Atomic_word *__mem, int __val)
+{
+ _Atomic_word __tmp;
+ __asm__ __volatile__ (
+ "/* Inline atomic add */\n"
+ "0:\t"
+ "lwarx %0,0,%1 \n\t"
+ "add%I2 %0,%0,%2 \n\t"
+ _STWCX " %0,0,%1 \n\t"
+ "bne- 0b \n\t"
+ "/* End atomic add */"
+ : "=&b"(__tmp)
+ : "r" (__mem), "Ir"(__val)
+ : "cr0", "memory");
+}
+
+#endif /* atomicity.h */
diff --git a/contrib/libstdc++/config/cpu/s390/atomicity.h b/contrib/libstdc++/config/cpu/s390/atomicity.h
new file mode 100644
index 0000000..331c29a
--- /dev/null
+++ b/contrib/libstdc++/config/cpu/s390/atomicity.h
@@ -0,0 +1,60 @@
+// Low-level functions for atomic operations: S/390 version -*- C++ -*-
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _BITS_ATOMICITY_H
+#define _BITS_ATOMICITY_H 1
+
+typedef int _Atomic_word;
+
+static inline _Atomic_word
+__attribute__ ((__unused__))
+__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+{
+ register _Atomic_word __old_val, __new_val;
+
+ __asm__ __volatile__ (" l %0,0(%2)\n"
+ "0: lr %1,%0\n"
+ " ar %1,%3\n"
+ " cs %0,%1,0(%2)\n"
+ " jl 0b"
+ : "=&d" (__old_val), "=&d" (__new_val)
+ : "a" (__mem), "d" (__val) : "cc", "memory" );
+ return __old_val;
+}
+
+static inline void
+__attribute__ ((__unused__))
+__atomic_add (volatile _Atomic_word *__mem, int __val)
+{
+ __exchange_and_add (__mem, __val);
+}
+
+#endif /* atomicity.h */
+
+
diff --git a/contrib/libstdc++/config/cpu/sparc/atomicity.h b/contrib/libstdc++/config/cpu/sparc/atomicity.h
new file mode 100644
index 0000000..23804db
--- /dev/null
+++ b/contrib/libstdc++/config/cpu/sparc/atomicity.h
@@ -0,0 +1,131 @@
+// Low-level functions for atomic operations: Sparc version -*- C++ -*-
+
+// Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _BITS_ATOMICITY_H
+#define _BITS_ATOMICITY_H 1
+
+#ifdef __arch64__
+
+typedef long _Atomic_word;
+
+static inline _Atomic_word
+__attribute__ ((__unused__))
+__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+{
+ _Atomic_word __tmp1, __tmp2;
+
+ __asm__ __volatile__("1: ldx [%2], %0\n\t"
+ " add %0, %3, %1\n\t"
+ " casx [%2], %0, %1\n\t"
+ " sub %0, %1, %0\n\t"
+ " brnz,pn %0, 1b\n\t"
+ " nop"
+ : "=&r" (__tmp1), "=&r" (__tmp2)
+ : "r" (__mem), "r" (__val)
+ : "memory");
+ return __tmp2;
+}
+
+static inline void
+__attribute__ ((__unused__))
+__atomic_add (volatile _Atomic_word* __mem, int __val)
+{
+ _Atomic_word __tmp1, __tmp2;
+
+ __asm__ __volatile__("1: ldx [%2], %0\n\t"
+ " add %0, %3, %1\n\t"
+ " casx [%2], %0, %1\n\t"
+ " sub %0, %1, %0\n\t"
+ " brnz,pn %0, 1b\n\t"
+ " nop"
+ : "=&r" (__tmp1), "=&r" (__tmp2)
+ : "r" (__mem), "r" (__val)
+ : "memory");
+}
+
+#else /* __arch32__ */
+
+typedef int _Atomic_word;
+
+template <int __inst>
+struct __Atomicity_lock
+{
+ static unsigned char _S_atomicity_lock;
+};
+
+template <int __inst>
+unsigned char __Atomicity_lock<__inst>::_S_atomicity_lock = 0;
+
+template unsigned char __Atomicity_lock<0>::_S_atomicity_lock;
+
+static int
+__attribute__ ((__unused__))
+__exchange_and_add (volatile _Atomic_word* __mem, int __val)
+{
+ _Atomic_word __result, __tmp;
+
+ __asm__ __volatile__("1: ldstub [%1], %0\n\t"
+ " cmp %0, 0\n\t"
+ " bne 1b\n\t"
+ " nop"
+ : "=&r" (__tmp)
+ : "r" (&__Atomicity_lock<0>::_S_atomicity_lock)
+ : "memory");
+ __result = *__mem;
+ *__mem += __val;
+ __asm__ __volatile__("stb %%g0, [%0]"
+ : /* no outputs */
+ : "r" (&__Atomicity_lock<0>::_S_atomicity_lock)
+ : "memory");
+ return __result;
+}
+
+static void
+__attribute__ ((__unused__))
+__atomic_add (volatile _Atomic_word* __mem, int __val)
+{
+ _Atomic_word __tmp;
+
+ __asm__ __volatile__("1: ldstub [%1], %0\n\t"
+ " cmp %0, 0\n\t"
+ " bne 1b\n\t"
+ " nop"
+ : "=&r" (__tmp)
+ : "r" (&__Atomicity_lock<0>::_S_atomicity_lock)
+ : "memory");
+ *__mem += __val;
+ __asm__ __volatile__("stb %%g0, [%0]"
+ : /* no outputs */
+ : "r" (&__Atomicity_lock<0>::_S_atomicity_lock)
+ : "memory");
+}
+
+#endif /* __arch32__ */
+
+#endif /* atomicity.h */
diff --git a/contrib/libstdc++/config/io/basic_file_stdio.cc b/contrib/libstdc++/config/io/basic_file_stdio.cc
index 93ca6bc..5393a14 100644
--- a/contrib/libstdc++/config/io/basic_file_stdio.cc
+++ b/contrib/libstdc++/config/io/basic_file_stdio.cc
@@ -32,6 +32,31 @@
//
#include <bits/basic_file.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#ifdef _GLIBCPP_HAVE_SYS_IOCTL_H
+#define BSD_COMP /* Get FIONREAD on Solaris2. */
+#include <sys/ioctl.h>
+#endif
+
+// Pick up FIONREAD on Solaris 2.5.
+#ifdef _GLIBCPP_HAVE_SYS_FILIO_H
+#include <sys/filio.h>
+#endif
+
+#ifdef _GLIBCPP_HAVE_POLL
+#include <poll.h>
+#endif
+
+#if defined(_GLIBCPP_HAVE_S_ISREG) || defined(_GLIBCPP_HAVE_S_IFREG)
+# include <sys/stat.h>
+# ifdef _GLIBCPP_HAVE_S_ISREG
+# define _GLIBCPP_ISREG(x) S_ISREG(x)
+# else
+# define _GLIBCPP_ISREG(x) (((x) & S_IFMT) == S_IFREG)
+# endif
+#endif
namespace std
{
@@ -43,8 +68,8 @@ namespace std
{ this->close(); }
void
- __basic_file<char>::_M_open_mode(ios_base::openmode __mode, int&, int&,
- char* __c_mode)
+ __basic_file<char>::_M_open_mode(ios_base::openmode __mode, int& __p_mode,
+ int&, char* __c_mode)
{
bool __testb = __mode & ios_base::binary;
bool __testi = __mode & ios_base::in;
@@ -52,18 +77,39 @@ namespace std
bool __testt = __mode & ios_base::trunc;
bool __testa = __mode & ios_base::app;
+ // Set __c_mode for use in fopen.
+ // Set __p_mode for use in open.
if (!__testi && __testo && !__testt && !__testa)
- strcpy(__c_mode, "w");
+ {
+ strcpy(__c_mode, "w");
+ __p_mode = (O_WRONLY | O_CREAT);
+ }
if (!__testi && __testo && !__testt && __testa)
- strcpy(__c_mode, "a");
+ {
+ strcpy(__c_mode, "a");
+ __p_mode |= O_WRONLY | O_CREAT | O_APPEND;
+ }
if (!__testi && __testo && __testt && !__testa)
- strcpy(__c_mode, "w");
+ {
+ strcpy(__c_mode, "w");
+ __p_mode |= O_WRONLY | O_CREAT | O_TRUNC;
+ }
+
if (__testi && !__testo && !__testt && !__testa)
- strcpy(__c_mode, "r");
+ {
+ strcpy(__c_mode, "r");
+ __p_mode |= O_RDONLY;
+ }
if (__testi && __testo && !__testt && !__testa)
- strcpy(__c_mode, "r+");
+ {
+ strcpy(__c_mode, "r+");
+ __p_mode |= O_RDWR | O_CREAT;
+ }
if (__testi && __testo && __testt && !__testa)
- strcpy(__c_mode, "w+");
+ {
+ strcpy(__c_mode, "w+");
+ __p_mode |= O_RDWR | O_CREAT | O_TRUNC;
+ }
if (__testb)
strcat(__c_mode, "b");
}
@@ -148,12 +194,12 @@ namespace std
__basic_file* __retval = static_cast<__basic_file*>(NULL);
if (this->is_open())
{
- fflush(_M_cfile);
- if ((_M_cfile_created && fclose(_M_cfile) == 0) || !_M_cfile_created)
- {
- _M_cfile = 0;
- __retval = this;
- }
+ if (_M_cfile_created)
+ fclose(_M_cfile);
+ else
+ fflush(_M_cfile);
+ _M_cfile = 0;
+ __retval = this;
}
return __retval;
}
@@ -170,18 +216,54 @@ namespace std
__basic_file<char>::seekoff(streamoff __off, ios_base::seekdir __way,
ios_base::openmode /*__mode*/)
{
- fseek(_M_cfile, __off, __way);
- return ftell(_M_cfile);
+ if (!fseek(_M_cfile, __off, __way))
+ return ftell(_M_cfile);
+ else
+ // Fseek failed.
+ return -1L;
}
streamoff
__basic_file<char>::seekpos(streamoff __pos, ios_base::openmode /*__mode*/)
{
- fseek(_M_cfile, __pos, ios_base::beg);
- return ftell(_M_cfile);
+ if (!fseek(_M_cfile, __pos, ios_base::beg))
+ return ftell(_M_cfile);
+ else
+ // Fseek failed.
+ return -1L;
}
int
__basic_file<char>::sync()
{ return fflush(_M_cfile); }
+
+ streamsize
+ __basic_file<char>::showmanyc_helper()
+ {
+#ifdef FIONREAD
+ // Pipes and sockets.
+ int __num = 0;
+ int __r = ioctl(this->fd(), FIONREAD, &__num);
+ if (!__r && __num >= 0)
+ return __num;
+#endif
+
+#ifdef _GLIBCPP_HAVE_POLL
+ // Cheap test.
+ struct pollfd __pfd[1];
+ __pfd[0].fd = this->fd();
+ __pfd[0].events = POLLIN;
+ if (poll(__pfd, 1, 0) <= 0)
+ return 0;
+#endif
+
+#if defined(_GLIBCPP_HAVE_S_ISREG) || defined(_GLIBCPP_HAVE_S_IFREG)
+ // Regular files.
+ struct stat __buffer;
+ int __ret = fstat(this->fd(), &__buffer);
+ if (!__ret && _GLIBCPP_ISREG(__buffer.st_mode))
+ return __buffer.st_size - ftell(_M_cfile);
+#endif
+ return 0;
+ }
} // namespace std
diff --git a/contrib/libstdc++/config/io/basic_file_stdio.h b/contrib/libstdc++/config/io/basic_file_stdio.h
index fe6edbb..cefd38f 100644
--- a/contrib/libstdc++/config/io/basic_file_stdio.h
+++ b/contrib/libstdc++/config/io/basic_file_stdio.h
@@ -108,6 +108,9 @@ namespace std
int
sync();
+
+ streamsize
+ showmanyc_helper();
};
} // namespace std
diff --git a/contrib/libstdc++/config/linker-map.gnu b/contrib/libstdc++/config/linker-map.gnu
index 4cb122e..301867f 100644
--- a/contrib/libstdc++/config/linker-map.gnu
+++ b/contrib/libstdc++/config/linker-map.gnu
@@ -30,7 +30,12 @@ GLIBCPP_3.2 {
{
std::[A-Za]*;
std::ba[a-r]*;
- std::basic_[a-r]*;
+ std::basic_[a-h]*;
+ std::basic_ifstream*;
+ std::basic_istringstream*;
+ std::basic_istream*;
+ std::basic_iostream*;
+ std::basic_[j-r]*;
std::basic_streambuf*;
std::basic_stringbuf*;
std::basic_stringstream*;
@@ -64,17 +69,65 @@ GLIBCPP_3.2 {
std::locale::_S_num_categories;
std::locale::_S_normalize_category*;
std::locale::_[T-Za-z]*;
- std::[A-Zm-z]*;
+ std::[A-Zm]*;
+ std::n[a-t]*;
+ std::num_put_[cw];
+ std::numeric*;
+ std::numpunct*;
+ std::num_get*;
+ std::num_get_[cw];
+ std::n[v-z]*;
+ std::ostrstream*;
+ std::overflow_error*;
+ std::out_of_range*;
+ std::[A-Zp-z]*;
std::__throw_*;
- std::__basic_file*;
- std::__num_base*;
- std::__timepunct*;
std::__numeric_limits_base*;
+ std::__timepunct*;
std::_S_bit_count;
std::_S_first_one
};
# Names not in an 'extern' block are mangled names.
+ _ZSt7getline*;
+ _ZStrs*;
+ _ZNSo*;
+ _ZNKSt9basic_ios*;
+ _ZNSt9basic_iosI[cw]St11char_traitsI[cw]EE15_M_cache_facetsERKSt6locale;
+ _ZNSt9basic_iosI[cw]St11char_traitsI[cw]EE[A-Z]*;
+ _ZNSt9basic_iosI[cw]St11char_traitsI[cw]EE[0-9][A-Za-z]*;
+ _ZNSt9basic_iosI[cw]St11char_traitsI[cw]EE[0-9][0-9][A-Za-z]*;
+
+ _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC*;
+ _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED*;
+ _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC*;
+ _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED*;
+
+ _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE6do_put*;
+
+ _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE3put*;
+ _ZNSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE2idE;
+
+ _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intI[lmxy]EES3_S3_RSt8ios_basecccT_;
+
+ _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intI[lmxy]EES3_S3_RSt8ios_basewccT_;
+
+ _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatI[de]EES3_S3_RSt8ios_baseccT_;
+
+ _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatI[de]EES3_S3_RSt8ios_basewcT_;
+
+ _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE12_M_widen_int*;
+
+ _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE14_M_widen_float*;
+
+ _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE9_M_insert*;
+
+ _ZSt9use_facetISt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEEERKT_RKSt6locale;
+
+ # __num_base
+ _ZNSt10__num_base13_S_format_intERKSt8ios_basePccc;
+ _ZNSt10__num_base15_S_format_floatERKSt8ios_basePcc[il];
+ _ZNSt10__num_base8_S_atomsE;
# std::string minus binary operator plus
_ZNKSs*;
@@ -104,6 +157,23 @@ GLIBCPP_3.2 {
_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_;
_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_;
+ # std::__basic_file minus showmanyc_helper
+ _ZNSt12__basic_fileIcED*;
+ _ZNSt12__basic_fileIcEC*;
+ _ZNSt12__basic_fileIcE8sys_open*;
+ _ZNSt12__basic_fileIcE8sys_getc*;
+ _ZNSt12__basic_fileIcE10sys_ungetc*;
+ _ZNSt12__basic_fileIcE7seekpos*;
+ _ZNSt12__basic_fileIcE7seekoff*;
+ _ZNSt12__basic_fileIcE6xsputn*;
+ _ZNSt12__basic_fileIcE6xsgetn*;
+ _ZNSt12__basic_fileIcE5close*;
+ _ZNSt12__basic_fileIcE4sync*;
+ _ZNSt12__basic_fileIcE4open*;
+ _ZNSt12__basic_fileIcE2fd*;
+ _ZNSt12__basic_fileIcE12_M_open_modeE*;
+ _ZNKSt12__basic_fileIcE7is_open*;
+
# std::locale destructors
_ZNSt6localeD*;
@@ -181,12 +251,53 @@ GLIBCPP_3.2 {
_ZdaPvRKSt9nothrow_t;
# vtable
- _ZTV*;
- _ZTT*;
+ _ZTVS[a-z];
+ _ZTVSt[0-9][A-Za-z]*;
+ _ZTVSt[0-9][0-9][A-Za-z]*;
+ _ZTTS[a-z];
+ _ZTTSt[0-9][A-Za-z]*;
+ _ZTTSt[0-9][0-9][A-Za-z]*;
+ _ZTVN9__gnu_cxx*;
+ _ZTVNSt6locale5facetE;
+ _ZTVSt11__timepunctI[cw]E;
+ _ZTVNSt8ios_base7failureE;
+ _ZTVSt23__codecvt_abstract_baseI[cw]c11__mbstate_tE;
+ _ZTVSt21__ctype_abstract_baseI[cw]E;
+
+ # XXX
+ _ZTVN10__cxxabi*;
# typeinfo
- _ZTI*;
- _ZTS*;
+ _ZTI[a-z];
+ _ZTIP[a-z];
+ _ZTIPK[a-z];
+ _ZTIS[a-z];
+ _ZTISt[0-9][A-Za-z]*;
+ _ZTISt[0-9][0-9][A-Za-z]*;
+ _ZTS[a-z];
+ _ZTSS[a-z];
+ _ZTSP[a-z];
+ _ZTSPK[a-z];
+ _ZTSSt[0-9][A-Za-z]*;
+ _ZTSSt[0-9][0-9][A-Za-z]*;
+ _ZTSN9__gnu_cxx*;
+ _ZTIN9__gnu_cxx*;
+ _ZTINSt8ios_base7failureE;
+ _ZTSNSt8ios_base7failureE;
+ _ZTINSt6locale5facetE;
+ _ZTSNSt6locale5facetE;
+ _ZTISt11__timepunctI[cw]E;
+ _ZTSSt11__timepunctI[cw]E;
+ _ZTSSt10__num_base;
+ _ZTISt10__num_base;
+ _ZTSSt21__ctype_abstract_baseI[cw]E;
+ _ZTISt21__ctype_abstract_baseI[cw]E;
+ _ZTISt23__codecvt_abstract_baseI[cw]c11__mbstate_tE;
+ _ZTSSt23__codecvt_abstract_baseI[cw]c11__mbstate_tE;
+
+ # XXX
+ _ZTIN10__cxxabi*;
+ _ZTSN10__cxxabi*;
# function-scope static objects requires a guard variable.
_ZGV*;
@@ -256,6 +367,34 @@ GLIBCPP_3.2.2 {
} GLIBCPP_3.2.1;
+GLIBCPP_3.2.3 {
+
+ global:
+
+ extern "C++"
+ {
+ # Needed only when generic cpu's atomicity.h is in use.
+ __gnu_cxx::_Atomic_add_mutex;
+ __gnu_cxx::_Atomic_add_mutex_once;
+ __gnu_cxx::__gthread_atomic_add_mutex_once;
+
+ std::__num_base::_S_atoms_in;
+ std::__num_base::_S_atoms_out
+ };
+
+ _ZNKSt7num_putI[wc]St19ostreambuf_iteratorI[wc]St11char_traitsI[wc]EEE6_M_pad*;
+
+ _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE14_M_convert_intI[yxml]EES3_S3_RSt8ios_base[cw]T_;
+
+ _ZNKSt7num_putI[wc]St19ostreambuf_iteratorI[wc]St11char_traitsI[wc]EEE14_M_group_float*;
+
+ _ZNKSt7num_putI[wc]St19ostreambuf_iteratorI[wc]St11char_traitsI[wc]EEE12_M_group_int*;
+
+ # __basic_file::showmanyc_helper
+ _ZNSt12__basic_fileIcE16showmanyc_helperEv;
+
+} GLIBCPP_3.2.2;
+
# Symbols in the support library (libsupc++) have their own tag.
CXXABI_1.2 {
@@ -315,3 +454,12 @@ CXXABI_1.2 {
local:
*;
};
+
+# Symbols added after CXXABI_1.2
+CXXABI_1.2.1 {
+
+ __cxa_guard_acquire;
+ __cxa_guard_release;
+ __cxa_guard_abort;
+
+} CXXABI_1.2;
diff --git a/contrib/libstdc++/config/locale/generic/c_locale.cc b/contrib/libstdc++/config/locale/generic/c_locale.cc
index 689bbf5..23f7912 100644
--- a/contrib/libstdc++/config/locale/generic/c_locale.cc
+++ b/contrib/libstdc++/config/locale/generic/c_locale.cc
@@ -228,9 +228,9 @@ namespace std
+ _S_extra_categories_size] =
{
"LC_CTYPE",
- "LC_NUMERIC",
+ "LC_NUMERIC",
+ "LC_TIME",
"LC_COLLATE",
- "LC_TIME",
"LC_MONETARY",
"LC_MESSAGES"
};
diff --git a/contrib/libstdc++/config/locale/generic/c_locale.h b/contrib/libstdc++/config/locale/generic/c_locale.h
index 9627d86..1f2accb 100644
--- a/contrib/libstdc++/config/locale/generic/c_locale.h
+++ b/contrib/libstdc++/config/locale/generic/c_locale.h
@@ -1,6 +1,6 @@
// Wrapper for underlying C-language localization -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -33,6 +33,11 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
+#ifndef _CPP_BITS_C_LOCALE_H
+#define _CPP_BITS_C_LOCALE_H 1
+
+#pragma GCC system_header
+
#include <clocale>
#define _GLIBCPP_NUM_CATEGORIES 0
@@ -41,9 +46,15 @@ namespace std
{
typedef int* __c_locale;
+ // Convert numeric value of type _Tv to string and return length of
+ // string. If snprintf is available use it, otherwise fall back to
+ // the unsafe sprintf which, in general, can be dangerous and should
+ // be avoided.
template<typename _Tv>
int
- __convert_from_v(char* __out, const int __size, const char* __fmt,
+ __convert_from_v(char* __out,
+ const int __attribute__ ((__unused__)) __size,
+ const char* __fmt,
_Tv __v, const __c_locale&, int __prec = -1)
{
char* __old = setlocale(LC_ALL, NULL);
@@ -69,3 +80,5 @@ namespace std
return __ret;
}
}
+
+#endif
diff --git a/contrib/libstdc++/config/locale/generic/codecvt_members.cc b/contrib/libstdc++/config/locale/generic/codecvt_members.cc
index 814b8a2..ff65dff 100644
--- a/contrib/libstdc++/config/locale/generic/codecvt_members.cc
+++ b/contrib/libstdc++/config/locale/generic/codecvt_members.cc
@@ -34,7 +34,6 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
#include <locale>
-#include "c++locale_internal.h"
namespace std
{
diff --git a/contrib/libstdc++/config/locale/generic/messages_members.h b/contrib/libstdc++/config/locale/generic/messages_members.h
index e8a8656..c1c8e4d 100644
--- a/contrib/libstdc++/config/locale/generic/messages_members.h
+++ b/contrib/libstdc++/config/locale/generic/messages_members.h
@@ -40,7 +40,7 @@
{ _M_c_locale_messages = _S_c_locale; }
template<typename _CharT>
- messages<_CharT>::messages(__c_locale __cloc, const char*, size_t __refs)
+ messages<_CharT>::messages(__c_locale, const char*, size_t __refs)
: locale::facet(__refs)
{ _M_c_locale_messages = _S_c_locale; }
diff --git a/contrib/libstdc++/config/locale/gnu/c_locale.cc b/contrib/libstdc++/config/locale/gnu/c_locale.cc
index 188f3a2..065e10a 100644
--- a/contrib/libstdc++/config/locale/gnu/c_locale.cc
+++ b/contrib/libstdc++/config/locale/gnu/c_locale.cc
@@ -1,6 +1,6 @@
// Wrapper for underlying C-language localization -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -36,7 +36,7 @@
#include <locale>
#include <stdexcept>
#include <langinfo.h>
-#include "c++locale_internal.h"
+#include <bits/c++locale_internal.h>
namespace std
{
@@ -191,9 +191,9 @@ namespace std
+ _S_extra_categories_size] =
{
"LC_CTYPE",
- "LC_NUMERIC",
- "LC_COLLATE",
+ "LC_NUMERIC",
"LC_TIME",
+ "LC_COLLATE",
"LC_MONETARY",
"LC_MESSAGES",
"LC_PAPER",
diff --git a/contrib/libstdc++/config/locale/gnu/c_locale.h b/contrib/libstdc++/config/locale/gnu/c_locale.h
index 130b843..37df3fa 100644
--- a/contrib/libstdc++/config/locale/gnu/c_locale.h
+++ b/contrib/libstdc++/config/locale/gnu/c_locale.h
@@ -1,6 +1,6 @@
// Wrapper for underlying C-language localization -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -33,6 +33,11 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
+#ifndef _CPP_BITS_C_LOCALE_H
+#define _CPP_BITS_C_LOCALE_H 1
+
+#pragma GCC system_header
+
#include <clocale>
#include <langinfo.h> // For codecvt
#include <iconv.h> // For codecvt using iconv, iconv_t
@@ -53,6 +58,10 @@ namespace std
{
typedef __locale_t __c_locale;
+ // Convert numeric value of type _Tv to string and return length of
+ // string. If snprintf is available use it, otherwise fall back to
+ // the unsafe sprintf which, in general, can be dangerous and should
+ // be avoided.
template<typename _Tv>
int
__convert_from_v(char* __out, const int __size, const char* __fmt,
@@ -92,3 +101,5 @@ namespace std
return __ret;
}
}
+
+#endif
diff --git a/contrib/libstdc++/config/locale/gnu/codecvt_members.cc b/contrib/libstdc++/config/locale/gnu/codecvt_members.cc
index 3569f6b..c3d3e34 100644
--- a/contrib/libstdc++/config/locale/gnu/codecvt_members.cc
+++ b/contrib/libstdc++/config/locale/gnu/codecvt_members.cc
@@ -1,6 +1,6 @@
// std::codecvt implementation details, GNU version -*- C++ -*-
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -34,7 +34,7 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
#include <locale>
-#include "c++locale_internal.h"
+#include <bits/c++locale_internal.h>
namespace std
{
diff --git a/contrib/libstdc++/config/locale/gnu/collate_members.cc b/contrib/libstdc++/config/locale/gnu/collate_members.cc
index 97ff0c5..1ac2094 100644
--- a/contrib/libstdc++/config/locale/gnu/collate_members.cc
+++ b/contrib/libstdc++/config/locale/gnu/collate_members.cc
@@ -34,7 +34,7 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
#include <locale>
-#include "c++locale_internal.h"
+#include <bits/c++locale_internal.h>
namespace std
{
diff --git a/contrib/libstdc++/config/locale/gnu/ctype_members.cc b/contrib/libstdc++/config/locale/gnu/ctype_members.cc
index 3b78c60..e0be949 100644
--- a/contrib/libstdc++/config/locale/gnu/ctype_members.cc
+++ b/contrib/libstdc++/config/locale/gnu/ctype_members.cc
@@ -34,7 +34,7 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
#include <locale>
-#include "c++locale_internal.h"
+#include <bits/c++locale_internal.h>
namespace std
{
diff --git a/contrib/libstdc++/config/locale/gnu/messages_members.cc b/contrib/libstdc++/config/locale/gnu/messages_members.cc
index 54a3c8f..fad01df 100644
--- a/contrib/libstdc++/config/locale/gnu/messages_members.cc
+++ b/contrib/libstdc++/config/locale/gnu/messages_members.cc
@@ -34,7 +34,7 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
#include <locale>
-#include "c++locale_internal.h"
+#include <bits/c++locale_internal.h>
namespace std
{
diff --git a/contrib/libstdc++/config/locale/gnu/monetary_members.cc b/contrib/libstdc++/config/locale/gnu/monetary_members.cc
index 0386ab6..b3ef13b 100644
--- a/contrib/libstdc++/config/locale/gnu/monetary_members.cc
+++ b/contrib/libstdc++/config/locale/gnu/monetary_members.cc
@@ -34,7 +34,7 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
#include <locale>
-#include "c++locale_internal.h"
+#include <bits/c++locale_internal.h>
namespace std
{
@@ -317,7 +317,11 @@ namespace std
template<>
void
moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale __cloc,
+#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
+ const char*)
+#else
const char* __name)
+#endif
{
if (!__cloc)
{
@@ -413,8 +417,12 @@ namespace std
template<>
void
- moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale __cloc,
+ moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale __cloc,
+#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
+ const char*)
+#else
const char* __name)
+#endif
{
if (!__cloc)
{
diff --git a/contrib/libstdc++/config/locale/gnu/numeric_members.cc b/contrib/libstdc++/config/locale/gnu/numeric_members.cc
index a502bfb..1aa0529 100644
--- a/contrib/libstdc++/config/locale/gnu/numeric_members.cc
+++ b/contrib/libstdc++/config/locale/gnu/numeric_members.cc
@@ -34,7 +34,7 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
#include <locale>
-#include "c++locale_internal.h"
+#include <bits/c++locale_internal.h>
namespace std
{
diff --git a/contrib/libstdc++/config/locale/gnu/time_members.cc b/contrib/libstdc++/config/locale/gnu/time_members.cc
index 7df10b8..db590ef 100644
--- a/contrib/libstdc++/config/locale/gnu/time_members.cc
+++ b/contrib/libstdc++/config/locale/gnu/time_members.cc
@@ -35,7 +35,7 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
#include <locale>
-#include "c++locale_internal.h"
+#include <bits/c++locale_internal.h>
namespace std
{
diff --git a/contrib/libstdc++/config/locale/gnu/time_members.h b/contrib/libstdc++/config/locale/gnu/time_members.h
index 46342e8..2ea2410 100644
--- a/contrib/libstdc++/config/locale/gnu/time_members.h
+++ b/contrib/libstdc++/config/locale/gnu/time_members.h
@@ -46,7 +46,8 @@
template<typename _CharT>
__timepunct<_CharT>::__timepunct(__c_locale __cloc,
- const char* __s, size_t __refs)
+ const char* __s,
+ size_t __refs)
: locale::facet(__refs)
{
#if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2))
diff --git a/contrib/libstdc++/config/locale/ieee_1003.1-2001/codecvt_specializations.h b/contrib/libstdc++/config/locale/ieee_1003.1-2001/codecvt_specializations.h
index a7d56ae..0cbfb2a 100644
--- a/contrib/libstdc++/config/locale/ieee_1003.1-2001/codecvt_specializations.h
+++ b/contrib/libstdc++/config/locale/ieee_1003.1-2001/codecvt_specializations.h
@@ -260,7 +260,7 @@
extern_type* __to, extern_type* __to_end,
extern_type*& __to_next) const
{
- result __ret = error;
+ result __ret = codecvt_base::error;
if (__state._M_good())
{
typedef state_type::__desc_type __desc_type;
@@ -304,7 +304,7 @@
{
__from_next = reinterpret_cast<const intern_type*>(__cfrom);
__to_next = reinterpret_cast<extern_type*>(__cto);
- __ret = ok;
+ __ret = codecvt_base::ok;
}
else
{
@@ -312,10 +312,10 @@
{
__from_next = reinterpret_cast<const intern_type*>(__cfrom);
__to_next = reinterpret_cast<extern_type*>(__cto);
- __ret = partial;
+ __ret = codecvt_base::partial;
}
else
- __ret = error;
+ __ret = codecvt_base::error;
}
}
return __ret;
@@ -327,7 +327,7 @@
do_unshift(state_type& __state, extern_type* __to,
extern_type* __to_end, extern_type*& __to_next) const
{
- result __ret = error;
+ result __ret = codecvt_base::error;
if (__state._M_good())
{
typedef state_type::__desc_type __desc_type;
@@ -345,14 +345,14 @@
{
__to_next = reinterpret_cast<extern_type*>(__cto);
if (__tlen == __tmultiple * (__to_end - __to))
- __ret = noconv;
+ __ret = codecvt_base::noconv;
else if (__tlen == 0)
- __ret = ok;
+ __ret = codecvt_base::ok;
else
- __ret = partial;
+ __ret = codecvt_base::partial;
}
else
- __ret = error;
+ __ret = codecvt_base::error;
}
return __ret;
}
@@ -365,7 +365,7 @@
intern_type* __to, intern_type* __to_end,
intern_type*& __to_next) const
{
- result __ret = error;
+ result __ret = codecvt_base::error;
if (__state._M_good())
{
typedef state_type::__desc_type __desc_type;
@@ -410,7 +410,7 @@
{
__from_next = reinterpret_cast<const extern_type*>(__cfrom);
__to_next = reinterpret_cast<intern_type*>(__cto);
- __ret = ok;
+ __ret = codecvt_base::ok;
}
else
{
@@ -418,10 +418,10 @@
{
__from_next = reinterpret_cast<const extern_type*>(__cfrom);
__to_next = reinterpret_cast<intern_type*>(__cto);
- __ret = partial;
+ __ret = codecvt_base::partial;
}
else
- __ret = error;
+ __ret = codecvt_base::error;
}
}
return __ret;
diff --git a/contrib/libstdc++/config/os/aix/atomicity.h b/contrib/libstdc++/config/os/aix/atomicity.h
new file mode 100644
index 0000000..af4fa5a
--- /dev/null
+++ b/contrib/libstdc++/config/os/aix/atomicity.h
@@ -0,0 +1,59 @@
+// Low-level functions for atomic operations: AIX version -*- C++ -*-
+
+// Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _BITS_ATOMICITY_H
+#define _BITS_ATOMICITY_H 1
+
+/* We cannot use the cpu/powerpc/bits/atomicity.h inline assembly
+ definitions for these operations since they depend on operations
+ that are not available on the original POWER architecture. AIX
+ still runs on the POWER architecture, so it would be incorrect to
+ assume the existence of these instructions. */
+
+/* This should match the type pointed to by atomic_p in
+ <sys/atomic_op.h>. */
+typedef int _Atomic_word;
+
+#include <sys/atomic_op.h>
+
+static inline int
+__attribute__ ((__unused__))
+__exchange_and_add (atomic_p __mem, int __val)
+{
+ return fetch_and_add (__mem, __val);
+}
+
+static inline void
+__attribute__ ((__unused__))
+__atomic_add (atomic_p __mem, int __val)
+{
+ (void) fetch_and_add (__mem, __val);
+}
+
+#endif /* atomicity.h */
diff --git a/contrib/libstdc++/config/os/aix/ctype_base.h b/contrib/libstdc++/config/os/aix/ctype_base.h
new file mode 100644
index 0000000..ed41440
--- /dev/null
+++ b/contrib/libstdc++/config/os/aix/ctype_base.h
@@ -0,0 +1,55 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000, 1999 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h
+
+ struct ctype_base
+ {
+ // Non-standard typedefs.
+ typedef const int* __to_type;
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+ typedef unsigned int mask;
+ static const mask upper = _ISUPPER;
+ static const mask lower = _ISLOWER;
+ static const mask alpha = _ISALPHA;
+ static const mask digit = _ISDIGIT;
+ static const mask xdigit = _ISXDIGIT;
+ static const mask space = _ISSPACE;
+ static const mask print = _ISPRINT;
+ static const mask graph = _ISGRAPH;
+ static const mask cntrl = _ISCNTRL;
+ static const mask punct = _ISPUNCT;
+ static const mask alnum = _ISALNUM;
+ };
diff --git a/contrib/libstdc++/config/os/aix/ctype_inline.h b/contrib/libstdc++/config/os/aix/ctype_inline.h
new file mode 100644
index 0000000..d9df620
--- /dev/null
+++ b/contrib/libstdc++/config/os/aix/ctype_inline.h
@@ -0,0 +1,76 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
+// functions go in ctype.cc
+
+ bool
+ ctype<char>::
+ is(mask __m, char __c) const
+ { return __OBJ_DATA(__lc_ctype)->mask[__c] & __m; }
+
+ const char*
+ ctype<char>::
+ is(const char* __low, const char* __high, mask* __vec) const
+ {
+ while (__low < __high)
+ *__vec++ = __OBJ_DATA(__lc_ctype)->mask[*__low++];
+ return __high;
+ }
+
+ const char*
+ ctype<char>::
+ scan_is(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high && !this->is(__m, *__low))
+ ++__low;
+ return __low;
+ }
+
+ const char*
+ ctype<char>::
+ scan_not(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high && this->is(__m, *__low) != 0)
+ ++__low;
+ return __low;
+ }
+
+
+
+
+
+
+
+
+
diff --git a/contrib/libstdc++/config/os/aix/ctype_noninline.h b/contrib/libstdc++/config/os/aix/ctype_noninline.h
new file mode 100644
index 0000000..7cf919a
--- /dev/null
+++ b/contrib/libstdc++/config/os/aix/ctype_noninline.h
@@ -0,0 +1,82 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h
+
+ const ctype_base::mask*
+ ctype<char>::classic_table() throw()
+ { return 0; }
+
+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+ size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(__table ? __table : classic_table())
+ { }
+
+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(__table ? __table : classic_table())
+ { }
+
+ char
+ ctype<char>::do_toupper(char __c) const
+ { return ::toupper((int) __c); }
+
+ const char*
+ ctype<char>::do_toupper(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = ::toupper((int) *__low);
+ ++__low;
+ }
+ return __high;
+ }
+
+ char
+ ctype<char>::do_tolower(char __c) const
+ { return ::tolower((int) __c); }
+
+ const char*
+ ctype<char>::do_tolower(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = ::tolower((int) *__low);
+ ++__low;
+ }
+ return __high;
+ }
+
diff --git a/contrib/libstdc++/config/os/aix/os_defines.h b/contrib/libstdc++/config/os/aix/os_defines.h
new file mode 100644
index 0000000..6e4dbda
--- /dev/null
+++ b/contrib/libstdc++/config/os/aix/os_defines.h
@@ -0,0 +1,58 @@
+// Specific definitions for AIX -*- C++ -*-
+
+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _GLIBCPP_OS_DEFINES
+#define _GLIBCPP_OS_DEFINES
+
+// System-specific #define, typedefs, corrections, etc, go here. This
+// file will come before all others.
+
+#undef _XOPEN_SOURCE
+#define _XOPEN_SOURCE 500
+#undef _XOPEN_SOURCE_EXTENDED
+#define _XOPEN_SOURCE_EXTENDED 1
+
+// off64_t
+#ifndef _LARGE_FILE_API
+#define _LARGE_FILE_API
+#endif
+
+// atomic types
+#ifndef _ALL_SOURCE
+#define _ALL_SOURCE
+#endif
+
+#define __off_t off_t
+#define __off64_t off64_t
+#define __ssize_t ssize_t
+
+#undef _G_USING_THUNKS
+#define _G_USING_THUNKS 0
+
+#endif
diff --git a/contrib/libstdc++/config/os/bsd/freebsd/ctype_base.h b/contrib/libstdc++/config/os/bsd/freebsd/ctype_base.h
new file mode 100644
index 0000000..98b6265
--- /dev/null
+++ b/contrib/libstdc++/config/os/bsd/freebsd/ctype_base.h
@@ -0,0 +1,76 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h on FreeBSD 3.4,
+// 4.0 and all versions of the CVS managed file at:
+// :pserver:anoncvs@anoncvs.freebsd.org:/home/ncvs/src/include/ctype.h
+
+ struct ctype_base
+ {
+ // Non-standard typedefs.
+ typedef const int* __to_type;
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+ typedef unsigned long mask;
+#ifdef _CTYPE_S
+ // FreeBSD 4.0 uses this style of define.
+ static const mask upper = _CTYPE_U;
+ static const mask lower = _CTYPE_L;
+ static const mask alpha = _CTYPE_A;
+ static const mask digit = _CTYPE_D;
+ static const mask xdigit = _CTYPE_X;
+ static const mask space = _CTYPE_S;
+ static const mask print = _CTYPE_R;
+ static const mask graph = _CTYPE_G;
+ static const mask cntrl = _CTYPE_C;
+ static const mask punct = _CTYPE_P;
+ static const mask alnum = _CTYPE_A | _CTYPE_D;
+#else
+ // Older versions, including Free BSD 3.4, use this style of define.
+ static const mask upper = _U;
+ static const mask lower = _L;
+ static const mask alpha = _A;
+ static const mask digit = _D;
+ static const mask xdigit = _X;
+ static const mask space = _S;
+ static const mask print = _R;
+ static const mask graph = _G;
+ static const mask cntrl = _C;
+ static const mask punct = _P;
+ static const mask alnum = _A | _D;
+#endif
+ };
+
+
+
diff --git a/contrib/libstdc++/config/os/bsd/freebsd/ctype_inline.h b/contrib/libstdc++/config/os/bsd/freebsd/ctype_inline.h
new file mode 100644
index 0000000..d69324a
--- /dev/null
+++ b/contrib/libstdc++/config/os/bsd/freebsd/ctype_inline.h
@@ -0,0 +1,106 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
+// functions go in ctype.cc
+
+ bool
+ ctype<char>::
+ is(mask __m, char __c) const
+ {
+ if (_M_table)
+ return _M_table[static_cast<unsigned char>(__c)] & __m;
+ else
+ return __istype(__c, __m);
+ }
+
+ const char*
+ ctype<char>::
+ is(const char* __low, const char* __high, mask* __vec) const
+ {
+ if (_M_table)
+ while (__low < __high)
+ *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
+ else
+ for (;__low < __high; ++__vec, ++__low)
+ {
+#if defined (_CTYPE_S) || defined (__istype)
+ *__vec = __maskrune (*__low, upper | lower | alpha | digit | xdigit
+ | space | print | graph | cntrl | punct | alnum);
+#else
+ mask __m = 0;
+ if (this->is(upper, *__low)) __m |= upper;
+ if (this->is(lower, *__low)) __m |= lower;
+ if (this->is(alpha, *__low)) __m |= alpha;
+ if (this->is(digit, *__low)) __m |= digit;
+ if (this->is(xdigit, *__low)) __m |= xdigit;
+ if (this->is(space, *__low)) __m |= space;
+ if (this->is(print, *__low)) __m |= print;
+ if (this->is(graph, *__low)) __m |= graph;
+ if (this->is(cntrl, *__low)) __m |= cntrl;
+ if (this->is(punct, *__low)) __m |= punct;
+ // Do not include explicit line for alnum mask since it is a
+ // pure composite of masks on FreeBSD.
+ *__vec = __m;
+#endif
+ }
+ return __high;
+ }
+
+ const char*
+ ctype<char>::
+ scan_is(mask __m, const char* __low, const char* __high) const
+ {
+ if (_M_table)
+ while (__low < __high
+ && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
+ ++__low;
+ else
+ while (__low < __high && !this->is(__m, *__low))
+ ++__low;
+ return __low;
+ }
+
+ const char*
+ ctype<char>::
+ scan_not(mask __m, const char* __low, const char* __high) const
+ {
+ if (_M_table)
+ while (__low < __high
+ && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
+ ++__low;
+ else
+ while (__low < __high && this->is(__m, *__low) != 0)
+ ++__low;
+ return __low;
+ }
diff --git a/contrib/libstdc++/config/os/bsd/freebsd/ctype_noninline.h b/contrib/libstdc++/config/os/bsd/freebsd/ctype_noninline.h
new file mode 100644
index 0000000..0e108fd
--- /dev/null
+++ b/contrib/libstdc++/config/os/bsd/freebsd/ctype_noninline.h
@@ -0,0 +1,81 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h
+
+ const ctype_base::mask*
+ ctype<char>::classic_table() throw()
+ { return 0; }
+
+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+ size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(__table ? __table : classic_table())
+ { }
+
+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(__table ? __table : classic_table())
+ { }
+
+ char
+ ctype<char>::do_toupper(char __c) const
+ { return ::toupper((int) __c); }
+
+ const char*
+ ctype<char>::do_toupper(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = ::toupper((int) *__low);
+ ++__low;
+ }
+ return __high;
+ }
+
+ char
+ ctype<char>::do_tolower(char __c) const
+ { return ::tolower((int) __c); }
+
+ const char*
+ ctype<char>::do_tolower(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = ::tolower((int) *__low);
+ ++__low;
+ }
+ return __high;
+ }
diff --git a/contrib/libstdc++/config/os/bsd/freebsd/os_defines.h b/contrib/libstdc++/config/os/bsd/freebsd/os_defines.h
new file mode 100644
index 0000000..55040a7
--- /dev/null
+++ b/contrib/libstdc++/config/os/bsd/freebsd/os_defines.h
@@ -0,0 +1,44 @@
+// Specific definitions for BSD -*- C++ -*-
+
+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+
+#ifndef _GLIBCPP_OS_DEFINES
+#define _GLIBCPP_OS_DEFINES 1
+
+// System-specific #define, typedefs, corrections, etc, go here. This
+// file will come before all others.
+
+#define _GLIBCPP_USE_C99_CHECK 1
+#define _GLIBCPP_USE_C99_DYNAMIC (!(__ISO_C_VISIBLE >= 1999))
+#define _GLIBCPP_USE_C99_LONG_LONG_CHECK 1
+#define _GLIBCPP_USE_C99_LONG_LONG_DYNAMIC (_GLIBCPP_USE_C99_DYNAMIC || !defined __LONG_LONG_SUPPORTED)
+#define _GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_CHECK 1
+#define _GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC defined _XOPEN_SOURCE
+
+#endif
diff --git a/contrib/libstdc++/config/os/bsd/netbsd/ctype_base.h b/contrib/libstdc++/config/os/bsd/netbsd/ctype_base.h
new file mode 100644
index 0000000..ceea8ac
--- /dev/null
+++ b/contrib/libstdc++/config/os/bsd/netbsd/ctype_base.h
@@ -0,0 +1,58 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h on NetBSD.
+// Full details can be found from the CVS files at:
+// anoncvs@anoncvs.netbsd.org:/cvsroot/basesrc/include/ctype.h
+// See www.netbsd.org for details of access.
+
+ struct ctype_base
+ {
+ // Non-standard typedefs.
+ typedef const unsigned char* __to_type;
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+ typedef unsigned char mask;
+ static const mask upper = _U;
+ static const mask lower = _L;
+ static const mask alpha = _U | _L;
+ static const mask digit = _N;
+ static const mask xdigit = _N | _X;
+ static const mask space = _S;
+ static const mask print = _P | _U | _L | _N | _B;
+ static const mask graph = _P | _U | _L | _N;
+ static const mask cntrl = _C;
+ static const mask punct = _P;
+ static const mask alnum = _U | _L | _N;
+ };
diff --git a/contrib/libstdc++/config/os/bsd/netbsd/ctype_inline.h b/contrib/libstdc++/config/os/bsd/netbsd/ctype_inline.h
new file mode 100644
index 0000000..f6dfc4d
--- /dev/null
+++ b/contrib/libstdc++/config/os/bsd/netbsd/ctype_inline.h
@@ -0,0 +1,73 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
+// functions go in ctype.cc
+
+ bool
+ ctype<char>::
+ is(mask __m, char __c) const
+ { return _M_table[(unsigned char)(__c)] & __m; }
+
+ const char*
+ ctype<char>::
+ is(const char* __low, const char* __high, mask* __vec) const
+ {
+ while (__low < __high)
+ *__vec++ = _M_table[*__low++];
+ return __high;
+ }
+
+ const char*
+ ctype<char>::
+ scan_is(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high && !this->is(__m, *__low))
+ ++__low;
+ return __low;
+ }
+
+ const char*
+ ctype<char>::
+ scan_not(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high && this->is(__m, *__low) != 0)
+ ++__low;
+ return __low;
+ }
+
+
+
+
+
+
diff --git a/contrib/libstdc++/config/os/bsd/netbsd/ctype_noninline.h b/contrib/libstdc++/config/os/bsd/netbsd/ctype_noninline.h
new file mode 100644
index 0000000..80138cb
--- /dev/null
+++ b/contrib/libstdc++/config/os/bsd/netbsd/ctype_noninline.h
@@ -0,0 +1,79 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h
+
+ const ctype_base::mask*
+ ctype<char>::classic_table() throw()
+ { return 0; }
+
+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+ size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL), _M_table(__table ? __table : _ctype_ + 1)
+ { }
+
+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL), _M_table(__table ? __table : _ctype_ + 1)
+ { }
+
+ char
+ ctype<char>::do_toupper(char __c) const
+ { return ::toupper((int) __c); }
+
+ const char*
+ ctype<char>::do_toupper(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = ::toupper((int) *__low);
+ ++__low;
+ }
+ return __high;
+ }
+
+ char
+ ctype<char>::do_tolower(char __c) const
+ { return ::tolower((int) __c); }
+
+ const char*
+ ctype<char>::do_tolower(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = ::tolower((int) *__low);
+ ++__low;
+ }
+ return __high;
+ }
diff --git a/contrib/libstdc++/config/os/bsd/netbsd/os_defines.h b/contrib/libstdc++/config/os/bsd/netbsd/os_defines.h
new file mode 100644
index 0000000..03f760f
--- /dev/null
+++ b/contrib/libstdc++/config/os/bsd/netbsd/os_defines.h
@@ -0,0 +1,38 @@
+// Specific definitions for NetBSD -*- C++ -*-
+
+// Copyright (C) 2000 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _GLIBCPP_OS_DEFINES
+#define _GLIBCPP_OS_DEFINES 1
+
+// System-specific #define, typedefs, corrections, etc, go here. This
+// file will come before all others.
+
+#define __ssize_t ssize_t
+
+#endif
diff --git a/contrib/libstdc++/config/os/djgpp/ctype_base.h b/contrib/libstdc++/config/os/djgpp/ctype_base.h
new file mode 100644
index 0000000..018e20e
--- /dev/null
+++ b/contrib/libstdc++/config/os/djgpp/ctype_base.h
@@ -0,0 +1,57 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+ struct ctype_base
+ {
+ typedef unsigned short mask;
+
+ // Non-standard typedefs.
+ typedef unsigned char * __to_type;
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+ static const mask space = __dj_ISSPACE; // Whitespace
+ static const mask print = __dj_ISPRINT; // Printing
+ static const mask cntrl = __dj_ISCNTRL; // Control character
+ static const mask upper = __dj_ISUPPER; // UPPERCASE
+ static const mask lower = __dj_ISLOWER; // lowercase
+ static const mask alpha = __dj_ISALPHA; // Alphabetic
+ static const mask digit = __dj_ISDIGIT; // Numeric
+ static const mask punct = __dj_ISPUNCT; // Punctuation
+ static const mask xdigit = __dj_ISXDIGIT; // Hexadecimal numeric
+ static const mask alnum = __dj_ISALPHA; // Alphanumeric
+ static const mask graph = __dj_ISGRAPH; // Graphical
+ };
+
+
+
diff --git a/contrib/libstdc++/config/os/djgpp/ctype_inline.h b/contrib/libstdc++/config/os/djgpp/ctype_inline.h
new file mode 100644
index 0000000..21958c4
--- /dev/null
+++ b/contrib/libstdc++/config/os/djgpp/ctype_inline.h
@@ -0,0 +1,67 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
+// functions go in ctype.cc
+
+ bool
+ ctype<char>::
+ is(mask __m, char __c) const
+ { return _M_table[static_cast<unsigned char>(__c + 1)] & __m; }
+
+ const char*
+ ctype<char>::
+ is(const char* __low, const char* __high, mask* __vec) const
+ {
+ while (__low < __high)
+ *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
+ return __high;
+ }
+
+ const char*
+ ctype<char>::
+ scan_is(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high && !this->is(__m, *__low))
+ ++__low;
+ return __low;
+ }
+
+ const char*
+ ctype<char>::
+ scan_not(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high && this->is(__m, *__low) != 0)
+ ++__low;
+ return __low;
+ }
diff --git a/contrib/libstdc++/config/os/djgpp/ctype_noninline.h b/contrib/libstdc++/config/os/djgpp/ctype_noninline.h
new file mode 100644
index 0000000..0ec0f84
--- /dev/null
+++ b/contrib/libstdc++/config/os/djgpp/ctype_noninline.h
@@ -0,0 +1,81 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from DJGPP <ctype.h>
+
+ const ctype_base::mask*
+ ctype<char>::classic_table() throw()
+ { return 0; }
+
+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+ size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(__dj_ctype_toupper), _M_tolower(__dj_ctype_tolower),
+ _M_table(__table ? __table : __dj_ctype_flags)
+ { }
+
+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(__dj_ctype_toupper), _M_tolower(__dj_ctype_tolower),
+ _M_table(__table ? __table : __dj_ctype_flags)
+ { }
+
+ char
+ ctype<char>::do_toupper(char __c) const
+ { return _M_toupper[static_cast<int>(__c)+1]; }
+
+ const char*
+ ctype<char>::do_toupper(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = ::toupper(static_cast<int> (*__low));
+ ++__low;
+ }
+ return __high;
+ }
+
+ char
+ ctype<char>::do_tolower(char __c) const
+ { return _M_tolower[static_cast<int>(__c)+1]; }
+
+ const char*
+ ctype<char>::do_tolower(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = ::tolower(static_cast<int> (*__low));
+ ++__low;
+ }
+ return __high;
+ }
diff --git a/contrib/libstdc++/config/os/djgpp/os_defines.h b/contrib/libstdc++/config/os/djgpp/os_defines.h
new file mode 100644
index 0000000..ce0bf24
--- /dev/null
+++ b/contrib/libstdc++/config/os/djgpp/os_defines.h
@@ -0,0 +1,45 @@
+// Specific definitions for DJGPP -*- C++ -*-
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+
+#ifndef _GLIBCPP_OS_DEFINES
+#define _GLIBCPP_OS_DEFINES 1
+
+// System-specific #define, typedefs, corrections, etc, go here. This
+// file will come before all others.
+
+#define __off_t off_t
+#define __off64_t off64_t
+#define __ssize_t ssize_t
+
+// FIXME: should there be '#undef POSIX_SOURCE'?
+
+#endif
+
+
diff --git a/contrib/libstdc++/config/os/generic/ctype_base.h b/contrib/libstdc++/config/os/generic/ctype_base.h
new file mode 100644
index 0000000..564093d
--- /dev/null
+++ b/contrib/libstdc++/config/os/generic/ctype_base.h
@@ -0,0 +1,58 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Default information, may not be appropriate for specific host.
+
+ struct ctype_base
+ {
+ // Non-standard typedefs.
+ typedef const int* __to_type;
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+ typedef unsigned int mask;
+ static const mask upper = 1 << 0;
+ static const mask lower = 1 << 1;
+ static const mask alpha = 1 << 2;
+ static const mask digit = 1 << 3;
+ static const mask xdigit = 1 << 4;
+ static const mask space = 1 << 5;
+ static const mask print = 1 << 6;
+ static const mask graph = 1 << 7;
+ static const mask cntrl = 1 << 8;
+ static const mask punct = 1 << 9;
+ static const mask alnum = 1 << 10;
+ };
+
+
+
diff --git a/contrib/libstdc++/config/os/generic/ctype_inline.h b/contrib/libstdc++/config/os/generic/ctype_inline.h
new file mode 100644
index 0000000..be43c47
--- /dev/null
+++ b/contrib/libstdc++/config/os/generic/ctype_inline.h
@@ -0,0 +1,161 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
+// functions go in ctype.cc
+
+// The following definitions are portable, but insanely slow. If one
+// cares at all about performance, then specialized ctype
+// functionality should be added for the native os in question: see
+// the config/os/bits/ctype_*.h files.
+
+// Constructing a synthetic "C" table should be seriously considered...
+
+ bool
+ ctype<char>::
+ is(mask __m, char __c) const
+ {
+ if (_M_table)
+ return _M_table[static_cast<unsigned char>(__c)] & __m;
+ else
+ {
+ bool __ret = true;
+ const int __bitmasksize = 11;
+ int __bitcur = 0; // Lowest bitmask in ctype_base == 0
+ for (;__ret && __bitcur < __bitmasksize; ++__bitcur)
+ {
+ mask __bit = static_cast<mask>(1 << __bitcur);
+ if (__m & __bit)
+ {
+ bool __testis;
+ switch (__bit)
+ {
+ case space:
+ __testis = isspace(__c);
+ break;
+ case print:
+ __testis = isprint(__c);
+ break;
+ case cntrl:
+ __testis = iscntrl(__c);
+ break;
+ case upper:
+ __testis = isupper(__c);
+ break;
+ case lower:
+ __testis = islower(__c);
+ break;
+ case alpha:
+ __testis = isalpha(__c);
+ break;
+ case digit:
+ __testis = isdigit(__c);
+ break;
+ case punct:
+ __testis = ispunct(__c);
+ break;
+ case xdigit:
+ __testis = isxdigit(__c);
+ break;
+ case alnum:
+ __testis = isalnum(__c);
+ break;
+ case graph:
+ __testis = isgraph(__c);
+ break;
+ default:
+ __testis = false;
+ break;
+ }
+ __ret &= __testis;
+ }
+ }
+ return __ret;
+ }
+ }
+
+ const char*
+ ctype<char>::
+ is(const char* __low, const char* __high, mask* __vec) const
+ {
+ if (_M_table)
+ while (__low < __high)
+ *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
+ else
+ {
+ // Highest bitmask in ctype_base == 10.
+ const int __bitmasksize = 11;
+ for (;__low < __high; ++__vec, ++__low)
+ {
+ mask __m = 0;
+ // Lowest bitmask in ctype_base == 0
+ int __i = 0;
+ for (;__i < __bitmasksize; ++__i)
+ {
+ mask __bit = static_cast<mask>(1 << __i);
+ if (this->is(__bit, *__low))
+ __m |= __bit;
+ }
+ *__vec = __m;
+ }
+ }
+ return __high;
+ }
+
+ const char*
+ ctype<char>::
+ scan_is(mask __m, const char* __low, const char* __high) const
+ {
+ if (_M_table)
+ while (__low < __high
+ && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
+ ++__low;
+ else
+ while (__low < __high && !this->is(__m, *__low))
+ ++__low;
+ return __low;
+ }
+
+ const char*
+ ctype<char>::
+ scan_not(mask __m, const char* __low, const char* __high) const
+ {
+ if (_M_table)
+ while (__low < __high
+ && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
+ ++__low;
+ else
+ while (__low < __high && this->is(__m, *__low) != 0)
+ ++__low;
+ return __low;
+ }
diff --git a/contrib/libstdc++/config/os/generic/ctype_noninline.h b/contrib/libstdc++/config/os/generic/ctype_noninline.h
new file mode 100644
index 0000000..d07dc8b
--- /dev/null
+++ b/contrib/libstdc++/config/os/generic/ctype_noninline.h
@@ -0,0 +1,82 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h
+
+ const ctype_base::mask*
+ ctype<char>::classic_table() throw()
+ { return 0; }
+
+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+ size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(__table ? __table : classic_table())
+ { }
+
+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(__table ? __table : classic_table())
+ { }
+
+ char
+ ctype<char>::do_toupper(char __c) const
+ { return ::toupper((int) __c); }
+
+ const char*
+ ctype<char>::do_toupper(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = ::toupper((int) *__low);
+ ++__low;
+ }
+ return __high;
+ }
+
+ char
+ ctype<char>::do_tolower(char __c) const
+ { return ::tolower((int) __c); }
+
+ const char*
+ ctype<char>::do_tolower(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = ::tolower((int) *__low);
+ ++__low;
+ }
+ return __high;
+ }
diff --git a/contrib/libstdc++/config/os/generic/os_defines.h b/contrib/libstdc++/config/os/generic/os_defines.h
new file mode 100644
index 0000000..143c07e
--- /dev/null
+++ b/contrib/libstdc++/config/os/generic/os_defines.h
@@ -0,0 +1,37 @@
+// Specific definitions for generic platforms -*- C++ -*-
+
+// Copyright (C) 2000 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+
+#ifndef _GLIBCPP_OS_DEFINES
+#define _GLIBCPP_OS_DEFINES 1
+
+// System-specific #define, typedefs, corrections, etc, go here. This
+// file will come before all others.
+
+#endif
diff --git a/contrib/libstdc++/config/os/gnu-linux/ctype_base.h b/contrib/libstdc++/config/os/gnu-linux/ctype_base.h
new file mode 100644
index 0000000..a431f97
--- /dev/null
+++ b/contrib/libstdc++/config/os/gnu-linux/ctype_base.h
@@ -0,0 +1,55 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h
+
+ struct ctype_base
+ {
+ // Non-standard typedefs.
+ typedef const int* __to_type;
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+ typedef unsigned short mask;
+ static const mask upper = _ISupper;
+ static const mask lower = _ISlower;
+ static const mask alpha = _ISalpha;
+ static const mask digit = _ISdigit;
+ static const mask xdigit = _ISxdigit;
+ static const mask space = _ISspace;
+ static const mask print = _ISprint;
+ static const mask graph = _ISgraph;
+ static const mask cntrl = _IScntrl;
+ static const mask punct = _ISpunct;
+ static const mask alnum = _ISalnum;
+ };
diff --git a/contrib/libstdc++/config/os/gnu-linux/ctype_inline.h b/contrib/libstdc++/config/os/gnu-linux/ctype_inline.h
new file mode 100644
index 0000000..af409c8
--- /dev/null
+++ b/contrib/libstdc++/config/os/gnu-linux/ctype_inline.h
@@ -0,0 +1,69 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
+// functions go in ctype.cc
+
+ bool
+ ctype<char>::
+ is(mask __m, char __c) const
+ { return _M_table[static_cast<unsigned char>(__c)] & __m; }
+
+ const char*
+ ctype<char>::
+ is(const char* __low, const char* __high, mask* __vec) const
+ {
+ while (__low < __high)
+ *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
+ return __high;
+ }
+
+ const char*
+ ctype<char>::
+ scan_is(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high
+ && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
+ ++__low;
+ return __low;
+ }
+
+ const char*
+ ctype<char>::
+ scan_not(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high
+ && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
+ ++__low;
+ return __low;
+ }
diff --git a/contrib/libstdc++/config/os/gnu-linux/ctype_noninline.h b/contrib/libstdc++/config/os/gnu-linux/ctype_noninline.h
new file mode 100644
index 0000000..8f06d13
--- /dev/null
+++ b/contrib/libstdc++/config/os/gnu-linux/ctype_noninline.h
@@ -0,0 +1,152 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h
+
+#if _GLIBCPP_C_LOCALE_GNU
+ const ctype_base::mask*
+ ctype<char>::classic_table() throw()
+ {
+ locale::classic();
+ return _S_c_locale->__ctype_b;
+ }
+#else
+ const ctype_base::mask*
+ ctype<char>::classic_table() throw()
+ {
+ const ctype_base::mask* __ret;
+ char* __old = strdup(setlocale(LC_CTYPE, NULL));
+ setlocale(LC_CTYPE, "C");
+#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
+ __ret = *__ctype_b_loc();
+#else
+ __ret = __ctype_b;
+#endif
+ setlocale(LC_CTYPE, __old);
+ free(__old);
+ return __ret;
+ }
+#endif
+
+#if _GLIBCPP_C_LOCALE_GNU
+ ctype<char>::ctype(__c_locale __cloc, const mask* __table, bool __del,
+ size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del)
+ {
+ _M_c_locale_ctype = _S_clone_c_locale(__cloc);
+ _M_toupper = _M_c_locale_ctype->__ctype_toupper;
+ _M_tolower = _M_c_locale_ctype->__ctype_tolower;
+ _M_table = __table ? __table : _M_c_locale_ctype->__ctype_b;
+ }
+#else
+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+ size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del)
+ {
+ char* __old=strdup(setlocale(LC_CTYPE, NULL));
+ setlocale(LC_CTYPE, "C");
+#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
+ _M_toupper = *__ctype_toupper_loc();
+ _M_tolower = *__ctype_tolower_loc();
+ _M_table = __table ? __table : *__ctype_b_loc();
+#else
+ _M_toupper = __ctype_toupper;
+ _M_tolower = __ctype_tolower;
+ _M_table = __table ? __table : __ctype_b;
+#endif
+ setlocale(LC_CTYPE, __old);
+ free(__old);
+ _M_c_locale_ctype = _S_c_locale;
+ }
+#endif
+
+#if _GLIBCPP_C_LOCALE_GNU
+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs) :
+ __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del)
+ {
+ _M_c_locale_ctype = _S_c_locale;
+ _M_toupper = _M_c_locale_ctype->__ctype_toupper;
+ _M_tolower = _M_c_locale_ctype->__ctype_tolower;
+ _M_table = __table ? __table : _M_c_locale_ctype->__ctype_b;
+ }
+#else
+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs) :
+ __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del)
+ {
+ char* __old=strdup(setlocale(LC_CTYPE, NULL));
+ setlocale(LC_CTYPE, "C");
+#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
+ _M_toupper = *__ctype_toupper_loc();
+ _M_tolower = *__ctype_tolower_loc();
+ _M_table = __table ? __table : *__ctype_b_loc();
+#else
+ _M_toupper = __ctype_toupper;
+ _M_tolower = __ctype_tolower;
+ _M_table = __table ? __table : __ctype_b;
+#endif
+ setlocale(LC_CTYPE, __old);
+ free(__old);
+ _M_c_locale_ctype = _S_c_locale;
+ }
+#endif
+
+ char
+ ctype<char>::do_toupper(char __c) const
+ { return _M_toupper[static_cast<unsigned char>(__c)]; }
+
+ const char*
+ ctype<char>::do_toupper(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = _M_toupper[static_cast<unsigned char>(*__low)];
+ ++__low;
+ }
+ return __high;
+ }
+
+ char
+ ctype<char>::do_tolower(char __c) const
+ { return _M_tolower[static_cast<unsigned char>(__c)]; }
+
+ const char*
+ ctype<char>::do_tolower(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = _M_tolower[static_cast<unsigned char>(*__low)];
+ ++__low;
+ }
+ return __high;
+ }
diff --git a/contrib/libstdc++/config/os/gnu-linux/os_defines.h b/contrib/libstdc++/config/os/gnu-linux/os_defines.h
new file mode 100644
index 0000000..21ea296
--- /dev/null
+++ b/contrib/libstdc++/config/os/gnu-linux/os_defines.h
@@ -0,0 +1,68 @@
+// Specific definitions for GNU/Linux -*- C++ -*-
+
+// Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _GLIBCPP_OS_DEFINES
+#define _GLIBCPP_OS_DEFINES 1
+
+// System-specific #define, typedefs, corrections, etc, go here. This
+// file will come before all others.
+
+// This keeps isanum, et al from being propagated as macros.
+#define __NO_CTYPE 1
+
+#include <features.h>
+
+#if !defined (__GLIBC__) || (__GLIBC__ == 2 && __GLIBC_MINOR__+ 0 == 0)
+
+// The types __off_t and __off64_t are not defined through <sys/types.h>
+// as _G_config assumes. For libc5 and glibc 2.0 instead use
+// <gnu/types.h> and the old name for __off64_t.
+#include <gnu/types.h>
+typedef __loff_t __off64_t;
+
+// These systems have declarations mismatching those in libio.h by
+// omitting throw qualifiers. Cleanest way out is to not provide
+// throw-qualifiers at all. Defining it as empty here will make libio.h
+// not define it.
+#undef __THROW
+#define __THROW
+
+// Tell Glibc not to try to provide its own inline versions of
+// some math functions. Those cause assembly-time clashes with
+// our definitions.
+#define __NO_MATH_INLINES
+
+#endif
+
+#if defined __GLIBC__ && __GLIBC__ >= 2
+// We must not see the optimized string functions GNU libc defines.
+#define __NO_STRING_INLINES
+#endif
+
+#endif
diff --git a/contrib/libstdc++/config/os/hpux/ctype_base.h b/contrib/libstdc++/config/os/hpux/ctype_base.h
new file mode 100644
index 0000000..f2f6ad0
--- /dev/null
+++ b/contrib/libstdc++/config/os/hpux/ctype_base.h
@@ -0,0 +1,55 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Default information, may not be appropriate for specific host.
+
+ struct ctype_base
+ {
+ // Non-standard typedefs.
+ typedef const int* __to_type;
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+ typedef unsigned int mask;
+ static const mask upper = _ISUPPER;
+ static const mask lower = _ISLOWER;
+ static const mask alpha = _ISALPHA;
+ static const mask digit = _ISDIGIT;
+ static const mask xdigit = _ISXDIGIT;
+ static const mask space = _ISSPACE;
+ static const mask print = _ISPRINT;
+ static const mask graph = _ISGRAPH;
+ static const mask cntrl = _ISCNTRL;
+ static const mask punct = _ISPUNCT;
+ static const mask alnum = _ISALNUM;
+ };
diff --git a/contrib/libstdc++/config/os/hpux/ctype_inline.h b/contrib/libstdc++/config/os/hpux/ctype_inline.h
new file mode 100644
index 0000000..af409c8
--- /dev/null
+++ b/contrib/libstdc++/config/os/hpux/ctype_inline.h
@@ -0,0 +1,69 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
+// functions go in ctype.cc
+
+ bool
+ ctype<char>::
+ is(mask __m, char __c) const
+ { return _M_table[static_cast<unsigned char>(__c)] & __m; }
+
+ const char*
+ ctype<char>::
+ is(const char* __low, const char* __high, mask* __vec) const
+ {
+ while (__low < __high)
+ *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
+ return __high;
+ }
+
+ const char*
+ ctype<char>::
+ scan_is(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high
+ && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
+ ++__low;
+ return __low;
+ }
+
+ const char*
+ ctype<char>::
+ scan_not(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high
+ && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
+ ++__low;
+ return __low;
+ }
diff --git a/contrib/libstdc++/config/os/hpux/ctype_noninline.h b/contrib/libstdc++/config/os/hpux/ctype_noninline.h
new file mode 100644
index 0000000..a85bc9c
--- /dev/null
+++ b/contrib/libstdc++/config/os/hpux/ctype_noninline.h
@@ -0,0 +1,82 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h
+
+ const ctype_base::mask*
+ ctype<char>::classic_table() throw()
+ { return __SB_masks; }
+
+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+ size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(__table ? __table : (const mask *) __SB_masks)
+ { }
+
+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(__table ? __table : (const mask *) __SB_masks)
+ { }
+
+ char
+ ctype<char>::do_toupper(char __c) const
+ { return ::toupper((int) __c); }
+
+ const char*
+ ctype<char>::do_toupper(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = ::toupper((int) *__low);
+ ++__low;
+ }
+ return __high;
+ }
+
+ char
+ ctype<char>::do_tolower(char __c) const
+ { return ::tolower((int) __c); }
+
+ const char*
+ ctype<char>::do_tolower(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = ::tolower((int) *__low);
+ ++__low;
+ }
+ return __high;
+ }
diff --git a/contrib/libstdc++/config/os/hpux/os_defines.h b/contrib/libstdc++/config/os/hpux/os_defines.h
new file mode 100644
index 0000000..27951c1
--- /dev/null
+++ b/contrib/libstdc++/config/os/hpux/os_defines.h
@@ -0,0 +1,104 @@
+// Specific definitions for HPUX -*- C++ -*-
+
+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _GLIBCPP_OS_DEFINES
+#define _GLIBCPP_OS_DEFINES 1
+
+// System-specific #define, typedefs, corrections, etc, go here. This
+// file will come before all others.
+
+#define __off_t off_t
+#define __off64_t off64_t
+#define __ssize_t ssize_t
+
+// Use macro form of ctype functions to ensure __SB_masks is defined.
+#define _SB_CTYPE_MACROS 1
+
+/* HP-UX, for reasons unknown choose to use a different name for
+ the string to [unsigned] long long conversion routines.
+
+ Furthermore, instead of having the prototypes in stdlib.h like
+ everyone else, they put them into a non-standard header
+ <inttypes.h>. Ugh.
+
+ <inttypes.h> defines a variety of things, some of which we
+ probably do not want. So we don't want to include it here.
+
+ Luckily we can just declare strtoll and strtoull with the
+ __asm extension which effectively renames calls at the
+ source level without namespace pollution.
+
+ Also note that the compiler defines _INCLUDE_LONGLONG for C++
+ unconditionally, which makes intmax_t and uintmax_t long long
+ types.
+
+ We also force _GLIBCPP_USE_LONG_LONG here so that we don't have
+ to bastardize configure to deal with this sillyness. */
+namespace std
+{
+#ifndef __LP64__
+ __extension__ extern "C" long long strtoll (const char *, char **, int)
+ __asm ("__strtoll");
+ __extension__ extern "C" unsigned long long strtoull (const char *, char **, int)
+ __asm ("__strtoull");
+#else
+ __extension__ extern "C" long long strtoll (const char *, char **, int)
+ __asm ("strtol");
+ __extension__ extern "C" unsigned long long strtoull (const char *, char **, int)
+ __asm ("strtoul");
+#endif
+}
+
+#define _GLIBCPP_USE_LONG_LONG 1
+
+// HPUX on IA64 requires vtable to be 64 bit aligned even at 32 bit
+// mode. We need to pad the vtable structure to achieve this.
+#if !defined(_LP64) && defined (__ia64__)
+#define _GLIBCPP_VTABLE_PADDING 8
+typedef long int __padding_type;
+#endif
+
+// GCC on IA64 HP-UX uses the HP-UX system unwind library,
+// it does not have the _Unwind_Resume_or_Rethrow entry point
+// because that is not part of the standard IA64 Unwind ABI.
+#if defined (__ia64__)
+#define _LIBUNWIND_STD_ABI 1
+#endif
+
+/* We need explicit instantiation of the atomicity lock on HPPA if
+ there is no weak support. */
+#if !defined(_GLIBCPP_SUPPORTS_WEAK) && defined (__hppa__)
+#define _GLIBCPP_INST_ATOMICITY_LOCK 1
+#endif
+
+/* Don't use pragma weak in gthread headers. */
+#ifdef __hppa__
+#define _GLIBCPP_GTHREAD_USE_WEAK 0
+#endif
+#endif
diff --git a/contrib/libstdc++/config/os/irix/irix5.2/atomicity.h b/contrib/libstdc++/config/os/irix/irix5.2/atomicity.h
new file mode 100644
index 0000000..bac483e
--- /dev/null
+++ b/contrib/libstdc++/config/os/irix/irix5.2/atomicity.h
@@ -0,0 +1,50 @@
+// Low-level functions for atomic operations: IRIX version -*- C++ -*-
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _BITS_ATOMICITY_H
+#define _BITS_ATOMICITY_H 1
+
+#include <mutex.h>
+
+typedef long _Atomic_word;
+
+static inline _Atomic_word
+__exchange_and_add (_Atomic_word* __mem, int __val)
+{
+ return (_Atomic_word) test_then_add ((unsigned long*) __mem, __val);
+}
+
+
+static inline void
+__atomic_add (_Atomic_word* __mem, int __val)
+{
+ __exchange_and_add (__mem, __val);
+}
+
+#endif /* atomicity.h */
diff --git a/contrib/libstdc++/config/os/irix/irix5.2/ctype_base.h b/contrib/libstdc++/config/os/irix/irix5.2/ctype_base.h
new file mode 100644
index 0000000..2626cd3
--- /dev/null
+++ b/contrib/libstdc++/config/os/irix/irix5.2/ctype_base.h
@@ -0,0 +1,55 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997-1999, 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h on irix 5.2
+
+ struct ctype_base
+ {
+ // Non-standard typedefs.
+ typedef unsigned int* __to_type;
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+ typedef unsigned char mask;
+ static const mask upper = _U;
+ static const mask lower = _L;
+ static const mask alpha = _U | _L;
+ static const mask digit = _N;
+ static const mask xdigit = _X;
+ static const mask space = _S;
+ static const mask print = _U | _L | _N | _P | _B;
+ static const mask graph = _U | _L | _N | _P;
+ static const mask cntrl = _C;
+ static const mask punct = _P;
+ static const mask alnum = _U | _L | _N;
+ };
diff --git a/contrib/libstdc++/config/os/irix/irix5.2/ctype_inline.h b/contrib/libstdc++/config/os/irix/irix5.2/ctype_inline.h
new file mode 100644
index 0000000..89cf11b
--- /dev/null
+++ b/contrib/libstdc++/config/os/irix/irix5.2/ctype_inline.h
@@ -0,0 +1,67 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
+// functions go in ctype.cc
+
+ bool
+ ctype<char>::
+ is(mask __m, char __c) const
+ { return (_M_table)[static_cast<unsigned char>(__c)] & __m; }
+
+ const char*
+ ctype<char>::
+ is(const char* __low, const char* __high, mask* __vec) const
+ {
+ while (__low < __high)
+ *__vec++ = (_M_table)[static_cast<unsigned char>(*__low++)];
+ return __high;
+ }
+
+ const char*
+ ctype<char>::
+ scan_is(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high && ! this->is(__m, *__low))
+ ++__low;
+ return __low;
+ }
+
+ const char*
+ ctype<char>::
+ scan_not(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high && this->is(__m, *__low))
+ ++__low;
+ return __low;
+ }
diff --git a/contrib/libstdc++/config/os/irix/irix5.2/ctype_noninline.h b/contrib/libstdc++/config/os/irix/irix5.2/ctype_noninline.h
new file mode 100644
index 0000000..3cb29b6
--- /dev/null
+++ b/contrib/libstdc++/config/os/irix/irix5.2/ctype_noninline.h
@@ -0,0 +1,83 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997, 1998, 1999, 2001, 2002
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h
+
+ const ctype_base::mask*
+ ctype<char>::classic_table() throw()
+ { return __ctype + 1; }
+
+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+ size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(!__table ? classic_table() : __table)
+ { }
+
+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(!__table ? classic_table() : __table)
+ { }
+
+ char
+ ctype<char>::do_toupper(char __c) const
+ { return _toupper(__c); }
+
+ const char*
+ ctype<char>::do_toupper(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = do_toupper(*__low);
+ ++__low;
+ }
+ return __high;
+ }
+
+ char
+ ctype<char>::do_tolower(char __c) const
+ { return _tolower(__c); }
+
+ const char*
+ ctype<char>::do_tolower(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = do_tolower(*__low);
+ ++__low;
+ }
+ return __high;
+ }
+
diff --git a/contrib/libstdc++/config/os/irix/irix5.2/os_defines.h b/contrib/libstdc++/config/os/irix/irix5.2/os_defines.h
new file mode 100644
index 0000000..1d7f968
--- /dev/null
+++ b/contrib/libstdc++/config/os/irix/irix5.2/os_defines.h
@@ -0,0 +1,55 @@
+// Specific definitions for IRIX -*- C++ -*-
+
+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _GLIBCPP_OS_DEFINES
+#define _GLIBCPP_OS_DEFINES 1
+
+// System-specific #define, typedefs, corrections, etc, go here. This
+// file will come before all others.
+
+// We need large file support. There are two ways to turn it on: by
+// defining either _LARGEFILE64_SOURCE or _SGI_SOURCE. However, it
+// does not actually work to define only the former, as then
+// <sys/stat.h> is invalid: `st_blocks' is defined to be a macro, but
+// then used as a field name. So, we have to turn on _SGI_SOURCE.
+// That only works if _POSIX_SOURCE is turned off, so we have to
+// explicitly turn it off. (Some of the libio C files explicitly try
+// to turn it on.) _SGI_SOURCE is actually turned on implicitly via
+// the command-line.
+#undef _POSIX_SOURCE
+
+#define __off_t off_t
+#define __off64_t off64_t
+#define __ssize_t ssize_t
+
+// GCC does not use thunks on IRIX.
+#define _G_USING_THUNKS 0
+
+#endif
+
diff --git a/contrib/libstdc++/config/os/irix/irix6.5/atomicity.h b/contrib/libstdc++/config/os/irix/irix6.5/atomicity.h
new file mode 100644
index 0000000..c7f5c83
--- /dev/null
+++ b/contrib/libstdc++/config/os/irix/irix6.5/atomicity.h
@@ -0,0 +1,50 @@
+// Low-level functions for atomic operations: IRIX version -*- C++ -*-
+
+// Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _BITS_ATOMICITY_H
+#define _BITS_ATOMICITY_H 1
+
+#include <mutex.h>
+
+typedef long _Atomic_word;
+
+static inline _Atomic_word
+__exchange_and_add (_Atomic_word* __mem, int __val)
+{
+ return (_Atomic_word) test_then_add ((unsigned long*) __mem, __val);
+}
+
+
+static inline void
+__atomic_add (_Atomic_word* __mem, int __val)
+{
+ __exchange_and_add (__mem, __val);
+}
+
+#endif /* atomicity.h */
diff --git a/contrib/libstdc++/config/os/irix/irix6.5/ctype_base.h b/contrib/libstdc++/config/os/irix/irix6.5/ctype_base.h
new file mode 100644
index 0000000..08557d1
--- /dev/null
+++ b/contrib/libstdc++/config/os/irix/irix6.5/ctype_base.h
@@ -0,0 +1,55 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997-1999 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h on irix 6.5
+
+ struct ctype_base
+ {
+ // Non-standard typedefs.
+ typedef int* __to_type;
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+ typedef unsigned int mask;
+ static const mask upper = _ISupper;
+ static const mask lower = _ISlower;
+ static const mask alpha = _ISalpha;
+ static const mask digit = _ISdigit;
+ static const mask xdigit = _ISxdigit;
+ static const mask space = _ISspace;
+ static const mask print = _ISprint;
+ static const mask graph = _ISgraph;
+ static const mask cntrl = _IScntrl;
+ static const mask punct = _ISpunct;
+ static const mask alnum = _ISalnum;
+ };
diff --git a/contrib/libstdc++/config/os/irix/irix6.5/ctype_inline.h b/contrib/libstdc++/config/os/irix/irix6.5/ctype_inline.h
new file mode 100644
index 0000000..8c10c4d
--- /dev/null
+++ b/contrib/libstdc++/config/os/irix/irix6.5/ctype_inline.h
@@ -0,0 +1,67 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
+// functions go in ctype.cc
+
+ bool
+ ctype<char>::
+ is(mask __m, char __c) const
+ { return (_M_table)[static_cast<unsigned char>(__c)] & __m; }
+
+ const char*
+ ctype<char>::
+ is(const char* __low, const char* __high, mask* __vec) const
+ {
+ while (__low < __high)
+ *__vec++ = (_M_table)[static_cast<unsigned char>(*__low++)];
+ return __high;
+ }
+
+ const char*
+ ctype<char>::
+ scan_is(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high && ! this->is(__m, *__low))
+ ++__low;
+ return __low;
+ }
+
+ const char*
+ ctype<char>::
+ scan_not(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high && this->is(__m, *__low))
+ ++__low;
+ return __low;
+ }
diff --git a/contrib/libstdc++/config/os/irix/irix6.5/ctype_noninline.h b/contrib/libstdc++/config/os/irix/irix6.5/ctype_noninline.h
new file mode 100644
index 0000000..009e611
--- /dev/null
+++ b/contrib/libstdc++/config/os/irix/irix6.5/ctype_noninline.h
@@ -0,0 +1,84 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h
+
+ const ctype_base::mask*
+ ctype<char>::classic_table() throw()
+ { return 0; }
+
+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+ size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(!__table ?
+ (const mask*) (__libc_attr._ctype_tbl->_class + 1) : __table)
+ { }
+
+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(!__table ?
+ (const mask*) (__libc_attr._ctype_tbl->_class + 1) : __table)
+ { }
+
+ char
+ ctype<char>::do_toupper(char __c) const
+ { return _toupper(__c); }
+
+ const char*
+ ctype<char>::do_toupper(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = do_toupper(*__low);
+ ++__low;
+ }
+ return __high;
+ }
+
+ char
+ ctype<char>::do_tolower(char __c) const
+ { return _tolower(__c); }
+
+ const char*
+ ctype<char>::do_tolower(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = do_tolower(*__low);
+ ++__low;
+ }
+ return __high;
+ }
+
diff --git a/contrib/libstdc++/config/os/irix/irix6.5/os_defines.h b/contrib/libstdc++/config/os/irix/irix6.5/os_defines.h
new file mode 100644
index 0000000..838b747
--- /dev/null
+++ b/contrib/libstdc++/config/os/irix/irix6.5/os_defines.h
@@ -0,0 +1,55 @@
+// Specific definitions for IRIX -*- C++ -*-
+
+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _GLIBCPP_OS_DEFINES
+#define _GLIBCPP_OS_DEFINES 1
+
+// System-specific #define, typedefs, corrections, etc, go here. This
+// file will come before all others.
+
+// We need large file support. There are two ways to turn it on: by
+// defining either _LARGEFILE64_SOURCE or _SGI_SOURCE. However, it
+// does not actually work to define only the former, as then
+// <sys/stat.h> is invalid: `st_blocks' is defined to be a macro, but
+// then used as a field name. So, we have to turn on _SGI_SOURCE.
+// That only works if _POSIX_SOURCE is turned off, so we have to
+// explicitly turn it off. (Some of the libio C files explicitly try
+// to turn it on.) _SGI_SOURCE is actually turned on implicitly via
+// the command-line.
+#undef _POSIX_SOURCE
+
+#define __off_t off_t
+#define __off64_t off64_t
+#define __ssize_t ssize_t
+
+// GCC does not use thunks on IRIX.
+#define _G_USING_THUNKS 0
+
+#endif
+
diff --git a/contrib/libstdc++/config/os/mingw32/ctype_base.h b/contrib/libstdc++/config/os/mingw32/ctype_base.h
new file mode 100644
index 0000000..c077594
--- /dev/null
+++ b/contrib/libstdc++/config/os/mingw32/ctype_base.h
@@ -0,0 +1,58 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information, as gleaned from /mingw32/include/ctype.h.
+
+ struct ctype_base
+ {
+ // Non-standard typedefs.
+ typedef const int* __to_type;
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+ typedef unsigned short mask;
+ static const mask upper = _UPPER;
+ static const mask lower = _LOWER;
+ static const mask alpha = _ALPHA;
+ static const mask digit = _DIGIT;
+ static const mask xdigit = _HEX;
+ static const mask space = _SPACE;
+ static const mask print = (_BLANK | _PUNCT| _ALPHA | _DIGIT);
+ static const mask graph = (_PUNCT | _ALPHA | _DIGIT);
+ static const mask cntrl = _CONTROL;
+ static const mask punct = _PUNCT;
+ static const mask alnum = (_ALPHA | _DIGIT);
+ };
+
+
+
diff --git a/contrib/libstdc++/config/os/mingw32/ctype_inline.h b/contrib/libstdc++/config/os/mingw32/ctype_inline.h
new file mode 100644
index 0000000..979d607
--- /dev/null
+++ b/contrib/libstdc++/config/os/mingw32/ctype_inline.h
@@ -0,0 +1,71 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
+// functions go in ctype.cc
+
+
+ bool
+ ctype<char>::
+ is(mask __m, char __c) const
+ {
+ return (_M_table[static_cast<unsigned char>(__c) ] & __m);
+ }
+
+
+ const char*
+ ctype<char>::
+ is(const char* __low, const char* __high, mask* __vec) const
+ {
+ while (__low < __high)
+ *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
+ return __high;
+ }
+
+ const char*
+ ctype<char>::
+ scan_is(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high && !this->is(__m, *__low))
+ ++__low;
+ return __low;
+ }
+
+ const char*
+ ctype<char>::
+ scan_not(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high && this->is(__m, *__low) != 0)
+ ++__low;
+ return __low;
+ }
diff --git a/contrib/libstdc++/config/os/mingw32/ctype_noninline.h b/contrib/libstdc++/config/os/mingw32/ctype_noninline.h
new file mode 100644
index 0000000..998547c
--- /dev/null
+++ b/contrib/libstdc++/config/os/mingw32/ctype_noninline.h
@@ -0,0 +1,89 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /mingw32/include/ctype.h.
+
+ // This should be in mingw's ctype.h but isn't in older versions
+ // Static classic C-locale table. _ctype[0] is EOF
+ extern "C" unsigned short __declspec(dllimport) _ctype[];
+
+ const ctype_base::mask*
+ ctype<char>::classic_table() throw()
+ { return _ctype + 1; }
+
+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+ size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(__table ? __table : classic_table())
+ { }
+
+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(__table ? __table : classic_table())
+ { }
+
+ char
+ ctype<char>::do_toupper(char __c) const
+ { return (this->is(ctype_base::lower, __c) ? (__c - 'a' + 'A') : __c); }
+
+ const char*
+ ctype<char>::do_toupper(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = this->do_toupper(*__low);
+ ++__low;
+ }
+ return __high;
+ }
+
+ char
+ ctype<char>::do_tolower(char __c) const
+ { return (this->is(ctype_base::upper, __c) ? (__c - 'A' + 'a') : __c); }
+
+ const char*
+ ctype<char>::do_tolower(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = this->do_tolower(*__low);
+ ++__low;
+ }
+ return __high;
+ }
+
+
+
+
diff --git a/contrib/libstdc++/config/os/mingw32/os_defines.h b/contrib/libstdc++/config/os/mingw32/os_defines.h
new file mode 100644
index 0000000..5c99e09
--- /dev/null
+++ b/contrib/libstdc++/config/os/mingw32/os_defines.h
@@ -0,0 +1,37 @@
+// Specific definitions for generic platforms -*- C++ -*-
+
+// Copyright (C) 2000 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+
+#ifndef _GLIBCPP_OS_DEFINES
+# define _GLIBCPP_OS_DEFINES
+
+// System-specific #define, typedefs, corrections, etc, go here. This
+// file will come before all others.
+
+#endif
diff --git a/contrib/libstdc++/config/os/newlib/ctype_base.h b/contrib/libstdc++/config/os/newlib/ctype_base.h
new file mode 100644
index 0000000..973d410
--- /dev/null
+++ b/contrib/libstdc++/config/os/newlib/ctype_base.h
@@ -0,0 +1,57 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h, for solaris2.5.1
+
+// Support for Solaris 2.5.1
+
+ struct ctype_base
+ {
+ // Non-standard typedefs.
+ typedef const int* __to_type;
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+ typedef char mask;
+ static const mask upper = _U;
+ static const mask lower = _L;
+ static const mask alpha = _U | _L;
+ static const mask digit = _N;
+ static const mask xdigit = _X | _N;
+ static const mask space = _S;
+ static const mask print = _P | _U | _L | _N | _B;
+ static const mask graph = _P | _U | _L | _N;
+ static const mask cntrl = _C;
+ static const mask punct = _P;
+ static const mask alnum = _U | _L | _N;
+ };
diff --git a/contrib/libstdc++/config/os/newlib/ctype_inline.h b/contrib/libstdc++/config/os/newlib/ctype_inline.h
new file mode 100644
index 0000000..8381ace
--- /dev/null
+++ b/contrib/libstdc++/config/os/newlib/ctype_inline.h
@@ -0,0 +1,67 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
+// functions go in ctype.cc
+
+ bool
+ ctype<char>::
+ is(mask __m, char __c) const
+ { return _M_table[static_cast<unsigned char>(__c)] & __m; }
+
+ const char*
+ ctype<char>::
+ is(const char* __low, const char* __high, mask* __vec) const
+ {
+ while (__low < __high)
+ *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
+ return __high;
+ }
+
+ const char*
+ ctype<char>::
+ scan_is(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high && !this->is(__m, *__low))
+ ++__low;
+ return __low;
+ }
+
+ const char*
+ ctype<char>::
+ scan_not(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high && this->is(__m, *__low) != 0)
+ ++__low;
+ return __low;
+ }
diff --git a/contrib/libstdc++/config/os/newlib/ctype_noninline.h b/contrib/libstdc++/config/os/newlib/ctype_noninline.h
new file mode 100644
index 0000000..b511c4a
--- /dev/null
+++ b/contrib/libstdc++/config/os/newlib/ctype_noninline.h
@@ -0,0 +1,88 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h
+
+ const ctype_base::mask*
+ ctype<char>::classic_table() throw()
+ { return _ctype_ + 1; }
+
+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+ size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(__table ? __table : classic_table())
+ { }
+
+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(__table ? __table : classic_table())
+ { }
+
+ char
+ ctype<char>::do_toupper(char __c) const
+ {
+ int __x = __c;
+ return (this->is(ctype_base::lower, __c) ? (__x - 'a' + 'A') : __x);
+ }
+
+ const char*
+ ctype<char>::do_toupper(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = this->do_toupper(*__low);
+ ++__low;
+ }
+ return __high;
+ }
+
+ char
+ ctype<char>::do_tolower(char __c) const
+ {
+ int __x = __c;
+ return (this->is(ctype_base::upper, __c) ? (__x - 'A' + 'a') : __x);
+ }
+
+ const char*
+ ctype<char>::do_tolower(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = this->do_tolower(*__low);
+ ++__low;
+ }
+ return __high;
+ }
+
diff --git a/contrib/libstdc++/config/os/newlib/os_defines.h b/contrib/libstdc++/config/os/newlib/os_defines.h
new file mode 100644
index 0000000..1277661
--- /dev/null
+++ b/contrib/libstdc++/config/os/newlib/os_defines.h
@@ -0,0 +1,36 @@
+// Specific definitions for newlib -*- C++ -*-
+
+// Copyright (C) 2000 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _GLIBCPP_OS_DEFINES
+#define _GLIBCPP_OS_DEFINES 1
+
+// System-specific #define, typedefs, corrections, etc, go here. This
+// file will come before all others.
+
+#endif
diff --git a/contrib/libstdc++/config/os/qnx/qnx6.1/ctype_base.h b/contrib/libstdc++/config/os/qnx/qnx6.1/ctype_base.h
new file mode 100644
index 0000000..3d4800b
--- /dev/null
+++ b/contrib/libstdc++/config/os/qnx/qnx6.1/ctype_base.h
@@ -0,0 +1,55 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h.
+
+ struct ctype_base
+ {
+ // Non-standard typedefs.
+ typedef const unsigned char* __to_type;
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+ typedef short mask;
+ static const mask upper = _UP;
+ static const mask lower = _LO;
+ static const mask alpha = _LO | _UP | _XA;
+ static const mask digit = _DI;
+ static const mask xdigit = _XD;
+ static const mask space = _CN | _SP | _XS;
+ static const mask print = _DI | _LO | _PU | _SP | _UP | _XA;
+ static const mask graph = _DI | _LO | _PU | _UP | _XA;
+ static const mask cntrl = _BB;
+ static const mask punct = _PU;
+ static const mask alnum = _DI | _LO | _UP | _XA;
+ };
diff --git a/contrib/libstdc++/config/os/qnx/qnx6.1/ctype_inline.h b/contrib/libstdc++/config/os/qnx/qnx6.1/ctype_inline.h
new file mode 100644
index 0000000..24e0159
--- /dev/null
+++ b/contrib/libstdc++/config/os/qnx/qnx6.1/ctype_inline.h
@@ -0,0 +1,67 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
+// functions go in ctype.cc
+
+ bool
+ ctype<char>::
+ is(mask __m, char __c) const
+ { return _M_table[(unsigned char)(__c)] & __m; }
+
+ const char*
+ ctype<char>::
+ is(const char* __low, const char* __high, mask* __vec) const
+ {
+ while (__low < __high)
+ *__vec++ = _M_table[*__low++];
+ return __high;
+ }
+
+ const char*
+ ctype<char>::
+ scan_is(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high && !this->is(__m, *__low))
+ ++__low;
+ return __low;
+ }
+
+ const char*
+ ctype<char>::
+ scan_not(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high && this->is(__m, *__low) != 0)
+ ++__low;
+ return __low;
+ }
diff --git a/contrib/libstdc++/config/os/qnx/qnx6.1/ctype_noninline.h b/contrib/libstdc++/config/os/qnx/qnx6.1/ctype_noninline.h
new file mode 100644
index 0000000..cf34bd4
--- /dev/null
+++ b/contrib/libstdc++/config/os/qnx/qnx6.1/ctype_noninline.h
@@ -0,0 +1,79 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h
+
+ const ctype_base::mask*
+ ctype<char>::classic_table() throw()
+ { return 0; }
+
+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+ size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL), _M_table(__table ? __table : _Ctype)
+ { }
+
+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL), _M_table(__table ? __table : _Ctype)
+ { }
+
+ char
+ ctype<char>::do_toupper(char __c) const
+ { return ::toupper((int) __c); }
+
+ const char*
+ ctype<char>::do_toupper(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = ::toupper((int) *__low);
+ ++__low;
+ }
+ return __high;
+ }
+
+ char
+ ctype<char>::do_tolower(char __c) const
+ { return ::tolower((int) __c); }
+
+ const char*
+ ctype<char>::do_tolower(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = ::tolower((int) *__low);
+ ++__low;
+ }
+ return __high;
+ }
diff --git a/contrib/libstdc++/config/os/qnx/qnx6.1/os_defines.h b/contrib/libstdc++/config/os/qnx/qnx6.1/os_defines.h
new file mode 100644
index 0000000..23cf097
--- /dev/null
+++ b/contrib/libstdc++/config/os/qnx/qnx6.1/os_defines.h
@@ -0,0 +1,36 @@
+// Specific definitions for QNX 6.1 -*- C++ -*-
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _GLIBCPP_OS_DEFINES
+#define _GLIBCPP_OS_DEFINES 1
+
+// System-specific #define, typedefs, corrections, etc, go here. This
+// file will come before all others.
+
+#endif
diff --git a/contrib/libstdc++/config/os/solaris/solaris2.5/ctype_base.h b/contrib/libstdc++/config/os/solaris/solaris2.5/ctype_base.h
new file mode 100644
index 0000000..d4f3fe7
--- /dev/null
+++ b/contrib/libstdc++/config/os/solaris/solaris2.5/ctype_base.h
@@ -0,0 +1,55 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997-1999, 2000, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h, for solaris2.5.1
+
+ struct ctype_base
+ {
+ // Non-standard typedefs.
+ typedef const int* __to_type;
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+ typedef unsigned char mask;
+ static const mask upper = 01;
+ static const mask lower = 02;
+ static const mask alpha = 01 | 02;
+ static const mask digit = 04;
+ static const mask xdigit = 0200;
+ static const mask space = 010;
+ static const mask print = 020 | 01 | 02 | 04 | 0100;
+ static const mask graph = 020 | 01 | 02 | 04;
+ static const mask cntrl = 040;
+ static const mask punct = 020;
+ static const mask alnum = 01 | 02 | 04;
+ };
diff --git a/contrib/libstdc++/config/os/solaris/solaris2.5/ctype_inline.h b/contrib/libstdc++/config/os/solaris/solaris2.5/ctype_inline.h
new file mode 100644
index 0000000..93a04aa
--- /dev/null
+++ b/contrib/libstdc++/config/os/solaris/solaris2.5/ctype_inline.h
@@ -0,0 +1,69 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997-1999, 2000, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
+// functions go in ctype.cc
+
+ bool
+ ctype<char>::
+ is(mask __m, char __c) const
+ { return (_M_table + 1)[static_cast<unsigned char>(__c)] & __m; }
+
+ const char*
+ ctype<char>::
+ is(const char* __low, const char* __high, mask* __vec) const
+ {
+ while (__low < __high)
+ *__vec++ = (_M_table + 1)[static_cast<unsigned char>(*__low++)];
+ return __high;
+ }
+
+ const char*
+ ctype<char>::
+ scan_is(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high
+ && !((_M_table + 1)[static_cast<unsigned char>(*__low)] & __m))
+ ++__low;
+ return __low;
+ }
+
+ const char*
+ ctype<char>::
+ scan_not(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high
+ && ((_M_table + 1)[static_cast<unsigned char>(*__low)] & __m) != 0)
+ ++__low;
+ return __low;
+ }
diff --git a/contrib/libstdc++/config/os/solaris/solaris2.5/ctype_noninline.h b/contrib/libstdc++/config/os/solaris/solaris2.5/ctype_noninline.h
new file mode 100644
index 0000000..a3c27b0
--- /dev/null
+++ b/contrib/libstdc++/config/os/solaris/solaris2.5/ctype_noninline.h
@@ -0,0 +1,81 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h
+
+ const ctype_base::mask*
+ ctype<char>::classic_table() throw()
+ { return __ctype; }
+
+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+ size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(__table ? __table : classic_table())
+ { }
+
+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(__table ? __table : classic_table())
+ { }
+
+ char
+ ctype<char>::do_toupper(char __c) const
+ { return ((_M_table + 258)[static_cast<unsigned char>(__c)]); }
+
+ const char*
+ ctype<char>::do_toupper(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = this->do_toupper(*__low);
+ ++__low;
+ }
+ return __high;
+ }
+
+ char
+ ctype<char>::do_tolower(char __c) const
+ { return ((_M_table + 258)[static_cast<unsigned char>(__c)]); }
+
+ const char*
+ ctype<char>::do_tolower(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = this->do_tolower(*__low);
+ ++__low;
+ }
+ return __high;
+ }
diff --git a/contrib/libstdc++/config/os/solaris/solaris2.5/os_defines.h b/contrib/libstdc++/config/os/solaris/solaris2.5/os_defines.h
new file mode 100644
index 0000000..a9be0bf
--- /dev/null
+++ b/contrib/libstdc++/config/os/solaris/solaris2.5/os_defines.h
@@ -0,0 +1,42 @@
+// Specific definitions for Solaris 2.5 -*- C++ -*-
+
+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _GLIBCPP_OS_DEFINES
+#define _GLIBCPP_OS_DEFINES 1
+
+// System-specific #define, typedefs, corrections, etc, go here. This
+// file will come before all others.
+
+// These are typedefs which libio assumes are already in place (because
+// they really are, under Linux).
+#define __off_t off_t
+#define __off64_t off64_t
+#define __ssize_t ssize_t
+
+#endif
diff --git a/contrib/libstdc++/config/os/solaris/solaris2.6/ctype_base.h b/contrib/libstdc++/config/os/solaris/solaris2.6/ctype_base.h
new file mode 100644
index 0000000..5f8d10a
--- /dev/null
+++ b/contrib/libstdc++/config/os/solaris/solaris2.6/ctype_base.h
@@ -0,0 +1,56 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997-1999, 2000 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h. Looks like this
+// only works with solaris2.6.
+
+ struct ctype_base
+ {
+ // Non-standard typedefs.
+ typedef long* __to_type;
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+ typedef unsigned int mask;
+ static const mask upper = _ISUPPER;
+ static const mask lower = _ISLOWER;
+ static const mask alpha = _ISALPHA;
+ static const mask digit = _ISDIGIT;
+ static const mask xdigit = _ISXDIGIT;
+ static const mask space = _ISSPACE;
+ static const mask print = _ISPRINT;
+ static const mask graph = _ISGRAPH;
+ static const mask cntrl = _ISCNTRL;
+ static const mask punct = _ISPUNCT;
+ static const mask alnum = _ISALNUM;
+ };
diff --git a/contrib/libstdc++/config/os/solaris/solaris2.6/ctype_inline.h b/contrib/libstdc++/config/os/solaris/solaris2.6/ctype_inline.h
new file mode 100644
index 0000000..0bd56a1
--- /dev/null
+++ b/contrib/libstdc++/config/os/solaris/solaris2.6/ctype_inline.h
@@ -0,0 +1,76 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
+// functions go in ctype.cc
+
+ bool
+ ctype<char>::
+ is(mask __m, char __c) const
+ { return _M_table[static_cast<unsigned char>(__c)] & __m; }
+
+ const char*
+ ctype<char>::
+ is(const char* __low, const char* __high, mask* __vec) const
+ {
+ const int __bitmasksize = sizeof(mask) * 8;
+ for (;__low < __high; ++__vec, ++__low)
+ {
+ mask __m = _M_table[static_cast<unsigned char>(*__low)];
+ int __i = 0; // Lowest bitmask value from ctype_base.
+ while (__i < __bitmasksize && !(__m & static_cast<mask>(1 << __i)))
+ ++__i;
+ *__vec = static_cast<mask>(1 << __i);
+ }
+ return __high;
+ }
+
+ const char*
+ ctype<char>::
+ scan_is(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high
+ && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
+ ++__low;
+ return __low;
+ }
+
+ const char*
+ ctype<char>::
+ scan_not(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high
+ && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
+ ++__low;
+ return __low;
+ }
diff --git a/contrib/libstdc++/config/os/solaris/solaris2.6/ctype_noninline.h b/contrib/libstdc++/config/os/solaris/solaris2.6/ctype_noninline.h
new file mode 100644
index 0000000..f65cfe7
--- /dev/null
+++ b/contrib/libstdc++/config/os/solaris/solaris2.6/ctype_noninline.h
@@ -0,0 +1,81 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h
+
+ const ctype_base::mask*
+ ctype<char>::classic_table() throw()
+ { return __ctype_mask; }
+
+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+ size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(__trans_upper), _M_tolower(__trans_lower),
+ _M_table(__table ? __table : classic_table())
+ { }
+
+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(__trans_upper), _M_tolower(__trans_lower),
+ _M_table(__table ? __table : classic_table())
+ { }
+
+ char
+ ctype<char>::do_toupper(char __c) const
+ { return _M_toupper[static_cast<unsigned char>(__c)]; }
+
+ const char*
+ ctype<char>::do_toupper(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = _M_toupper[static_cast<unsigned char>(*__low)];
+ ++__low;
+ }
+ return __high;
+ }
+
+ char
+ ctype<char>::do_tolower(char __c) const
+ { return _M_tolower[static_cast<unsigned char>(__c)]; }
+
+ const char*
+ ctype<char>::do_tolower(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = _M_tolower[static_cast<unsigned char>(*__low)];
+ ++__low;
+ }
+ return __high;
+ }
diff --git a/contrib/libstdc++/config/os/solaris/solaris2.6/os_defines.h b/contrib/libstdc++/config/os/solaris/solaris2.6/os_defines.h
new file mode 100644
index 0000000..aa9ecd6
--- /dev/null
+++ b/contrib/libstdc++/config/os/solaris/solaris2.6/os_defines.h
@@ -0,0 +1,42 @@
+// Specific definitions for Solaris 2.6 -*- C++ -*-
+
+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _GLIBCPP_OS_DEFINES
+#define _GLIBCPP_OS_DEFINES 1
+
+// System-specific #define, typedefs, corrections, etc, go here. This
+// file will come before all others.
+
+// These are typedefs which libio assumes are already in place (because
+// they really are, under Linux).
+#define __off_t off_t
+#define __off64_t off64_t
+#define __ssize_t ssize_t
+
+#endif
diff --git a/contrib/libstdc++/config/os/solaris/solaris2.7/ctype_base.h b/contrib/libstdc++/config/os/solaris/solaris2.7/ctype_base.h
new file mode 100644
index 0000000..9b8bddc
--- /dev/null
+++ b/contrib/libstdc++/config/os/solaris/solaris2.7/ctype_base.h
@@ -0,0 +1,57 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997-1999, 2000 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h. Looks like this
+// only works with solaris2.7 and solaris2.8. Thanks for not changing
+// things, sun engineers!
+
+ struct ctype_base
+ {
+ // Non-standard typedefs.
+ typedef int* __to_type;
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+ typedef unsigned int mask;
+ static const mask upper = _ISUPPER;
+ static const mask lower = _ISLOWER;
+ static const mask alpha = _ISALPHA;
+ static const mask digit = _ISDIGIT;
+ static const mask xdigit = _ISXDIGIT;
+ static const mask space = _ISSPACE;
+ static const mask print = _ISPRINT;
+ static const mask graph = _ISGRAPH;
+ static const mask cntrl = _ISCNTRL;
+ static const mask punct = _ISPUNCT;
+ static const mask alnum = _ISALNUM;
+ };
diff --git a/contrib/libstdc++/config/os/solaris/solaris2.7/ctype_inline.h b/contrib/libstdc++/config/os/solaris/solaris2.7/ctype_inline.h
new file mode 100644
index 0000000..af409c8
--- /dev/null
+++ b/contrib/libstdc++/config/os/solaris/solaris2.7/ctype_inline.h
@@ -0,0 +1,69 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
+// functions go in ctype.cc
+
+ bool
+ ctype<char>::
+ is(mask __m, char __c) const
+ { return _M_table[static_cast<unsigned char>(__c)] & __m; }
+
+ const char*
+ ctype<char>::
+ is(const char* __low, const char* __high, mask* __vec) const
+ {
+ while (__low < __high)
+ *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
+ return __high;
+ }
+
+ const char*
+ ctype<char>::
+ scan_is(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high
+ && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
+ ++__low;
+ return __low;
+ }
+
+ const char*
+ ctype<char>::
+ scan_not(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high
+ && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
+ ++__low;
+ return __low;
+ }
diff --git a/contrib/libstdc++/config/os/solaris/solaris2.7/ctype_noninline.h b/contrib/libstdc++/config/os/solaris/solaris2.7/ctype_noninline.h
new file mode 100644
index 0000000..c8b11a9
--- /dev/null
+++ b/contrib/libstdc++/config/os/solaris/solaris2.7/ctype_noninline.h
@@ -0,0 +1,82 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h
+
+ const ctype_base::mask*
+ ctype<char>::classic_table() throw()
+ { return __ctype_mask; }
+
+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+ size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(__trans_upper), _M_tolower(__trans_lower),
+ _M_table(__table ? __table : classic_table())
+ { }
+
+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(__trans_upper), _M_tolower(__trans_lower),
+ _M_table(__table ? __table : classic_table())
+ { }
+
+ char
+ ctype<char>::do_toupper(char __c) const
+ { return _M_toupper[static_cast<unsigned char>(__c)]; }
+
+ const char*
+ ctype<char>::do_toupper(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = _M_toupper[static_cast<unsigned char>(*__low)];
+ ++__low;
+ }
+ return __high;
+ }
+
+ char
+ ctype<char>::do_tolower(char __c) const
+ { return _M_tolower[static_cast<unsigned char>(__c)]; }
+
+ const char*
+ ctype<char>::do_tolower(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = _M_tolower[static_cast<unsigned char>(*__low)];
+ ++__low;
+ }
+ return __high;
+ }
diff --git a/contrib/libstdc++/config/os/solaris/solaris2.7/os_defines.h b/contrib/libstdc++/config/os/solaris/solaris2.7/os_defines.h
new file mode 100644
index 0000000..cf53fa4
--- /dev/null
+++ b/contrib/libstdc++/config/os/solaris/solaris2.7/os_defines.h
@@ -0,0 +1,43 @@
+// Specific definitions for Solaris 7,8 -*- C++ -*-
+
+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _GLIBCPP_OS_DEFINES
+#define _GLIBCPP_OS_DEFINES 1
+
+// System-specific #define, typedefs, corrections, etc, go here. This
+// file will come before all others.
+
+// These are typedefs which libio assumes are already in place (because
+// they really are, under Linux).
+#define __off_t off_t
+#define __off64_t off64_t
+#define __ssize_t ssize_t
+
+#endif
+
diff --git a/contrib/libstdc++/config/os/windiss/ctype_base.h b/contrib/libstdc++/config/os/windiss/ctype_base.h
new file mode 100644
index 0000000..acd0526
--- /dev/null
+++ b/contrib/libstdc++/config/os/windiss/ctype_base.h
@@ -0,0 +1,55 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Default information, may not be appropriate for specific host.
+
+ struct ctype_base
+ {
+ // Non-standard typedefs.
+ typedef const int* __to_type;
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+ typedef unsigned int mask;
+ static const mask upper = _U;
+ static const mask lower = _L;
+ static const mask alpha = _U | _L;
+ static const mask digit = _N;
+ static const mask xdigit = _X;
+ static const mask space = _S;
+ static const mask print = _U | _L | _N | _P | _B;
+ static const mask graph = _U | _L | _N | _P;
+ static const mask cntrl = _C;
+ static const mask punct = _P;
+ static const mask alnum = _U | _L | _N;
+ };
diff --git a/contrib/libstdc++/config/os/windiss/ctype_inline.h b/contrib/libstdc++/config/os/windiss/ctype_inline.h
new file mode 100644
index 0000000..1e20515
--- /dev/null
+++ b/contrib/libstdc++/config/os/windiss/ctype_inline.h
@@ -0,0 +1,125 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
+// functions go in ctype.cc
+
+// The following definitions are portable, but insanely slow. If one
+// cares at all about performance, then specialized ctype
+// functionality should be added for the native os in question: see
+// the config/os/bits/ctype_*.h files.
+
+ bool
+ ctype<char>::
+ is(mask __m, char __c) const
+ {
+ bool __ret;
+ switch (__m)
+ {
+ case space:
+ __ret = isspace(__c);
+ break;
+ case print:
+ __ret = isprint(__c);
+ break;
+ case cntrl:
+ __ret = iscntrl(__c);
+ break;
+ case upper:
+ __ret = isupper(__c);
+ break;
+ case lower:
+ __ret = islower(__c);
+ break;
+ case alpha:
+ __ret = isalpha(__c);
+ break;
+ case digit:
+ __ret = isdigit(__c);
+ break;
+ case punct:
+ __ret = ispunct(__c);
+ break;
+ case xdigit:
+ __ret = isxdigit(__c);
+ break;
+ case alnum:
+ __ret = isalnum(__c);
+ break;
+ case graph:
+ __ret = isgraph(__c);
+ break;
+ default:
+ __ret = false;
+ break;
+ }
+ return __ret;
+ }
+
+ const char*
+ ctype<char>::
+ is(const char* __low, const char* __high, mask* __vec) const
+ {
+ const int __bitmasksize = 11; // Highest bitmask in ctype_base == 10
+ for (;__low < __high; ++__vec, ++__low)
+ {
+ mask __m = 0;
+ int __i = 0; // Lowest bitmask in ctype_base == 0
+ for (;__i < __bitmasksize; ++__i)
+ {
+ mask __bit = static_cast<mask>(1 << __i);
+ if (this->is(__bit, *__low))
+ __m |= __bit;
+ }
+ *__vec = __m;
+ }
+ return __high;
+ }
+
+ const char*
+ ctype<char>::
+ scan_is(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high && !this->is(__m, *__low))
+ ++__low;
+ return __low;
+ }
+
+ const char*
+ ctype<char>::
+ scan_not(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high && this->is(__m, *__low) != 0)
+ ++__low;
+ return __low;
+ }
diff --git a/contrib/libstdc++/config/os/windiss/ctype_noninline.h b/contrib/libstdc++/config/os/windiss/ctype_noninline.h
new file mode 100644
index 0000000..0d34695
--- /dev/null
+++ b/contrib/libstdc++/config/os/windiss/ctype_noninline.h
@@ -0,0 +1,82 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2002
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h
+
+ const ctype_base::mask*
+ ctype<char>::classic_table() throw()
+ { return 0; }
+
+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+ size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(__table == 0 ? classic_table() : __table)
+ { }
+
+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(NULL), _M_tolower(NULL),
+ _M_table(__table == 0 ? classic_table() : __table)
+ { }
+
+ char
+ ctype<char>::do_toupper(char __c) const
+ { return ::toupper((int) __c); }
+
+ const char*
+ ctype<char>::do_toupper(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = ::toupper((int) *__low);
+ ++__low;
+ }
+ return __high;
+ }
+
+ char
+ ctype<char>::do_tolower(char __c) const
+ { return ::tolower((int) __c); }
+
+ const char*
+ ctype<char>::do_tolower(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = ::tolower((int) *__low);
+ ++__low;
+ }
+ return __high;
+ }
diff --git a/contrib/libstdc++/config/os/windiss/os_defines.h b/contrib/libstdc++/config/os/windiss/os_defines.h
new file mode 100644
index 0000000..dd8b008
--- /dev/null
+++ b/contrib/libstdc++/config/os/windiss/os_defines.h
@@ -0,0 +1,37 @@
+// Specific definitions for generic platforms -*- C++ -*-
+
+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+
+#ifndef _GLIBCPP_OS_DEFINES
+#define _GLIBCPP_OS_DEFINES 1
+
+// System-specific #define, typedefs, corrections, etc, go here. This
+// file will come before all others.
+
+#endif
diff --git a/contrib/libstdc++/configure b/contrib/libstdc++/configure
index dcbe7bb..89d848c 100755
--- a/contrib/libstdc++/configure
+++ b/contrib/libstdc++/configure
@@ -34,8 +34,6 @@ ac_help="$ac_help
ac_help="$ac_help
--with-pic try to use only PIC/non-PIC objects [default=use both]"
ac_help="$ac_help
- --enable-debug extra debugging, turn off optimization [default=no]"
-ac_help="$ac_help
--enable-cstdio enable stdio for target io package.
--enable-cstdio=LIB use LIB target-speific io package. [default=stdio]
"
@@ -46,23 +44,28 @@ ac_help="$ac_help
ac_help="$ac_help
--enable-nls use Native Language Support (default)"
ac_help="$ac_help
+ --enable-cheaders=MODEL construct "C" header files for g++ [default=c_std]"
+ac_help="$ac_help
--enable-c-mbchar enable multibyte (wide) characters [default=yes]"
ac_help="$ac_help
--enable-c99 turns on 'ISO/IEC 9899:1999 support' [default=yes]"
ac_help="$ac_help
--enable-long-long turns on 'long long' [default=yes]"
ac_help="$ac_help
- --enable-cheaders construct "C" header files for g++ [default=c_std]"
-ac_help="$ac_help
- --enable-cxx-flags=FLAGS pass compiler FLAGS when building library;
- [default=none]"
-ac_help="$ac_help
--enable-sjlj-exceptions force use of builtin_setjmp for exceptions"
ac_help="$ac_help
--enable-libunwind-exceptions force use of libunwind for exceptions"
ac_help="$ac_help
--enable-concept-checks use Boost-derived template checks [default=no]"
ac_help="$ac_help
+ --enable-cxx-flags=FLAGS pass compiler FLAGS when building library;
+ [default=]"
+ac_help="$ac_help
+ --enable-debug build extra debug library [default=no]"
+ac_help="$ac_help
+ --enable-debug-flags=FLAGS pass compiler FLAGS when building debug
+ library;[default=none]"
+ac_help="$ac_help
--enable-symvers=style enables symbol versioning of the shared library [default=yes]"
ac_help="$ac_help
--with-gxx-include-dir the installation directory for include files"
@@ -582,13 +585,13 @@ fi
# This works around the fact that libtool configuration may change LD
# for this particular configuration, but some shells, instead of
# keeping the changes in LD private, export them just because LD is
-# exported.
+# exported. Only used at the end of this file.
ORIGINAL_LD_FOR_MULTILIBS=$LD
PACKAGE=libstdc++
# For libtool versioning info, format is CURRENT:REVISION:AGE
-libtool_VERSION=5:2:0
+libtool_VERSION=5:5:0
@@ -646,6 +649,17 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
# Gets build, host, target, *_vendor, *_cpu, *_os, etc.
+#
+# You will slowly go insane if you do not grok the following fact: when
+# building v3 as part of the compiler, the top-level /target/ becomes the
+# library's /host/. `configure' then causes --target to default to --host,
+# exactly like any other package using autoconf. Therefore, 'target' and
+# 'host' will always be the same. This makes sense both for native and
+# cross compilers, just think about it for a little while. :-)
+#
+# Also, if v3 is being configured as part of a cross compiler, the top-level
+# configure script will pass the "real" host as $with_cross_host.
+#
# AC 2.5x sets target_alias iff the user specified --target, but we use it
# everywhere, so we set it here just to be sure. In AC 2.13
# AC_CANONICAL_TARGET was known as AC_CANONICAL_SYSTEM.
@@ -677,7 +691,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:681: checking host system type" >&5
+echo "configure:695: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@@ -698,7 +712,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$host" 1>&6
echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:702: checking target system type" >&5
+echo "configure:716: checking target system type" >&5
target_alias=$target
case "$target_alias" in
@@ -716,7 +730,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$target" 1>&6
echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:720: checking build system type" >&5
+echo "configure:734: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@@ -741,9 +755,8 @@ test "$host_alias" != "$target_alias" &&
target_alias=${target_alias-$target}
-# Runs configure.host and configure.target, as well as finds CC, CXX
-# and assorted other critical bits. Have to run this before the
-# GLIBCPP_ENABLE_* macros below.
+# Runs configure.target, finds CC, CXX and assorted other critical bits.
+# Must run this before the GLIBCPP_ENABLE_* macros below.
if test $host != $build; then
ac_tool_prefix=${host_alias}-
else
@@ -751,12 +764,12 @@ else
fi
echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:755: checking for Cygwin environment" >&5
+echo "configure:768: checking for Cygwin environment" >&5
if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 760 "configure"
+#line 773 "configure"
#include "confdefs.h"
int main() {
@@ -767,7 +780,7 @@ int main() {
return __CYGWIN__;
; return 0; }
EOF
-if { (eval echo configure:771: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:784: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_cygwin=yes
else
@@ -784,19 +797,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
CYGWIN=
test "$ac_cv_cygwin" = yes && CYGWIN=yes
echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:788: checking for mingw32 environment" >&5
+echo "configure:801: checking for mingw32 environment" >&5
if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 793 "configure"
+#line 806 "configure"
#include "confdefs.h"
int main() {
return __MINGW32__;
; return 0; }
EOF
-if { (eval echo configure:800: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:813: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_mingw32=yes
else
@@ -813,9 +826,6 @@ echo "$ac_t""$ac_cv_mingw32" 1>&6
MINGW32=
test "$ac_cv_mingw32" = yes && MINGW32=yes
-
-#possibly test for the presence of the compiler sources here?
-
# Export build and source directories.
# These need to be absolute paths, yet at the same time need to
# canonicalize only relative paths, because then amd will not unmount
@@ -835,7 +845,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:839: checking for $ac_word" >&5
+echo "configure:849: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -869,7 +879,7 @@ done
# force a particular method.
#ac_cv_prog_LN_S='cp -p'
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:873: checking whether ln -s works" >&5
+echo "configure:883: checking whether ln -s works" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -926,7 +936,7 @@ fi
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:930: checking for $ac_word" >&5
+echo "configure:940: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -956,7 +966,7 @@ fi
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:960: checking for $ac_word" >&5
+echo "configure:970: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1005,7 +1015,7 @@ fi
fi
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1009: checking whether we are using GNU C" >&5
+echo "configure:1019: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1014,7 +1024,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1018: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1028: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
@@ -1029,7 +1039,7 @@ echo "$ac_t""$ac_cv_prog_gcc" 1>&6
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1033: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1043: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1072,7 +1082,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1076: checking for $ac_word" >&5
+echo "configure:1086: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_glibcpp_CXX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1107,7 +1117,7 @@ test -n "$glibcpp_CXX" || glibcpp_CXX="gcc"
test -z "$glibcpp_CXX" && { echo "configure: error: no acceptable c++ found in \$PATH" 1>&2; exit 1; }
echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
-echo "configure:1111: checking whether we are using GNU C++" >&5
+echo "configure:1121: checking whether we are using GNU C++" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1116,7 +1126,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1120: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1130: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gxx=yes
else
ac_cv_prog_gxx=no
@@ -1131,7 +1141,7 @@ echo "$ac_t""$ac_cv_prog_gxx" 1>&6
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS=
echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:1135: checking whether ${CXX-g++} accepts -g" >&5
+echo "configure:1145: checking whether ${CXX-g++} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1161,14 +1171,14 @@ echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6
# For directory versioning (e.g., headers) and other variables.
echo $ac_n "checking for GCC version number""... $ac_c" 1>&6
-echo "configure:1165: checking for GCC version number" >&5
+echo "configure:1175: checking for GCC version number" >&5
gcc_version=`$glibcpp_CXX -dumpversion`
echo "$ac_t""$gcc_version" 1>&6
# For some reason, gettext needs this.
echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6
-echo "configure:1172: checking for strerror in -lcposix" >&5
+echo "configure:1182: checking for strerror in -lcposix" >&5
ac_lib_var=`echo cposix'_'strerror | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1176,7 +1186,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lcposix $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1180 "configure"
+#line 1190 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1187,7 +1197,7 @@ int main() {
strerror()
; return 0; }
EOF
-if { (eval echo configure:1191: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1213,7 +1223,7 @@ fi
# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
set dummy ${ac_tool_prefix}as; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1217: checking for $ac_word" >&5
+echo "configure:1227: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1245,7 +1255,7 @@ fi
# 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
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1249: checking for $ac_word" >&5
+echo "configure:1259: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1277,7 +1287,7 @@ fi
# 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
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1281: checking for $ac_word" >&5
+echo "configure:1291: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1309,7 +1319,7 @@ if test -n "$ac_tool_prefix"; then
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1313: checking for $ac_word" >&5
+echo "configure:1323: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1353,7 +1363,7 @@ fi
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1357: checking for a BSD compatible install" >&5
+echo "configure:1367: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1407,7 +1417,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:1411: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:1421: checking whether to enable maintainer-specific portions of Makefiles" >&5
# Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
if test "${enable_maintainer_mode+set}" = set; then
enableval="$enable_maintainer_mode"
@@ -1445,7 +1455,7 @@ fi
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:1449: checking for executable suffix" >&5
+echo "configure:1459: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1455,7 +1465,7 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
- if { (eval echo configure:1459: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ if { (eval echo configure:1469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
*.c | *.o | *.obj) ;;
@@ -1485,15 +1495,15 @@ ac_exeext=$EXEEXT
# Find platform-specific directories containing configuration info. In
# addition to possibly modifying the same flags, it also sets up symlinks.
- . ${glibcpp_basedir}/configure.target
- echo "$ac_t""CPU config directory is $cpu_include_dir" 1>&6
- echo "$ac_t""OS config directory is $os_include_dir" 1>&6
+ . ${glibcpp_basedir}/configure.target
+ echo "$ac_t""CPU config directory is $cpu_include_dir" 1>&6
+ echo "$ac_t""OS config directory is $os_include_dir" 1>&6
am__api_version="1.4"
echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:1497: checking whether build environment is sane" >&5
+echo "configure:1507: checking whether build environment is sane" >&5
# Just in case
sleep 1
echo timestamp > conftestfile
@@ -1550,7 +1560,7 @@ test "$program_suffix" != NONE &&
test "$program_transform_name" = "" && program_transform_name="s,x,x,"
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:1554: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:1564: checking whether ${MAKE-make} sets \${MAKE}" >&5
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1596,7 +1606,7 @@ EOF
missing_dir=`cd $ac_aux_dir && pwd`
echo $ac_n "checking for working aclocal-${am__api_version}""... $ac_c" 1>&6
-echo "configure:1600: checking for working aclocal-${am__api_version}" >&5
+echo "configure:1610: checking for working aclocal-${am__api_version}" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -1609,7 +1619,7 @@ else
fi
echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:1613: checking for working autoconf" >&5
+echo "configure:1623: checking for working autoconf" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -1622,7 +1632,7 @@ else
fi
echo $ac_n "checking for working automake-${am__api_version}""... $ac_c" 1>&6
-echo "configure:1626: checking for working automake-${am__api_version}" >&5
+echo "configure:1636: checking for working automake-${am__api_version}" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -1635,7 +1645,7 @@ else
fi
echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:1639: checking for working autoheader" >&5
+echo "configure:1649: checking for working autoheader" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -1648,7 +1658,7 @@ else
fi
echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:1652: checking for working makeinfo" >&5
+echo "configure:1662: checking for working makeinfo" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -1747,7 +1757,7 @@ ac_prog=ld
if test "$GCC" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
-echo "configure:1751: checking for ld used by GCC" >&5
+echo "configure:1761: checking for ld used by GCC" >&5
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return which upsets mingw
@@ -1777,10 +1787,10 @@ echo "configure:1751: checking for ld used by GCC" >&5
esac
elif test "$with_gnu_ld" = yes; then
echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:1781: checking for GNU ld" >&5
+echo "configure:1791: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:1784: checking for non-GNU ld" >&5
+echo "configure:1794: checking for non-GNU ld" >&5
fi
if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1815,7 +1825,7 @@ else
fi
test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
-echo "configure:1819: checking if the linker ($LD) is GNU ld" >&5
+echo "configure:1829: checking if the linker ($LD) is GNU ld" >&5
if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1832,7 +1842,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
-echo "configure:1836: checking for $LD option to reload object files" >&5
+echo "configure:1846: checking for $LD option to reload object files" >&5
if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1844,7 +1854,7 @@ reload_flag=$lt_cv_ld_reload_flag
test -n "$reload_flag" && reload_flag=" $reload_flag"
echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:1848: checking for BSD-compatible nm" >&5
+echo "configure:1858: checking for BSD-compatible nm" >&5
if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1882,7 +1892,7 @@ NM="$lt_cv_path_NM"
echo "$ac_t""$NM" 1>&6
echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6
-echo "configure:1886: checking how to recognise dependant libraries" >&5
+echo "configure:1896: checking how to recognise dependant libraries" >&5
if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1954,9 +1964,18 @@ gnu*)
;;
hpux10.20*|hpux11*)
- 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_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ case $host_cpu in
+ hppa*)
+ 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_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ 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_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ esac
;;
irix5* | irix6*)
@@ -2046,13 +2065,13 @@ file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:2050: checking for object suffix" >&5
+echo "configure:2069: checking for object suffix" >&5
if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
rm -f conftest*
echo 'int i = 1;' > conftest.$ac_ext
-if { (eval echo configure:2056: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2075: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
for ac_file in conftest.*; do
case $ac_file in
*.c) ;;
@@ -2076,7 +2095,7 @@ case $deplibs_check_method in
file_magic*)
if test "$file_magic_cmd" = '$MAGIC_CMD'; then
echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6
-echo "configure:2080: checking for ${ac_tool_prefix}file" >&5
+echo "configure:2099: checking for ${ac_tool_prefix}file" >&5
if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2138,7 +2157,7 @@ fi
if test -z "$lt_cv_path_MAGIC_CMD"; then
if test -n "$ac_tool_prefix"; then
echo $ac_n "checking for file""... $ac_c" 1>&6
-echo "configure:2142: checking for file" >&5
+echo "configure:2161: checking for file" >&5
if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2209,7 +2228,7 @@ esac
# 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
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2213: checking for $ac_word" >&5
+echo "configure:2232: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2241,7 +2260,7 @@ if test -n "$ac_tool_prefix"; then
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2245: checking for $ac_word" >&5
+echo "configure:2264: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2276,7 +2295,7 @@ fi
# 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
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2280: checking for $ac_word" >&5
+echo "configure:2299: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2308,7 +2327,7 @@ if test -n "$ac_tool_prefix"; then
# Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2312: checking for $ac_word" >&5
+echo "configure:2331: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2375,8 +2394,21 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
case $host in
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 2379 "configure"' > conftest.$ac_ext
- if { (eval echo configure:2380: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ echo '#line 2398 "configure"' > conftest.$ac_ext
+ if { (eval echo configure:2399: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; 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"
@@ -2388,6 +2420,65 @@ case $host in
LD="${LD-ld} -64"
;;
esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+ia64-*-hpux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { (eval echo configure:2432: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ case "`/usr/bin/file conftest.o`" in
+ *ELF-32*)
+ HPUX_IA64_MODE="32"
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE="64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { (eval echo configure:2448: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ case "`/usr/bin/file conftest.o`" in
+ *32-bit*)
+ case $host in
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ ppc64-*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-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ ppc*-*linux*|powerpc*-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
fi
rm -rf conftest*
;;
@@ -2397,7 +2488,7 @@ case $host in
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -belf"
echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
-echo "configure:2401: checking whether the C compiler needs -belf" >&5
+echo "configure:2492: checking whether the C compiler needs -belf" >&5
if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2410,14 +2501,14 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext <<EOF
-#line 2414 "configure"
+#line 2505 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:2421: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
lt_cv_cc_needs_belf=yes
else
@@ -2447,7 +2538,7 @@ echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6
esac
echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
-echo "configure:2451: checking how to run the C++ preprocessor" >&5
+echo "configure:2542: checking how to run the C++ preprocessor" >&5
if test -z "$CXXCPP"; then
if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2460,12 +2551,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
CXXCPP="${CXX-g++} -E"
cat > conftest.$ac_ext <<EOF
-#line 2464 "configure"
+#line 2555 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2469: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2560: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -2603,7 +2694,7 @@ exec 5>>./config.log
# Check for c++ or library specific bits that don't require linking.
#GLIBCPP_CHECK_COMPILER_VERSION
echo $ac_n "checking for GNU make""... $ac_c" 1>&6
-echo "configure:2607: checking for GNU make" >&5
+echo "configure:2698: checking for GNU make" >&5
if eval "test \"`echo '$''{'_cv_gnu_make_command'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2628,30 +2719,8 @@ echo "$ac_t""$_cv_gnu_make_command" 1>&6 ;
# Enable all the variable C++ stuff. C_MBCHAR must come early.
-# Check whether --enable-debug or --disable-debug was given.
-if test "${enable_debug+set}" = set; then
- enableval="$enable_debug"
- case "${enableval}" in
- yes) enable_debug=yes ;;
- no) enable_debug=no ;;
- *) { echo "configure: error: Unknown argument to enable/disable extra debugging" 1>&2; exit 1; } ;;
- esac
-else
- enable_debug=no
-fi
-
-case "${enable_debug}" in
- yes)
- DEBUG_FLAGS='-O0 -ggdb3'
- ;;
- no)
- DEBUG_FLAGS='-g'
- ;;
-esac
-
-
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2655: checking how to run the C preprocessor" >&5
+echo "configure:2724: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -2666,13 +2735,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 2670 "configure"
+#line 2739 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2676: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2745: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -2683,13 +2752,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 2687 "configure"
+#line 2756 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2693: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2762: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -2700,13 +2769,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 2704 "configure"
+#line 2773 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2710: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2779: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -2732,7 +2801,7 @@ echo "$ac_t""$CPP" 1>&6
echo $ac_n "checking for cstdio to use""... $ac_c" 1>&6
-echo "configure:2736: checking for cstdio to use" >&5
+echo "configure:2805: checking for cstdio to use" >&5
# Check whether --enable-cstdio or --disable-cstdio was given.
if test "${enable_cstdio+set}" = set; then
enableval="$enable_cstdio"
@@ -2756,17 +2825,17 @@ fi
# see if we are on a system with libio native (ie, linux)
ac_safe=`echo "libio.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for libio.h""... $ac_c" 1>&6
-echo "configure:2760: checking for libio.h" >&5
+echo "configure:2829: checking for libio.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2765 "configure"
+#line 2834 "configure"
#include "confdefs.h"
#include <libio.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2770: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2839: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2796,9 +2865,9 @@ fi
case "$target" in
*-*-linux*)
echo $ac_n "checking for glibc version >= 2.2""... $ac_c" 1>&6
-echo "configure:2800: checking for glibc version >= 2.2" >&5
+echo "configure:2869: checking for glibc version >= 2.2" >&5
cat > conftest.$ac_ext <<EOF
-#line 2802 "configure"
+#line 2871 "configure"
#include "confdefs.h"
#include <features.h>
@@ -2912,7 +2981,7 @@ fi
echo $ac_n "checking for clocale to use""... $ac_c" 1>&6
-echo "configure:2916: checking for clocale to use" >&5
+echo "configure:2985: checking for clocale to use" >&5
# Check whether --enable-clocale or --disable-clocale was given.
if test "${enable_clocale+set}" = set; then
enableval="$enable_clocale"
@@ -2930,7 +2999,7 @@ fi
case x${target_os} in
xlinux* | xgnu*)
cat > conftest.$ac_ext <<EOF
-#line 2934 "configure"
+#line 3003 "configure"
#include "confdefs.h"
#include <features.h>
@@ -2956,7 +3025,7 @@ rm -f conftest*
enable_clocale_flag=generic
else
cat > conftest.$ac_ext <<EOF
-#line 2960 "configure"
+#line 3029 "configure"
#include "confdefs.h"
#define _GNU_SOURCE 1
@@ -2983,7 +3052,7 @@ else
}
EOF
-if { (eval echo configure:2987: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
enable_clocale_flag=gnu
else
@@ -3045,7 +3114,7 @@ fi
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3049: checking for $ac_word" >&5
+echo "configure:3118: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_check_msgfmt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3125,9 +3194,6 @@ fi
glibcpp_localedir=${glibcpp_builddir}/po/share/locale
- # For the time being, transform ctype_noninline.h to ctype_members_char.cc
-# CCTYPE_CHAR_CC=config/${os_include_dir}/ctype_noninline.h
-
@@ -3136,7 +3202,6 @@ fi
-# AC_LINK_FILES($CCTYPE_CHAR_CC, src/ctype_members_char.cc)
@@ -3144,6 +3209,66 @@ fi
+echo $ac_n "checking for c header strategy to use""... $ac_c" 1>&6
+echo "configure:3214: checking for c header strategy to use" >&5
+# Check whether --enable-cheaders or --disable-cheaders was given.
+if test "${enable_cheaders+set}" = set; then
+ enableval="$enable_cheaders"
+
+ case "$enableval" in
+ c)
+ enable_cheaders=c
+ ;;
+ c_std)
+ enable_cheaders=c_std
+ ;;
+ *) { echo "configure: error: Unknown argument to enable/disable "C" headers" 1>&2; exit 1; }
+ ;;
+ esac
+else
+ enable_cheaders=c_std
+fi
+
+ echo "$ac_t""$enable_cheaders" 1>&6
+
+ case "$enable_cheaders" in
+ c_std)
+ C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std'
+ ;;
+ c)
+ C_INCLUDE_DIR='${glibcpp_srcdir}/include/c'
+ ;;
+ esac
+
+
+
+
+if test "$enable_cheaders" = c; then
+ GLIBCPP_C_HEADERS_C_TRUE=
+ GLIBCPP_C_HEADERS_C_FALSE='#'
+else
+ GLIBCPP_C_HEADERS_C_TRUE='#'
+ GLIBCPP_C_HEADERS_C_FALSE=
+fi
+
+
+if test "$enable_cheaders" = c_std; then
+ GLIBCPP_C_HEADERS_C_STD_TRUE=
+ GLIBCPP_C_HEADERS_C_STD_FALSE='#'
+else
+ GLIBCPP_C_HEADERS_C_STD_TRUE='#'
+ GLIBCPP_C_HEADERS_C_STD_FALSE=
+fi
+
+
+if test "$c_compatibility" = yes; then
+ GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE=
+ GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE='#'
+else
+ GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE='#'
+ GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE=
+fi
+
# Check whether --enable-c-mbchar or --disable-c-mbchar was given.
if test "${enable_c_mbchar+set}" = set; then
enableval="$enable_c_mbchar"
@@ -3181,16 +3306,16 @@ cross_compiling=$ac_cv_prog_cxx_cross
# Check for the existence of <math.h> functions used if C99 is enabled.
ac_c99_math=yes;
echo $ac_n "checking for ISO C99 support in <math.h>""... $ac_c" 1>&6
-echo "configure:3185: checking for ISO C99 support in <math.h>" >&5
+echo "configure:3310: checking for ISO C99 support in <math.h>" >&5
cat > conftest.$ac_ext <<EOF
-#line 3187 "configure"
+#line 3312 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
fpclassify(0.0);
; return 0; }
EOF
-if { (eval echo configure:3194: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3319: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3200,14 +3325,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3204 "configure"
+#line 3329 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
isfinite(0.0);
; return 0; }
EOF
-if { (eval echo configure:3211: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3336: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3217,14 +3342,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3221 "configure"
+#line 3346 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
isinf(0.0);
; return 0; }
EOF
-if { (eval echo configure:3228: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3353: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3234,14 +3359,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3238 "configure"
+#line 3363 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
isnan(0.0);
; return 0; }
EOF
-if { (eval echo configure:3245: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3370: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3251,14 +3376,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3255 "configure"
+#line 3380 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
isnormal(0.0);
; return 0; }
EOF
-if { (eval echo configure:3262: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3387: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3268,14 +3393,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3272 "configure"
+#line 3397 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
signbit(0.0);
; return 0; }
EOF
-if { (eval echo configure:3279: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3404: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3285,14 +3410,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3289 "configure"
+#line 3414 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
isgreater(0.0,0.0);
; return 0; }
EOF
-if { (eval echo configure:3296: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3421: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3302,14 +3427,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3306 "configure"
+#line 3431 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
isgreaterequal(0.0,0.0);
; return 0; }
EOF
-if { (eval echo configure:3313: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3438: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3319,14 +3444,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3323 "configure"
+#line 3448 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
isless(0.0,0.0);
; return 0; }
EOF
-if { (eval echo configure:3330: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3455: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3336,14 +3461,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3340 "configure"
+#line 3465 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
islessequal(0.0,0.0);
; return 0; }
EOF
-if { (eval echo configure:3347: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3472: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3353,14 +3478,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3357 "configure"
+#line 3482 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
islessgreater(0.0,0.0);
; return 0; }
EOF
-if { (eval echo configure:3364: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3489: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3370,14 +3495,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3374 "configure"
+#line 3499 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
isunordered(0.0,0.0);
; return 0; }
EOF
-if { (eval echo configure:3381: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3506: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3391,16 +3516,16 @@ rm -f conftest*
# Check for the existence in <stdio.h> of vscanf, et. al.
ac_c99_stdio=yes;
echo $ac_n "checking for ISO C99 support in <stdio.h>""... $ac_c" 1>&6
-echo "configure:3395: checking for ISO C99 support in <stdio.h>" >&5
+echo "configure:3520: checking for ISO C99 support in <stdio.h>" >&5
cat > conftest.$ac_ext <<EOF
-#line 3397 "configure"
+#line 3522 "configure"
#include "confdefs.h"
#include <stdio.h>
int main() {
snprintf("12", 0, "%i");
; return 0; }
EOF
-if { (eval echo configure:3404: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3529: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3410,7 +3535,7 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3414 "configure"
+#line 3539 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <stdarg.h>
@@ -3421,7 +3546,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:3425: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3550: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3431,7 +3556,7 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3435 "configure"
+#line 3560 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <stdarg.h>
@@ -3442,7 +3567,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:3446: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3571: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3452,7 +3577,7 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3456 "configure"
+#line 3581 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <stdarg.h>
@@ -3463,7 +3588,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:3467: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3592: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3473,7 +3598,7 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3477 "configure"
+#line 3602 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <stdarg.h>
@@ -3484,7 +3609,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:3488: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3613: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3498,20 +3623,20 @@ rm -f conftest*
# Check for the existence in <stdlib.h> of lldiv_t, et. al.
ac_c99_stdlib=yes;
echo $ac_n "checking for lldiv_t declaration""... $ac_c" 1>&6
-echo "configure:3502: checking for lldiv_t declaration" >&5
+echo "configure:3627: checking for lldiv_t declaration" >&5
if eval "test \"`echo '$''{'ac_c99_lldiv_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3508 "configure"
+#line 3633 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
lldiv_t mydivt;
; return 0; }
EOF
-if { (eval echo configure:3515: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3640: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_c99_lldiv_t=yes
else
@@ -3527,16 +3652,16 @@ fi
echo "$ac_t""$ac_c99_lldiv_t" 1>&6
echo $ac_n "checking for ISO C99 support in <stdlib.h>""... $ac_c" 1>&6
-echo "configure:3531: checking for ISO C99 support in <stdlib.h>" >&5
+echo "configure:3656: checking for ISO C99 support in <stdlib.h>" >&5
cat > conftest.$ac_ext <<EOF
-#line 3533 "configure"
+#line 3658 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
char* tmp; strtof("gnu", &tmp);
; return 0; }
EOF
-if { (eval echo configure:3540: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3665: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3546,14 +3671,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3550 "configure"
+#line 3675 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
char* tmp; strtold("gnu", &tmp);
; return 0; }
EOF
-if { (eval echo configure:3557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3682: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3563,14 +3688,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3567 "configure"
+#line 3692 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
llabs(10);
; return 0; }
EOF
-if { (eval echo configure:3574: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3699: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3580,14 +3705,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3584 "configure"
+#line 3709 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
lldiv(10,1);
; return 0; }
EOF
-if { (eval echo configure:3591: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3716: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3597,14 +3722,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3601 "configure"
+#line 3726 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
atoll("10");
; return 0; }
EOF
-if { (eval echo configure:3608: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3733: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3614,14 +3739,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3618 "configure"
+#line 3743 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
_Exit(0);
; return 0; }
EOF
-if { (eval echo configure:3625: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3750: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3639,16 +3764,16 @@ rm -f conftest*
# XXX the wchar.h checks should be rolled into the general C99 bits.
ac_c99_wchar=yes;
echo $ac_n "checking for additional ISO C99 support in <wchar.h>""... $ac_c" 1>&6
-echo "configure:3643: checking for additional ISO C99 support in <wchar.h>" >&5
+echo "configure:3768: checking for additional ISO C99 support in <wchar.h>" >&5
cat > conftest.$ac_ext <<EOF
-#line 3645 "configure"
+#line 3770 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
wcstold(L"10.0", NULL);
; return 0; }
EOF
-if { (eval echo configure:3652: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3658,14 +3783,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3662 "configure"
+#line 3787 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
wcstoll(L"10", NULL, 10);
; return 0; }
EOF
-if { (eval echo configure:3669: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3794: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3675,14 +3800,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3679 "configure"
+#line 3804 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
wcstoull(L"10", NULL, 10);
; return 0; }
EOF
-if { (eval echo configure:3686: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3811: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3694,7 +3819,7 @@ rm -f conftest*
echo "$ac_t""$ac_c99_wchar" 1>&6
echo $ac_n "checking for enabled ISO C99 support""... $ac_c" 1>&6
-echo "configure:3698: checking for enabled ISO C99 support" >&5
+echo "configure:3823: checking for enabled ISO C99 support" >&5
if test x"$ac_c99_math" = x"no" ||
test x"$ac_c99_stdio" = x"no" ||
test x"$ac_c99_stdlib" = x"no" ||
@@ -3742,17 +3867,17 @@ cross_compiling=$ac_cv_prog_cxx_cross
echo $ac_n "checking for enabled long long I/O support""... $ac_c" 1>&6
-echo "configure:3746: checking for enabled long long I/O support" >&5
+echo "configure:3871: checking for enabled long long I/O support" >&5
# iostreams require strtoll, strtoull to compile
cat > conftest.$ac_ext <<EOF
-#line 3749 "configure"
+#line 3874 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
char* tmp; strtoll("gnu", &tmp, 10);
; return 0; }
EOF
-if { (eval echo configure:3756: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3881: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3762,14 +3887,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3766 "configure"
+#line 3891 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
char* tmp; strtoull("gnu", &tmp, 10);
; return 0; }
EOF
-if { (eval echo configure:3773: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3898: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3796,75 +3921,9 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
cross_compiling=$ac_cv_prog_cc_cross
-echo $ac_n "checking for c header strategy to use""... $ac_c" 1>&6
-echo "configure:3801: checking for c header strategy to use" >&5
-# Check whether --enable-cheaders or --disable-cheaders was given.
-if test "${enable_cheaders+set}" = set; then
- enableval="$enable_cheaders"
-
- case "$enableval" in
- c)
- enable_cheaders=c
- ;;
- c_std)
- enable_cheaders=c_std
- ;;
- c_shadow)
- enable_cheaders=c_shadow
- ;;
- *) { echo "configure: error: Unknown argument to enable/disable "C" headers" 1>&2; exit 1; }
- ;;
- esac
-else
- enable_cheaders=c_std
-fi
-
- echo "$ac_t""$enable_cheaders" 1>&6
-
- case "$enable_cheaders" in
- c_shadow)
- C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_shadow'
- ;;
- c_std)
- C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std'
- ;;
- c)
- C_INCLUDE_DIR='${glibcpp_srcdir}/include/c'
- ;;
- esac
-
-
-
-
-if test "$enable_cheaders" = c; then
- GLIBCPP_C_HEADERS_C_TRUE=
- GLIBCPP_C_HEADERS_C_FALSE='#'
-else
- GLIBCPP_C_HEADERS_C_TRUE='#'
- GLIBCPP_C_HEADERS_C_FALSE=
-fi
-
-
-if test "$enable_cheaders" = c_std; then
- GLIBCPP_C_HEADERS_C_STD_TRUE=
- GLIBCPP_C_HEADERS_C_STD_FALSE='#'
-else
- GLIBCPP_C_HEADERS_C_STD_TRUE='#'
- GLIBCPP_C_HEADERS_C_STD_FALSE=
-fi
-
-
-if test "$c_compatibility" = yes; then
- GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE=
- GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE='#'
-else
- GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE='#'
- GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE=
-fi
-
echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6
-echo "configure:3868: checking for thread model used by GCC" >&5
+echo "configure:3927: checking for thread model used by GCC" >&5
target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
echo "$ac_t""$target_thread_file" 1>&6
@@ -3882,42 +3941,9 @@ EOF
glibcpp_thread_h=gthr-$target_thread_file.h
-# Check whether --enable-cxx-flags or --disable-cxx-flags was given.
-if test "${enable_cxx_flags+set}" = set; then
- enableval="$enable_cxx_flags"
- case "x$enableval" in
- xyes)
- { echo "configure: error: --enable-cxx-flags needs compiler flags as arguments" 1>&2; exit 1; } ;;
- xno|x)
- enable_cxx_flags='' ;;
- *)
- enable_cxx_flags="$enableval" ;;
- esac
-else
- enable_cxx_flags='none'
-fi
-
-
-if test "$enable_cxx_flags" = "none"; then
- enable_cxx_flags='';
-fi
-
-if test -n "$enable_cxx_flags"; then
- for f in $enable_cxx_flags; do
- case "$f" in
- -fhonor-std) ;;
- -*) ;;
- *) # and we're trying to pass /what/ exactly?
- { echo "configure: error: compiler flags start with a -" 1>&2; exit 1; } ;;
- esac
- done
-fi
-EXTRA_CXX_FLAGS="$enable_cxx_flags"
-
-
echo $ac_n "checking for exception model to use""... $ac_c" 1>&6
-echo "configure:3921: checking for exception model to use" >&5
+echo "configure:3947: checking for exception model to use" >&5
ac_ext=C
# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -3932,7 +3958,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then
:
else
cat > conftest.$ac_ext << EOF
-#line 3936 "configure"
+#line 3962 "configure"
struct S { ~S(); };
void bar();
void foo()
@@ -3942,8 +3968,8 @@ void foo()
}
EOF
old_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="-S -fexceptions"
- if { (eval echo configure:3947: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ CXXFLAGS=-S
+ if { (eval echo configure:3973: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then
enable_sjlj_exceptions=yes
elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then
@@ -3976,7 +4002,7 @@ cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking for use of libunwind""... $ac_c" 1>&6
-echo "configure:3980: checking for use of libunwind" >&5
+echo "configure:4006: checking for use of libunwind" >&5
# Check whether --enable-libunwind-exceptions or --disable-libunwind-exceptions was given.
if test "${enable_libunwind_exceptions+set}" = set; then
enableval="$enable_libunwind_exceptions"
@@ -4011,23 +4037,110 @@ EOF
fi
+echo $ac_n "checking for extra compiler flags for building""... $ac_c" 1>&6
+echo "configure:4042: checking for extra compiler flags for building" >&5
+# Check whether --enable-cxx_flags or --disable-cxx_flags was given.
+if test "${enable_cxx_flags+set}" = set; then
+ enableval="$enable_cxx_flags"
+ case "x$enable_cxx_flags" in
+ xyes)
+ { echo "configure: error: --enable-cxx-flags needs compiler flags as arguments" 1>&2; exit 1; } ;;
+ xno | xnone | x)
+ enable_cxx_flags='' ;;
+ *)
+ enable_cxx_flags="$enableval" ;;
+esac
+else
+ enable_cxx_flags=
+fi
+
+
+if test -n "$enable_cxx_flags"; then
+ for f in $enable_cxx_flags; do
+ case "$f" in
+ -fhonor-std) ;;
+ -*) ;;
+ *) # and we're trying to pass /what/ exactly?
+ { echo "configure: error: compiler flags start with a -" 1>&2; exit 1; } ;;
+ esac
+ done
+fi
+EXTRA_CXX_FLAGS="$enable_cxx_flags"
+echo "$ac_t""$EXTRA_CXX_FLAGS" 1>&6
+
+
+# Check whether --enable-debug or --disable-debug was given.
+if test "${enable_debug+set}" = set; then
+ enableval="$enable_debug"
+ case "${enableval}" in
+ yes) enable_debug=yes ;;
+ no) enable_debug=no ;;
+ *) { echo "configure: error: Unknown argument to enable/disable extra debugging" 1>&2; exit 1; } ;;
+ esac
+else
+ enable_debug=no
+fi
+echo $ac_n "checking for additional debug build""... $ac_c" 1>&6
+echo "configure:4085: checking for additional debug build" >&5
+echo "$ac_t""$enable_debug" 1>&6
+
+
+if test "$enable_debug" = yes; then
+ GLIBCPP_BUILD_DEBUG_TRUE=
+ GLIBCPP_BUILD_DEBUG_FALSE='#'
+else
+ GLIBCPP_BUILD_DEBUG_TRUE='#'
+ GLIBCPP_BUILD_DEBUG_FALSE=
+fi
+
+# Check whether --enable-debug_flags or --disable-debug_flags was given.
+if test "${enable_debug_flags+set}" = set; then
+ enableval="$enable_debug_flags"
+ case "${enableval}" in
+ none) ;;
+ -*) enable_debug_flags="${enableval}" ;;
+ *) { echo "configure: error: Unknown argument to extra debugging flags" 1>&2; exit 1; } ;;
+ esac
+else
+ enable_debug_flags=none
+fi
+
+case x"$enable_debug" in
+ xyes)
+ case "$enable_debug_flags" in
+ none)
+ DEBUG_FLAGS="-g3 -O0";;
+ -*) #valid input
+ DEBUG_FLAGS="${enableval}"
+ esac
+ ;;
+ xno)
+ DEBUG_FLAGS=""
+ ;;
+esac
+
+
+echo $ac_n "checking for debug build flags""... $ac_c" 1>&6
+echo "configure:4125: checking for debug build flags" >&5
+echo "$ac_t""$DEBUG_FLAGS" 1>&6
+
# Check for headers necessary for libsupc++ using dyn-string.c/cxa_demangle.c
for ac_hdr in string.h stdlib.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4021: checking for $ac_hdr" >&5
+echo "configure:4134: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4026 "configure"
+#line 4139 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4031: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4144: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4054,26 +4167,40 @@ fi
done
-if test -n "$with_cross_host" || test x"$build" != x"$host"; then
+# No surprises, no surprises...
+if test $ATOMICITYH = cpu/generic ; then
+ echo "configure: warning: No native atomic operations are provided yet for this platform." 1>&2
+ if test $target_thread_file = single; then
+ echo "configure: warning: They cannot be faked when thread support is disabled." 1>&2
+ echo "configure: warning: Thread-safety of certain classes is not guaranteed." 1>&2
+ else
+ echo "configure: warning: They will be faked using a mutex." 1>&2
+ echo "configure: warning: Performance of certain classes will degrade as a result." 1>&2
+ fi
+fi
- # This lets us hard-code the functionality we know
- # we'll have in the cross target environment. "Let" is a
- # sugar-coated word placed on an especially dull and tedious hack, actually.
- # Here's why GLIBCPP_CHECK_MATH_SUPPORT, and other autoconf macros
- # that involve linking can't be used:
- # "cannot open sim-crt0.o"
- # "cannot open crt0.o"
- # etc. All this is because there currently exists no unified,
- # consistent way for top level CC information to be passed down
- # to target directories: newlib includes, newlib linking info,
- # libgloss versus newlib crt0.o, etc. When all of this is done, all
- # of this hokey, excessive AC_DEFINE junk for crosses can be removed.
+
+if test -n "$with_cross_host" || test x"$build" != x"$host"; then
# We are being configured with some form of cross compiler.
GLIBCPP_IS_CROSS_COMPILING=1
- # If Canadian cross, then don't pick up tools from the build
- # directory.
+ # This lets us hard-code the functionality we know we'll have in the cross
+ # target environment. "Let" is a sugar-coated word placed on an especially
+ # dull and tedious hack, actually.
+ #
+ # Here's why GLIBCPP_CHECK_MATH_SUPPORT, and other autoconf macros
+ # that involve linking, can't be used:
+ # "cannot open sim-crt0.o"
+ # "cannot open crt0.o"
+ # etc. All this is because there currently exists no unified, consistent
+ # way for top level CC information to be passed down to target directories:
+ # newlib includes, newlib linking info, libgloss versus newlib crt0.o, etc.
+ # When all of that is done, all of this hokey, excessive AC_DEFINE junk for
+ # crosses can be removed.
+
+ # If Canadian cross, then don't pick up tools from the build directory.
+ # Used in GLIBCPP_EXPORT_INCLUDES (and nowhere else?).
if test -n "$with_cross_host" && test x"$build" != x"$with_cross_host"; then
CANADIAN=yes
else
@@ -4087,24 +4214,24 @@ if test -n "$with_cross_host" || test x"$build" != x"$host"; then
case "$target" in
*-linux*)
- # Check for available headers.
+ os_include_dir="os/gnu-linux"
for ac_hdr in nan.h ieeefp.h endian.h sys/isa_defs.h \
- machine/endian.h machine/param.h sys/machine.h sys/types.h \
- fp.h locale.h float.h inttypes.h
+ machine/endian.h machine/param.h sys/machine.h sys/types.h \
+ fp.h locale.h float.h inttypes.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4098: checking for $ac_hdr" >&5
+echo "configure:4225: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4103 "configure"
+#line 4230 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4108: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4235: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4182,12 +4309,12 @@ done
# used sections, first .eh_frame and now some of the glibc sections for
# iconv). Bzzzzt. Thanks for playing, maybe next time.
echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6
-echo "configure:4186: checking for ld that supports -Wl,--gc-sections" >&5
+echo "configure:4313: checking for ld that supports -Wl,--gc-sections" >&5
if test "$cross_compiling" = yes; then
ac_sectionLDflags=yes
else
cat > conftest.$ac_ext <<EOF
-#line 4191 "configure"
+#line 4318 "configure"
#include "confdefs.h"
int main(void)
@@ -4198,7 +4325,7 @@ else
}
EOF
-if { (eval echo configure:4202: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_sectionLDflags=yes
else
@@ -4223,7 +4350,7 @@ fi
fi
# Set linker optimization flags.
- if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then
+ if test x"$with_gnu_ld" = x"yes"; then
OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
fi
@@ -4232,7 +4359,7 @@ fi
echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:4236: checking for main in -lm" >&5
+echo "configure:4363: checking for main in -lm" >&5
ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4240,14 +4367,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4244 "configure"
+#line 4371 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:4251: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4378: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -4277,12 +4404,12 @@ fi
for ac_func in nan copysignf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4281: checking for $ac_func" >&5
+echo "configure:4408: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4286 "configure"
+#line 4413 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4305,7 +4432,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4334,12 +4461,12 @@ done
for ac_func in __signbit
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4338: checking for $ac_func" >&5
+echo "configure:4465: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4343 "configure"
+#line 4470 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4362,7 +4489,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4493: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4390,12 +4517,12 @@ done
for ac_func in __signbitf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4394: checking for $ac_func" >&5
+echo "configure:4521: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4399 "configure"
+#line 4526 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4418,7 +4545,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4422: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4549: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4448,12 +4575,12 @@ done
for ac_func in __signbitl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4452: checking for $ac_func" >&5
+echo "configure:4579: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4457 "configure"
+#line 4584 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4476,7 +4603,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4503,21 +4630,34 @@ done
fi
+ if test -n "$LIBMATHOBJS"; then
+ need_libmath=yes
+ fi
+
+if test "$need_libmath" = yes; then
+ GLIBCPP_BUILD_LIBMATH_TRUE=
+ GLIBCPP_BUILD_LIBMATH_FALSE='#'
+else
+ GLIBCPP_BUILD_LIBMATH_TRUE='#'
+ GLIBCPP_BUILD_LIBMATH_FALSE=
+fi
+
+ enable_wchar_t=no
echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6
-echo "configure:4512: checking for mbstate_t" >&5
+echo "configure:4652: checking for mbstate_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 4514 "configure"
+#line 4654 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
mbstate_t teststate;
; return 0; }
EOF
-if { (eval echo configure:4521: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4661: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
have_mbstate_t=yes
else
@@ -4539,17 +4679,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4543: checking for $ac_hdr" >&5
+echo "configure:4683: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4548 "configure"
+#line 4688 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4553: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4693: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4580,17 +4720,17 @@ done
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4584: checking for $ac_hdr" >&5
+echo "configure:4724: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4589 "configure"
+#line 4729 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4594: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4734: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4623,16 +4763,16 @@ done
test x"$enable_c_mbchar" != xno; then
echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6
-echo "configure:4627: checking for WCHAR_MIN and WCHAR_MAX" >&5
+echo "configure:4767: checking for WCHAR_MIN and WCHAR_MAX" >&5
cat > conftest.$ac_ext <<EOF
-#line 4629 "configure"
+#line 4769 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
int i = WCHAR_MIN; int j = WCHAR_MAX;
; return 0; }
EOF
-if { (eval echo configure:4636: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4776: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_wchar_minmax=yes
else
@@ -4645,9 +4785,9 @@ rm -f conftest*
echo "$ac_t""$has_wchar_minmax" 1>&6
echo $ac_n "checking for WEOF""... $ac_c" 1>&6
-echo "configure:4649: checking for WEOF" >&5
+echo "configure:4789: checking for WEOF" >&5
cat > conftest.$ac_ext <<EOF
-#line 4651 "configure"
+#line 4791 "configure"
#include "confdefs.h"
#include <wchar.h>
@@ -4656,7 +4796,7 @@ int main() {
wint_t i = WEOF;
; return 0; }
EOF
-if { (eval echo configure:4660: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4800: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_weof=yes
else
@@ -4672,12 +4812,12 @@ rm -f conftest*
for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4676: checking for $ac_func" >&5
+echo "configure:4816: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4681 "configure"
+#line 4821 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4700,7 +4840,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4704: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4727,7 +4867,7 @@ fi
done
- for ac_func in btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
+ for ac_func in btowc wctob fgetwc fgetws fputwc fputws fwide \
fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
@@ -4735,12 +4875,12 @@ done
wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4739: checking for $ac_func" >&5
+echo "configure:4879: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4744 "configure"
+#line 4884 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4763,7 +4903,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4767: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4907: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4791,7 +4931,7 @@ done
echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6
-echo "configure:4795: checking for ISO C99 wchar_t support" >&5
+echo "configure:4935: checking for ISO C99 wchar_t support" >&5
if test x"$has_weof" = xyes &&
test x"$has_wchar_minmax" = xyes &&
test x"$ac_wfuncs" = xyes; then
@@ -4803,17 +4943,17 @@ echo "configure:4795: checking for ISO C99 wchar_t support" >&5
ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for iconv.h""... $ac_c" 1>&6
-echo "configure:4807: checking for iconv.h" >&5
+echo "configure:4947: checking for iconv.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4812 "configure"
+#line 4952 "configure"
#include "confdefs.h"
#include <iconv.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4817: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4957: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4837,17 +4977,17 @@ fi
ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6
-echo "configure:4841: checking for langinfo.h" >&5
+echo "configure:4981: checking for langinfo.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4846 "configure"
+#line 4986 "configure"
#include "confdefs.h"
#include <langinfo.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4851: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4991: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4871,7 +5011,7 @@ fi
echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6
-echo "configure:4875: checking for iconv in -liconv" >&5
+echo "configure:5015: checking for iconv in -liconv" >&5
ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4879,7 +5019,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-liconv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4883 "configure"
+#line 5023 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -4890,7 +5030,7 @@ int main() {
iconv()
; return 0; }
EOF
-if { (eval echo configure:4894: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5034: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -4916,12 +5056,12 @@ fi
for ac_func in iconv_open iconv_close iconv nl_langinfo
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4920: checking for $ac_func" >&5
+echo "configure:5060: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4925 "configure"
+#line 5065 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4944,7 +5084,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4948: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5088: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4974,7 +5114,7 @@ done
LIBS="$ac_save_LIBS"
echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6
-echo "configure:4978: checking for XPG2 wchar_t support" >&5
+echo "configure:5118: checking for XPG2 wchar_t support" >&5
if test x"$ac_has_iconv_h" = xyes &&
test x"$ac_has_langinfo_h" = xyes &&
test x"$ac_XPG2funcs" = xyes; then
@@ -4984,23 +5124,28 @@ echo "configure:4978: checking for XPG2 wchar_t support" >&5
fi
echo "$ac_t""$ac_XPG2_wchar_t" 1>&6
- echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
-echo "configure:4989: checking for enabled wchar_t specializations" >&5
- if test x"$ac_isoC99_wchar_t" = xyes &&
+ if test x"$ac_isoC99_wchar_t" = xyes &&
test x"$ac_XPG2_wchar_t" = xyes; then
- cat >> confdefs.h <<\EOF
+ cat >> confdefs.h <<\EOF
#define _GLIBCPP_USE_WCHAR_T 1
EOF
- echo "$ac_t"""yes"" 1>&6
- else
- echo "$ac_t"""no"" 1>&6
+ enable_wchar_t=yes
fi
- else
- echo "configure: warning: wchar_t support disabled." 1>&2
fi
+ echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
+echo "configure:5138: checking for enabled wchar_t specializations" >&5
+ echo "$ac_t""$enable_wchar_t" 1>&6
+
+
+if test "$enable_wchar_t" = yes; then
+ GLIBCPP_TEST_WCHAR_T_TRUE=
+ GLIBCPP_TEST_WCHAR_T_FALSE='#'
+else
+ GLIBCPP_TEST_WCHAR_T_TRUE='#'
+ GLIBCPP_TEST_WCHAR_T_FALSE=
+fi
- os_include_dir="config/os/gnu-linux"
cat >> confdefs.h <<\EOF
#define HAVE_COPYSIGN 1
EOF
@@ -5010,6 +5155,10 @@ EOF
EOF
cat >> confdefs.h <<\EOF
+#define HAVE_FINITE 1
+EOF
+
+ cat >> confdefs.h <<\EOF
#define HAVE_FINITEF 1
EOF
@@ -5022,6 +5171,22 @@ EOF
EOF
cat >> confdefs.h <<\EOF
+#define HAVE_ISINF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_ISINFF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_ISNAN 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_ISNANF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
#define HAVE_SINCOS 1
EOF
@@ -5030,31 +5195,43 @@ EOF
EOF
if test x"long_double_math_on_this_cpu" = x"yes"; then
- cat >> confdefs.h <<\EOF
+ cat >> confdefs.h <<\EOF
+#define HAVE_FINITEL 1
+EOF
+
+ cat >> confdefs.h <<\EOF
#define HAVE_HYPOTL 1
EOF
+ cat >> confdefs.h <<\EOF
+#define HAVE_ISINFL 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_ISNANL 1
+EOF
+
fi
;;
*-hpux*)
# Check for available headers.
for ac_hdr in nan.h ieeefp.h endian.h sys/isa_defs.h \
- machine/endian.h machine/param.h sys/machine.h sys/types.h \
- fp.h locale.h float.h inttypes.h
+ machine/endian.h machine/param.h sys/machine.h sys/types.h \
+ fp.h locale.h float.h inttypes.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5048: checking for $ac_hdr" >&5
+echo "configure:5225: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5053 "configure"
+#line 5230 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5058: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5235: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -5132,12 +5309,12 @@ done
# used sections, first .eh_frame and now some of the glibc sections for
# iconv). Bzzzzt. Thanks for playing, maybe next time.
echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6
-echo "configure:5136: checking for ld that supports -Wl,--gc-sections" >&5
+echo "configure:5313: checking for ld that supports -Wl,--gc-sections" >&5
if test "$cross_compiling" = yes; then
ac_sectionLDflags=yes
else
cat > conftest.$ac_ext <<EOF
-#line 5141 "configure"
+#line 5318 "configure"
#include "confdefs.h"
int main(void)
@@ -5148,7 +5325,7 @@ else
}
EOF
-if { (eval echo configure:5152: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_sectionLDflags=yes
else
@@ -5173,7 +5350,7 @@ fi
fi
# Set linker optimization flags.
- if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then
+ if test x"$with_gnu_ld" = x"yes"; then
OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
fi
@@ -5182,7 +5359,7 @@ fi
echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:5186: checking for main in -lm" >&5
+echo "configure:5363: checking for main in -lm" >&5
ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -5190,14 +5367,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5194 "configure"
+#line 5371 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:5201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5378: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -5227,12 +5404,12 @@ fi
for ac_func in nan copysignf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5231: checking for $ac_func" >&5
+echo "configure:5408: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5236 "configure"
+#line 5413 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5255,7 +5432,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5259: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5284,12 +5461,12 @@ done
for ac_func in __signbit
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5288: checking for $ac_func" >&5
+echo "configure:5465: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5293 "configure"
+#line 5470 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5312,7 +5489,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5493: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5340,12 +5517,12 @@ done
for ac_func in __signbitf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5344: checking for $ac_func" >&5
+echo "configure:5521: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5349 "configure"
+#line 5526 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5368,7 +5545,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5549: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5398,12 +5575,12 @@ done
for ac_func in __signbitl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5402: checking for $ac_func" >&5
+echo "configure:5579: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5407 "configure"
+#line 5584 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5426,7 +5603,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5430: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5453,21 +5630,34 @@ done
fi
+ if test -n "$LIBMATHOBJS"; then
+ need_libmath=yes
+ fi
+
+if test "$need_libmath" = yes; then
+ GLIBCPP_BUILD_LIBMATH_TRUE=
+ GLIBCPP_BUILD_LIBMATH_FALSE='#'
+else
+ GLIBCPP_BUILD_LIBMATH_TRUE='#'
+ GLIBCPP_BUILD_LIBMATH_FALSE=
+fi
+
+ enable_wchar_t=no
echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6
-echo "configure:5462: checking for mbstate_t" >&5
+echo "configure:5652: checking for mbstate_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 5464 "configure"
+#line 5654 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
mbstate_t teststate;
; return 0; }
EOF
-if { (eval echo configure:5471: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5661: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
have_mbstate_t=yes
else
@@ -5489,17 +5679,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5493: checking for $ac_hdr" >&5
+echo "configure:5683: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5498 "configure"
+#line 5688 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5503: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5693: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -5530,17 +5720,17 @@ done
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5534: checking for $ac_hdr" >&5
+echo "configure:5724: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5539 "configure"
+#line 5729 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5544: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5734: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -5573,16 +5763,16 @@ done
test x"$enable_c_mbchar" != xno; then
echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6
-echo "configure:5577: checking for WCHAR_MIN and WCHAR_MAX" >&5
+echo "configure:5767: checking for WCHAR_MIN and WCHAR_MAX" >&5
cat > conftest.$ac_ext <<EOF
-#line 5579 "configure"
+#line 5769 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
int i = WCHAR_MIN; int j = WCHAR_MAX;
; return 0; }
EOF
-if { (eval echo configure:5586: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5776: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_wchar_minmax=yes
else
@@ -5595,9 +5785,9 @@ rm -f conftest*
echo "$ac_t""$has_wchar_minmax" 1>&6
echo $ac_n "checking for WEOF""... $ac_c" 1>&6
-echo "configure:5599: checking for WEOF" >&5
+echo "configure:5789: checking for WEOF" >&5
cat > conftest.$ac_ext <<EOF
-#line 5601 "configure"
+#line 5791 "configure"
#include "confdefs.h"
#include <wchar.h>
@@ -5606,7 +5796,7 @@ int main() {
wint_t i = WEOF;
; return 0; }
EOF
-if { (eval echo configure:5610: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5800: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_weof=yes
else
@@ -5622,12 +5812,12 @@ rm -f conftest*
for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5626: checking for $ac_func" >&5
+echo "configure:5816: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5631 "configure"
+#line 5821 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5650,7 +5840,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5677,7 +5867,7 @@ fi
done
- for ac_func in btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
+ for ac_func in btowc wctob fgetwc fgetws fputwc fputws fwide \
fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
@@ -5685,12 +5875,12 @@ done
wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5689: checking for $ac_func" >&5
+echo "configure:5879: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5694 "configure"
+#line 5884 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5713,7 +5903,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5717: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5907: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5741,7 +5931,7 @@ done
echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6
-echo "configure:5745: checking for ISO C99 wchar_t support" >&5
+echo "configure:5935: checking for ISO C99 wchar_t support" >&5
if test x"$has_weof" = xyes &&
test x"$has_wchar_minmax" = xyes &&
test x"$ac_wfuncs" = xyes; then
@@ -5753,17 +5943,17 @@ echo "configure:5745: checking for ISO C99 wchar_t support" >&5
ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for iconv.h""... $ac_c" 1>&6
-echo "configure:5757: checking for iconv.h" >&5
+echo "configure:5947: checking for iconv.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5762 "configure"
+#line 5952 "configure"
#include "confdefs.h"
#include <iconv.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5767: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5957: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -5787,17 +5977,17 @@ fi
ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6
-echo "configure:5791: checking for langinfo.h" >&5
+echo "configure:5981: checking for langinfo.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5796 "configure"
+#line 5986 "configure"
#include "confdefs.h"
#include <langinfo.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5801: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5991: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -5821,7 +6011,7 @@ fi
echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6
-echo "configure:5825: checking for iconv in -liconv" >&5
+echo "configure:6015: checking for iconv in -liconv" >&5
ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -5829,7 +6019,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-liconv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5833 "configure"
+#line 6023 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -5840,7 +6030,7 @@ int main() {
iconv()
; return 0; }
EOF
-if { (eval echo configure:5844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6034: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -5866,12 +6056,12 @@ fi
for ac_func in iconv_open iconv_close iconv nl_langinfo
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5870: checking for $ac_func" >&5
+echo "configure:6060: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5875 "configure"
+#line 6065 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5894,7 +6084,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6088: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5924,7 +6114,7 @@ done
LIBS="$ac_save_LIBS"
echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6
-echo "configure:5928: checking for XPG2 wchar_t support" >&5
+echo "configure:6118: checking for XPG2 wchar_t support" >&5
if test x"$ac_has_iconv_h" = xyes &&
test x"$ac_has_langinfo_h" = xyes &&
test x"$ac_XPG2funcs" = xyes; then
@@ -5934,23 +6124,1009 @@ echo "configure:5928: checking for XPG2 wchar_t support" >&5
fi
echo "$ac_t""$ac_XPG2_wchar_t" 1>&6
- echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
-echo "configure:5939: checking for enabled wchar_t specializations" >&5
- if test x"$ac_isoC99_wchar_t" = xyes &&
+ if test x"$ac_isoC99_wchar_t" = xyes &&
test x"$ac_XPG2_wchar_t" = xyes; then
- cat >> confdefs.h <<\EOF
+ cat >> confdefs.h <<\EOF
#define _GLIBCPP_USE_WCHAR_T 1
EOF
- echo "$ac_t"""yes"" 1>&6
+ enable_wchar_t=yes
+ fi
+ fi
+ echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
+echo "configure:6138: checking for enabled wchar_t specializations" >&5
+ echo "$ac_t""$enable_wchar_t" 1>&6
+
+
+if test "$enable_wchar_t" = yes; then
+ GLIBCPP_TEST_WCHAR_T_TRUE=
+ GLIBCPP_TEST_WCHAR_T_FALSE='#'
+else
+ GLIBCPP_TEST_WCHAR_T_TRUE='#'
+ GLIBCPP_TEST_WCHAR_T_FALSE=
+fi
+
+ os_include_dir="os/hpux"
+ cat >> confdefs.h <<\EOF
+#define HAVE_COPYSIGN 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_COPYSIGNF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_FREXPF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_HYPOT 1
+EOF
+
+ case "$target" in
+ *-hpux10*)
+ cat >> confdefs.h <<\EOF
+#define HAVE_FINITE 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_FINITEF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_ISINF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_ISINFF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_ISNAN 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_ISNANF 1
+EOF
+
+ ;;
+ esac
+
+ ;;
+ *-netbsd*)
+ # Check for available headers.
+ for ac_hdr in nan.h ieeefp.h endian.h sys/isa_defs.h \
+ machine/endian.h machine/param.h sys/machine.h sys/types.h \
+ fp.h locale.h float.h inttypes.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:6205: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6210 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:6215: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+ SECTION_FLAGS='-ffunction-sections -fdata-sections'
+
+
+ # If we're not using GNU ld, then there's no point in even trying these
+ # tests. Check for that first. We should have already tested for gld
+ # by now (in libtool), but require it now just to be safe...
+ test -z "$SECTION_LDFLAGS" && SECTION_LDFLAGS=''
+ test -z "$OPT_LDFLAGS" && OPT_LDFLAGS=''
+
+
+ # The name set by libtool depends on the version of libtool. Shame on us
+ # for depending on an impl detail, but c'est la vie. Older versions used
+ # ac_cv_prog_gnu_ld, but now it's lt_cv_prog_gnu_ld, and is copied back on
+ # top of with_gnu_ld (which is also set by --with-gnu-ld, so that actually
+ # makes sense). We'll test with_gnu_ld everywhere else, so if that isn't
+ # set (hence we're using an older libtool), then set it.
+ if test x${with_gnu_ld+set} != xset; then
+ if test x${ac_cv_prog_gnu_ld+set} != xset; then
+ # We got through "ac_require(ac_prog_ld)" and still not set? Huh?
+ with_gnu_ld=no
else
- echo "$ac_t"""no"" 1>&6
+ with_gnu_ld=$ac_cv_prog_gnu_ld
fi
- else
- echo "configure: warning: wchar_t support disabled." 1>&2
fi
- os_include_dir="config/os/hpux"
+ # Start by getting the version number. I think the libtool test already
+ # does some of this, but throws away the result.
+
+ ldver=`$LD --version 2>/dev/null | head -1 | \
+ sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'`
+
+ glibcpp_gnu_ld_version=`echo $ldver | \
+ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
+
+ # Set --gc-sections.
+ if test "$with_gnu_ld" = "notbroken"; then
+ # GNU ld it is! Joy and bunny rabbits!
+
+ # All these tests are for C++; save the language and the compiler flags.
+ # Need to do this so that g++ won't try to link in libstdc++
+ ac_test_CFLAGS="${CFLAGS+set}"
+ ac_save_CFLAGS="$CFLAGS"
+ CFLAGS='-x c++ -Wl,--gc-sections'
+
+ # Check for -Wl,--gc-sections
+ # XXX This test is broken at the moment, as symbols required for
+ # linking are now in libsupc++ (not built yet.....). In addition,
+ # this test has cored on solaris in the past. In addition,
+ # --gc-sections doesn't really work at the moment (keeps on discarding
+ # used sections, first .eh_frame and now some of the glibc sections for
+ # iconv). Bzzzzt. Thanks for playing, maybe next time.
+ echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6
+echo "configure:6293: checking for ld that supports -Wl,--gc-sections" >&5
+ if test "$cross_compiling" = yes; then
+ ac_sectionLDflags=yes
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6298 "configure"
+#include "confdefs.h"
+
+ int main(void)
+ {
+ try { throw 1; }
+ catch (...) { };
+ return 0;
+ }
+
+EOF
+if { (eval echo configure:6309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ ac_sectionLDflags=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_sectionLDflags=no
+fi
+rm -fr conftest*
+fi
+
+ if test "$ac_test_CFLAGS" = set; then
+ CFLAGS="$ac_save_CFLAGS"
+ else
+ # this is the suspicious part
+ CFLAGS=''
+ fi
+ if test "$ac_sectionLDflags" = "yes"; then
+ SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
+ fi
+ echo "$ac_t""$ac_sectionLDflags" 1>&6
+ fi
+
+ # Set linker optimization flags.
+ if test x"$with_gnu_ld" = x"yes"; then
+ OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
+ fi
+
+
+
+
+
+ echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
+echo "configure:6343: checking for main in -lm" >&5
+ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lm $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 6351 "configure"
+#include "confdefs.h"
+
+int main() {
+main()
+; return 0; }
+EOF
+if { (eval echo configure:6358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_lib=HAVE_LIB`echo m | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+ LIBS="-lm $LIBS"
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ for ac_func in nan copysignf
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:6388: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6393 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* 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_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:6416: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+LIBMATHOBJS="$LIBMATHOBJS ${ac_func}.lo"
+fi
+done
+
+
+ for ac_func in __signbit
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:6445: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6450 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* 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_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:6473: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+LIBMATHOBJS="$LIBMATHOBJS signbit.lo"
+fi
+done
+
+ for ac_func in __signbitf
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:6501: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6506 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* 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_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:6529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+LIBMATHOBJS="$LIBMATHOBJS signbitf.lo"
+fi
+done
+
+
+ if test x$ac_cv_func_copysignl = x"yes"; then
+ for ac_func in __signbitl
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:6559: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6564 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* 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_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:6587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+LIBMATHOBJS="$LIBMATHOBJS signbitl.lo"
+fi
+done
+
+ fi
+
+ if test -n "$LIBMATHOBJS"; then
+ need_libmath=yes
+ fi
+
+
+
+if test "$need_libmath" = yes; then
+ GLIBCPP_BUILD_LIBMATH_TRUE=
+ GLIBCPP_BUILD_LIBMATH_FALSE='#'
+else
+ GLIBCPP_BUILD_LIBMATH_TRUE='#'
+ GLIBCPP_BUILD_LIBMATH_FALSE=
+fi
+
+
+ enable_wchar_t=no
+
+ echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6
+echo "configure:6632: checking for mbstate_t" >&5
+ cat > conftest.$ac_ext <<EOF
+#line 6634 "configure"
+#include "confdefs.h"
+#include <wchar.h>
+int main() {
+mbstate_t teststate;
+; return 0; }
+EOF
+if { (eval echo configure:6641: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ have_mbstate_t=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ have_mbstate_t=no
+fi
+rm -f conftest*
+ echo "$ac_t""$have_mbstate_t" 1>&6
+ if test x"$have_mbstate_t" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_MBSTATE_T 1
+EOF
+
+ fi
+
+ for ac_hdr in wchar.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:6663: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6668 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:6673: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ ac_has_wchar_h=yes
+else
+ echo "$ac_t""no" 1>&6
+ac_has_wchar_h=no
+fi
+done
+
+ for ac_hdr in wctype.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:6704: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6709 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:6714: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ ac_has_wctype_h=yes
+else
+ echo "$ac_t""no" 1>&6
+ac_has_wctype_h=no
+fi
+done
+
+
+ if test x"$ac_has_wchar_h" = xyes &&
+ test x"$ac_has_wctype_h" = xyes &&
+ test x"$enable_c_mbchar" != xno; then
+
+ echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6
+echo "configure:6747: checking for WCHAR_MIN and WCHAR_MAX" >&5
+ cat > conftest.$ac_ext <<EOF
+#line 6749 "configure"
+#include "confdefs.h"
+#include <wchar.h>
+int main() {
+int i = WCHAR_MIN; int j = WCHAR_MAX;
+; return 0; }
+EOF
+if { (eval echo configure:6756: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ has_wchar_minmax=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ has_wchar_minmax=no
+fi
+rm -f conftest*
+ echo "$ac_t""$has_wchar_minmax" 1>&6
+
+ echo $ac_n "checking for WEOF""... $ac_c" 1>&6
+echo "configure:6769: checking for WEOF" >&5
+ cat > conftest.$ac_ext <<EOF
+#line 6771 "configure"
+#include "confdefs.h"
+
+ #include <wchar.h>
+ #include <stddef.h>
+int main() {
+wint_t i = WEOF;
+; return 0; }
+EOF
+if { (eval echo configure:6780: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ has_weof=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ has_weof=no
+fi
+rm -f conftest*
+ echo "$ac_t""$has_weof" 1>&6
+
+ ac_wfuncs=yes
+ for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:6796: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6801 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* 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_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:6824: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+\
+ ac_wfuncs=no
+fi
+done
+
+
+ for ac_func in btowc wctob fgetwc fgetws fputwc fputws fwide \
+ fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
+ vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
+ mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
+ wcstoul wcscpy wcsncpy wcscat wcsncat wcscmp wcscoll wcsncmp wcsxfrm \
+ wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:6859: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6864 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* 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_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:6887: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+\
+ ac_wfuncs=no
+fi
+done
+
+
+ echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6
+echo "configure:6915: checking for ISO C99 wchar_t support" >&5
+ if test x"$has_weof" = xyes &&
+ test x"$has_wchar_minmax" = xyes &&
+ test x"$ac_wfuncs" = xyes; then
+ ac_isoC99_wchar_t=yes
+ else
+ ac_isoC99_wchar_t=no
+ fi
+ echo "$ac_t""$ac_isoC99_wchar_t" 1>&6
+
+ ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for iconv.h""... $ac_c" 1>&6
+echo "configure:6927: checking for iconv.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6932 "configure"
+#include "confdefs.h"
+#include <iconv.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:6937: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_has_iconv_h=yes
+else
+ echo "$ac_t""no" 1>&6
+ac_has_iconv_h=no
+fi
+
+ ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6
+echo "configure:6961: checking for langinfo.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6966 "configure"
+#include "confdefs.h"
+#include <langinfo.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:6971: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_has_langinfo_h=yes
+else
+ echo "$ac_t""no" 1>&6
+ac_has_langinfo_h=no
+fi
+
+
+ echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6
+echo "configure:6995: checking for iconv in -liconv" >&5
+ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-liconv $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 7003 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char iconv();
+
+int main() {
+iconv()
+; return 0; }
+EOF
+if { (eval echo configure:7014: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ libiconv="-liconv"
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ ac_save_LIBS="$LIBS"
+ LIBS="$LIBS $libiconv"
+
+ for ac_func in iconv_open iconv_close iconv nl_langinfo
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:7040: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7045 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* 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_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:7068: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ \
+ ac_XPG2funcs=yes
+else
+ echo "$ac_t""no" 1>&6
+ac_XPG2funcs=no
+fi
+done
+
+
+ LIBS="$ac_save_LIBS"
+
+ echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6
+echo "configure:7098: checking for XPG2 wchar_t support" >&5
+ if test x"$ac_has_iconv_h" = xyes &&
+ test x"$ac_has_langinfo_h" = xyes &&
+ test x"$ac_XPG2funcs" = xyes; then
+ ac_XPG2_wchar_t=yes
+ else
+ ac_XPG2_wchar_t=no
+ fi
+ echo "$ac_t""$ac_XPG2_wchar_t" 1>&6
+
+ if test x"$ac_isoC99_wchar_t" = xyes &&
+ test x"$ac_XPG2_wchar_t" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define _GLIBCPP_USE_WCHAR_T 1
+EOF
+
+ enable_wchar_t=yes
+ fi
+ fi
+ echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
+echo "configure:7118: checking for enabled wchar_t specializations" >&5
+ echo "$ac_t""$enable_wchar_t" 1>&6
+
+
+if test "$enable_wchar_t" = yes; then
+ GLIBCPP_TEST_WCHAR_T_TRUE=
+ GLIBCPP_TEST_WCHAR_T_FALSE='#'
+else
+ GLIBCPP_TEST_WCHAR_T_TRUE='#'
+ GLIBCPP_TEST_WCHAR_T_FALSE=
+fi
+
+ os_include_dir="os/bsd/netbsd"
cat >> confdefs.h <<\EOF
#define HAVE_COPYSIGN 1
EOF
@@ -5964,41 +7140,68 @@ EOF
EOF
cat >> confdefs.h <<\EOF
+#define HAVE_FINITE 1
+EOF
+
+ cat >> confdefs.h <<\EOF
#define HAVE_FREXPF 1
EOF
cat >> confdefs.h <<\EOF
-#define HAVE_HYPOT 1
+#define HAVE_HYPOTF 1
EOF
cat >> confdefs.h <<\EOF
-#define HAVE_SINCOS 1
+#define HAVE_ISINF 1
EOF
cat >> confdefs.h <<\EOF
-#define HAVE_SINCOSF 1
+#define HAVE_ISINFF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_ISNAN 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_ISNANF 1
+EOF
+
+ if test x"long_double_math_on_this_cpu" = x"yes"; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_FINITEL 1
EOF
+ cat >> confdefs.h <<\EOF
+#define HAVE_ISINFL 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_ISNANL 1
+EOF
+
+ fi
;;
- *-netbsd*)
+ *-freebsd*)
# Check for available headers.
for ac_hdr in nan.h ieeefp.h endian.h sys/isa_defs.h \
- machine/endian.h machine/param.h sys/machine.h sys/types.h \
- fp.h locale.h float.h inttypes.h
+ machine/endian.h machine/param.h sys/machine.h sys/types.h \
+ fp.h locale.h float.h inttypes.h sys/resource.h sys/stat.h \
+ sys/time.h unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5992: checking for $ac_hdr" >&5
+echo "configure:7195: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5997 "configure"
+#line 7200 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6002: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7205: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -6076,12 +7279,12 @@ done
# used sections, first .eh_frame and now some of the glibc sections for
# iconv). Bzzzzt. Thanks for playing, maybe next time.
echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6
-echo "configure:6080: checking for ld that supports -Wl,--gc-sections" >&5
+echo "configure:7283: checking for ld that supports -Wl,--gc-sections" >&5
if test "$cross_compiling" = yes; then
ac_sectionLDflags=yes
else
cat > conftest.$ac_ext <<EOF
-#line 6085 "configure"
+#line 7288 "configure"
#include "confdefs.h"
int main(void)
@@ -6092,7 +7295,7 @@ else
}
EOF
-if { (eval echo configure:6096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_sectionLDflags=yes
else
@@ -6117,7 +7320,7 @@ fi
fi
# Set linker optimization flags.
- if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then
+ if test x"$with_gnu_ld" = x"yes"; then
OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
fi
@@ -6126,7 +7329,7 @@ fi
echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:6130: checking for main in -lm" >&5
+echo "configure:7333: checking for main in -lm" >&5
ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -6134,14 +7337,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 6138 "configure"
+#line 7341 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:6145: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7348: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -6171,12 +7374,12 @@ fi
for ac_func in nan copysignf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6175: checking for $ac_func" >&5
+echo "configure:7378: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6180 "configure"
+#line 7383 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6199,7 +7402,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6203: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7406: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6228,12 +7431,12 @@ done
for ac_func in __signbit
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6232: checking for $ac_func" >&5
+echo "configure:7435: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6237 "configure"
+#line 7440 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6256,7 +7459,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6260: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7463: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6284,12 +7487,12 @@ done
for ac_func in __signbitf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6288: checking for $ac_func" >&5
+echo "configure:7491: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6293 "configure"
+#line 7496 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6312,7 +7515,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6342,12 +7545,12 @@ done
for ac_func in __signbitl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6346: checking for $ac_func" >&5
+echo "configure:7549: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6351 "configure"
+#line 7554 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6370,7 +7573,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6374: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6397,21 +7600,34 @@ done
fi
+ if test -n "$LIBMATHOBJS"; then
+ need_libmath=yes
+ fi
+
+if test "$need_libmath" = yes; then
+ GLIBCPP_BUILD_LIBMATH_TRUE=
+ GLIBCPP_BUILD_LIBMATH_FALSE='#'
+else
+ GLIBCPP_BUILD_LIBMATH_TRUE='#'
+ GLIBCPP_BUILD_LIBMATH_FALSE=
+fi
+
+ enable_wchar_t=no
echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6
-echo "configure:6406: checking for mbstate_t" >&5
+echo "configure:7622: checking for mbstate_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 6408 "configure"
+#line 7624 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
mbstate_t teststate;
; return 0; }
EOF
-if { (eval echo configure:6415: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7631: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
have_mbstate_t=yes
else
@@ -6433,17 +7649,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6437: checking for $ac_hdr" >&5
+echo "configure:7653: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6442 "configure"
+#line 7658 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6447: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7663: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -6474,17 +7690,17 @@ done
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6478: checking for $ac_hdr" >&5
+echo "configure:7694: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6483 "configure"
+#line 7699 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6488: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7704: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -6517,16 +7733,16 @@ done
test x"$enable_c_mbchar" != xno; then
echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6
-echo "configure:6521: checking for WCHAR_MIN and WCHAR_MAX" >&5
+echo "configure:7737: checking for WCHAR_MIN and WCHAR_MAX" >&5
cat > conftest.$ac_ext <<EOF
-#line 6523 "configure"
+#line 7739 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
int i = WCHAR_MIN; int j = WCHAR_MAX;
; return 0; }
EOF
-if { (eval echo configure:6530: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7746: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_wchar_minmax=yes
else
@@ -6539,9 +7755,9 @@ rm -f conftest*
echo "$ac_t""$has_wchar_minmax" 1>&6
echo $ac_n "checking for WEOF""... $ac_c" 1>&6
-echo "configure:6543: checking for WEOF" >&5
+echo "configure:7759: checking for WEOF" >&5
cat > conftest.$ac_ext <<EOF
-#line 6545 "configure"
+#line 7761 "configure"
#include "confdefs.h"
#include <wchar.h>
@@ -6550,7 +7766,7 @@ int main() {
wint_t i = WEOF;
; return 0; }
EOF
-if { (eval echo configure:6554: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7770: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_weof=yes
else
@@ -6566,12 +7782,12 @@ rm -f conftest*
for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6570: checking for $ac_func" >&5
+echo "configure:7786: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6575 "configure"
+#line 7791 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6594,7 +7810,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6598: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7814: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6621,7 +7837,7 @@ fi
done
- for ac_func in btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
+ for ac_func in btowc wctob fgetwc fgetws fputwc fputws fwide \
fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
@@ -6629,12 +7845,12 @@ done
wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6633: checking for $ac_func" >&5
+echo "configure:7849: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6638 "configure"
+#line 7854 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6657,7 +7873,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7877: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6685,7 +7901,7 @@ done
echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6
-echo "configure:6689: checking for ISO C99 wchar_t support" >&5
+echo "configure:7905: checking for ISO C99 wchar_t support" >&5
if test x"$has_weof" = xyes &&
test x"$has_wchar_minmax" = xyes &&
test x"$ac_wfuncs" = xyes; then
@@ -6697,17 +7913,17 @@ echo "configure:6689: checking for ISO C99 wchar_t support" >&5
ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for iconv.h""... $ac_c" 1>&6
-echo "configure:6701: checking for iconv.h" >&5
+echo "configure:7917: checking for iconv.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6706 "configure"
+#line 7922 "configure"
#include "confdefs.h"
#include <iconv.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6711: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7927: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -6731,17 +7947,17 @@ fi
ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6
-echo "configure:6735: checking for langinfo.h" >&5
+echo "configure:7951: checking for langinfo.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6740 "configure"
+#line 7956 "configure"
#include "confdefs.h"
#include <langinfo.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6745: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7961: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -6765,7 +7981,7 @@ fi
echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6
-echo "configure:6769: checking for iconv in -liconv" >&5
+echo "configure:7985: checking for iconv in -liconv" >&5
ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -6773,7 +7989,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-liconv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 6777 "configure"
+#line 7993 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -6784,7 +8000,7 @@ int main() {
iconv()
; return 0; }
EOF
-if { (eval echo configure:6788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8004: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -6810,12 +8026,12 @@ fi
for ac_func in iconv_open iconv_close iconv nl_langinfo
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6814: checking for $ac_func" >&5
+echo "configure:8030: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6819 "configure"
+#line 8035 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6838,7 +8054,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6842: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8058: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6868,7 +8084,7 @@ done
LIBS="$ac_save_LIBS"
echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6
-echo "configure:6872: checking for XPG2 wchar_t support" >&5
+echo "configure:8088: checking for XPG2 wchar_t support" >&5
if test x"$ac_has_iconv_h" = xyes &&
test x"$ac_has_langinfo_h" = xyes &&
test x"$ac_XPG2funcs" = xyes; then
@@ -6878,23 +8094,49 @@ echo "configure:6872: checking for XPG2 wchar_t support" >&5
fi
echo "$ac_t""$ac_XPG2_wchar_t" 1>&6
- echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
-echo "configure:6883: checking for enabled wchar_t specializations" >&5
- if test x"$ac_isoC99_wchar_t" = xyes &&
+ if test x"$ac_isoC99_wchar_t" = xyes &&
test x"$ac_XPG2_wchar_t" = xyes; then
- cat >> confdefs.h <<\EOF
+ cat >> confdefs.h <<\EOF
#define _GLIBCPP_USE_WCHAR_T 1
EOF
- echo "$ac_t"""yes"" 1>&6
- else
- echo "$ac_t"""no"" 1>&6
+ enable_wchar_t=yes
fi
- else
- echo "configure: warning: wchar_t support disabled." 1>&2
fi
+ echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
+echo "configure:8108: checking for enabled wchar_t specializations" >&5
+ echo "$ac_t""$enable_wchar_t" 1>&6
+
+
+if test "$enable_wchar_t" = yes; then
+ GLIBCPP_TEST_WCHAR_T_TRUE=
+ GLIBCPP_TEST_WCHAR_T_FALSE='#'
+else
+ GLIBCPP_TEST_WCHAR_T_TRUE='#'
+ GLIBCPP_TEST_WCHAR_T_FALSE=
+fi
+
+ os_include_dir="os/bsd/freebsd"
+ cat >> confdefs.h <<\EOF
+#define HAVE_LC_MESSAGES 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_DRAND48 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_GETPAGESIZE 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_SETENV 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_SIGSETJMP 1
+EOF
- os_include_dir="config/os/bsd/netbsd"
cat >> confdefs.h <<\EOF
#define HAVE_COPYSIGN 1
EOF
@@ -6908,30 +8150,64 @@ EOF
EOF
cat >> confdefs.h <<\EOF
+#define HAVE_FINITE 1
+EOF
+
+ cat >> confdefs.h <<\EOF
#define HAVE_FREXPF 1
EOF
cat >> confdefs.h <<\EOF
+#define HAVE_HYPOT 1
+EOF
+
+ cat >> confdefs.h <<\EOF
#define HAVE_HYPOTF 1
EOF
+ cat >> confdefs.h <<\EOF
+#define HAVE_ISINF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_ISNAN 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_ISNANF 1
+EOF
+
+ if test x"long_double_math_on_this_cpu" = x"yes"; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_FINITEL 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_ISINFL 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_ISNANL 1
+EOF
+
+ fi
;;
*-mingw32*)
for ac_hdr in sys/types.h locale.h float.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6925: checking for $ac_hdr" >&5
+echo "configure:8201: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6930 "configure"
+#line 8206 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6935: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8211: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -7007,12 +8283,12 @@ done
# used sections, first .eh_frame and now some of the glibc sections for
# iconv). Bzzzzt. Thanks for playing, maybe next time.
echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6
-echo "configure:7011: checking for ld that supports -Wl,--gc-sections" >&5
+echo "configure:8287: checking for ld that supports -Wl,--gc-sections" >&5
if test "$cross_compiling" = yes; then
ac_sectionLDflags=yes
else
cat > conftest.$ac_ext <<EOF
-#line 7016 "configure"
+#line 8292 "configure"
#include "confdefs.h"
int main(void)
@@ -7023,7 +8299,7 @@ else
}
EOF
-if { (eval echo configure:7027: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:8303: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_sectionLDflags=yes
else
@@ -7048,7 +8324,7 @@ fi
fi
# Set linker optimization flags.
- if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then
+ if test x"$with_gnu_ld" = x"yes"; then
OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
fi
@@ -7057,7 +8333,7 @@ fi
echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:7061: checking for main in -lm" >&5
+echo "configure:8337: checking for main in -lm" >&5
ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -7065,14 +8341,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 7069 "configure"
+#line 8345 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:7076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8352: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -7102,12 +8378,12 @@ fi
for ac_func in nan copysignf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7106: checking for $ac_func" >&5
+echo "configure:8382: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7111 "configure"
+#line 8387 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7130,7 +8406,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7134: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7159,12 +8435,12 @@ done
for ac_func in __signbit
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7163: checking for $ac_func" >&5
+echo "configure:8439: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7168 "configure"
+#line 8444 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7187,7 +8463,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7191: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7215,12 +8491,12 @@ done
for ac_func in __signbitf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7219: checking for $ac_func" >&5
+echo "configure:8495: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7224 "configure"
+#line 8500 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7243,7 +8519,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8523: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7273,12 +8549,12 @@ done
for ac_func in __signbitl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7277: checking for $ac_func" >&5
+echo "configure:8553: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7282 "configure"
+#line 8558 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7301,7 +8577,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7328,21 +8604,34 @@ done
fi
+ if test -n "$LIBMATHOBJS"; then
+ need_libmath=yes
+ fi
+
+if test "$need_libmath" = yes; then
+ GLIBCPP_BUILD_LIBMATH_TRUE=
+ GLIBCPP_BUILD_LIBMATH_FALSE='#'
+else
+ GLIBCPP_BUILD_LIBMATH_TRUE='#'
+ GLIBCPP_BUILD_LIBMATH_FALSE=
+fi
+
+ enable_wchar_t=no
echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6
-echo "configure:7337: checking for mbstate_t" >&5
+echo "configure:8626: checking for mbstate_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 7339 "configure"
+#line 8628 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
mbstate_t teststate;
; return 0; }
EOF
-if { (eval echo configure:7346: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8635: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
have_mbstate_t=yes
else
@@ -7364,17 +8653,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:7368: checking for $ac_hdr" >&5
+echo "configure:8657: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7373 "configure"
+#line 8662 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7378: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8667: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -7405,17 +8694,17 @@ done
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:7409: checking for $ac_hdr" >&5
+echo "configure:8698: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7414 "configure"
+#line 8703 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7419: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8708: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -7448,16 +8737,16 @@ done
test x"$enable_c_mbchar" != xno; then
echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6
-echo "configure:7452: checking for WCHAR_MIN and WCHAR_MAX" >&5
+echo "configure:8741: checking for WCHAR_MIN and WCHAR_MAX" >&5
cat > conftest.$ac_ext <<EOF
-#line 7454 "configure"
+#line 8743 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
int i = WCHAR_MIN; int j = WCHAR_MAX;
; return 0; }
EOF
-if { (eval echo configure:7461: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8750: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_wchar_minmax=yes
else
@@ -7470,9 +8759,9 @@ rm -f conftest*
echo "$ac_t""$has_wchar_minmax" 1>&6
echo $ac_n "checking for WEOF""... $ac_c" 1>&6
-echo "configure:7474: checking for WEOF" >&5
+echo "configure:8763: checking for WEOF" >&5
cat > conftest.$ac_ext <<EOF
-#line 7476 "configure"
+#line 8765 "configure"
#include "confdefs.h"
#include <wchar.h>
@@ -7481,7 +8770,7 @@ int main() {
wint_t i = WEOF;
; return 0; }
EOF
-if { (eval echo configure:7485: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8774: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_weof=yes
else
@@ -7497,12 +8786,12 @@ rm -f conftest*
for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7501: checking for $ac_func" >&5
+echo "configure:8790: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7506 "configure"
+#line 8795 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7525,7 +8814,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8818: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7552,7 +8841,7 @@ fi
done
- for ac_func in btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
+ for ac_func in btowc wctob fgetwc fgetws fputwc fputws fwide \
fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
@@ -7560,12 +8849,12 @@ done
wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7564: checking for $ac_func" >&5
+echo "configure:8853: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7569 "configure"
+#line 8858 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7588,7 +8877,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8881: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7616,7 +8905,7 @@ done
echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6
-echo "configure:7620: checking for ISO C99 wchar_t support" >&5
+echo "configure:8909: checking for ISO C99 wchar_t support" >&5
if test x"$has_weof" = xyes &&
test x"$has_wchar_minmax" = xyes &&
test x"$ac_wfuncs" = xyes; then
@@ -7628,17 +8917,17 @@ echo "configure:7620: checking for ISO C99 wchar_t support" >&5
ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for iconv.h""... $ac_c" 1>&6
-echo "configure:7632: checking for iconv.h" >&5
+echo "configure:8921: checking for iconv.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7637 "configure"
+#line 8926 "configure"
#include "confdefs.h"
#include <iconv.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7642: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8931: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -7662,17 +8951,17 @@ fi
ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6
-echo "configure:7666: checking for langinfo.h" >&5
+echo "configure:8955: checking for langinfo.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7671 "configure"
+#line 8960 "configure"
#include "confdefs.h"
#include <langinfo.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7676: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8965: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -7696,7 +8985,7 @@ fi
echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6
-echo "configure:7700: checking for iconv in -liconv" >&5
+echo "configure:8989: checking for iconv in -liconv" >&5
ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -7704,7 +8993,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-liconv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 7708 "configure"
+#line 8997 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -7715,7 +9004,7 @@ int main() {
iconv()
; return 0; }
EOF
-if { (eval echo configure:7719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9008: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -7741,12 +9030,12 @@ fi
for ac_func in iconv_open iconv_close iconv nl_langinfo
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7745: checking for $ac_func" >&5
+echo "configure:9034: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7750 "configure"
+#line 9039 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7769,7 +9058,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7773: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7799,7 +9088,7 @@ done
LIBS="$ac_save_LIBS"
echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6
-echo "configure:7803: checking for XPG2 wchar_t support" >&5
+echo "configure:9092: checking for XPG2 wchar_t support" >&5
if test x"$ac_has_iconv_h" = xyes &&
test x"$ac_has_langinfo_h" = xyes &&
test x"$ac_XPG2funcs" = xyes; then
@@ -7809,23 +9098,32 @@ echo "configure:7803: checking for XPG2 wchar_t support" >&5
fi
echo "$ac_t""$ac_XPG2_wchar_t" 1>&6
- echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
-echo "configure:7814: checking for enabled wchar_t specializations" >&5
- if test x"$ac_isoC99_wchar_t" = xyes &&
+ if test x"$ac_isoC99_wchar_t" = xyes &&
test x"$ac_XPG2_wchar_t" = xyes; then
- cat >> confdefs.h <<\EOF
+ cat >> confdefs.h <<\EOF
#define _GLIBCPP_USE_WCHAR_T 1
EOF
- echo "$ac_t"""yes"" 1>&6
- else
- echo "$ac_t"""no"" 1>&6
+ enable_wchar_t=yes
fi
- else
- echo "configure: warning: wchar_t support disabled." 1>&2
fi
+ echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
+echo "configure:9112: checking for enabled wchar_t specializations" >&5
+ echo "$ac_t""$enable_wchar_t" 1>&6
+
+
+if test "$enable_wchar_t" = yes; then
+ GLIBCPP_TEST_WCHAR_T_TRUE=
+ GLIBCPP_TEST_WCHAR_T_FALSE='#'
+else
+ GLIBCPP_TEST_WCHAR_T_TRUE='#'
+ GLIBCPP_TEST_WCHAR_T_FALSE=
+fi
- os_include_dir="config/os/mingw32"
+ os_include_dir="os/mingw32"
+ ;;
+ *-windiss*)
+ os_include_dir="os/windiss"
;;
*-qnx6.[12]*)
SECTION_FLAGS='-ffunction-sections -fdata-sections'
@@ -7880,12 +9178,12 @@ EOF
# used sections, first .eh_frame and now some of the glibc sections for
# iconv). Bzzzzt. Thanks for playing, maybe next time.
echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6
-echo "configure:7884: checking for ld that supports -Wl,--gc-sections" >&5
+echo "configure:9182: checking for ld that supports -Wl,--gc-sections" >&5
if test "$cross_compiling" = yes; then
ac_sectionLDflags=yes
else
cat > conftest.$ac_ext <<EOF
-#line 7889 "configure"
+#line 9187 "configure"
#include "confdefs.h"
int main(void)
@@ -7896,7 +9194,7 @@ else
}
EOF
-if { (eval echo configure:7900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:9198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_sectionLDflags=yes
else
@@ -7921,7 +9219,7 @@ fi
fi
# Set linker optimization flags.
- if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then
+ if test x"$with_gnu_ld" = x"yes"; then
OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
fi
@@ -7930,7 +9228,7 @@ fi
echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:7934: checking for main in -lm" >&5
+echo "configure:9232: checking for main in -lm" >&5
ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -7938,14 +9236,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 7942 "configure"
+#line 9240 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:7949: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -7975,12 +9273,12 @@ fi
for ac_func in nan copysignf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7979: checking for $ac_func" >&5
+echo "configure:9277: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7984 "configure"
+#line 9282 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -8003,7 +9301,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:8007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -8032,12 +9330,12 @@ done
for ac_func in __signbit
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8036: checking for $ac_func" >&5
+echo "configure:9334: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8041 "configure"
+#line 9339 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -8060,7 +9358,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:8064: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -8088,12 +9386,12 @@ done
for ac_func in __signbitf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8092: checking for $ac_func" >&5
+echo "configure:9390: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8097 "configure"
+#line 9395 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -8116,7 +9414,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:8120: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -8146,12 +9444,12 @@ done
for ac_func in __signbitl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8150: checking for $ac_func" >&5
+echo "configure:9448: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8155 "configure"
+#line 9453 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -8174,7 +9472,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:8178: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -8201,21 +9499,34 @@ done
fi
+ if test -n "$LIBMATHOBJS"; then
+ need_libmath=yes
+ fi
+
+if test "$need_libmath" = yes; then
+ GLIBCPP_BUILD_LIBMATH_TRUE=
+ GLIBCPP_BUILD_LIBMATH_FALSE='#'
+else
+ GLIBCPP_BUILD_LIBMATH_TRUE='#'
+ GLIBCPP_BUILD_LIBMATH_FALSE=
+fi
+
+ enable_wchar_t=no
echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6
-echo "configure:8210: checking for mbstate_t" >&5
+echo "configure:9521: checking for mbstate_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 8212 "configure"
+#line 9523 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
mbstate_t teststate;
; return 0; }
EOF
-if { (eval echo configure:8219: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9530: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
have_mbstate_t=yes
else
@@ -8237,17 +9548,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:8241: checking for $ac_hdr" >&5
+echo "configure:9552: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8246 "configure"
+#line 9557 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8251: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9562: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -8278,17 +9589,17 @@ done
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:8282: checking for $ac_hdr" >&5
+echo "configure:9593: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8287 "configure"
+#line 9598 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8292: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9603: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -8321,16 +9632,16 @@ done
test x"$enable_c_mbchar" != xno; then
echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6
-echo "configure:8325: checking for WCHAR_MIN and WCHAR_MAX" >&5
+echo "configure:9636: checking for WCHAR_MIN and WCHAR_MAX" >&5
cat > conftest.$ac_ext <<EOF
-#line 8327 "configure"
+#line 9638 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
int i = WCHAR_MIN; int j = WCHAR_MAX;
; return 0; }
EOF
-if { (eval echo configure:8334: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9645: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_wchar_minmax=yes
else
@@ -8343,9 +9654,9 @@ rm -f conftest*
echo "$ac_t""$has_wchar_minmax" 1>&6
echo $ac_n "checking for WEOF""... $ac_c" 1>&6
-echo "configure:8347: checking for WEOF" >&5
+echo "configure:9658: checking for WEOF" >&5
cat > conftest.$ac_ext <<EOF
-#line 8349 "configure"
+#line 9660 "configure"
#include "confdefs.h"
#include <wchar.h>
@@ -8354,7 +9665,7 @@ int main() {
wint_t i = WEOF;
; return 0; }
EOF
-if { (eval echo configure:8358: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9669: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_weof=yes
else
@@ -8370,12 +9681,12 @@ rm -f conftest*
for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8374: checking for $ac_func" >&5
+echo "configure:9685: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8379 "configure"
+#line 9690 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -8398,7 +9709,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:8402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9713: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -8425,7 +9736,7 @@ fi
done
- for ac_func in btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
+ for ac_func in btowc wctob fgetwc fgetws fputwc fputws fwide \
fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
@@ -8433,12 +9744,12 @@ done
wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8437: checking for $ac_func" >&5
+echo "configure:9748: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8442 "configure"
+#line 9753 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -8461,7 +9772,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:8465: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9776: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -8489,7 +9800,7 @@ done
echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6
-echo "configure:8493: checking for ISO C99 wchar_t support" >&5
+echo "configure:9804: checking for ISO C99 wchar_t support" >&5
if test x"$has_weof" = xyes &&
test x"$has_wchar_minmax" = xyes &&
test x"$ac_wfuncs" = xyes; then
@@ -8501,17 +9812,17 @@ echo "configure:8493: checking for ISO C99 wchar_t support" >&5
ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for iconv.h""... $ac_c" 1>&6
-echo "configure:8505: checking for iconv.h" >&5
+echo "configure:9816: checking for iconv.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8510 "configure"
+#line 9821 "configure"
#include "confdefs.h"
#include <iconv.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8515: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9826: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -8535,17 +9846,17 @@ fi
ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6
-echo "configure:8539: checking for langinfo.h" >&5
+echo "configure:9850: checking for langinfo.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8544 "configure"
+#line 9855 "configure"
#include "confdefs.h"
#include <langinfo.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8549: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9860: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -8569,7 +9880,7 @@ fi
echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6
-echo "configure:8573: checking for iconv in -liconv" >&5
+echo "configure:9884: checking for iconv in -liconv" >&5
ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -8577,7 +9888,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-liconv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 8581 "configure"
+#line 9892 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -8588,7 +9899,7 @@ int main() {
iconv()
; return 0; }
EOF
-if { (eval echo configure:8592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9903: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -8614,12 +9925,12 @@ fi
for ac_func in iconv_open iconv_close iconv nl_langinfo
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8618: checking for $ac_func" >&5
+echo "configure:9929: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8623 "configure"
+#line 9934 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -8642,7 +9953,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:8646: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9957: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -8672,7 +9983,7 @@ done
LIBS="$ac_save_LIBS"
echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6
-echo "configure:8676: checking for XPG2 wchar_t support" >&5
+echo "configure:9987: checking for XPG2 wchar_t support" >&5
if test x"$ac_has_iconv_h" = xyes &&
test x"$ac_has_langinfo_h" = xyes &&
test x"$ac_XPG2funcs" = xyes; then
@@ -8682,23 +9993,29 @@ echo "configure:8676: checking for XPG2 wchar_t support" >&5
fi
echo "$ac_t""$ac_XPG2_wchar_t" 1>&6
- echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
-echo "configure:8687: checking for enabled wchar_t specializations" >&5
- if test x"$ac_isoC99_wchar_t" = xyes &&
+ if test x"$ac_isoC99_wchar_t" = xyes &&
test x"$ac_XPG2_wchar_t" = xyes; then
- cat >> confdefs.h <<\EOF
+ cat >> confdefs.h <<\EOF
#define _GLIBCPP_USE_WCHAR_T 1
EOF
- echo "$ac_t"""yes"" 1>&6
- else
- echo "$ac_t"""no"" 1>&6
+ enable_wchar_t=yes
fi
- else
- echo "configure: warning: wchar_t support disabled." 1>&2
fi
+ echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
+echo "configure:10007: checking for enabled wchar_t specializations" >&5
+ echo "$ac_t""$enable_wchar_t" 1>&6
+
+
+if test "$enable_wchar_t" = yes; then
+ GLIBCPP_TEST_WCHAR_T_TRUE=
+ GLIBCPP_TEST_WCHAR_T_FALSE='#'
+else
+ GLIBCPP_TEST_WCHAR_T_TRUE='#'
+ GLIBCPP_TEST_WCHAR_T_FALSE=
+fi
- os_include_dir="config/os/qnx/qnx6.1"
+ os_include_dir="os/qnx/qnx6.1"
cat >> confdefs.h <<\EOF
#define HAVE_COSF 1
EOF
@@ -8749,7 +10066,7 @@ EOF
;;
*)
- os_include_dir="config/os/newlib"
+ os_include_dir="os/newlib"
cat >> confdefs.h <<\EOF
#define HAVE_HYPOT 1
EOF
@@ -8760,21 +10077,109 @@ EOF
case "$target" in
*-mingw32*)
;;
- *)
- # GLIBCPP_CHECK_STDLIB_SUPPORT
+ *-windiss*)
cat >> confdefs.h <<\EOF
-#define HAVE_STRTOF 1
+#define HAVE_ACOSF 1
EOF
-
+
cat >> confdefs.h <<\EOF
-#define HAVE_STRTOLD 1
+#define HAVE_ASINF 1
EOF
-
- # AC_FUNC_MMAP
+
cat >> confdefs.h <<\EOF
-#define HAVE_MMAP 1
+#define HAVE_ATAN2F 1
EOF
+ cat >> confdefs.h <<\EOF
+#define HAVE_ATANF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_CEILF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_COPYSIGN 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_COPYSIGNF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_COSF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_COSHF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_EXPF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_FABSF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_FLOORF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_FMODF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_FREXPF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_LDEXPF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_LOG10F 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_LOGF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_MODFF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_POWF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_SINF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_SINHF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_SQRTF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_TANF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_TANHF 1
+EOF
+
+ ;;
+ *-freebsd*)
+ # Must replicate generic section since we don't have strtof or strtold.
+ cat >> confdefs.h <<\EOF
+#define HAVE_MMAP 1
+EOF
cat >> confdefs.h <<\EOF
#define HAVE_ACOSF 1
@@ -8821,39 +10226,128 @@ EOF
EOF
cat >> confdefs.h <<\EOF
-#define HAVE_FINITE 1
+#define HAVE_FLOORF 1
EOF
cat >> confdefs.h <<\EOF
-#define HAVE_FINITEF 1
+#define HAVE_FMODF 1
EOF
cat >> confdefs.h <<\EOF
-#define HAVE_FLOORF 1
+#define HAVE_FREXPF 1
EOF
cat >> confdefs.h <<\EOF
-#define HAVE_FMODF 1
+#define HAVE_LDEXPF 1
EOF
cat >> confdefs.h <<\EOF
-#define HAVE_FREXPF 1
+#define HAVE_LOG10F 1
EOF
cat >> confdefs.h <<\EOF
-#define HAVE_ISINF 1
+#define HAVE_LOGF 1
EOF
cat >> confdefs.h <<\EOF
-#define HAVE_ISINFF 1
+#define HAVE_MODFF 1
EOF
cat >> confdefs.h <<\EOF
-#define HAVE_ISNAN 1
+#define HAVE_POWF 1
EOF
cat >> confdefs.h <<\EOF
-#define HAVE_ISNANF 1
+#define HAVE_SINF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_SINHF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_SQRTF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_TANF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_TANHF 1
+EOF
+
+ ;;
+ *)
+ # GLIBCPP_CHECK_STDLIB_SUPPORT
+ cat >> confdefs.h <<\EOF
+#define HAVE_STRTOF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_STRTOLD 1
+EOF
+
+ # AC_FUNC_MMAP
+ cat >> confdefs.h <<\EOF
+#define HAVE_MMAP 1
+EOF
+
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_ACOSF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_ASINF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_ATAN2F 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_ATANF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_CEILF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_COPYSIGN 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_COPYSIGNF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_COSF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_COSHF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_EXPF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_FABSF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_FLOORF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_FMODF 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_FREXPF 1
EOF
cat >> confdefs.h <<\EOF
@@ -8944,10 +10438,6 @@ EOF
EOF
cat >> confdefs.h <<\EOF
-#define HAVE_FINITEL 1
-EOF
-
- cat >> confdefs.h <<\EOF
#define HAVE_FLOORL 1
EOF
@@ -8960,14 +10450,6 @@ EOF
EOF
cat >> confdefs.h <<\EOF
-#define HAVE_ISINFL 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define HAVE_ISNANL 1
-EOF
-
- cat >> confdefs.h <<\EOF
#define HAVE_LDEXPL 1
EOF
@@ -9012,6 +10494,7 @@ EOF
EOF
fi
+
else
# We are being configured natively. We can do more elaborate tests
@@ -9026,17 +10509,17 @@ else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:9030: checking for $ac_hdr" >&5
+echo "configure:10513: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9035 "configure"
+#line 10518 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9040: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10523: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -9087,10 +10570,10 @@ cross_compiling=$ac_cv_prog_cxx_cross
# Check for -ffunction-sections -fdata-sections
echo $ac_n "checking for g++ that supports -ffunction-sections -fdata-sections""... $ac_c" 1>&6
-echo "configure:9091: checking for g++ that supports -ffunction-sections -fdata-sections" >&5
+echo "configure:10574: checking for g++ that supports -ffunction-sections -fdata-sections" >&5
CXXFLAGS='-Werror -ffunction-sections -fdata-sections'
cat > conftest.$ac_ext <<EOF
-#line 9094 "configure"
+#line 10577 "configure"
#include "confdefs.h"
int main() {
@@ -9098,7 +10581,7 @@ int foo;
; return 0; }
EOF
-if { (eval echo configure:9102: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10585: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_fdsections=yes
else
@@ -9114,8 +10597,7 @@ rm -f conftest*
# this is the suspicious part
CXXFLAGS=''
fi
- if test x"$ac_fdsections" = x"yes" &&
- test x"$enable_debug" = x"no"; then
+ if test x"$ac_fdsections" = x"yes"; then
SECTION_FLAGS='-ffunction-sections -fdata-sections'
fi
echo "$ac_t""$ac_fdsections" 1>&6
@@ -9180,12 +10662,12 @@ cross_compiling=$ac_cv_prog_cc_cross
# used sections, first .eh_frame and now some of the glibc sections for
# iconv). Bzzzzt. Thanks for playing, maybe next time.
echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6
-echo "configure:9184: checking for ld that supports -Wl,--gc-sections" >&5
+echo "configure:10666: checking for ld that supports -Wl,--gc-sections" >&5
if test "$cross_compiling" = yes; then
ac_sectionLDflags=yes
else
cat > conftest.$ac_ext <<EOF
-#line 9189 "configure"
+#line 10671 "configure"
#include "confdefs.h"
int main(void)
@@ -9196,7 +10678,7 @@ else
}
EOF
-if { (eval echo configure:9200: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:10682: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_sectionLDflags=yes
else
@@ -9221,7 +10703,7 @@ fi
fi
# Set linker optimization flags.
- if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then
+ if test x"$with_gnu_ld" = x"yes"; then
OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
fi
@@ -9231,7 +10713,7 @@ fi
echo $ac_n "checking for __builtin_abs declaration""... $ac_c" 1>&6
-echo "configure:9235: checking for __builtin_abs declaration" >&5
+echo "configure:10717: checking for __builtin_abs declaration" >&5
if test x${glibcpp_cv_func___builtin_abs_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -9246,14 +10728,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 9250 "configure"
+#line 10732 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_abs(0);
; return 0; }
EOF
-if { (eval echo configure:9257: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10739: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_abs_use=yes
else
@@ -9277,21 +10759,21 @@ fi
echo "$ac_t""$glibcpp_cv_func___builtin_abs_use" 1>&6
if test x$glibcpp_cv_func___builtin_abs_use = x"yes"; then
echo $ac_n "checking for __builtin_abs linkage""... $ac_c" 1>&6
-echo "configure:9281: checking for __builtin_abs linkage" >&5
+echo "configure:10763: checking for __builtin_abs linkage" >&5
if test x${glibcpp_cv_func___builtin_abs_link+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_link'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9288 "configure"
+#line 10770 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_abs(0);
; return 0; }
EOF
-if { (eval echo configure:9295: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
glibcpp_cv_func___builtin_abs_link=yes
else
@@ -9317,7 +10799,7 @@ EOF
echo $ac_n "checking for __builtin_fabsf declaration""... $ac_c" 1>&6
-echo "configure:9321: checking for __builtin_fabsf declaration" >&5
+echo "configure:10803: checking for __builtin_fabsf declaration" >&5
if test x${glibcpp_cv_func___builtin_fabsf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -9332,14 +10814,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 9336 "configure"
+#line 10818 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_fabsf(0);
; return 0; }
EOF
-if { (eval echo configure:9343: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10825: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_fabsf_use=yes
else
@@ -9363,21 +10845,21 @@ fi
echo "$ac_t""$glibcpp_cv_func___builtin_fabsf_use" 1>&6
if test x$glibcpp_cv_func___builtin_fabsf_use = x"yes"; then
echo $ac_n "checking for __builtin_fabsf linkage""... $ac_c" 1>&6
-echo "configure:9367: checking for __builtin_fabsf linkage" >&5
+echo "configure:10849: checking for __builtin_fabsf linkage" >&5
if test x${glibcpp_cv_func___builtin_fabsf_link+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_link'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9374 "configure"
+#line 10856 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_fabsf(0);
; return 0; }
EOF
-if { (eval echo configure:9381: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
glibcpp_cv_func___builtin_fabsf_link=yes
else
@@ -9403,7 +10885,7 @@ EOF
echo $ac_n "checking for __builtin_fabs declaration""... $ac_c" 1>&6
-echo "configure:9407: checking for __builtin_fabs declaration" >&5
+echo "configure:10889: checking for __builtin_fabs declaration" >&5
if test x${glibcpp_cv_func___builtin_fabs_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -9418,14 +10900,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 9422 "configure"
+#line 10904 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_fabs(0);
; return 0; }
EOF
-if { (eval echo configure:9429: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10911: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_fabs_use=yes
else
@@ -9449,21 +10931,21 @@ fi
echo "$ac_t""$glibcpp_cv_func___builtin_fabs_use" 1>&6
if test x$glibcpp_cv_func___builtin_fabs_use = x"yes"; then
echo $ac_n "checking for __builtin_fabs linkage""... $ac_c" 1>&6
-echo "configure:9453: checking for __builtin_fabs linkage" >&5
+echo "configure:10935: checking for __builtin_fabs linkage" >&5
if test x${glibcpp_cv_func___builtin_fabs_link+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_link'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9460 "configure"
+#line 10942 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_fabs(0);
; return 0; }
EOF
-if { (eval echo configure:9467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10949: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
glibcpp_cv_func___builtin_fabs_link=yes
else
@@ -9489,7 +10971,7 @@ EOF
echo $ac_n "checking for __builtin_fabsl declaration""... $ac_c" 1>&6
-echo "configure:9493: checking for __builtin_fabsl declaration" >&5
+echo "configure:10975: checking for __builtin_fabsl declaration" >&5
if test x${glibcpp_cv_func___builtin_fabsl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -9504,14 +10986,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 9508 "configure"
+#line 10990 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_fabsl(0);
; return 0; }
EOF
-if { (eval echo configure:9515: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10997: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_fabsl_use=yes
else
@@ -9535,21 +11017,21 @@ fi
echo "$ac_t""$glibcpp_cv_func___builtin_fabsl_use" 1>&6
if test x$glibcpp_cv_func___builtin_fabsl_use = x"yes"; then
echo $ac_n "checking for __builtin_fabsl linkage""... $ac_c" 1>&6
-echo "configure:9539: checking for __builtin_fabsl linkage" >&5
+echo "configure:11021: checking for __builtin_fabsl linkage" >&5
if test x${glibcpp_cv_func___builtin_fabsl_link+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_link'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9546 "configure"
+#line 11028 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_fabsl(0);
; return 0; }
EOF
-if { (eval echo configure:9553: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
glibcpp_cv_func___builtin_fabsl_link=yes
else
@@ -9575,7 +11057,7 @@ EOF
echo $ac_n "checking for __builtin_labs declaration""... $ac_c" 1>&6
-echo "configure:9579: checking for __builtin_labs declaration" >&5
+echo "configure:11061: checking for __builtin_labs declaration" >&5
if test x${glibcpp_cv_func___builtin_labs_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -9590,14 +11072,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 9594 "configure"
+#line 11076 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_labs(0);
; return 0; }
EOF
-if { (eval echo configure:9601: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11083: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_labs_use=yes
else
@@ -9621,21 +11103,21 @@ fi
echo "$ac_t""$glibcpp_cv_func___builtin_labs_use" 1>&6
if test x$glibcpp_cv_func___builtin_labs_use = x"yes"; then
echo $ac_n "checking for __builtin_labs linkage""... $ac_c" 1>&6
-echo "configure:9625: checking for __builtin_labs linkage" >&5
+echo "configure:11107: checking for __builtin_labs linkage" >&5
if test x${glibcpp_cv_func___builtin_labs_link+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_link'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9632 "configure"
+#line 11114 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_labs(0);
; return 0; }
EOF
-if { (eval echo configure:9639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
glibcpp_cv_func___builtin_labs_link=yes
else
@@ -9662,7 +11144,7 @@ EOF
echo $ac_n "checking for __builtin_sqrtf declaration""... $ac_c" 1>&6
-echo "configure:9666: checking for __builtin_sqrtf declaration" >&5
+echo "configure:11148: checking for __builtin_sqrtf declaration" >&5
if test x${glibcpp_cv_func___builtin_sqrtf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -9677,14 +11159,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 9681 "configure"
+#line 11163 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sqrtf(0);
; return 0; }
EOF
-if { (eval echo configure:9688: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11170: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_sqrtf_use=yes
else
@@ -9708,21 +11190,21 @@ fi
echo "$ac_t""$glibcpp_cv_func___builtin_sqrtf_use" 1>&6
if test x$glibcpp_cv_func___builtin_sqrtf_use = x"yes"; then
echo $ac_n "checking for __builtin_sqrtf linkage""... $ac_c" 1>&6
-echo "configure:9712: checking for __builtin_sqrtf linkage" >&5
+echo "configure:11194: checking for __builtin_sqrtf linkage" >&5
if test x${glibcpp_cv_func___builtin_sqrtf_link+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_link'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9719 "configure"
+#line 11201 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sqrtf(0);
; return 0; }
EOF
-if { (eval echo configure:9726: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11208: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
glibcpp_cv_func___builtin_sqrtf_link=yes
else
@@ -9748,7 +11230,7 @@ EOF
echo $ac_n "checking for __builtin_sqrt declaration""... $ac_c" 1>&6
-echo "configure:9752: checking for __builtin_sqrt declaration" >&5
+echo "configure:11234: checking for __builtin_sqrt declaration" >&5
if test x${glibcpp_cv_func___builtin_sqrt_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrt_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -9763,14 +11245,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 9767 "configure"
+#line 11249 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sqrt(0);
; return 0; }
EOF
-if { (eval echo configure:9774: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11256: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_sqrt_use=yes
else
@@ -9794,21 +11276,21 @@ fi
echo "$ac_t""$glibcpp_cv_func___builtin_sqrt_use" 1>&6
if test x$glibcpp_cv_func___builtin_sqrt_use = x"yes"; then
echo $ac_n "checking for __builtin_sqrt linkage""... $ac_c" 1>&6
-echo "configure:9798: checking for __builtin_sqrt linkage" >&5
+echo "configure:11280: checking for __builtin_sqrt linkage" >&5
if test x${glibcpp_cv_func___builtin_sqrt_link+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrt_link'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9805 "configure"
+#line 11287 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sqrt(0);
; return 0; }
EOF
-if { (eval echo configure:9812: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11294: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
glibcpp_cv_func___builtin_sqrt_link=yes
else
@@ -9834,7 +11316,7 @@ EOF
echo $ac_n "checking for __builtin_sqrtl declaration""... $ac_c" 1>&6
-echo "configure:9838: checking for __builtin_sqrtl declaration" >&5
+echo "configure:11320: checking for __builtin_sqrtl declaration" >&5
if test x${glibcpp_cv_func___builtin_sqrtl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -9849,14 +11331,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 9853 "configure"
+#line 11335 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sqrtl(0);
; return 0; }
EOF
-if { (eval echo configure:9860: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11342: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_sqrtl_use=yes
else
@@ -9880,21 +11362,21 @@ fi
echo "$ac_t""$glibcpp_cv_func___builtin_sqrtl_use" 1>&6
if test x$glibcpp_cv_func___builtin_sqrtl_use = x"yes"; then
echo $ac_n "checking for __builtin_sqrtl linkage""... $ac_c" 1>&6
-echo "configure:9884: checking for __builtin_sqrtl linkage" >&5
+echo "configure:11366: checking for __builtin_sqrtl linkage" >&5
if test x${glibcpp_cv_func___builtin_sqrtl_link+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_link'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9891 "configure"
+#line 11373 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sqrtl(0);
; return 0; }
EOF
-if { (eval echo configure:9898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11380: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
glibcpp_cv_func___builtin_sqrtl_link=yes
else
@@ -9921,7 +11403,7 @@ EOF
echo $ac_n "checking for __builtin_sinf declaration""... $ac_c" 1>&6
-echo "configure:9925: checking for __builtin_sinf declaration" >&5
+echo "configure:11407: checking for __builtin_sinf declaration" >&5
if test x${glibcpp_cv_func___builtin_sinf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -9936,14 +11418,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 9940 "configure"
+#line 11422 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sinf(0);
; return 0; }
EOF
-if { (eval echo configure:9947: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11429: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_sinf_use=yes
else
@@ -9967,21 +11449,21 @@ fi
echo "$ac_t""$glibcpp_cv_func___builtin_sinf_use" 1>&6
if test x$glibcpp_cv_func___builtin_sinf_use = x"yes"; then
echo $ac_n "checking for __builtin_sinf linkage""... $ac_c" 1>&6
-echo "configure:9971: checking for __builtin_sinf linkage" >&5
+echo "configure:11453: checking for __builtin_sinf linkage" >&5
if test x${glibcpp_cv_func___builtin_sinf_link+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_link'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9978 "configure"
+#line 11460 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sinf(0);
; return 0; }
EOF
-if { (eval echo configure:9985: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
glibcpp_cv_func___builtin_sinf_link=yes
else
@@ -10007,7 +11489,7 @@ EOF
echo $ac_n "checking for __builtin_sin declaration""... $ac_c" 1>&6
-echo "configure:10011: checking for __builtin_sin declaration" >&5
+echo "configure:11493: checking for __builtin_sin declaration" >&5
if test x${glibcpp_cv_func___builtin_sin_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -10022,14 +11504,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 10026 "configure"
+#line 11508 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sin(0);
; return 0; }
EOF
-if { (eval echo configure:10033: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11515: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_sin_use=yes
else
@@ -10053,21 +11535,21 @@ fi
echo "$ac_t""$glibcpp_cv_func___builtin_sin_use" 1>&6
if test x$glibcpp_cv_func___builtin_sin_use = x"yes"; then
echo $ac_n "checking for __builtin_sin linkage""... $ac_c" 1>&6
-echo "configure:10057: checking for __builtin_sin linkage" >&5
+echo "configure:11539: checking for __builtin_sin linkage" >&5
if test x${glibcpp_cv_func___builtin_sin_link+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_link'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 10064 "configure"
+#line 11546 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sin(0);
; return 0; }
EOF
-if { (eval echo configure:10071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11553: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
glibcpp_cv_func___builtin_sin_link=yes
else
@@ -10093,7 +11575,7 @@ EOF
echo $ac_n "checking for __builtin_sinl declaration""... $ac_c" 1>&6
-echo "configure:10097: checking for __builtin_sinl declaration" >&5
+echo "configure:11579: checking for __builtin_sinl declaration" >&5
if test x${glibcpp_cv_func___builtin_sinl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -10108,14 +11590,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 10112 "configure"
+#line 11594 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sinl(0);
; return 0; }
EOF
-if { (eval echo configure:10119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11601: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_sinl_use=yes
else
@@ -10139,21 +11621,21 @@ fi
echo "$ac_t""$glibcpp_cv_func___builtin_sinl_use" 1>&6
if test x$glibcpp_cv_func___builtin_sinl_use = x"yes"; then
echo $ac_n "checking for __builtin_sinl linkage""... $ac_c" 1>&6
-echo "configure:10143: checking for __builtin_sinl linkage" >&5
+echo "configure:11625: checking for __builtin_sinl linkage" >&5
if test x${glibcpp_cv_func___builtin_sinl_link+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_link'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 10150 "configure"
+#line 11632 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sinl(0);
; return 0; }
EOF
-if { (eval echo configure:10157: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
glibcpp_cv_func___builtin_sinl_link=yes
else
@@ -10180,7 +11662,7 @@ EOF
echo $ac_n "checking for __builtin_cosf declaration""... $ac_c" 1>&6
-echo "configure:10184: checking for __builtin_cosf declaration" >&5
+echo "configure:11666: checking for __builtin_cosf declaration" >&5
if test x${glibcpp_cv_func___builtin_cosf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -10195,14 +11677,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 10199 "configure"
+#line 11681 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_cosf(0);
; return 0; }
EOF
-if { (eval echo configure:10206: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11688: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_cosf_use=yes
else
@@ -10226,21 +11708,21 @@ fi
echo "$ac_t""$glibcpp_cv_func___builtin_cosf_use" 1>&6
if test x$glibcpp_cv_func___builtin_cosf_use = x"yes"; then
echo $ac_n "checking for __builtin_cosf linkage""... $ac_c" 1>&6
-echo "configure:10230: checking for __builtin_cosf linkage" >&5
+echo "configure:11712: checking for __builtin_cosf linkage" >&5
if test x${glibcpp_cv_func___builtin_cosf_link+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_link'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 10237 "configure"
+#line 11719 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_cosf(0);
; return 0; }
EOF
-if { (eval echo configure:10244: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11726: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
glibcpp_cv_func___builtin_cosf_link=yes
else
@@ -10266,7 +11748,7 @@ EOF
echo $ac_n "checking for __builtin_cos declaration""... $ac_c" 1>&6
-echo "configure:10270: checking for __builtin_cos declaration" >&5
+echo "configure:11752: checking for __builtin_cos declaration" >&5
if test x${glibcpp_cv_func___builtin_cos_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -10281,14 +11763,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 10285 "configure"
+#line 11767 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_cos(0);
; return 0; }
EOF
-if { (eval echo configure:10292: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11774: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_cos_use=yes
else
@@ -10312,21 +11794,21 @@ fi
echo "$ac_t""$glibcpp_cv_func___builtin_cos_use" 1>&6
if test x$glibcpp_cv_func___builtin_cos_use = x"yes"; then
echo $ac_n "checking for __builtin_cos linkage""... $ac_c" 1>&6
-echo "configure:10316: checking for __builtin_cos linkage" >&5
+echo "configure:11798: checking for __builtin_cos linkage" >&5
if test x${glibcpp_cv_func___builtin_cos_link+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_link'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 10323 "configure"
+#line 11805 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_cos(0);
; return 0; }
EOF
-if { (eval echo configure:10330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11812: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
glibcpp_cv_func___builtin_cos_link=yes
else
@@ -10352,7 +11834,7 @@ EOF
echo $ac_n "checking for __builtin_cosl declaration""... $ac_c" 1>&6
-echo "configure:10356: checking for __builtin_cosl declaration" >&5
+echo "configure:11838: checking for __builtin_cosl declaration" >&5
if test x${glibcpp_cv_func___builtin_cosl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -10367,14 +11849,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 10371 "configure"
+#line 11853 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_cosl(0);
; return 0; }
EOF
-if { (eval echo configure:10378: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11860: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_cosl_use=yes
else
@@ -10398,21 +11880,21 @@ fi
echo "$ac_t""$glibcpp_cv_func___builtin_cosl_use" 1>&6
if test x$glibcpp_cv_func___builtin_cosl_use = x"yes"; then
echo $ac_n "checking for __builtin_cosl linkage""... $ac_c" 1>&6
-echo "configure:10402: checking for __builtin_cosl linkage" >&5
+echo "configure:11884: checking for __builtin_cosl linkage" >&5
if test x${glibcpp_cv_func___builtin_cosl_link+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_link'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 10409 "configure"
+#line 11891 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_cosl(0);
; return 0; }
EOF
-if { (eval echo configure:10416: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
glibcpp_cv_func___builtin_cosl_link=yes
else
@@ -10500,10 +11982,10 @@ EOF
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
+ CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6
-echo "configure:10507: checking for sin in -lm" >&5
+echo "configure:11989: checking for sin in -lm" >&5
ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -10511,7 +11993,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 10515 "configure"
+#line 11997 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -10522,7 +12004,7 @@ int main() {
sin()
; return 0; }
EOF
-if { (eval echo configure:10526: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12008: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -10548,7 +12030,7 @@ fi
echo $ac_n "checking for isinf declaration""... $ac_c" 1>&6
-echo "configure:10552: checking for isinf declaration" >&5
+echo "configure:12034: checking for isinf declaration" >&5
if test x${glibcpp_cv_func_isinf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_isinf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -10563,7 +12045,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 10567 "configure"
+#line 12049 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -10574,7 +12056,7 @@ int main() {
isinf(0);
; return 0; }
EOF
-if { (eval echo configure:10578: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12060: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_isinf_use=yes
else
@@ -10601,12 +12083,12 @@ fi
for ac_func in isinf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10605: checking for $ac_func" >&5
+echo "configure:12087: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 10610 "configure"
+#line 12092 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -10629,7 +12111,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:10633: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12115: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -10656,7 +12138,7 @@ done
else
echo $ac_n "checking for _isinf declaration""... $ac_c" 1>&6
-echo "configure:10660: checking for _isinf declaration" >&5
+echo "configure:12142: checking for _isinf declaration" >&5
if test x${glibcpp_cv_func__isinf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__isinf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -10671,7 +12153,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 10675 "configure"
+#line 12157 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -10682,7 +12164,7 @@ int main() {
_isinf(0);
; return 0; }
EOF
-if { (eval echo configure:10686: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12168: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__isinf_use=yes
else
@@ -10709,12 +12191,12 @@ fi
for ac_func in _isinf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10713: checking for $ac_func" >&5
+echo "configure:12195: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 10718 "configure"
+#line 12200 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -10737,7 +12219,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:10741: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -10767,7 +12249,7 @@ done
echo $ac_n "checking for isnan declaration""... $ac_c" 1>&6
-echo "configure:10771: checking for isnan declaration" >&5
+echo "configure:12253: checking for isnan declaration" >&5
if test x${glibcpp_cv_func_isnan_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_isnan_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -10782,7 +12264,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 10786 "configure"
+#line 12268 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -10793,7 +12275,7 @@ int main() {
isnan(0);
; return 0; }
EOF
-if { (eval echo configure:10797: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12279: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_isnan_use=yes
else
@@ -10820,12 +12302,12 @@ fi
for ac_func in isnan
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10824: checking for $ac_func" >&5
+echo "configure:12306: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 10829 "configure"
+#line 12311 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -10848,7 +12330,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:10852: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -10875,7 +12357,7 @@ done
else
echo $ac_n "checking for _isnan declaration""... $ac_c" 1>&6
-echo "configure:10879: checking for _isnan declaration" >&5
+echo "configure:12361: checking for _isnan declaration" >&5
if test x${glibcpp_cv_func__isnan_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__isnan_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -10890,7 +12372,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 10894 "configure"
+#line 12376 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -10901,7 +12383,7 @@ int main() {
_isnan(0);
; return 0; }
EOF
-if { (eval echo configure:10905: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12387: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__isnan_use=yes
else
@@ -10928,12 +12410,12 @@ fi
for ac_func in _isnan
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10932: checking for $ac_func" >&5
+echo "configure:12414: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 10937 "configure"
+#line 12419 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -10956,7 +12438,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:10960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12442: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -10986,7 +12468,7 @@ done
echo $ac_n "checking for finite declaration""... $ac_c" 1>&6
-echo "configure:10990: checking for finite declaration" >&5
+echo "configure:12472: checking for finite declaration" >&5
if test x${glibcpp_cv_func_finite_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_finite_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -11001,7 +12483,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11005 "configure"
+#line 12487 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -11012,7 +12494,7 @@ int main() {
finite(0);
; return 0; }
EOF
-if { (eval echo configure:11016: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12498: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_finite_use=yes
else
@@ -11039,12 +12521,12 @@ fi
for ac_func in finite
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11043: checking for $ac_func" >&5
+echo "configure:12525: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 11048 "configure"
+#line 12530 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -11067,7 +12549,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:11071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12553: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -11094,7 +12576,7 @@ done
else
echo $ac_n "checking for _finite declaration""... $ac_c" 1>&6
-echo "configure:11098: checking for _finite declaration" >&5
+echo "configure:12580: checking for _finite declaration" >&5
if test x${glibcpp_cv_func__finite_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__finite_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -11109,7 +12591,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11113 "configure"
+#line 12595 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -11120,7 +12602,7 @@ int main() {
_finite(0);
; return 0; }
EOF
-if { (eval echo configure:11124: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12606: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__finite_use=yes
else
@@ -11147,12 +12629,12 @@ fi
for ac_func in _finite
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11151: checking for $ac_func" >&5
+echo "configure:12633: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 11156 "configure"
+#line 12638 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -11175,7 +12657,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:11179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -11205,7 +12687,7 @@ done
echo $ac_n "checking for copysign declaration""... $ac_c" 1>&6
-echo "configure:11209: checking for copysign declaration" >&5
+echo "configure:12691: checking for copysign declaration" >&5
if test x${glibcpp_cv_func_copysign_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_copysign_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -11220,14 +12702,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11224 "configure"
+#line 12706 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
copysign(0, 0);
; return 0; }
EOF
-if { (eval echo configure:11231: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12713: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_copysign_use=yes
else
@@ -11254,12 +12736,12 @@ fi
for ac_func in copysign
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11258: checking for $ac_func" >&5
+echo "configure:12740: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 11263 "configure"
+#line 12745 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -11282,7 +12764,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:11286: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12768: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -11309,7 +12791,7 @@ done
else
echo $ac_n "checking for _copysign declaration""... $ac_c" 1>&6
-echo "configure:11313: checking for _copysign declaration" >&5
+echo "configure:12795: checking for _copysign declaration" >&5
if test x${glibcpp_cv_func__copysign_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__copysign_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -11324,14 +12806,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11328 "configure"
+#line 12810 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_copysign(0, 0);
; return 0; }
EOF
-if { (eval echo configure:11335: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12817: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__copysign_use=yes
else
@@ -11358,12 +12840,12 @@ fi
for ac_func in _copysign
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11362: checking for $ac_func" >&5
+echo "configure:12844: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 11367 "configure"
+#line 12849 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -11386,7 +12868,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:11390: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12872: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -11416,7 +12898,7 @@ done
echo $ac_n "checking for sincos declaration""... $ac_c" 1>&6
-echo "configure:11420: checking for sincos declaration" >&5
+echo "configure:12902: checking for sincos declaration" >&5
if test x${glibcpp_cv_func_sincos_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_sincos_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -11431,14 +12913,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11435 "configure"
+#line 12917 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
sincos(0, 0, 0);
; return 0; }
EOF
-if { (eval echo configure:11442: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12924: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_sincos_use=yes
else
@@ -11465,12 +12947,12 @@ fi
for ac_func in sincos
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11469: checking for $ac_func" >&5
+echo "configure:12951: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 11474 "configure"
+#line 12956 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -11493,7 +12975,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:11497: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -11520,7 +13002,7 @@ done
else
echo $ac_n "checking for _sincos declaration""... $ac_c" 1>&6
-echo "configure:11524: checking for _sincos declaration" >&5
+echo "configure:13006: checking for _sincos declaration" >&5
if test x${glibcpp_cv_func__sincos_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__sincos_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -11535,14 +13017,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11539 "configure"
+#line 13021 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_sincos(0, 0, 0);
; return 0; }
EOF
-if { (eval echo configure:11546: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13028: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__sincos_use=yes
else
@@ -11569,12 +13051,12 @@ fi
for ac_func in _sincos
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11573: checking for $ac_func" >&5
+echo "configure:13055: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 11578 "configure"
+#line 13060 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -11597,7 +13079,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:11601: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13083: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -11627,7 +13109,7 @@ done
echo $ac_n "checking for fpclass declaration""... $ac_c" 1>&6
-echo "configure:11631: checking for fpclass declaration" >&5
+echo "configure:13113: checking for fpclass declaration" >&5
if test x${glibcpp_cv_func_fpclass_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_fpclass_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -11642,7 +13124,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11646 "configure"
+#line 13128 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -11653,7 +13135,7 @@ int main() {
fpclass(0);
; return 0; }
EOF
-if { (eval echo configure:11657: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13139: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_fpclass_use=yes
else
@@ -11680,12 +13162,12 @@ fi
for ac_func in fpclass
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11684: checking for $ac_func" >&5
+echo "configure:13166: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 11689 "configure"
+#line 13171 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -11708,7 +13190,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:11712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -11735,7 +13217,7 @@ done
else
echo $ac_n "checking for _fpclass declaration""... $ac_c" 1>&6
-echo "configure:11739: checking for _fpclass declaration" >&5
+echo "configure:13221: checking for _fpclass declaration" >&5
if test x${glibcpp_cv_func__fpclass_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__fpclass_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -11750,7 +13232,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11754 "configure"
+#line 13236 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -11761,7 +13243,7 @@ int main() {
_fpclass(0);
; return 0; }
EOF
-if { (eval echo configure:11765: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13247: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__fpclass_use=yes
else
@@ -11788,12 +13270,12 @@ fi
for ac_func in _fpclass
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11792: checking for $ac_func" >&5
+echo "configure:13274: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 11797 "configure"
+#line 13279 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -11816,7 +13298,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:11820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13302: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -11846,7 +13328,7 @@ done
echo $ac_n "checking for qfpclass declaration""... $ac_c" 1>&6
-echo "configure:11850: checking for qfpclass declaration" >&5
+echo "configure:13332: checking for qfpclass declaration" >&5
if test x${glibcpp_cv_func_qfpclass_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_qfpclass_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -11861,7 +13343,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11865 "configure"
+#line 13347 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -11872,7 +13354,7 @@ int main() {
qfpclass(0);
; return 0; }
EOF
-if { (eval echo configure:11876: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13358: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_qfpclass_use=yes
else
@@ -11899,12 +13381,12 @@ fi
for ac_func in qfpclass
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11903: checking for $ac_func" >&5
+echo "configure:13385: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 11908 "configure"
+#line 13390 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -11927,7 +13409,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:11931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -11954,7 +13436,7 @@ done
else
echo $ac_n "checking for _qfpclass declaration""... $ac_c" 1>&6
-echo "configure:11958: checking for _qfpclass declaration" >&5
+echo "configure:13440: checking for _qfpclass declaration" >&5
if test x${glibcpp_cv_func__qfpclass_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__qfpclass_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -11969,7 +13451,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11973 "configure"
+#line 13455 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -11980,7 +13462,7 @@ int main() {
_qfpclass(0);
; return 0; }
EOF
-if { (eval echo configure:11984: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13466: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__qfpclass_use=yes
else
@@ -12007,12 +13489,12 @@ fi
for ac_func in _qfpclass
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12011: checking for $ac_func" >&5
+echo "configure:13493: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12016 "configure"
+#line 13498 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -12035,7 +13517,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:12039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -12065,7 +13547,7 @@ done
echo $ac_n "checking for hypot declaration""... $ac_c" 1>&6
-echo "configure:12069: checking for hypot declaration" >&5
+echo "configure:13551: checking for hypot declaration" >&5
if test x${glibcpp_cv_func_hypot_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_hypot_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -12080,14 +13562,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 12084 "configure"
+#line 13566 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
hypot(0, 0);
; return 0; }
EOF
-if { (eval echo configure:12091: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13573: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_hypot_use=yes
else
@@ -12114,12 +13596,12 @@ fi
for ac_func in hypot
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12118: checking for $ac_func" >&5
+echo "configure:13600: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12123 "configure"
+#line 13605 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -12142,7 +13624,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:12146: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -12169,7 +13651,7 @@ done
else
echo $ac_n "checking for _hypot declaration""... $ac_c" 1>&6
-echo "configure:12173: checking for _hypot declaration" >&5
+echo "configure:13655: checking for _hypot declaration" >&5
if test x${glibcpp_cv_func__hypot_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__hypot_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -12184,14 +13666,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 12188 "configure"
+#line 13670 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_hypot(0, 0);
; return 0; }
EOF
-if { (eval echo configure:12195: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13677: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__hypot_use=yes
else
@@ -12218,12 +13700,12 @@ fi
for ac_func in _hypot
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12222: checking for $ac_func" >&5
+echo "configure:13704: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12227 "configure"
+#line 13709 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -12246,7 +13728,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:12250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13732: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -12276,7 +13758,7 @@ done
echo $ac_n "checking for float trig functions""... $ac_c" 1>&6
-echo "configure:12280: checking for float trig functions" >&5
+echo "configure:13762: checking for float trig functions" >&5
if eval "test \"`echo '$''{'glibcpp_cv_func_float_trig_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -12290,7 +13772,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 12294 "configure"
+#line 13776 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
@@ -12299,7 +13781,7 @@ int main() {
coshf sinhf tanhf; do echo "$x (0);"; done`
; return 0; }
EOF
-if { (eval echo configure:12303: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13785: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_float_trig_use=yes
else
@@ -12325,12 +13807,12 @@ fi
coshf sinhf tanhf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12329: checking for $ac_func" >&5
+echo "configure:13811: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12334 "configure"
+#line 13816 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -12353,7 +13835,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:12357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13839: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -12381,7 +13863,7 @@ done
echo $ac_n "checking for float round functions""... $ac_c" 1>&6
-echo "configure:12385: checking for float round functions" >&5
+echo "configure:13867: checking for float round functions" >&5
if eval "test \"`echo '$''{'glibcpp_cv_func_float_round_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -12395,14 +13877,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 12399 "configure"
+#line 13881 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
`for x in ceilf floorf; do echo "$x (0);"; done`
; return 0; }
EOF
-if { (eval echo configure:12406: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13888: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_float_round_use=yes
else
@@ -12426,12 +13908,12 @@ fi
for ac_func in ceilf floorf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12430: checking for $ac_func" >&5
+echo "configure:13912: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12435 "configure"
+#line 13917 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -12454,7 +13936,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:12458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13940: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -12483,7 +13965,7 @@ done
echo $ac_n "checking for expf declaration""... $ac_c" 1>&6
-echo "configure:12487: checking for expf declaration" >&5
+echo "configure:13969: checking for expf declaration" >&5
if test x${glibcpp_cv_func_expf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_expf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -12498,7 +13980,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 12502 "configure"
+#line 13984 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -12509,7 +13991,7 @@ int main() {
expf(0);
; return 0; }
EOF
-if { (eval echo configure:12513: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13995: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_expf_use=yes
else
@@ -12536,12 +14018,12 @@ fi
for ac_func in expf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12540: checking for $ac_func" >&5
+echo "configure:14022: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12545 "configure"
+#line 14027 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -12564,7 +14046,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:12568: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14050: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -12591,7 +14073,7 @@ done
else
echo $ac_n "checking for _expf declaration""... $ac_c" 1>&6
-echo "configure:12595: checking for _expf declaration" >&5
+echo "configure:14077: checking for _expf declaration" >&5
if test x${glibcpp_cv_func__expf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__expf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -12606,7 +14088,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 12610 "configure"
+#line 14092 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -12617,7 +14099,7 @@ int main() {
_expf(0);
; return 0; }
EOF
-if { (eval echo configure:12621: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14103: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__expf_use=yes
else
@@ -12644,12 +14126,12 @@ fi
for ac_func in _expf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12648: checking for $ac_func" >&5
+echo "configure:14130: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12653 "configure"
+#line 14135 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -12672,7 +14154,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:12676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14158: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -12702,7 +14184,7 @@ done
echo $ac_n "checking for isnanf declaration""... $ac_c" 1>&6
-echo "configure:12706: checking for isnanf declaration" >&5
+echo "configure:14188: checking for isnanf declaration" >&5
if test x${glibcpp_cv_func_isnanf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_isnanf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -12717,7 +14199,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 12721 "configure"
+#line 14203 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -12728,7 +14210,7 @@ int main() {
isnanf(0);
; return 0; }
EOF
-if { (eval echo configure:12732: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14214: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_isnanf_use=yes
else
@@ -12755,12 +14237,12 @@ fi
for ac_func in isnanf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12759: checking for $ac_func" >&5
+echo "configure:14241: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12764 "configure"
+#line 14246 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -12783,7 +14265,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:12787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -12810,7 +14292,7 @@ done
else
echo $ac_n "checking for _isnanf declaration""... $ac_c" 1>&6
-echo "configure:12814: checking for _isnanf declaration" >&5
+echo "configure:14296: checking for _isnanf declaration" >&5
if test x${glibcpp_cv_func__isnanf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__isnanf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -12825,7 +14307,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 12829 "configure"
+#line 14311 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -12836,7 +14318,7 @@ int main() {
_isnanf(0);
; return 0; }
EOF
-if { (eval echo configure:12840: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14322: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__isnanf_use=yes
else
@@ -12863,12 +14345,12 @@ fi
for ac_func in _isnanf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12867: checking for $ac_func" >&5
+echo "configure:14349: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12872 "configure"
+#line 14354 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -12891,7 +14373,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:12895: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14377: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -12921,7 +14403,7 @@ done
echo $ac_n "checking for isinff declaration""... $ac_c" 1>&6
-echo "configure:12925: checking for isinff declaration" >&5
+echo "configure:14407: checking for isinff declaration" >&5
if test x${glibcpp_cv_func_isinff_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_isinff_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -12936,7 +14418,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 12940 "configure"
+#line 14422 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -12947,7 +14429,7 @@ int main() {
isinff(0);
; return 0; }
EOF
-if { (eval echo configure:12951: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14433: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_isinff_use=yes
else
@@ -12974,12 +14456,12 @@ fi
for ac_func in isinff
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12978: checking for $ac_func" >&5
+echo "configure:14460: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12983 "configure"
+#line 14465 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13002,7 +14484,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13006: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -13029,7 +14511,7 @@ done
else
echo $ac_n "checking for _isinff declaration""... $ac_c" 1>&6
-echo "configure:13033: checking for _isinff declaration" >&5
+echo "configure:14515: checking for _isinff declaration" >&5
if test x${glibcpp_cv_func__isinff_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__isinff_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -13044,7 +14526,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 13048 "configure"
+#line 14530 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -13055,7 +14537,7 @@ int main() {
_isinff(0);
; return 0; }
EOF
-if { (eval echo configure:13059: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14541: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__isinff_use=yes
else
@@ -13082,12 +14564,12 @@ fi
for ac_func in _isinff
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13086: checking for $ac_func" >&5
+echo "configure:14568: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13091 "configure"
+#line 14573 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13110,7 +14592,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13114: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14596: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -13140,7 +14622,7 @@ done
echo $ac_n "checking for atan2f declaration""... $ac_c" 1>&6
-echo "configure:13144: checking for atan2f declaration" >&5
+echo "configure:14626: checking for atan2f declaration" >&5
if test x${glibcpp_cv_func_atan2f_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_atan2f_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -13155,14 +14637,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 13159 "configure"
+#line 14641 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
atan2f(0, 0);
; return 0; }
EOF
-if { (eval echo configure:13166: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14648: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_atan2f_use=yes
else
@@ -13189,12 +14671,12 @@ fi
for ac_func in atan2f
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13193: checking for $ac_func" >&5
+echo "configure:14675: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13198 "configure"
+#line 14680 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13217,7 +14699,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -13244,7 +14726,7 @@ done
else
echo $ac_n "checking for _atan2f declaration""... $ac_c" 1>&6
-echo "configure:13248: checking for _atan2f declaration" >&5
+echo "configure:14730: checking for _atan2f declaration" >&5
if test x${glibcpp_cv_func__atan2f_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__atan2f_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -13259,14 +14741,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 13263 "configure"
+#line 14745 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_atan2f(0, 0);
; return 0; }
EOF
-if { (eval echo configure:13270: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14752: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__atan2f_use=yes
else
@@ -13293,12 +14775,12 @@ fi
for ac_func in _atan2f
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13297: checking for $ac_func" >&5
+echo "configure:14779: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13302 "configure"
+#line 14784 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13321,7 +14803,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -13351,7 +14833,7 @@ done
echo $ac_n "checking for fabsf declaration""... $ac_c" 1>&6
-echo "configure:13355: checking for fabsf declaration" >&5
+echo "configure:14837: checking for fabsf declaration" >&5
if test x${glibcpp_cv_func_fabsf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_fabsf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -13366,7 +14848,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 13370 "configure"
+#line 14852 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -13377,7 +14859,7 @@ int main() {
fabsf(0);
; return 0; }
EOF
-if { (eval echo configure:13381: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_fabsf_use=yes
else
@@ -13404,12 +14886,12 @@ fi
for ac_func in fabsf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13408: checking for $ac_func" >&5
+echo "configure:14890: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13413 "configure"
+#line 14895 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13432,7 +14914,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -13459,7 +14941,7 @@ done
else
echo $ac_n "checking for _fabsf declaration""... $ac_c" 1>&6
-echo "configure:13463: checking for _fabsf declaration" >&5
+echo "configure:14945: checking for _fabsf declaration" >&5
if test x${glibcpp_cv_func__fabsf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__fabsf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -13474,7 +14956,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 13478 "configure"
+#line 14960 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -13485,7 +14967,7 @@ int main() {
_fabsf(0);
; return 0; }
EOF
-if { (eval echo configure:13489: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14971: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__fabsf_use=yes
else
@@ -13512,12 +14994,12 @@ fi
for ac_func in _fabsf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13516: checking for $ac_func" >&5
+echo "configure:14998: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13521 "configure"
+#line 15003 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13540,7 +15022,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15026: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -13570,7 +15052,7 @@ done
echo $ac_n "checking for fmodf declaration""... $ac_c" 1>&6
-echo "configure:13574: checking for fmodf declaration" >&5
+echo "configure:15056: checking for fmodf declaration" >&5
if test x${glibcpp_cv_func_fmodf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_fmodf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -13585,14 +15067,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 13589 "configure"
+#line 15071 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
fmodf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:13596: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15078: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_fmodf_use=yes
else
@@ -13619,12 +15101,12 @@ fi
for ac_func in fmodf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13623: checking for $ac_func" >&5
+echo "configure:15105: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13628 "configure"
+#line 15110 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13647,7 +15129,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13651: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -13674,7 +15156,7 @@ done
else
echo $ac_n "checking for _fmodf declaration""... $ac_c" 1>&6
-echo "configure:13678: checking for _fmodf declaration" >&5
+echo "configure:15160: checking for _fmodf declaration" >&5
if test x${glibcpp_cv_func__fmodf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__fmodf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -13689,14 +15171,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 13693 "configure"
+#line 15175 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_fmodf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:13700: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15182: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__fmodf_use=yes
else
@@ -13723,12 +15205,12 @@ fi
for ac_func in _fmodf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13727: checking for $ac_func" >&5
+echo "configure:15209: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13732 "configure"
+#line 15214 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13751,7 +15233,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -13781,7 +15263,7 @@ done
echo $ac_n "checking for frexpf declaration""... $ac_c" 1>&6
-echo "configure:13785: checking for frexpf declaration" >&5
+echo "configure:15267: checking for frexpf declaration" >&5
if test x${glibcpp_cv_func_frexpf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_frexpf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -13796,14 +15278,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 13800 "configure"
+#line 15282 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
frexpf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:13807: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15289: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_frexpf_use=yes
else
@@ -13830,12 +15312,12 @@ fi
for ac_func in frexpf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13834: checking for $ac_func" >&5
+echo "configure:15316: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13839 "configure"
+#line 15321 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13858,7 +15340,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13862: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15344: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -13885,7 +15367,7 @@ done
else
echo $ac_n "checking for _frexpf declaration""... $ac_c" 1>&6
-echo "configure:13889: checking for _frexpf declaration" >&5
+echo "configure:15371: checking for _frexpf declaration" >&5
if test x${glibcpp_cv_func__frexpf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__frexpf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -13900,14 +15382,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 13904 "configure"
+#line 15386 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_frexpf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:13911: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15393: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__frexpf_use=yes
else
@@ -13934,12 +15416,12 @@ fi
for ac_func in _frexpf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13938: checking for $ac_func" >&5
+echo "configure:15420: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13943 "configure"
+#line 15425 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13962,7 +15444,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13966: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -13992,7 +15474,7 @@ done
echo $ac_n "checking for hypotf declaration""... $ac_c" 1>&6
-echo "configure:13996: checking for hypotf declaration" >&5
+echo "configure:15478: checking for hypotf declaration" >&5
if test x${glibcpp_cv_func_hypotf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_hypotf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -14007,14 +15489,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 14011 "configure"
+#line 15493 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
hypotf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:14018: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15500: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_hypotf_use=yes
else
@@ -14041,12 +15523,12 @@ fi
for ac_func in hypotf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14045: checking for $ac_func" >&5
+echo "configure:15527: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14050 "configure"
+#line 15532 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -14069,7 +15551,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:14073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -14096,7 +15578,7 @@ done
else
echo $ac_n "checking for _hypotf declaration""... $ac_c" 1>&6
-echo "configure:14100: checking for _hypotf declaration" >&5
+echo "configure:15582: checking for _hypotf declaration" >&5
if test x${glibcpp_cv_func__hypotf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__hypotf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -14111,14 +15593,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 14115 "configure"
+#line 15597 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_hypotf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:14122: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__hypotf_use=yes
else
@@ -14145,12 +15627,12 @@ fi
for ac_func in _hypotf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14149: checking for $ac_func" >&5
+echo "configure:15631: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14154 "configure"
+#line 15636 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -14173,7 +15655,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:14177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -14203,7 +15685,7 @@ done
echo $ac_n "checking for ldexpf declaration""... $ac_c" 1>&6
-echo "configure:14207: checking for ldexpf declaration" >&5
+echo "configure:15689: checking for ldexpf declaration" >&5
if test x${glibcpp_cv_func_ldexpf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -14218,14 +15700,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 14222 "configure"
+#line 15704 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
ldexpf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:14229: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15711: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_ldexpf_use=yes
else
@@ -14252,12 +15734,12 @@ fi
for ac_func in ldexpf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14256: checking for $ac_func" >&5
+echo "configure:15738: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14261 "configure"
+#line 15743 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -14280,7 +15762,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:14284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15766: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -14307,7 +15789,7 @@ done
else
echo $ac_n "checking for _ldexpf declaration""... $ac_c" 1>&6
-echo "configure:14311: checking for _ldexpf declaration" >&5
+echo "configure:15793: checking for _ldexpf declaration" >&5
if test x${glibcpp_cv_func__ldexpf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -14322,14 +15804,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 14326 "configure"
+#line 15808 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_ldexpf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:14333: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15815: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__ldexpf_use=yes
else
@@ -14356,12 +15838,12 @@ fi
for ac_func in _ldexpf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14360: checking for $ac_func" >&5
+echo "configure:15842: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14365 "configure"
+#line 15847 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -14384,7 +15866,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:14388: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15870: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -14414,7 +15896,7 @@ done
echo $ac_n "checking for logf declaration""... $ac_c" 1>&6
-echo "configure:14418: checking for logf declaration" >&5
+echo "configure:15900: checking for logf declaration" >&5
if test x${glibcpp_cv_func_logf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_logf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -14429,7 +15911,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 14433 "configure"
+#line 15915 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -14440,7 +15922,7 @@ int main() {
logf(0);
; return 0; }
EOF
-if { (eval echo configure:14444: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15926: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_logf_use=yes
else
@@ -14467,12 +15949,12 @@ fi
for ac_func in logf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14471: checking for $ac_func" >&5
+echo "configure:15953: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14476 "configure"
+#line 15958 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -14495,7 +15977,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:14499: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -14522,7 +16004,7 @@ done
else
echo $ac_n "checking for _logf declaration""... $ac_c" 1>&6
-echo "configure:14526: checking for _logf declaration" >&5
+echo "configure:16008: checking for _logf declaration" >&5
if test x${glibcpp_cv_func__logf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__logf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -14537,7 +16019,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 14541 "configure"
+#line 16023 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -14548,7 +16030,7 @@ int main() {
_logf(0);
; return 0; }
EOF
-if { (eval echo configure:14552: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16034: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__logf_use=yes
else
@@ -14575,12 +16057,12 @@ fi
for ac_func in _logf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14579: checking for $ac_func" >&5
+echo "configure:16061: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14584 "configure"
+#line 16066 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -14603,7 +16085,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:14607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16089: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -14633,7 +16115,7 @@ done
echo $ac_n "checking for log10f declaration""... $ac_c" 1>&6
-echo "configure:14637: checking for log10f declaration" >&5
+echo "configure:16119: checking for log10f declaration" >&5
if test x${glibcpp_cv_func_log10f_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_log10f_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -14648,7 +16130,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 14652 "configure"
+#line 16134 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -14659,7 +16141,7 @@ int main() {
log10f(0);
; return 0; }
EOF
-if { (eval echo configure:14663: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16145: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_log10f_use=yes
else
@@ -14686,12 +16168,12 @@ fi
for ac_func in log10f
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14690: checking for $ac_func" >&5
+echo "configure:16172: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14695 "configure"
+#line 16177 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -14714,7 +16196,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:14718: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16200: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -14741,7 +16223,7 @@ done
else
echo $ac_n "checking for _log10f declaration""... $ac_c" 1>&6
-echo "configure:14745: checking for _log10f declaration" >&5
+echo "configure:16227: checking for _log10f declaration" >&5
if test x${glibcpp_cv_func__log10f_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__log10f_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -14756,7 +16238,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 14760 "configure"
+#line 16242 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -14767,7 +16249,7 @@ int main() {
_log10f(0);
; return 0; }
EOF
-if { (eval echo configure:14771: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16253: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__log10f_use=yes
else
@@ -14794,12 +16276,12 @@ fi
for ac_func in _log10f
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14798: checking for $ac_func" >&5
+echo "configure:16280: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14803 "configure"
+#line 16285 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -14822,7 +16304,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:14826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16308: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -14852,7 +16334,7 @@ done
echo $ac_n "checking for modff declaration""... $ac_c" 1>&6
-echo "configure:14856: checking for modff declaration" >&5
+echo "configure:16338: checking for modff declaration" >&5
if test x${glibcpp_cv_func_modff_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_modff_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -14867,14 +16349,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 14871 "configure"
+#line 16353 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
modff(0, 0);
; return 0; }
EOF
-if { (eval echo configure:14878: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16360: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_modff_use=yes
else
@@ -14901,12 +16383,12 @@ fi
for ac_func in modff
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14905: checking for $ac_func" >&5
+echo "configure:16387: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14910 "configure"
+#line 16392 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -14929,7 +16411,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:14933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -14956,7 +16438,7 @@ done
else
echo $ac_n "checking for _modff declaration""... $ac_c" 1>&6
-echo "configure:14960: checking for _modff declaration" >&5
+echo "configure:16442: checking for _modff declaration" >&5
if test x${glibcpp_cv_func__modff_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__modff_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -14971,14 +16453,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 14975 "configure"
+#line 16457 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_modff(0, 0);
; return 0; }
EOF
-if { (eval echo configure:14982: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16464: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__modff_use=yes
else
@@ -15005,12 +16487,12 @@ fi
for ac_func in _modff
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15009: checking for $ac_func" >&5
+echo "configure:16491: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15014 "configure"
+#line 16496 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -15033,7 +16515,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:15037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -15063,7 +16545,7 @@ done
echo $ac_n "checking for powf declaration""... $ac_c" 1>&6
-echo "configure:15067: checking for powf declaration" >&5
+echo "configure:16549: checking for powf declaration" >&5
if test x${glibcpp_cv_func_powf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_powf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -15078,14 +16560,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 15082 "configure"
+#line 16564 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
powf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:15089: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16571: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_powf_use=yes
else
@@ -15112,12 +16594,12 @@ fi
for ac_func in powf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15116: checking for $ac_func" >&5
+echo "configure:16598: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15121 "configure"
+#line 16603 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -15140,7 +16622,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:15144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16626: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -15167,7 +16649,7 @@ done
else
echo $ac_n "checking for _powf declaration""... $ac_c" 1>&6
-echo "configure:15171: checking for _powf declaration" >&5
+echo "configure:16653: checking for _powf declaration" >&5
if test x${glibcpp_cv_func__powf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__powf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -15182,14 +16664,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 15186 "configure"
+#line 16668 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_powf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:15193: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16675: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__powf_use=yes
else
@@ -15216,12 +16698,12 @@ fi
for ac_func in _powf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15220: checking for $ac_func" >&5
+echo "configure:16702: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15225 "configure"
+#line 16707 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -15244,7 +16726,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:15248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -15274,7 +16756,7 @@ done
echo $ac_n "checking for sqrtf declaration""... $ac_c" 1>&6
-echo "configure:15278: checking for sqrtf declaration" >&5
+echo "configure:16760: checking for sqrtf declaration" >&5
if test x${glibcpp_cv_func_sqrtf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -15289,7 +16771,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 15293 "configure"
+#line 16775 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -15300,7 +16782,7 @@ int main() {
sqrtf(0);
; return 0; }
EOF
-if { (eval echo configure:15304: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16786: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_sqrtf_use=yes
else
@@ -15327,12 +16809,12 @@ fi
for ac_func in sqrtf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15331: checking for $ac_func" >&5
+echo "configure:16813: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15336 "configure"
+#line 16818 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -15355,7 +16837,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:15359: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16841: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -15382,7 +16864,7 @@ done
else
echo $ac_n "checking for _sqrtf declaration""... $ac_c" 1>&6
-echo "configure:15386: checking for _sqrtf declaration" >&5
+echo "configure:16868: checking for _sqrtf declaration" >&5
if test x${glibcpp_cv_func__sqrtf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -15397,7 +16879,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 15401 "configure"
+#line 16883 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -15408,7 +16890,7 @@ int main() {
_sqrtf(0);
; return 0; }
EOF
-if { (eval echo configure:15412: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16894: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__sqrtf_use=yes
else
@@ -15435,12 +16917,12 @@ fi
for ac_func in _sqrtf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15439: checking for $ac_func" >&5
+echo "configure:16921: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15444 "configure"
+#line 16926 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -15463,7 +16945,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:15467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16949: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -15493,7 +16975,7 @@ done
echo $ac_n "checking for sincosf declaration""... $ac_c" 1>&6
-echo "configure:15497: checking for sincosf declaration" >&5
+echo "configure:16979: checking for sincosf declaration" >&5
if test x${glibcpp_cv_func_sincosf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_sincosf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -15508,14 +16990,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 15512 "configure"
+#line 16994 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
sincosf(0, 0, 0);
; return 0; }
EOF
-if { (eval echo configure:15519: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17001: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_sincosf_use=yes
else
@@ -15542,12 +17024,12 @@ fi
for ac_func in sincosf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15546: checking for $ac_func" >&5
+echo "configure:17028: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15551 "configure"
+#line 17033 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -15570,7 +17052,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:15574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -15597,7 +17079,7 @@ done
else
echo $ac_n "checking for _sincosf declaration""... $ac_c" 1>&6
-echo "configure:15601: checking for _sincosf declaration" >&5
+echo "configure:17083: checking for _sincosf declaration" >&5
if test x${glibcpp_cv_func__sincosf_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__sincosf_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -15612,14 +17094,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 15616 "configure"
+#line 17098 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_sincosf(0, 0, 0);
; return 0; }
EOF
-if { (eval echo configure:15623: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17105: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__sincosf_use=yes
else
@@ -15646,12 +17128,12 @@ fi
for ac_func in _sincosf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15650: checking for $ac_func" >&5
+echo "configure:17132: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15655 "configure"
+#line 17137 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -15674,7 +17156,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:15678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17160: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -15704,7 +17186,7 @@ done
echo $ac_n "checking for finitef declaration""... $ac_c" 1>&6
-echo "configure:15708: checking for finitef declaration" >&5
+echo "configure:17190: checking for finitef declaration" >&5
if test x${glibcpp_cv_func_finitef_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_finitef_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -15719,7 +17201,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 15723 "configure"
+#line 17205 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -15730,7 +17212,7 @@ int main() {
finitef(0);
; return 0; }
EOF
-if { (eval echo configure:15734: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17216: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_finitef_use=yes
else
@@ -15757,12 +17239,12 @@ fi
for ac_func in finitef
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15761: checking for $ac_func" >&5
+echo "configure:17243: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15766 "configure"
+#line 17248 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -15785,7 +17267,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:15789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17271: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -15812,7 +17294,7 @@ done
else
echo $ac_n "checking for _finitef declaration""... $ac_c" 1>&6
-echo "configure:15816: checking for _finitef declaration" >&5
+echo "configure:17298: checking for _finitef declaration" >&5
if test x${glibcpp_cv_func__finitef_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__finitef_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -15827,7 +17309,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 15831 "configure"
+#line 17313 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -15838,7 +17320,7 @@ int main() {
_finitef(0);
; return 0; }
EOF
-if { (eval echo configure:15842: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17324: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__finitef_use=yes
else
@@ -15865,12 +17347,12 @@ fi
for ac_func in _finitef
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15869: checking for $ac_func" >&5
+echo "configure:17351: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15874 "configure"
+#line 17356 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -15893,7 +17375,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:15897: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17379: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -15923,7 +17405,7 @@ done
echo $ac_n "checking for long double trig functions""... $ac_c" 1>&6
-echo "configure:15927: checking for long double trig functions" >&5
+echo "configure:17409: checking for long double trig functions" >&5
if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_trig_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -15937,7 +17419,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 15941 "configure"
+#line 17423 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
@@ -15946,7 +17428,7 @@ int main() {
coshl sinhl tanhl; do echo "$x (0);"; done`
; return 0; }
EOF
-if { (eval echo configure:15950: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17432: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_long_double_trig_use=yes
else
@@ -15972,12 +17454,12 @@ fi
coshl sinhl tanhl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15976: checking for $ac_func" >&5
+echo "configure:17458: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15981 "configure"
+#line 17463 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16000,7 +17482,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16004: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17486: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -16028,7 +17510,7 @@ done
echo $ac_n "checking for long double round functions""... $ac_c" 1>&6
-echo "configure:16032: checking for long double round functions" >&5
+echo "configure:17514: checking for long double round functions" >&5
if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_round_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -16042,14 +17524,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 16046 "configure"
+#line 17528 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
`for x in ceill floorl; do echo "$x (0);"; done`
; return 0; }
EOF
-if { (eval echo configure:16053: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17535: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_long_double_round_use=yes
else
@@ -16073,12 +17555,12 @@ fi
for ac_func in ceill floorl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16077: checking for $ac_func" >&5
+echo "configure:17559: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16082 "configure"
+#line 17564 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16101,7 +17583,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16105: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -16130,7 +17612,7 @@ done
echo $ac_n "checking for isnanl declaration""... $ac_c" 1>&6
-echo "configure:16134: checking for isnanl declaration" >&5
+echo "configure:17616: checking for isnanl declaration" >&5
if test x${glibcpp_cv_func_isnanl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_isnanl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -16145,7 +17627,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 16149 "configure"
+#line 17631 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -16156,7 +17638,7 @@ int main() {
isnanl(0);
; return 0; }
EOF
-if { (eval echo configure:16160: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17642: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_isnanl_use=yes
else
@@ -16183,12 +17665,12 @@ fi
for ac_func in isnanl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16187: checking for $ac_func" >&5
+echo "configure:17669: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16192 "configure"
+#line 17674 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16211,7 +17693,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16215: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17697: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -16238,7 +17720,7 @@ done
else
echo $ac_n "checking for _isnanl declaration""... $ac_c" 1>&6
-echo "configure:16242: checking for _isnanl declaration" >&5
+echo "configure:17724: checking for _isnanl declaration" >&5
if test x${glibcpp_cv_func__isnanl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__isnanl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -16253,7 +17735,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 16257 "configure"
+#line 17739 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -16264,7 +17746,7 @@ int main() {
_isnanl(0);
; return 0; }
EOF
-if { (eval echo configure:16268: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17750: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__isnanl_use=yes
else
@@ -16291,12 +17773,12 @@ fi
for ac_func in _isnanl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16295: checking for $ac_func" >&5
+echo "configure:17777: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16300 "configure"
+#line 17782 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16319,7 +17801,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17805: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -16349,7 +17831,7 @@ done
echo $ac_n "checking for isinfl declaration""... $ac_c" 1>&6
-echo "configure:16353: checking for isinfl declaration" >&5
+echo "configure:17835: checking for isinfl declaration" >&5
if test x${glibcpp_cv_func_isinfl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_isinfl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -16364,7 +17846,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 16368 "configure"
+#line 17850 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -16375,7 +17857,7 @@ int main() {
isinfl(0);
; return 0; }
EOF
-if { (eval echo configure:16379: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17861: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_isinfl_use=yes
else
@@ -16402,12 +17884,12 @@ fi
for ac_func in isinfl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16406: checking for $ac_func" >&5
+echo "configure:17888: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16411 "configure"
+#line 17893 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16430,7 +17912,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16434: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17916: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -16457,7 +17939,7 @@ done
else
echo $ac_n "checking for _isinfl declaration""... $ac_c" 1>&6
-echo "configure:16461: checking for _isinfl declaration" >&5
+echo "configure:17943: checking for _isinfl declaration" >&5
if test x${glibcpp_cv_func__isinfl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__isinfl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -16472,7 +17954,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 16476 "configure"
+#line 17958 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -16483,7 +17965,7 @@ int main() {
_isinfl(0);
; return 0; }
EOF
-if { (eval echo configure:16487: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17969: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__isinfl_use=yes
else
@@ -16510,12 +17992,12 @@ fi
for ac_func in _isinfl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16514: checking for $ac_func" >&5
+echo "configure:17996: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16519 "configure"
+#line 18001 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16538,7 +18020,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16542: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18024: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -16568,7 +18050,7 @@ done
echo $ac_n "checking for copysignl declaration""... $ac_c" 1>&6
-echo "configure:16572: checking for copysignl declaration" >&5
+echo "configure:18054: checking for copysignl declaration" >&5
if test x${glibcpp_cv_func_copysignl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_copysignl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -16583,14 +18065,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 16587 "configure"
+#line 18069 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
copysignl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:16594: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18076: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_copysignl_use=yes
else
@@ -16617,12 +18099,12 @@ fi
for ac_func in copysignl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16621: checking for $ac_func" >&5
+echo "configure:18103: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16626 "configure"
+#line 18108 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16645,7 +18127,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18131: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -16672,7 +18154,7 @@ done
else
echo $ac_n "checking for _copysignl declaration""... $ac_c" 1>&6
-echo "configure:16676: checking for _copysignl declaration" >&5
+echo "configure:18158: checking for _copysignl declaration" >&5
if test x${glibcpp_cv_func__copysignl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__copysignl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -16687,14 +18169,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 16691 "configure"
+#line 18173 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_copysignl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:16698: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18180: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__copysignl_use=yes
else
@@ -16721,12 +18203,12 @@ fi
for ac_func in _copysignl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16725: checking for $ac_func" >&5
+echo "configure:18207: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16730 "configure"
+#line 18212 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16749,7 +18231,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -16779,7 +18261,7 @@ done
echo $ac_n "checking for atan2l declaration""... $ac_c" 1>&6
-echo "configure:16783: checking for atan2l declaration" >&5
+echo "configure:18265: checking for atan2l declaration" >&5
if test x${glibcpp_cv_func_atan2l_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_atan2l_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -16794,14 +18276,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 16798 "configure"
+#line 18280 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
atan2l(0, 0);
; return 0; }
EOF
-if { (eval echo configure:16805: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18287: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_atan2l_use=yes
else
@@ -16828,12 +18310,12 @@ fi
for ac_func in atan2l
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16832: checking for $ac_func" >&5
+echo "configure:18314: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16837 "configure"
+#line 18319 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16856,7 +18338,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18342: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -16883,7 +18365,7 @@ done
else
echo $ac_n "checking for _atan2l declaration""... $ac_c" 1>&6
-echo "configure:16887: checking for _atan2l declaration" >&5
+echo "configure:18369: checking for _atan2l declaration" >&5
if test x${glibcpp_cv_func__atan2l_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__atan2l_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -16898,14 +18380,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 16902 "configure"
+#line 18384 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_atan2l(0, 0);
; return 0; }
EOF
-if { (eval echo configure:16909: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18391: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__atan2l_use=yes
else
@@ -16932,12 +18414,12 @@ fi
for ac_func in _atan2l
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16936: checking for $ac_func" >&5
+echo "configure:18418: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16941 "configure"
+#line 18423 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16960,7 +18442,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18446: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -16990,7 +18472,7 @@ done
echo $ac_n "checking for expl declaration""... $ac_c" 1>&6
-echo "configure:16994: checking for expl declaration" >&5
+echo "configure:18476: checking for expl declaration" >&5
if test x${glibcpp_cv_func_expl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_expl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -17005,7 +18487,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 17009 "configure"
+#line 18491 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -17016,7 +18498,7 @@ int main() {
expl(0);
; return 0; }
EOF
-if { (eval echo configure:17020: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18502: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_expl_use=yes
else
@@ -17043,12 +18525,12 @@ fi
for ac_func in expl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17047: checking for $ac_func" >&5
+echo "configure:18529: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17052 "configure"
+#line 18534 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -17071,7 +18553,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:17075: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18557: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -17098,7 +18580,7 @@ done
else
echo $ac_n "checking for _expl declaration""... $ac_c" 1>&6
-echo "configure:17102: checking for _expl declaration" >&5
+echo "configure:18584: checking for _expl declaration" >&5
if test x${glibcpp_cv_func__expl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__expl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -17113,7 +18595,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 17117 "configure"
+#line 18599 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -17124,7 +18606,7 @@ int main() {
_expl(0);
; return 0; }
EOF
-if { (eval echo configure:17128: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18610: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__expl_use=yes
else
@@ -17151,12 +18633,12 @@ fi
for ac_func in _expl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17155: checking for $ac_func" >&5
+echo "configure:18637: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17160 "configure"
+#line 18642 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -17179,7 +18661,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:17183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18665: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -17209,7 +18691,7 @@ done
echo $ac_n "checking for fabsl declaration""... $ac_c" 1>&6
-echo "configure:17213: checking for fabsl declaration" >&5
+echo "configure:18695: checking for fabsl declaration" >&5
if test x${glibcpp_cv_func_fabsl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_fabsl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -17224,7 +18706,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 17228 "configure"
+#line 18710 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -17235,7 +18717,7 @@ int main() {
fabsl(0);
; return 0; }
EOF
-if { (eval echo configure:17239: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18721: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_fabsl_use=yes
else
@@ -17262,12 +18744,12 @@ fi
for ac_func in fabsl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17266: checking for $ac_func" >&5
+echo "configure:18748: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17271 "configure"
+#line 18753 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -17290,7 +18772,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:17294: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18776: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -17317,7 +18799,7 @@ done
else
echo $ac_n "checking for _fabsl declaration""... $ac_c" 1>&6
-echo "configure:17321: checking for _fabsl declaration" >&5
+echo "configure:18803: checking for _fabsl declaration" >&5
if test x${glibcpp_cv_func__fabsl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__fabsl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -17332,7 +18814,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 17336 "configure"
+#line 18818 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -17343,7 +18825,7 @@ int main() {
_fabsl(0);
; return 0; }
EOF
-if { (eval echo configure:17347: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18829: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__fabsl_use=yes
else
@@ -17370,12 +18852,12 @@ fi
for ac_func in _fabsl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17374: checking for $ac_func" >&5
+echo "configure:18856: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17379 "configure"
+#line 18861 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -17398,7 +18880,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:17402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -17428,7 +18910,7 @@ done
echo $ac_n "checking for fmodl declaration""... $ac_c" 1>&6
-echo "configure:17432: checking for fmodl declaration" >&5
+echo "configure:18914: checking for fmodl declaration" >&5
if test x${glibcpp_cv_func_fmodl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_fmodl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -17443,14 +18925,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 17447 "configure"
+#line 18929 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
fmodl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:17454: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18936: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_fmodl_use=yes
else
@@ -17477,12 +18959,12 @@ fi
for ac_func in fmodl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17481: checking for $ac_func" >&5
+echo "configure:18963: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17486 "configure"
+#line 18968 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -17505,7 +18987,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:17509: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -17532,7 +19014,7 @@ done
else
echo $ac_n "checking for _fmodl declaration""... $ac_c" 1>&6
-echo "configure:17536: checking for _fmodl declaration" >&5
+echo "configure:19018: checking for _fmodl declaration" >&5
if test x${glibcpp_cv_func__fmodl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__fmodl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -17547,14 +19029,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 17551 "configure"
+#line 19033 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_fmodl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:17558: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19040: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__fmodl_use=yes
else
@@ -17581,12 +19063,12 @@ fi
for ac_func in _fmodl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17585: checking for $ac_func" >&5
+echo "configure:19067: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17590 "configure"
+#line 19072 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -17609,7 +19091,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:17613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19095: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -17639,7 +19121,7 @@ done
echo $ac_n "checking for frexpl declaration""... $ac_c" 1>&6
-echo "configure:17643: checking for frexpl declaration" >&5
+echo "configure:19125: checking for frexpl declaration" >&5
if test x${glibcpp_cv_func_frexpl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_frexpl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -17654,14 +19136,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 17658 "configure"
+#line 19140 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
frexpl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:17665: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19147: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_frexpl_use=yes
else
@@ -17688,12 +19170,12 @@ fi
for ac_func in frexpl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17692: checking for $ac_func" >&5
+echo "configure:19174: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17697 "configure"
+#line 19179 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -17716,7 +19198,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:17720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19202: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -17743,7 +19225,7 @@ done
else
echo $ac_n "checking for _frexpl declaration""... $ac_c" 1>&6
-echo "configure:17747: checking for _frexpl declaration" >&5
+echo "configure:19229: checking for _frexpl declaration" >&5
if test x${glibcpp_cv_func__frexpl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__frexpl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -17758,14 +19240,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 17762 "configure"
+#line 19244 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_frexpl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:17769: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19251: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__frexpl_use=yes
else
@@ -17792,12 +19274,12 @@ fi
for ac_func in _frexpl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17796: checking for $ac_func" >&5
+echo "configure:19278: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17801 "configure"
+#line 19283 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -17820,7 +19302,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:17824: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19306: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -17850,7 +19332,7 @@ done
echo $ac_n "checking for hypotl declaration""... $ac_c" 1>&6
-echo "configure:17854: checking for hypotl declaration" >&5
+echo "configure:19336: checking for hypotl declaration" >&5
if test x${glibcpp_cv_func_hypotl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_hypotl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -17865,14 +19347,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 17869 "configure"
+#line 19351 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
hypotl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:17876: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19358: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_hypotl_use=yes
else
@@ -17899,12 +19381,12 @@ fi
for ac_func in hypotl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17903: checking for $ac_func" >&5
+echo "configure:19385: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17908 "configure"
+#line 19390 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -17927,7 +19409,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:17931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -17954,7 +19436,7 @@ done
else
echo $ac_n "checking for _hypotl declaration""... $ac_c" 1>&6
-echo "configure:17958: checking for _hypotl declaration" >&5
+echo "configure:19440: checking for _hypotl declaration" >&5
if test x${glibcpp_cv_func__hypotl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__hypotl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -17969,14 +19451,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 17973 "configure"
+#line 19455 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_hypotl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:17980: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19462: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__hypotl_use=yes
else
@@ -18003,12 +19485,12 @@ fi
for ac_func in _hypotl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18007: checking for $ac_func" >&5
+echo "configure:19489: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18012 "configure"
+#line 19494 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18031,7 +19513,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19517: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18061,7 +19543,7 @@ done
echo $ac_n "checking for ldexpl declaration""... $ac_c" 1>&6
-echo "configure:18065: checking for ldexpl declaration" >&5
+echo "configure:19547: checking for ldexpl declaration" >&5
if test x${glibcpp_cv_func_ldexpl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -18076,14 +19558,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 18080 "configure"
+#line 19562 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
ldexpl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:18087: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19569: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_ldexpl_use=yes
else
@@ -18110,12 +19592,12 @@ fi
for ac_func in ldexpl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18114: checking for $ac_func" >&5
+echo "configure:19596: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18119 "configure"
+#line 19601 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18138,7 +19620,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19624: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18165,7 +19647,7 @@ done
else
echo $ac_n "checking for _ldexpl declaration""... $ac_c" 1>&6
-echo "configure:18169: checking for _ldexpl declaration" >&5
+echo "configure:19651: checking for _ldexpl declaration" >&5
if test x${glibcpp_cv_func__ldexpl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -18180,14 +19662,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 18184 "configure"
+#line 19666 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_ldexpl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:18191: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19673: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__ldexpl_use=yes
else
@@ -18214,12 +19696,12 @@ fi
for ac_func in _ldexpl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18218: checking for $ac_func" >&5
+echo "configure:19700: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18223 "configure"
+#line 19705 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18242,7 +19724,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18246: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18272,7 +19754,7 @@ done
echo $ac_n "checking for logl declaration""... $ac_c" 1>&6
-echo "configure:18276: checking for logl declaration" >&5
+echo "configure:19758: checking for logl declaration" >&5
if test x${glibcpp_cv_func_logl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_logl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -18287,7 +19769,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 18291 "configure"
+#line 19773 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -18298,7 +19780,7 @@ int main() {
logl(0);
; return 0; }
EOF
-if { (eval echo configure:18302: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19784: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_logl_use=yes
else
@@ -18325,12 +19807,12 @@ fi
for ac_func in logl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18329: checking for $ac_func" >&5
+echo "configure:19811: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18334 "configure"
+#line 19816 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18353,7 +19835,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19839: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18380,7 +19862,7 @@ done
else
echo $ac_n "checking for _logl declaration""... $ac_c" 1>&6
-echo "configure:18384: checking for _logl declaration" >&5
+echo "configure:19866: checking for _logl declaration" >&5
if test x${glibcpp_cv_func__logl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__logl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -18395,7 +19877,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 18399 "configure"
+#line 19881 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -18406,7 +19888,7 @@ int main() {
_logl(0);
; return 0; }
EOF
-if { (eval echo configure:18410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19892: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__logl_use=yes
else
@@ -18433,12 +19915,12 @@ fi
for ac_func in _logl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18437: checking for $ac_func" >&5
+echo "configure:19919: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18442 "configure"
+#line 19924 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18461,7 +19943,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18465: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19947: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18491,7 +19973,7 @@ done
echo $ac_n "checking for log10l declaration""... $ac_c" 1>&6
-echo "configure:18495: checking for log10l declaration" >&5
+echo "configure:19977: checking for log10l declaration" >&5
if test x${glibcpp_cv_func_log10l_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_log10l_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -18506,7 +19988,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 18510 "configure"
+#line 19992 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -18517,7 +19999,7 @@ int main() {
log10l(0);
; return 0; }
EOF
-if { (eval echo configure:18521: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20003: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_log10l_use=yes
else
@@ -18544,12 +20026,12 @@ fi
for ac_func in log10l
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18548: checking for $ac_func" >&5
+echo "configure:20030: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18553 "configure"
+#line 20035 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18572,7 +20054,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20058: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18599,7 +20081,7 @@ done
else
echo $ac_n "checking for _log10l declaration""... $ac_c" 1>&6
-echo "configure:18603: checking for _log10l declaration" >&5
+echo "configure:20085: checking for _log10l declaration" >&5
if test x${glibcpp_cv_func__log10l_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__log10l_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -18614,7 +20096,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 18618 "configure"
+#line 20100 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -18625,7 +20107,7 @@ int main() {
_log10l(0);
; return 0; }
EOF
-if { (eval echo configure:18629: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20111: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__log10l_use=yes
else
@@ -18652,12 +20134,12 @@ fi
for ac_func in _log10l
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18656: checking for $ac_func" >&5
+echo "configure:20138: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18661 "configure"
+#line 20143 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18680,7 +20162,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20166: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18710,7 +20192,7 @@ done
echo $ac_n "checking for modfl declaration""... $ac_c" 1>&6
-echo "configure:18714: checking for modfl declaration" >&5
+echo "configure:20196: checking for modfl declaration" >&5
if test x${glibcpp_cv_func_modfl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_modfl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -18725,14 +20207,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 18729 "configure"
+#line 20211 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
modfl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:18736: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20218: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_modfl_use=yes
else
@@ -18759,12 +20241,12 @@ fi
for ac_func in modfl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18763: checking for $ac_func" >&5
+echo "configure:20245: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18768 "configure"
+#line 20250 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18787,7 +20269,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18791: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20273: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18814,7 +20296,7 @@ done
else
echo $ac_n "checking for _modfl declaration""... $ac_c" 1>&6
-echo "configure:18818: checking for _modfl declaration" >&5
+echo "configure:20300: checking for _modfl declaration" >&5
if test x${glibcpp_cv_func__modfl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__modfl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -18829,14 +20311,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 18833 "configure"
+#line 20315 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_modfl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:18840: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20322: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__modfl_use=yes
else
@@ -18863,12 +20345,12 @@ fi
for ac_func in _modfl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18867: checking for $ac_func" >&5
+echo "configure:20349: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18872 "configure"
+#line 20354 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18891,7 +20373,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18895: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20377: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18921,7 +20403,7 @@ done
echo $ac_n "checking for powl declaration""... $ac_c" 1>&6
-echo "configure:18925: checking for powl declaration" >&5
+echo "configure:20407: checking for powl declaration" >&5
if test x${glibcpp_cv_func_powl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_powl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -18936,14 +20418,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 18940 "configure"
+#line 20422 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
powl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:18947: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20429: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_powl_use=yes
else
@@ -18970,12 +20452,12 @@ fi
for ac_func in powl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18974: checking for $ac_func" >&5
+echo "configure:20456: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18979 "configure"
+#line 20461 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18998,7 +20480,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:19002: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -19025,7 +20507,7 @@ done
else
echo $ac_n "checking for _powl declaration""... $ac_c" 1>&6
-echo "configure:19029: checking for _powl declaration" >&5
+echo "configure:20511: checking for _powl declaration" >&5
if test x${glibcpp_cv_func__powl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__powl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -19040,14 +20522,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 19044 "configure"
+#line 20526 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_powl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:19051: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20533: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__powl_use=yes
else
@@ -19074,12 +20556,12 @@ fi
for ac_func in _powl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19078: checking for $ac_func" >&5
+echo "configure:20560: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 19083 "configure"
+#line 20565 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -19102,7 +20584,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:19106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20588: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -19132,7 +20614,7 @@ done
echo $ac_n "checking for sqrtl declaration""... $ac_c" 1>&6
-echo "configure:19136: checking for sqrtl declaration" >&5
+echo "configure:20618: checking for sqrtl declaration" >&5
if test x${glibcpp_cv_func_sqrtl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -19147,7 +20629,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 19151 "configure"
+#line 20633 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -19158,7 +20640,7 @@ int main() {
sqrtl(0);
; return 0; }
EOF
-if { (eval echo configure:19162: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20644: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_sqrtl_use=yes
else
@@ -19185,12 +20667,12 @@ fi
for ac_func in sqrtl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19189: checking for $ac_func" >&5
+echo "configure:20671: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 19194 "configure"
+#line 20676 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -19213,7 +20695,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:19217: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20699: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -19240,7 +20722,7 @@ done
else
echo $ac_n "checking for _sqrtl declaration""... $ac_c" 1>&6
-echo "configure:19244: checking for _sqrtl declaration" >&5
+echo "configure:20726: checking for _sqrtl declaration" >&5
if test x${glibcpp_cv_func__sqrtl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -19255,7 +20737,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 19259 "configure"
+#line 20741 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -19266,7 +20748,7 @@ int main() {
_sqrtl(0);
; return 0; }
EOF
-if { (eval echo configure:19270: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20752: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__sqrtl_use=yes
else
@@ -19293,12 +20775,12 @@ fi
for ac_func in _sqrtl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19297: checking for $ac_func" >&5
+echo "configure:20779: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 19302 "configure"
+#line 20784 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -19321,7 +20803,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:19325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -19351,7 +20833,7 @@ done
echo $ac_n "checking for sincosl declaration""... $ac_c" 1>&6
-echo "configure:19355: checking for sincosl declaration" >&5
+echo "configure:20837: checking for sincosl declaration" >&5
if test x${glibcpp_cv_func_sincosl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_sincosl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -19366,14 +20848,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 19370 "configure"
+#line 20852 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
sincosl(0, 0, 0);
; return 0; }
EOF
-if { (eval echo configure:19377: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20859: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_sincosl_use=yes
else
@@ -19400,12 +20882,12 @@ fi
for ac_func in sincosl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19404: checking for $ac_func" >&5
+echo "configure:20886: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 19409 "configure"
+#line 20891 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -19428,7 +20910,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:19432: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -19455,7 +20937,7 @@ done
else
echo $ac_n "checking for _sincosl declaration""... $ac_c" 1>&6
-echo "configure:19459: checking for _sincosl declaration" >&5
+echo "configure:20941: checking for _sincosl declaration" >&5
if test x${glibcpp_cv_func__sincosl_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__sincosl_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -19470,14 +20952,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 19474 "configure"
+#line 20956 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_sincosl(0, 0, 0);
; return 0; }
EOF
-if { (eval echo configure:19481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20963: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__sincosl_use=yes
else
@@ -19504,12 +20986,12 @@ fi
for ac_func in _sincosl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19508: checking for $ac_func" >&5
+echo "configure:20990: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 19513 "configure"
+#line 20995 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -19532,7 +21014,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:19536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21018: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -19562,7 +21044,7 @@ done
echo $ac_n "checking for finitel declaration""... $ac_c" 1>&6
-echo "configure:19566: checking for finitel declaration" >&5
+echo "configure:21048: checking for finitel declaration" >&5
if test x${glibcpp_cv_func_finitel_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_finitel_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -19577,7 +21059,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 19581 "configure"
+#line 21063 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -19588,7 +21070,7 @@ int main() {
finitel(0);
; return 0; }
EOF
-if { (eval echo configure:19592: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21074: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_finitel_use=yes
else
@@ -19615,12 +21097,12 @@ fi
for ac_func in finitel
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19619: checking for $ac_func" >&5
+echo "configure:21101: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 19624 "configure"
+#line 21106 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -19643,7 +21125,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:19647: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21129: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -19670,7 +21152,7 @@ done
else
echo $ac_n "checking for _finitel declaration""... $ac_c" 1>&6
-echo "configure:19674: checking for _finitel declaration" >&5
+echo "configure:21156: checking for _finitel declaration" >&5
if test x${glibcpp_cv_func__finitel_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func__finitel_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -19685,7 +21167,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 19689 "configure"
+#line 21171 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -19696,7 +21178,7 @@ int main() {
_finitel(0);
; return 0; }
EOF
-if { (eval echo configure:19700: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21182: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__finitel_use=yes
else
@@ -19723,12 +21205,12 @@ fi
for ac_func in _finitel
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19727: checking for $ac_func" >&5
+echo "configure:21209: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 19732 "configure"
+#line 21214 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -19751,7 +21233,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:19755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -19782,7 +21264,7 @@ done
echo $ac_n "checking for _float trig functions""... $ac_c" 1>&6
-echo "configure:19786: checking for _float trig functions" >&5
+echo "configure:21268: checking for _float trig functions" >&5
if eval "test \"`echo '$''{'glibcpp_cv_func__float_trig_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -19796,7 +21278,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 19800 "configure"
+#line 21282 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
@@ -19805,7 +21287,7 @@ int main() {
_coshf _sinhf _tanhf; do echo "$x (0);"; done`
; return 0; }
EOF
-if { (eval echo configure:19809: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21291: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__float_trig_use=yes
else
@@ -19831,12 +21313,12 @@ fi
_coshf _sinhf _tanhf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19835: checking for $ac_func" >&5
+echo "configure:21317: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 19840 "configure"
+#line 21322 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -19859,7 +21341,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:19863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21345: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -19887,7 +21369,7 @@ done
echo $ac_n "checking for _float round functions""... $ac_c" 1>&6
-echo "configure:19891: checking for _float round functions" >&5
+echo "configure:21373: checking for _float round functions" >&5
if eval "test \"`echo '$''{'glibcpp_cv_func__float_round_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -19901,14 +21383,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 19905 "configure"
+#line 21387 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
`for x in _ceilf _floorf; do echo "$x (0);"; done`
; return 0; }
EOF
-if { (eval echo configure:19912: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21394: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__float_round_use=yes
else
@@ -19932,12 +21414,12 @@ fi
for ac_func in _ceilf _floorf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19936: checking for $ac_func" >&5
+echo "configure:21418: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 19941 "configure"
+#line 21423 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -19960,7 +21442,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:19964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21446: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -19989,7 +21471,7 @@ done
echo $ac_n "checking for _long double trig functions""... $ac_c" 1>&6
-echo "configure:19993: checking for _long double trig functions" >&5
+echo "configure:21475: checking for _long double trig functions" >&5
if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_trig_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -20003,7 +21485,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 20007 "configure"
+#line 21489 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
@@ -20012,7 +21494,7 @@ int main() {
_coshl _sinhl _tanhl; do echo "$x (0);"; done`
; return 0; }
EOF
-if { (eval echo configure:20016: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21498: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__long_double_trig_use=yes
else
@@ -20038,12 +21520,12 @@ fi
_coshl _sinhl _tanhl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:20042: checking for $ac_func" >&5
+echo "configure:21524: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20047 "configure"
+#line 21529 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -20066,7 +21548,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:20070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -20094,7 +21576,7 @@ done
echo $ac_n "checking for _long double round functions""... $ac_c" 1>&6
-echo "configure:20098: checking for _long double round functions" >&5
+echo "configure:21580: checking for _long double round functions" >&5
if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_round_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -20108,14 +21590,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 20112 "configure"
+#line 21594 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
`for x in _ceill _floorl; do echo "$x (0);"; done`
; return 0; }
EOF
-if { (eval echo configure:20119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21601: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__long_double_round_use=yes
else
@@ -20139,12 +21621,12 @@ fi
for ac_func in _ceill _floorl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:20143: checking for $ac_func" >&5
+echo "configure:21625: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20148 "configure"
+#line 21630 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -20167,7 +21649,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:20171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -20199,7 +21681,7 @@ done
echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:20203: checking for main in -lm" >&5
+echo "configure:21685: checking for main in -lm" >&5
ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -20207,14 +21689,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 20211 "configure"
+#line 21693 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:20218: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -20244,12 +21726,12 @@ fi
for ac_func in nan copysignf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:20248: checking for $ac_func" >&5
+echo "configure:21730: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20253 "configure"
+#line 21735 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -20272,7 +21754,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:20276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21758: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -20301,12 +21783,12 @@ done
for ac_func in __signbit
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:20305: checking for $ac_func" >&5
+echo "configure:21787: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20310 "configure"
+#line 21792 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -20329,7 +21811,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:20333: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21815: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -20357,12 +21839,12 @@ done
for ac_func in __signbitf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:20361: checking for $ac_func" >&5
+echo "configure:21843: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20366 "configure"
+#line 21848 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -20385,7 +21867,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:20389: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21871: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -20415,12 +21897,12 @@ done
for ac_func in __signbitl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:20419: checking for $ac_func" >&5
+echo "configure:21901: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20424 "configure"
+#line 21906 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -20443,7 +21925,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:20447: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21929: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -20470,21 +21952,34 @@ done
fi
+ if test -n "$LIBMATHOBJS"; then
+ need_libmath=yes
+ fi
+
+
+if test "$need_libmath" = yes; then
+ GLIBCPP_BUILD_LIBMATH_TRUE=
+ GLIBCPP_BUILD_LIBMATH_FALSE='#'
+else
+ GLIBCPP_BUILD_LIBMATH_TRUE='#'
+ GLIBCPP_BUILD_LIBMATH_FALSE=
+fi
+ enable_wchar_t=no
echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6
-echo "configure:20479: checking for mbstate_t" >&5
+echo "configure:21974: checking for mbstate_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 20481 "configure"
+#line 21976 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
mbstate_t teststate;
; return 0; }
EOF
-if { (eval echo configure:20488: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21983: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
have_mbstate_t=yes
else
@@ -20506,17 +22001,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:20510: checking for $ac_hdr" >&5
+echo "configure:22005: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20515 "configure"
+#line 22010 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:20520: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:22015: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -20547,17 +22042,17 @@ done
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:20551: checking for $ac_hdr" >&5
+echo "configure:22046: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20556 "configure"
+#line 22051 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:20561: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:22056: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -20590,16 +22085,16 @@ done
test x"$enable_c_mbchar" != xno; then
echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6
-echo "configure:20594: checking for WCHAR_MIN and WCHAR_MAX" >&5
+echo "configure:22089: checking for WCHAR_MIN and WCHAR_MAX" >&5
cat > conftest.$ac_ext <<EOF
-#line 20596 "configure"
+#line 22091 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
int i = WCHAR_MIN; int j = WCHAR_MAX;
; return 0; }
EOF
-if { (eval echo configure:20603: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:22098: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_wchar_minmax=yes
else
@@ -20612,9 +22107,9 @@ rm -f conftest*
echo "$ac_t""$has_wchar_minmax" 1>&6
echo $ac_n "checking for WEOF""... $ac_c" 1>&6
-echo "configure:20616: checking for WEOF" >&5
+echo "configure:22111: checking for WEOF" >&5
cat > conftest.$ac_ext <<EOF
-#line 20618 "configure"
+#line 22113 "configure"
#include "confdefs.h"
#include <wchar.h>
@@ -20623,7 +22118,7 @@ int main() {
wint_t i = WEOF;
; return 0; }
EOF
-if { (eval echo configure:20627: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:22122: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_weof=yes
else
@@ -20639,12 +22134,12 @@ rm -f conftest*
for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:20643: checking for $ac_func" >&5
+echo "configure:22138: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20648 "configure"
+#line 22143 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -20667,7 +22162,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:20671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22166: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -20694,7 +22189,7 @@ fi
done
- for ac_func in btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
+ for ac_func in btowc wctob fgetwc fgetws fputwc fputws fwide \
fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
@@ -20702,12 +22197,12 @@ done
wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:20706: checking for $ac_func" >&5
+echo "configure:22201: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20711 "configure"
+#line 22206 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -20730,7 +22225,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:20734: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22229: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -20758,7 +22253,7 @@ done
echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6
-echo "configure:20762: checking for ISO C99 wchar_t support" >&5
+echo "configure:22257: checking for ISO C99 wchar_t support" >&5
if test x"$has_weof" = xyes &&
test x"$has_wchar_minmax" = xyes &&
test x"$ac_wfuncs" = xyes; then
@@ -20770,17 +22265,17 @@ echo "configure:20762: checking for ISO C99 wchar_t support" >&5
ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for iconv.h""... $ac_c" 1>&6
-echo "configure:20774: checking for iconv.h" >&5
+echo "configure:22269: checking for iconv.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20779 "configure"
+#line 22274 "configure"
#include "confdefs.h"
#include <iconv.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:20784: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:22279: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -20804,17 +22299,17 @@ fi
ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6
-echo "configure:20808: checking for langinfo.h" >&5
+echo "configure:22303: checking for langinfo.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20813 "configure"
+#line 22308 "configure"
#include "confdefs.h"
#include <langinfo.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:20818: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:22313: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -20838,7 +22333,7 @@ fi
echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6
-echo "configure:20842: checking for iconv in -liconv" >&5
+echo "configure:22337: checking for iconv in -liconv" >&5
ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -20846,7 +22341,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-liconv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 20850 "configure"
+#line 22345 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -20857,7 +22352,7 @@ int main() {
iconv()
; return 0; }
EOF
-if { (eval echo configure:20861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22356: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -20883,12 +22378,12 @@ fi
for ac_func in iconv_open iconv_close iconv nl_langinfo
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:20887: checking for $ac_func" >&5
+echo "configure:22382: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20892 "configure"
+#line 22387 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -20911,7 +22406,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:20915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -20941,7 +22436,7 @@ done
LIBS="$ac_save_LIBS"
echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6
-echo "configure:20945: checking for XPG2 wchar_t support" >&5
+echo "configure:22440: checking for XPG2 wchar_t support" >&5
if test x"$ac_has_iconv_h" = xyes &&
test x"$ac_has_langinfo_h" = xyes &&
test x"$ac_XPG2funcs" = xyes; then
@@ -20951,30 +22446,36 @@ echo "configure:20945: checking for XPG2 wchar_t support" >&5
fi
echo "$ac_t""$ac_XPG2_wchar_t" 1>&6
- echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
-echo "configure:20956: checking for enabled wchar_t specializations" >&5
- if test x"$ac_isoC99_wchar_t" = xyes &&
+ if test x"$ac_isoC99_wchar_t" = xyes &&
test x"$ac_XPG2_wchar_t" = xyes; then
- cat >> confdefs.h <<\EOF
+ cat >> confdefs.h <<\EOF
#define _GLIBCPP_USE_WCHAR_T 1
EOF
- echo "$ac_t"""yes"" 1>&6
- else
- echo "$ac_t"""no"" 1>&6
+ enable_wchar_t=yes
fi
- else
- echo "configure: warning: wchar_t support disabled." 1>&2
fi
+ echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
+echo "configure:22460: checking for enabled wchar_t specializations" >&5
+ echo "$ac_t""$enable_wchar_t" 1>&6
+
+
+if test "$enable_wchar_t" = yes; then
+ GLIBCPP_TEST_WCHAR_T_TRUE=
+ GLIBCPP_TEST_WCHAR_T_FALSE='#'
+else
+ GLIBCPP_TEST_WCHAR_T_TRUE='#'
+ GLIBCPP_TEST_WCHAR_T_FALSE=
+fi
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
+ CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
echo $ac_n "checking for strtold declaration""... $ac_c" 1>&6
-echo "configure:20978: checking for strtold declaration" >&5
+echo "configure:22479: checking for strtold declaration" >&5
if test x${glibcpp_cv_func_strtold_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_strtold_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -20989,14 +22490,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 20993 "configure"
+#line 22494 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
strtold(0, 0);
; return 0; }
EOF
-if { (eval echo configure:21000: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:22501: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_strtold_use=yes
else
@@ -21022,12 +22523,12 @@ fi
for ac_func in strtold
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:21026: checking for $ac_func" >&5
+echo "configure:22527: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21031 "configure"
+#line 22532 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -21050,7 +22551,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:21054: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -21078,7 +22579,7 @@ done
echo $ac_n "checking for strtof declaration""... $ac_c" 1>&6
-echo "configure:21082: checking for strtof declaration" >&5
+echo "configure:22583: checking for strtof declaration" >&5
if test x${glibcpp_cv_func_strtof_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_strtof_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -21093,14 +22594,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 21097 "configure"
+#line 22598 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
strtof(0, 0);
; return 0; }
EOF
-if { (eval echo configure:21104: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:22605: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_strtof_use=yes
else
@@ -21126,12 +22627,12 @@ fi
for ac_func in strtof
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:21130: checking for $ac_func" >&5
+echo "configure:22631: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21135 "configure"
+#line 22636 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -21154,7 +22655,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:21158: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -21183,12 +22684,12 @@ done
for ac_func in drand48
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:21187: checking for $ac_func" >&5
+echo "configure:22688: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21192 "configure"
+#line 22693 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -21211,7 +22712,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:21215: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22716: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -21245,7 +22746,7 @@ done
echo $ac_n "checking for isatty declaration""... $ac_c" 1>&6
-echo "configure:21249: checking for isatty declaration" >&5
+echo "configure:22750: checking for isatty declaration" >&5
if test x${glibcpp_cv_func_isatty_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_isatty_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -21260,14 +22761,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 21264 "configure"
+#line 22765 "configure"
#include "confdefs.h"
#include <unistd.h>
int main() {
isatty(0);
; return 0; }
EOF
-if { (eval echo configure:21271: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:22772: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_isatty_use=yes
else
@@ -21293,12 +22794,12 @@ fi
for ac_func in isatty
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:21297: checking for $ac_func" >&5
+echo "configure:22798: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21302 "configure"
+#line 22803 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -21321,7 +22822,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:21325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -21350,20 +22851,159 @@ done
CXXFLAGS="$ac_save_CXXFLAGS"
+
+ # For showmanyc_helper().
+ for ac_hdr in sys/ioctl.h sys/filio.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:22861: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 22866 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:22871: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+
+ if eval "test \"`echo '$''{'glibcpp_cv_POLL'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ cat > conftest.$ac_ext <<EOF
+#line 22903 "configure"
+#include "confdefs.h"
+#include <poll.h>
+int main() {
+struct pollfd pfd[1]; pfd[0].events = POLLIN; poll(pfd, 1, 0);
+; return 0; }
+EOF
+if { (eval echo configure:22910: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ glibcpp_cv_POLL=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ glibcpp_cv_POLL=no
+fi
+rm -f conftest*
+
+fi
+
+ if test x$glibcpp_cv_POLL = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_POLL 1
+EOF
+
+ fi
+
+
+ if eval "test \"`echo '$''{'glibcpp_cv_S_ISREG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ cat > conftest.$ac_ext <<EOF
+#line 22936 "configure"
+#include "confdefs.h"
+#include <sys/stat.h>
+int main() {
+struct stat buffer; fstat(0, &buffer); S_ISREG(buffer.st_mode);
+; return 0; }
+EOF
+if { (eval echo configure:22943: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ glibcpp_cv_S_ISREG=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ glibcpp_cv_S_ISREG=no
+fi
+rm -f conftest*
+
+fi
+
+ if eval "test \"`echo '$''{'glibcpp_cv_S_IFREG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ cat > conftest.$ac_ext <<EOF
+#line 22961 "configure"
+#include "confdefs.h"
+#include <sys/stat.h>
+int main() {
+struct stat buffer; fstat(0, &buffer); S_IFREG & buffer.st_mode;
+; return 0; }
+EOF
+if { (eval echo configure:22968: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ glibcpp_cv_S_IFREG=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ glibcpp_cv_S_IFREG=no
+fi
+rm -f conftest*
+
+fi
+
+ if test x$glibcpp_cv_S_ISREG = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_S_ISREG 1
+EOF
+
+ elif test x$glibcpp_cv_S_IFREG = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_S_IFREG 1
+EOF
+
+ fi
+
+
ac_safe=`echo "locale.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for locale.h""... $ac_c" 1>&6
-echo "configure:21357: checking for locale.h" >&5
+echo "configure:22997: checking for locale.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21362 "configure"
+#line 23002 "configure"
#include "confdefs.h"
#include <locale.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:21367: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:23007: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -21381,19 +23021,19 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
-echo "configure:21385: checking for LC_MESSAGES" >&5
+echo "configure:23025: checking for LC_MESSAGES" >&5
if eval "test \"`echo '$''{'ac_cv_val_LC_MESSAGES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21390 "configure"
+#line 23030 "configure"
#include "confdefs.h"
#include <locale.h>
int main() {
return LC_MESSAGES
; return 0; }
EOF
-if { (eval echo configure:21397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:23037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_val_LC_MESSAGES=yes
else
@@ -21420,7 +23060,7 @@ fi
cat > conftest.$ac_ext <<EOF
-#line 21424 "configure"
+#line 23064 "configure"
#include "confdefs.h"
#include <setjmp.h>
@@ -21429,7 +23069,7 @@ int main() {
sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);
; return 0; }
EOF
-if { (eval echo configure:21433: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23073: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cat >> confdefs.h <<\EOF
#define HAVE_SIGSETJMP 1
@@ -21446,17 +23086,17 @@ rm -f conftest*
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:21450: checking for $ac_hdr" >&5
+echo "configure:23090: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21455 "configure"
+#line 23095 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:21460: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:23100: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -21485,12 +23125,12 @@ done
for ac_func in getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:21489: checking for $ac_func" >&5
+echo "configure:23129: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21494 "configure"
+#line 23134 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -21513,7 +23153,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:21517: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:23157: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -21538,7 +23178,7 @@ fi
done
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:21542: checking for working mmap" >&5
+echo "configure:23182: checking for working mmap" >&5
if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -21546,7 +23186,7 @@ else
ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
-#line 21550 "configure"
+#line 23190 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
@@ -21699,7 +23339,7 @@ main()
}
EOF
-if { (eval echo configure:21703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:23343: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_mmap_fixed_mapped=yes
else
@@ -21722,25 +23362,159 @@ EOF
fi
- # Establish limits on memory usage during 'make check'
-
-
+fi
+
+# This depends on GLIBCPP_CHECK_LINKER_FEATURES, but without it assumes no.
+# Check whether --enable-symvers or --disable-symvers was given.
+if test "${enable_symvers+set}" = set; then
+ enableval="$enable_symvers"
+ case "$enableval" in
+ yes) enable_symvers=yes ;;
+ no) enable_symvers=no ;;
+ # other names here, just as sanity checks
+ #gnu|sun|etcetera) enable_symvers=$enableval ;;
+ gnu) enable_symvers=$enableval ;;
+ *) { echo "configure: error: Unknown argument to enable/disable symvers" 1>&2; exit 1; } ;;
+ esac
+else
+ enable_symvers=yes
+fi
+
+# If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we
+# don't know enough about $LD to do tricks...
+if test x$enable_shared = xno ||
+ test "x$LD" = x ||
+ test x$glibcpp_gnu_ld_version = x; then
+ enable_symvers=no
+fi
+
+# Check to see if libgcc_s exists, indicating that shared libgcc is possible.
+if test $enable_symvers != no; then
+ echo $ac_n "checking for shared libgcc""... $ac_c" 1>&6
+echo "configure:23395: checking for shared libgcc" >&5
+ ac_save_CFLAGS="$CFLAGS"
+ CFLAGS=' -lgcc_s'
+ cat > conftest.$ac_ext <<EOF
+#line 23399 "configure"
+#include "confdefs.h"
+
+int main() {
+return 0
+; return 0; }
+EOF
+if { (eval echo configure:23406: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ glibcpp_shared_libgcc=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ glibcpp_shared_libgcc=no
+fi
+rm -f conftest*
+ CFLAGS="$ac_save_CFLAGS"
+ echo "$ac_t""$glibcpp_shared_libgcc" 1>&6
+fi
+
+# For GNU ld, we need at least this version. It's 2.12 in the same format
+# as the tested-for version. See GLIBCPP_CHECK_LINKER_FEATURES for more.
+glibcpp_min_gnu_ld_version=21200
+
+# Check to see if unspecified "yes" value can win, given results
+# above.
+if test $enable_symvers = yes ; then
+ if test $with_gnu_ld = yes &&
+ test $glibcpp_shared_libgcc = yes ;
+ then
+ if test $glibcpp_gnu_ld_version -ge $glibcpp_min_gnu_ld_version ; then
+ enable_symvers=gnu
+ else
+ ac_test_CFLAGS="${CFLAGS+set}"
+ ac_save_CFLAGS="$CFLAGS"
+ CFLAGS='-shared -Wl,--version-script,conftest.map'
+ enable_symvers=no
+
+ echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map
+
+ cat > conftest.$ac_ext <<EOF
+#line 23441 "configure"
+#include "confdefs.h"
+int foo;
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:23448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ enable_symvers=gnu
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+ if test "$ac_test_CFLAGS" = set; then
+ CFLAGS="$ac_save_CFLAGS"
+ else
+ # this is the suspicious part
+ CFLAGS=''
+ fi
+ rm -f conftest.map
+ fi
+ else
+ # just fail for now
+ enable_symvers=no
+ fi
+fi
+
+case $enable_symvers in
+ no)
+ SYMVER_MAP=config/linker-map.dummy
+ ;;
+ gnu)
+ SYMVER_MAP=config/linker-map.gnu
+ cat >> confdefs.h <<\EOF
+#define _GLIBCPP_SYMVER 1
+EOF
+
+ ;;
+esac
+
+
+
+
+if test $enable_symvers != no; then
+ GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE=
+ GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE='#'
+else
+ GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE='#'
+ GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE=
+fi
+echo $ac_n "checking versioning on shared library symbols""... $ac_c" 1>&6
+echo "configure:23494: checking versioning on shared library symbols" >&5
+echo "$ac_t""$enable_symvers" 1>&6
+
+
+# This depends on GLIBCPP_ENABLE_SYMVERS and GLIBCPP_IS_CROSS_COMPILING.
+
+ if test x"$GLIBCPP_IS_CROSS_COMPILING" = xfalse; then
+ # Do checks for memory limit functions.
+
setrlimit_have_headers=yes
- for ac_hdr in sys/resource.h unistd.h
+ for ac_hdr in unistd.h sys/time.h sys/resource.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:21734: checking for $ac_hdr" >&5
+echo "configure:23508: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21739 "configure"
+#line 23513 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:21744: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:23518: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -21773,16 +23547,17 @@ done
# Can't do these in a loop, else the resulting syntax is wrong.
cat > conftest.$ac_ext <<EOF
-#line 21777 "configure"
+#line 23551 "configure"
#include "confdefs.h"
-#include <sys/resource.h>
- #include <unistd.h>
+#include <unistd.h>
+ #include <sys/time.h>
+ #include <sys/resource.h>
int main() {
int f = RLIMIT_DATA ;
; return 0; }
EOF
-if { (eval echo configure:21786: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23561: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_mresult=1
else
@@ -21799,16 +23574,17 @@ EOF
cat > conftest.$ac_ext <<EOF
-#line 21803 "configure"
+#line 23578 "configure"
#include "confdefs.h"
-#include <sys/resource.h>
- #include <unistd.h>
+#include <unistd.h>
+ #include <sys/time.h>
+ #include <sys/resource.h>
int main() {
int f = RLIMIT_RSS ;
; return 0; }
EOF
-if { (eval echo configure:21812: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23588: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_mresult=1
else
@@ -21825,16 +23601,17 @@ EOF
cat > conftest.$ac_ext <<EOF
-#line 21829 "configure"
+#line 23605 "configure"
#include "confdefs.h"
-#include <sys/resource.h>
- #include <unistd.h>
+#include <unistd.h>
+ #include <sys/time.h>
+ #include <sys/resource.h>
int main() {
int f = RLIMIT_VMEM ;
; return 0; }
EOF
-if { (eval echo configure:21838: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23615: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_mresult=1
else
@@ -21851,16 +23628,17 @@ EOF
cat > conftest.$ac_ext <<EOF
-#line 21855 "configure"
+#line 23632 "configure"
#include "confdefs.h"
-#include <sys/resource.h>
- #include <unistd.h>
+#include <unistd.h>
+ #include <sys/time.h>
+ #include <sys/resource.h>
int main() {
int f = RLIMIT_AS ;
; return 0; }
EOF
-if { (eval echo configure:21864: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23642: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_mresult=1
else
@@ -21882,16 +23660,17 @@ EOF
else
cat > conftest.$ac_ext <<EOF
-#line 21886 "configure"
+#line 23664 "configure"
#include "confdefs.h"
-#include <sys/resource.h>
- #include <unistd.h>
+#include <unistd.h>
+ #include <sys/time.h>
+ #include <sys/resource.h>
int main() {
struct rlimit r; setrlimit(0, &r);
; return 0; }
EOF
-if { (eval echo configure:21895: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23674: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_setrlimit=yes
else
@@ -21907,7 +23686,7 @@ fi
fi
echo $ac_n "checking for testsuite memory limit support""... $ac_c" 1>&6
-echo "configure:21911: checking for testsuite memory limit support" >&5
+echo "configure:23690: checking for testsuite memory limit support" >&5
if test $setrlimit_have_headers = yes && test $ac_setrlimit = yes; then
ac_mem_limits=yes
cat >> confdefs.h <<\EOF
@@ -21920,10 +23699,10 @@ EOF
echo "$ac_t""$ac_mem_limits" 1>&6
- # Look for setenv, so that extended locale tests can be performed.
-
+ # Look for setenv, so that extended locale tests can be performed.
+
echo $ac_n "checking for setenv declaration""... $ac_c" 1>&6
-echo "configure:21927: checking for setenv declaration" >&5
+echo "configure:23706: checking for setenv declaration" >&5
if test x${glibcpp_cv_func_setenv_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_setenv_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -21938,14 +23717,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 21942 "configure"
+#line 23721 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
setenv(0, 0, 0);
; return 0; }
EOF
-if { (eval echo configure:21949: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23728: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_setenv_use=yes
else
@@ -21971,12 +23750,12 @@ fi
for ac_func in setenv
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:21975: checking for $ac_func" >&5
+echo "configure:23754: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21980 "configure"
+#line 23759 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -21999,7 +23778,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:22003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:23782: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -22025,163 +23804,44 @@ done
fi
+ fi
# Export file names for ABI checking.
- baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_triplet}/baseline_symbols.txt"
+ baseline_dir="${glibcpp_srcdir}/config/abi/${abi_baseline_pair}\$(MULTISUBDIR)"
- # Don't do ABI checking unless native.
-
-
-if test x"$build" = x"$host" && test -z "$with_cross_host"; then
- GLIBCPP_BUILD_ABI_CHECK_TRUE=
- GLIBCPP_BUILD_ABI_CHECK_FALSE='#'
-else
- GLIBCPP_BUILD_ABI_CHECK_TRUE='#'
- GLIBCPP_BUILD_ABI_CHECK_FALSE=
-fi
-
-fi
-
-# This depends on the possibly-skipped linker test above.
-# Check whether --enable-symvers or --disable-symvers was given.
-if test "${enable_symvers+set}" = set; then
- enableval="$enable_symvers"
- case "$enableval" in
- yes) enable_symvers=yes ;;
- no) enable_symvers=no ;;
- # other names here, just as sanity checks
- #gnu|sun|etcetera) enable_symvers=$enableval ;;
- gnu) enable_symvers=$enableval ;;
- *) { echo "configure: error: Unknown argument to enable/disable symvers" 1>&2; exit 1; } ;;
- esac
-else
- enable_symvers=yes
-fi
-
-# If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we
-# don't know enough about $LD to do tricks...
-if test x$enable_shared = xno ||
- test "x$LD" = x ||
- test x$glibcpp_gnu_ld_version = x; then
- enable_symvers=no
-fi
-
-# Check to see if libgcc_s exists, indicating that shared libgcc is possible.
-echo $ac_n "checking for shared libgcc""... $ac_c" 1>&6
-echo "configure:22073: checking for shared libgcc" >&5
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS=' -lgcc_s'
-cat > conftest.$ac_ext <<EOF
-#line 22077 "configure"
-#include "confdefs.h"
-
-int main() {
-return 0
-; return 0; }
-EOF
-if { (eval echo configure:22084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- glibcpp_shared_libgcc=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- glibcpp_shared_libgcc=no
-fi
-rm -f conftest*
-CFLAGS="$ac_save_CFLAGS"
-echo "$ac_t""$glibcpp_shared_libgcc" 1>&6
-
-# For GNU ld, we need at least this version. It's 2.12 in the same format
-# as the tested-for version. See GLIBCPP_CHECK_LINKER_FEATURES for more.
-glibcpp_min_gnu_ld_version=21200
-
-# Check to see if unspecified "yes" value can win, given results
-# above.
-if test $enable_symvers = yes ; then
- if test $with_gnu_ld = yes &&
- test $glibcpp_shared_libgcc = yes ;
- then
- if test $glibcpp_gnu_ld_version -ge $glibcpp_min_gnu_ld_version ; then
- enable_symvers=gnu
- else
- ac_test_CFLAGS="${CFLAGS+set}"
- ac_save_CFLAGS="$CFLAGS"
- CFLAGS='-shared -Wl,--version-script,conftest.map'
- enable_symvers=no
-
- echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map
-
- cat > conftest.$ac_ext <<EOF
-#line 22118 "configure"
-#include "confdefs.h"
-int foo;
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:22125: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- enable_symvers=gnu
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
- else
- # this is the suspicious part
- CFLAGS=''
- fi
- rm -f conftest.map
- fi
+ # Determine if checking the ABI is desirable.
+ if test x$enable_symvers = xno; then
+ enable_abi_check=no
else
- # just fail for now
- enable_symvers=no
+ case "$host" in
+ *-*-cygwin*)
+ enable_abi_check=no ;;
+ *)
+ enable_abi_check=yes ;;
+ esac
fi
-fi
-
-case $enable_symvers in
- no)
- LINKER_MAP=config/linker-map.dummy
- ;;
- gnu)
- LINKER_MAP=config/linker-map.gnu
- cat >> confdefs.h <<\EOF
-#define _GLIBCPP_SYMVER 1
-EOF
-
- ;;
-esac
-
-
-
+
-if test $enable_symvers != no; then
- GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE=
- GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE='#'
+if test "$enable_abi_check" = yes; then
+ GLIBCPP_TEST_ABI_TRUE=
+ GLIBCPP_TEST_ABI_FALSE='#'
else
- GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE='#'
- GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE=
+ GLIBCPP_TEST_ABI_TRUE='#'
+ GLIBCPP_TEST_ABI_FALSE=
fi
-echo $ac_n "checking versioning on shared library symbols""... $ac_c" 1>&6
-echo "configure:22171: checking versioning on shared library symbols" >&5
-echo "$ac_t""$enable_symvers" 1>&6
# Propagate the target-specific source directories through the build chain.
-OS_INC_SRCDIR=$os_include_dir/bits
-ATOMICITY_INC_SRCDIR=$ATOMICITYH/bits
-CPU_LIMITS_INC_SRCDIR=$CPULIMITSH/bits
-
+# (Nothing currently uses cpu_include_dir directly; only ATOMICITYH
+# uses it, and it only gets used in this file.)
+OS_INC_SRCDIR=config/${os_include_dir}
+ATOMICITY_INC_SRCDIR=config/${ATOMICITYH}
# Set up cross-compile flags
-
-
+
if test "$CANADIAN" = yes; then
CANADIAN_TRUE=
@@ -22255,7 +23915,7 @@ glibcpp_prefixdir=${prefix}
# Process the option --with-gxx-include-dir=<path to include-files directory>
echo $ac_n "checking for --with-gxx-include-dir""... $ac_c" 1>&6
-echo "configure:22259: checking for --with-gxx-include-dir" >&5
+echo "configure:23919: checking for --with-gxx-include-dir" >&5
# Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
if test "${with_gxx_include_dir+set}" = set; then
withval="$with_gxx_include_dir"
@@ -22279,7 +23939,7 @@ echo "$ac_t""$gxx_include_dir" 1>&6
# Process the option "--enable-version-specific-runtime-libs"
echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6
-echo "configure:22283: checking for --enable-version-specific-runtime-libs" >&5
+echo "configure:23943: checking for --enable-version-specific-runtime-libs" >&5
# Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given.
if test "${enable_version_specific_runtime_libs+set}" = set; then
enableval="$enable_version_specific_runtime_libs"
@@ -22326,7 +23986,7 @@ if test x"$glibcpp_toolexecdir" = x"no"; then
fi
echo $ac_n "checking for install location""... $ac_c" 1>&6
-echo "configure:22330: checking for install location" >&5
+echo "configure:23990: checking for install location" >&5
echo "$ac_t""$gxx_include_dir" 1>&6
@@ -22367,7 +24027,7 @@ echo "$ac_t""$gxx_include_dir" 1>&6
OPTIMIZE_CXXFLAGS=
- WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings -Winline'
+ WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings'
@@ -22381,9 +24041,9 @@ fi
# Generate the various Makefiles, include files, and scripts.
# NB: Multilibs need MULTISUBDIR defined correctly in src/Makefile.am
-# and libsupc++/Makefile.am so that multilib installs will end up
-# installed in the correct place. To work around this not being passed
-# down from config-ml.in -> top_srcdir/Makefile.am ->
+# libsupc++/Makefile.am and testsuite/Makefile.am so that multilib installs
+# will end up installed in the correct place. To work around this not being
+# passed down from config-ml.in -> top_srcdir/Makefile.am ->
# top_srcdir/{src,libsupc++}/Makefile.am, manually append it here.
trap '' 1 2 15
cat > confcache <<\EOF
@@ -22570,10 +24230,10 @@ s%@CXXCPP@%$CXXCPP%g
s%@enable_shared@%$enable_shared%g
s%@enable_static@%$enable_static%g
s%@ifGNUmake@%$ifGNUmake%g
-s%@DEBUG_FLAGS@%$DEBUG_FLAGS%g
s%@CPP@%$CPP%g
s%@CSTDIO_H@%$CSTDIO_H%g
s%@BASIC_FILE_H@%$BASIC_FILE_H%g
+s%@BASIC_FILE_CC@%$BASIC_FILE_CC%g
s%@CCODECVT_C@%$CCODECVT_C%g
s%@GLIBCPP_BUILD_LIBIO_TRUE@%$GLIBCPP_BUILD_LIBIO_TRUE%g
s%@GLIBCPP_BUILD_LIBIO_FALSE@%$GLIBCPP_BUILD_LIBIO_FALSE%g
@@ -22590,7 +24250,16 @@ s%@USE_NLS@%$USE_NLS%g
s%@CLOCALE_H@%$CLOCALE_H%g
s%@CCODECVT_H@%$CCODECVT_H%g
s%@CMESSAGES_H@%$CMESSAGES_H%g
+s%@CCODECVT_CC@%$CCODECVT_CC%g
+s%@CCOLLATE_CC@%$CCOLLATE_CC%g
+s%@CCTYPE_CC@%$CCTYPE_CC%g
+s%@CMESSAGES_CC@%$CMESSAGES_CC%g
+s%@CMONEY_CC@%$CMONEY_CC%g
+s%@CNUMERIC_CC@%$CNUMERIC_CC%g
s%@CTIME_H@%$CTIME_H%g
+s%@CTIME_CC@%$CTIME_CC%g
+s%@CLOCALE_CC@%$CLOCALE_CC%g
+s%@CLOCALE_INTERNAL_H@%$CLOCALE_INTERNAL_H%g
s%@C_INCLUDE_DIR@%$C_INCLUDE_DIR%g
s%@GLIBCPP_C_HEADERS_C_TRUE@%$GLIBCPP_C_HEADERS_C_TRUE%g
s%@GLIBCPP_C_HEADERS_C_FALSE@%$GLIBCPP_C_HEADERS_C_FALSE%g
@@ -22599,21 +24268,28 @@ s%@GLIBCPP_C_HEADERS_C_STD_FALSE@%$GLIBCPP_C_HEADERS_C_STD_FALSE%g
s%@GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE@%$GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE%g
s%@GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE@%$GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE%g
s%@glibcpp_thread_h@%$glibcpp_thread_h%g
-s%@EXTRA_CXX_FLAGS@%$EXTRA_CXX_FLAGS%g
s%@LIBUNWIND_FLAG@%$LIBUNWIND_FLAG%g
+s%@EXTRA_CXX_FLAGS@%$EXTRA_CXX_FLAGS%g
+s%@GLIBCPP_BUILD_DEBUG_TRUE@%$GLIBCPP_BUILD_DEBUG_TRUE%g
+s%@GLIBCPP_BUILD_DEBUG_FALSE@%$GLIBCPP_BUILD_DEBUG_FALSE%g
+s%@DEBUG_FLAGS@%$DEBUG_FLAGS%g
s%@SECTION_FLAGS@%$SECTION_FLAGS%g
s%@SECTION_LDFLAGS@%$SECTION_LDFLAGS%g
s%@OPT_LDFLAGS@%$OPT_LDFLAGS%g
s%@LIBMATHOBJS@%$LIBMATHOBJS%g
+s%@GLIBCPP_BUILD_LIBMATH_TRUE@%$GLIBCPP_BUILD_LIBMATH_TRUE%g
+s%@GLIBCPP_BUILD_LIBMATH_FALSE@%$GLIBCPP_BUILD_LIBMATH_FALSE%g
+s%@GLIBCPP_TEST_WCHAR_T_TRUE@%$GLIBCPP_TEST_WCHAR_T_TRUE%g
+s%@GLIBCPP_TEST_WCHAR_T_FALSE@%$GLIBCPP_TEST_WCHAR_T_FALSE%g
s%@WERROR@%$WERROR%g
-s%@baseline_file@%$baseline_file%g
-s%@GLIBCPP_BUILD_ABI_CHECK_TRUE@%$GLIBCPP_BUILD_ABI_CHECK_TRUE%g
-s%@GLIBCPP_BUILD_ABI_CHECK_FALSE@%$GLIBCPP_BUILD_ABI_CHECK_FALSE%g
+s%@SYMVER_MAP@%$SYMVER_MAP%g
s%@GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE@%$GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE%g
s%@GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE@%$GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE%g
+s%@baseline_dir@%$baseline_dir%g
+s%@GLIBCPP_TEST_ABI_TRUE@%$GLIBCPP_TEST_ABI_TRUE%g
+s%@GLIBCPP_TEST_ABI_FALSE@%$GLIBCPP_TEST_ABI_FALSE%g
s%@OS_INC_SRCDIR@%$OS_INC_SRCDIR%g
s%@ATOMICITY_INC_SRCDIR@%$ATOMICITY_INC_SRCDIR%g
-s%@CPU_LIMITS_INC_SRCDIR@%$CPU_LIMITS_INC_SRCDIR%g
s%@GLIBCPP_IS_CROSS_COMPILING@%$GLIBCPP_IS_CROSS_COMPILING%g
s%@CANADIAN_TRUE@%$CANADIAN_TRUE%g
s%@CANADIAN_FALSE@%$CANADIAN_FALSE%g
@@ -22840,51 +24516,6 @@ cat >> $CONFIG_STATUS <<\EOF
fi; done
EOF
-
-cat >> $CONFIG_STATUS <<EOF
-ac_sources="$BASIC_FILE_CC $CLOCALE_CC $CCODECVT_CC $CCOLLATE_CC $CCTYPE_CC $CMESSAGES_CC $CMONEY_CC $CNUMERIC_CC $CTIME_CC $CLOCALE_INTERNAL_H $LINKER_MAP"
-ac_dests="src/basic_file.cc src/c++locale.cc src/codecvt_members.cc src/collate_members.cc src/ctype_members.cc src/messages_members.cc src/monetary_members.cc src/numeric_members.cc src/time_members.cc src/c++locale_internal.h src/linker.map"
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-srcdir=$ac_given_srcdir
-while test -n "$ac_sources"; do
- set $ac_dests; ac_dest=$1; shift; ac_dests=$*
- set $ac_sources; ac_source=$1; shift; ac_sources=$*
-
- echo "linking $srcdir/$ac_source to $ac_dest"
-
- if test ! -r $srcdir/$ac_source; then
- { echo "configure: error: $srcdir/$ac_source: File not found" 1>&2; exit 1; }
- fi
- rm -f $ac_dest
-
- # Make relative symlinks.
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dest_dir=`echo $ac_dest|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dest_dir" != "$ac_dest" && test "$ac_dest_dir" != .; then
- # The dest file is in a subdirectory.
- test ! -d "$ac_dest_dir" && mkdir "$ac_dest_dir"
- ac_dest_dir_suffix="/`echo $ac_dest_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $ac_dest_dir_suffix.
- ac_dots=`echo $ac_dest_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- ac_dest_dir_suffix= ac_dots=
- fi
-
- case "$srcdir" in
- [/$]*) ac_rel_source="$srcdir/$ac_source" ;;
- *) ac_rel_source="$ac_dots$srcdir/$ac_source" ;;
- esac
-
- # Make a symlink if possible; otherwise try a hard link.
- if ln -s $ac_rel_source $ac_dest 2>/dev/null ||
- ln $srcdir/$ac_source $ac_dest; then :
- else
- { echo "configure: error: can not link $ac_dest to $srcdir/$ac_source" 1>&2; exit 1; }
- fi
-done
-EOF
cat >> $CONFIG_STATUS <<EOF
srcdir=${srcdir}
@@ -22896,6 +24527,7 @@ CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
glibcpp_basedir=${glibcpp_basedir}
CC="${CC}"
CXX="${CXX}"
+ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
EOF
cat >> $CONFIG_STATUS <<\EOF
@@ -22905,6 +24537,7 @@ if test -n "$CONFIG_FILES"; then
ac_file=Makefile . ${glibcpp_basedir}/../config-ml.in
grep '^MULTISUBDIR =' Makefile >> src/Makefile
grep '^MULTISUBDIR =' Makefile >> libsupc++/Makefile
+ grep '^MULTISUBDIR =' Makefile >> testsuite/Makefile
fi
chmod +x mkcheck
chmod +x testsuite_flags
diff --git a/contrib/libstdc++/configure.in b/contrib/libstdc++/configure.in
index c6a5b3a..2124b9b 100644
--- a/contrib/libstdc++/configure.in
+++ b/contrib/libstdc++/configure.in
@@ -7,18 +7,29 @@ AC_INIT(src/ios.cc)
# This works around the fact that libtool configuration may change LD
# for this particular configuration, but some shells, instead of
# keeping the changes in LD private, export them just because LD is
-# exported.
+# exported. Only used at the end of this file.
ORIGINAL_LD_FOR_MULTILIBS=$LD
PACKAGE=libstdc++
AC_SUBST(PACKAGE)
# For libtool versioning info, format is CURRENT:REVISION:AGE
-libtool_VERSION=5:2:0
+libtool_VERSION=5:5:0
AC_SUBST(libtool_VERSION)
GLIBCPP_TOPREL_CONFIGURE
# Gets build, host, target, *_vendor, *_cpu, *_os, etc.
+#
+# You will slowly go insane if you do not grok the following fact: when
+# building v3 as part of the compiler, the top-level /target/ becomes the
+# library's /host/. `configure' then causes --target to default to --host,
+# exactly like any other package using autoconf. Therefore, 'target' and
+# 'host' will always be the same. This makes sense both for native and
+# cross compilers, just think about it for a little while. :-)
+#
+# Also, if v3 is being configured as part of a cross compiler, the top-level
+# configure script will pass the "real" host as $with_cross_host.
+#
# AC 2.5x sets target_alias iff the user specified --target, but we use it
# everywhere, so we set it here just to be sure. In AC 2.13
# AC_CANONICAL_TARGET was known as AC_CANONICAL_SYSTEM.
@@ -26,9 +37,8 @@ AC_CANONICAL_SYSTEM
target_alias=${target_alias-$target}
AC_SUBST(target_alias)
-# Runs configure.host and configure.target, as well as finds CC, CXX
-# and assorted other critical bits. Have to run this before the
-# GLIBCPP_ENABLE_* macros below.
+# Runs configure.target, finds CC, CXX and assorted other critical bits.
+# Must run this before the GLIBCPP_ENABLE_* macros below.
GLIBCPP_CONFIGURE(.)
AM_INIT_AUTOMAKE($PACKAGE, $gcc_version)
@@ -44,42 +54,57 @@ AC_SUBST(enable_static)
GLIBCPP_CHECK_GNU_MAKE
# Enable all the variable C++ stuff. C_MBCHAR must come early.
-GLIBCPP_ENABLE_DEBUG($USE_MAINTAINER_MODE)
GLIBCPP_ENABLE_CSTDIO
GLIBCPP_ENABLE_CLOCALE
+GLIBCPP_ENABLE_CHEADERS([$c_model])
GLIBCPP_ENABLE_C_MBCHAR([yes])
GLIBCPP_ENABLE_C99([yes])
GLIBCPP_ENABLE_LONG_LONG([yes])
-GLIBCPP_ENABLE_CHEADERS([$c_model])
GLIBCPP_ENABLE_THREADS
-GLIBCPP_ENABLE_CXX_FLAGS([none])
GLIBCPP_ENABLE_SJLJ_EXCEPTIONS
GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS
GLIBCPP_ENABLE_CONCEPT_CHECKS
+GLIBCPP_ENABLE_CXX_FLAGS
+GLIBCPP_ENABLE_DEBUG([no])
+GLIBCPP_ENABLE_DEBUG_FLAGS([none])
# Check for headers necessary for libsupc++ using dyn-string.c/cxa_demangle.c
AC_CHECK_HEADERS(string.h stdlib.h)
-if test -n "$with_cross_host" || test x"$build" != x"$host"; then
+# No surprises, no surprises...
+if test $ATOMICITYH = cpu/generic ; then
+ AC_MSG_WARN([No native atomic operations are provided yet for this platform.])
+ if test $target_thread_file = single; then
+ AC_MSG_WARN([They cannot be faked when thread support is disabled.])
+ AC_MSG_WARN([Thread-safety of certain classes is not guaranteed.])
+ else
+ AC_MSG_WARN([They will be faked using a mutex.])
+ AC_MSG_WARN([Performance of certain classes will degrade as a result.])
+ fi
+fi
- # This lets us hard-code the functionality we know
- # we'll have in the cross target environment. "Let" is a
- # sugar-coated word placed on an especially dull and tedious hack, actually.
- # Here's why GLIBCPP_CHECK_MATH_SUPPORT, and other autoconf macros
- # that involve linking can't be used:
- # "cannot open sim-crt0.o"
- # "cannot open crt0.o"
- # etc. All this is because there currently exists no unified,
- # consistent way for top level CC information to be passed down
- # to target directories: newlib includes, newlib linking info,
- # libgloss versus newlib crt0.o, etc. When all of this is done, all
- # of this hokey, excessive AC_DEFINE junk for crosses can be removed.
+
+if test -n "$with_cross_host" || test x"$build" != x"$host"; then
# We are being configured with some form of cross compiler.
GLIBCPP_IS_CROSS_COMPILING=1
- # If Canadian cross, then don't pick up tools from the build
- # directory.
+ # This lets us hard-code the functionality we know we'll have in the cross
+ # target environment. "Let" is a sugar-coated word placed on an especially
+ # dull and tedious hack, actually.
+ #
+ # Here's why GLIBCPP_CHECK_MATH_SUPPORT, and other autoconf macros
+ # that involve linking, can't be used:
+ # "cannot open sim-crt0.o"
+ # "cannot open crt0.o"
+ # etc. All this is because there currently exists no unified, consistent
+ # way for top level CC information to be passed down to target directories:
+ # newlib includes, newlib linking info, libgloss versus newlib crt0.o, etc.
+ # When all of that is done, all of this hokey, excessive AC_DEFINE junk for
+ # crosses can be removed.
+
+ # If Canadian cross, then don't pick up tools from the build directory.
+ # Used in GLIBCPP_EXPORT_INCLUDES (and nowhere else?).
if test -n "$with_cross_host" && test x"$build" != x"$with_cross_host"; then
CANADIAN=yes
else
@@ -93,69 +118,130 @@ if test -n "$with_cross_host" || test x"$build" != x"$host"; then
case "$target" in
*-linux*)
- # Check for available headers.
+ os_include_dir="os/gnu-linux"
AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
- machine/endian.h machine/param.h sys/machine.h sys/types.h \
- fp.h locale.h float.h inttypes.h])
+ machine/endian.h machine/param.h sys/machine.h sys/types.h \
+ fp.h locale.h float.h inttypes.h])
SECTION_FLAGS='-ffunction-sections -fdata-sections'
AC_SUBST(SECTION_FLAGS)
GLIBCPP_CHECK_LINKER_FEATURES
GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT
GLIBCPP_CHECK_WCHAR_T_SUPPORT
- os_include_dir="config/os/gnu-linux"
AC_DEFINE(HAVE_COPYSIGN)
AC_DEFINE(HAVE_COPYSIGNF)
+ AC_DEFINE(HAVE_FINITE)
AC_DEFINE(HAVE_FINITEF)
AC_DEFINE(HAVE_FREXPF)
AC_DEFINE(HAVE_HYPOTF)
+ AC_DEFINE(HAVE_ISINF)
+ AC_DEFINE(HAVE_ISINFF)
+ AC_DEFINE(HAVE_ISNAN)
+ AC_DEFINE(HAVE_ISNANF)
AC_DEFINE(HAVE_SINCOS)
AC_DEFINE(HAVE_SINCOSF)
if test x"long_double_math_on_this_cpu" = x"yes"; then
- AC_DEFINE(HAVE_HYPOTL)
+ AC_DEFINE(HAVE_FINITEL)
+ AC_DEFINE(HAVE_HYPOTL)
+ AC_DEFINE(HAVE_ISINFL)
+ AC_DEFINE(HAVE_ISNANL)
fi
;;
*-hpux*)
# Check for available headers.
AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
- machine/endian.h machine/param.h sys/machine.h sys/types.h \
- fp.h locale.h float.h inttypes.h])
+ machine/endian.h machine/param.h sys/machine.h sys/types.h \
+ fp.h locale.h float.h inttypes.h])
SECTION_FLAGS='-ffunction-sections -fdata-sections'
AC_SUBST(SECTION_FLAGS)
GLIBCPP_CHECK_LINKER_FEATURES
GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT
GLIBCPP_CHECK_WCHAR_T_SUPPORT
- os_include_dir="config/os/hpux"
+ os_include_dir="os/hpux"
AC_DEFINE(HAVE_COPYSIGN)
AC_DEFINE(HAVE_COPYSIGNF)
- AC_DEFINE(HAVE_FINITEF)
AC_DEFINE(HAVE_FREXPF)
AC_DEFINE(HAVE_HYPOT)
- AC_DEFINE(HAVE_SINCOS)
- AC_DEFINE(HAVE_SINCOSF)
+ case "$target" in
+ *-hpux10*)
+ AC_DEFINE(HAVE_FINITE)
+ AC_DEFINE(HAVE_FINITEF)
+ AC_DEFINE(HAVE_ISINF)
+ AC_DEFINE(HAVE_ISINFF)
+ AC_DEFINE(HAVE_ISNAN)
+ AC_DEFINE(HAVE_ISNANF)
+ ;;
+ esac
+
;;
*-netbsd*)
# Check for available headers.
AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
- machine/endian.h machine/param.h sys/machine.h sys/types.h \
- fp.h locale.h float.h inttypes.h])
+ machine/endian.h machine/param.h sys/machine.h sys/types.h \
+ fp.h locale.h float.h inttypes.h])
SECTION_FLAGS='-ffunction-sections -fdata-sections'
AC_SUBST(SECTION_FLAGS)
GLIBCPP_CHECK_LINKER_FEATURES
GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT
GLIBCPP_CHECK_WCHAR_T_SUPPORT
- os_include_dir="config/os/bsd/netbsd"
+ os_include_dir="os/bsd/netbsd"
AC_DEFINE(HAVE_COPYSIGN)
AC_DEFINE(HAVE_COPYSIGNF)
AC_DEFINE(HAVE_FINITEF)
+ AC_DEFINE(HAVE_FINITE)
AC_DEFINE(HAVE_FREXPF)
AC_DEFINE(HAVE_HYPOTF)
+ AC_DEFINE(HAVE_ISINF)
+ AC_DEFINE(HAVE_ISINFF)
+ AC_DEFINE(HAVE_ISNAN)
+ AC_DEFINE(HAVE_ISNANF)
+ if test x"long_double_math_on_this_cpu" = x"yes"; then
+ AC_DEFINE(HAVE_FINITEL)
+ AC_DEFINE(HAVE_ISINFL)
+ AC_DEFINE(HAVE_ISNANL)
+ fi
+ ;;
+ *-freebsd*)
+ # Check for available headers.
+ AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
+ machine/endian.h machine/param.h sys/machine.h sys/types.h \
+ fp.h locale.h float.h inttypes.h sys/resource.h sys/stat.h \
+ sys/time.h unistd.h])
+ SECTION_FLAGS='-ffunction-sections -fdata-sections'
+ AC_SUBST(SECTION_FLAGS)
+ GLIBCPP_CHECK_LINKER_FEATURES
+ GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT
+ GLIBCPP_CHECK_WCHAR_T_SUPPORT
+ os_include_dir="os/bsd/freebsd"
+ AC_DEFINE(HAVE_LC_MESSAGES)
+ AC_DEFINE(HAVE_DRAND48)
+ AC_DEFINE(HAVE_GETPAGESIZE)
+ AC_DEFINE(HAVE_SETENV)
+ AC_DEFINE(HAVE_SIGSETJMP)
+ AC_DEFINE(HAVE_COPYSIGN)
+ AC_DEFINE(HAVE_COPYSIGNF)
+ AC_DEFINE(HAVE_FINITEF)
+ AC_DEFINE(HAVE_FINITE)
+ AC_DEFINE(HAVE_FREXPF)
+ AC_DEFINE(HAVE_HYPOT)
+ AC_DEFINE(HAVE_HYPOTF)
+ AC_DEFINE(HAVE_ISINF)
+ AC_DEFINE(HAVE_ISNAN)
+ AC_DEFINE(HAVE_ISNANF)
+ if test x"long_double_math_on_this_cpu" = x"yes"; then
+ AC_DEFINE(HAVE_FINITEL)
+ AC_DEFINE(HAVE_ISINFL)
+ AC_DEFINE(HAVE_ISNANL)
+ fi
;;
*-mingw32*)
AC_CHECK_HEADERS([sys/types.h locale.h float.h])
GLIBCPP_CHECK_LINKER_FEATURES
GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT
GLIBCPP_CHECK_WCHAR_T_SUPPORT
- os_include_dir="config/os/mingw32"
+ os_include_dir="os/mingw32"
+ ;;
+ *-windiss*)
+ os_include_dir="os/windiss"
;;
changequote(,)dnl
*-qnx6.[12]*)
@@ -165,7 +251,7 @@ changequote([,])dnl
GLIBCPP_CHECK_LINKER_FEATURES
GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT
GLIBCPP_CHECK_WCHAR_T_SUPPORT
- os_include_dir="config/os/qnx/qnx6.1"
+ os_include_dir="os/qnx/qnx6.1"
AC_DEFINE(HAVE_COSF)
AC_DEFINE(HAVE_COSL)
AC_DEFINE(HAVE_COSHF)
@@ -180,7 +266,7 @@ changequote([,])dnl
AC_DEFINE(HAVE_SINHL)
;;
*)
- os_include_dir="config/os/newlib"
+ os_include_dir="os/newlib"
AC_DEFINE(HAVE_HYPOT)
;;
esac
@@ -188,6 +274,60 @@ changequote([,])dnl
case "$target" in
*-mingw32*)
;;
+ *-windiss*)
+ AC_DEFINE(HAVE_ACOSF)
+ AC_DEFINE(HAVE_ASINF)
+ AC_DEFINE(HAVE_ATAN2F)
+ AC_DEFINE(HAVE_ATANF)
+ AC_DEFINE(HAVE_CEILF)
+ AC_DEFINE(HAVE_COPYSIGN)
+ AC_DEFINE(HAVE_COPYSIGNF)
+ AC_DEFINE(HAVE_COSF)
+ AC_DEFINE(HAVE_COSHF)
+ AC_DEFINE(HAVE_EXPF)
+ AC_DEFINE(HAVE_FABSF)
+ AC_DEFINE(HAVE_FLOORF)
+ AC_DEFINE(HAVE_FMODF)
+ AC_DEFINE(HAVE_FREXPF)
+ AC_DEFINE(HAVE_LDEXPF)
+ AC_DEFINE(HAVE_LOG10F)
+ AC_DEFINE(HAVE_LOGF)
+ AC_DEFINE(HAVE_MODFF)
+ AC_DEFINE(HAVE_POWF)
+ AC_DEFINE(HAVE_SINF)
+ AC_DEFINE(HAVE_SINHF)
+ AC_DEFINE(HAVE_SQRTF)
+ AC_DEFINE(HAVE_TANF)
+ AC_DEFINE(HAVE_TANHF)
+ ;;
+ *-freebsd*)
+ # Must replicate generic section since we don't have strtof or strtold.
+ AC_DEFINE(HAVE_MMAP)
+ AC_DEFINE(HAVE_ACOSF)
+ AC_DEFINE(HAVE_ASINF)
+ AC_DEFINE(HAVE_ATAN2F)
+ AC_DEFINE(HAVE_ATANF)
+ AC_DEFINE(HAVE_CEILF)
+ AC_DEFINE(HAVE_COPYSIGN)
+ AC_DEFINE(HAVE_COPYSIGNF)
+ AC_DEFINE(HAVE_COSF)
+ AC_DEFINE(HAVE_COSHF)
+ AC_DEFINE(HAVE_EXPF)
+ AC_DEFINE(HAVE_FABSF)
+ AC_DEFINE(HAVE_FLOORF)
+ AC_DEFINE(HAVE_FMODF)
+ AC_DEFINE(HAVE_FREXPF)
+ AC_DEFINE(HAVE_LDEXPF)
+ AC_DEFINE(HAVE_LOG10F)
+ AC_DEFINE(HAVE_LOGF)
+ AC_DEFINE(HAVE_MODFF)
+ AC_DEFINE(HAVE_POWF)
+ AC_DEFINE(HAVE_SINF)
+ AC_DEFINE(HAVE_SINHF)
+ AC_DEFINE(HAVE_SQRTF)
+ AC_DEFINE(HAVE_TANF)
+ AC_DEFINE(HAVE_TANHF)
+ ;;
*)
# GLIBCPP_CHECK_STDLIB_SUPPORT
AC_DEFINE(HAVE_STRTOF)
@@ -206,15 +346,9 @@ changequote([,])dnl
AC_DEFINE(HAVE_COSHF)
AC_DEFINE(HAVE_EXPF)
AC_DEFINE(HAVE_FABSF)
- AC_DEFINE(HAVE_FINITE)
- AC_DEFINE(HAVE_FINITEF)
AC_DEFINE(HAVE_FLOORF)
AC_DEFINE(HAVE_FMODF)
AC_DEFINE(HAVE_FREXPF)
- AC_DEFINE(HAVE_ISINF)
- AC_DEFINE(HAVE_ISINFF)
- AC_DEFINE(HAVE_ISNAN)
- AC_DEFINE(HAVE_ISNANF)
AC_DEFINE(HAVE_LDEXPF)
AC_DEFINE(HAVE_LOG10F)
AC_DEFINE(HAVE_LOGF)
@@ -242,12 +376,9 @@ changequote([,])dnl
AC_DEFINE(HAVE_COSHL)
AC_DEFINE(HAVE_EXPL)
AC_DEFINE(HAVE_FABSL)
- AC_DEFINE(HAVE_FINITEL)
AC_DEFINE(HAVE_FLOORL)
AC_DEFINE(HAVE_FMODL)
AC_DEFINE(HAVE_FREXPL)
- AC_DEFINE(HAVE_ISINFL)
- AC_DEFINE(HAVE_ISNANL)
AC_DEFINE(HAVE_LDEXPL)
AC_DEFINE(HAVE_LOG10L)
AC_DEFINE(HAVE_LOGL)
@@ -260,6 +391,7 @@ changequote([,])dnl
AC_DEFINE(HAVE_TANL)
AC_DEFINE(HAVE_TANHL)
fi
+
else
# We are being configured natively. We can do more elaborate tests
@@ -280,6 +412,12 @@ else
GLIBCPP_CHECK_WCHAR_T_SUPPORT
GLIBCPP_CHECK_STDLIB_SUPPORT
GLIBCPP_CHECK_UNISTD_SUPPORT
+
+ # For showmanyc_helper().
+ AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
+ GLIBCPP_CHECK_POLL
+ GLIBCPP_CHECK_S_ISREG_OR_S_IFREG
+
AC_LC_MESSAGES
AC_TRY_COMPILE([
@@ -290,23 +428,24 @@ else
AC_FUNC_MMAP
- # Establish limits on memory usage during 'make check'
- GLIBCPP_CONFIGURE_TESTSUITE
fi
-# This depends on the possibly-skipped linker test above.
+# This depends on GLIBCPP_CHECK_LINKER_FEATURES, but without it assumes no.
GLIBCPP_ENABLE_SYMVERS([yes])
+# This depends on GLIBCPP_ENABLE_SYMVERS and GLIBCPP_IS_CROSS_COMPILING.
+GLIBCPP_CONFIGURE_TESTSUITE
+
# Propagate the target-specific source directories through the build chain.
-OS_INC_SRCDIR=$os_include_dir/bits
-ATOMICITY_INC_SRCDIR=$ATOMICITYH/bits
-CPU_LIMITS_INC_SRCDIR=$CPULIMITSH/bits
+# (Nothing currently uses cpu_include_dir directly; only ATOMICITYH
+# uses it, and it only gets used in this file.)
+OS_INC_SRCDIR=config/${os_include_dir}
+ATOMICITY_INC_SRCDIR=config/${ATOMICITYH}
AC_SUBST(OS_INC_SRCDIR)
AC_SUBST(ATOMICITY_INC_SRCDIR)
-AC_SUBST(CPU_LIMITS_INC_SRCDIR)
# Set up cross-compile flags
-AC_SUBST(GLIBCPP_IS_CROSS_COMPILING)
+AC_SUBST(GLIBCPP_IS_CROSS_COMPILING) dnl Unused so far.
AM_CONDITIONAL(CANADIAN, test "$CANADIAN" = yes)
AC_CACHE_SAVE
@@ -334,9 +473,9 @@ AC_SUBST(LIBSUPCXX_PICFLAGS)
# Generate the various Makefiles, include files, and scripts.
# NB: Multilibs need MULTISUBDIR defined correctly in src/Makefile.am
-# and libsupc++/Makefile.am so that multilib installs will end up
-# installed in the correct place. To work around this not being passed
-# down from config-ml.in -> top_srcdir/Makefile.am ->
+# libsupc++/Makefile.am and testsuite/Makefile.am so that multilib installs
+# will end up installed in the correct place. To work around this not being
+# passed down from config-ml.in -> top_srcdir/Makefile.am ->
# top_srcdir/{src,libsupc++}/Makefile.am, manually append it here.
AC_OUTPUT(Makefile \
include/Makefile src/Makefile \
@@ -347,6 +486,7 @@ AC_OUTPUT(Makefile \
ac_file=Makefile . ${glibcpp_basedir}/../config-ml.in
grep '^MULTISUBDIR =' Makefile >> src/Makefile
grep '^MULTISUBDIR =' Makefile >> libsupc++/Makefile
+ grep '^MULTISUBDIR =' Makefile >> testsuite/Makefile
fi
chmod +x mkcheck
chmod +x testsuite_flags
@@ -360,6 +500,7 @@ CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
glibcpp_basedir=${glibcpp_basedir}
CC="${CC}"
CXX="${CXX}"
+ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
)
dnl In autoconf 2.5x, AC_OUTPUT is replaced by three AC_ macros:
dnl AC_CONFIG_FILES(Makefile \
@@ -371,6 +512,7 @@ dnl [if test -n "$CONFIG_FILES"; then
dnl ac_file=Makefile . ${glibcpp_basedir}/../config-ml.in
dnl grep '^MULTISUBDIR =' Makefile >> src/Makefile
dnl grep '^MULTISUBDIR =' Makefile >> libsupc++/Makefile
+dnl grep '^MULTISUBDIR =' Makefile >> testsuite/Makefile
dnl fi
dnl chmod +x mkcheck
dnl chmod +x testsuite_flags
diff --git a/contrib/libstdc++/configure.target b/contrib/libstdc++/configure.target
index 86f6d89..a8aa6a6 100644
--- a/contrib/libstdc++/configure.target
+++ b/contrib/libstdc++/configure.target
@@ -1,198 +1,200 @@
# configure.target
-
+#
# This shell script handles all target based configuration for libstdc++.
# It sets various shell variables based on the the target and the
-# configuration options. You can modify this shell script without
-# needing to rerun autoconf.
-
-# This shell script should be invoked as
-# . configure.target
-# If it encounters an error, it will exit with a message.
-
-# It uses the following shell variables:
-# target The configuration target
+# configuration options. You can modify this shell script without needing
+# to rerun autoconf/aclocal/etc. This file is "sourced" not executed.
+#
+# You should read docs/html/17_intro/porting.* to make sense of this file.
+#
+#
+# It uses the following shell variables as set by config.guess:
+# target The configuration target (full CPU-vendor-OS triplet)
# target_cpu The configuration target CPU
# target_os The configuration target OS
-
-# It possibly modifies the following shell variables:
-# cpu_include_dir CPU-specific include directory, relative to srcdir
#
-# os_include_dir OS-specific include directory, relative to srcdir
+#
+# It sets the following shell variables:
+#
+# cpu_include_dir CPU-specific directory, defaults to cpu/generic
+# if cpu/target_cpu doesn't exist. This is
+# used to set ATOMICITYH.
+#
+# os_include_dir OS-specific directory, defaults to os/generic.
#
# c_model the model to use for "C" headers, defaults to c_std.
#
-# c_compatibility if "C" compatibility headers are necessary,
-# defaults to no.
+# c_compatibility if "C" compatibility headers are necessary,
+# defaults to no.
+#
+# abi_baseline_pair directory name for ABI compat testing,
+# defaults to target (as per config.guess)
+#
+# ATOMICITYH location of atomicity.h,
+# defaults to cpu_include_dir
+#
+# It possibly modifies the following variables:
+#
+# OPT_LDFLAGS extra flags to pass when linking the library, of
+# the form '-Wl,blah'
+# (defaults to empty in acinclude.m4)
+#
+#
+# If the defaults will not work for your platform, you need only change the
+# variables that won't work, i.e., you do not need to explicitly set a
+# working variable to its default. Most targets only need to change the two
+# *_include_dir variables.
+
# DEFAULTS
+# Try to guess a default cpu_include_dir based on the name of the CPU. We
+# cannot do this for os_include_dir; there are too many portable operating
+# systems out there. :-)
c_model=c_std
c_compatibility=no
-abi_baseline_triplet=${target}
-# TARGET-SPECIFIC OVERRIDES
+# TARGET-SPECIFIC OVERRIDES
# Set any CPU-dependent bits.
+# Here we override defaults and catch more general cases due to naming
+# conventions (e.g., chip_name* to catch all variants).
# THIS TABLE IS SORTED. KEEP IT THAT WAY.
+
case "${target_cpu}" in
alpha*)
- cpu_include_dir="config/cpu/alpha"
- ;;
- arm*)
- cpu_include_dir="config/cpu/arm"
- ;;
- cris)
- cpu_include_dir="config/cpu/cris"
+ try_cpu=alpha
;;
- ia64)
- cpu_include_dir="config/cpu/ia64"
+ athlon* | i586 | i686 | i786 | x86_64)
+ try_cpu=i486
;;
- i386)
- cpu_include_dir="config/cpu/i386"
+ hppa*)
+ try_cpu=hppa
;;
- i486 | i586 | i686 | i786)
- cpu_include_dir="config/cpu/i486"
+ m680[246]0)
+ try_cpu=m68k
;;
- m68k | m680[246]0)
- cpu_include_dir="config/cpu/m68k"
+ powerpc* | rs6000)
+ try_cpu=powerpc
;;
- powerpc | rs6000)
- cpu_include_dir="config/cpu/powerpc"
- ;;
- s390 | s390x)
- cpu_include_dir="config/cpu/s390"
+ s390x)
+ try_cpu=s390
;;
sparc* | ultrasparc)
- cpu_include_dir="config/cpu/sparc"
- ;;
- x86_64*)
- cpu_include_dir="config/cpu/x86-64"
+ try_cpu=sparc
;;
*)
- cpu_include_dir="config/cpu/generic"
+ if test -d ${glibcpp_srcdir}/config/cpu/${target_cpu}; then
+ try_cpu=${target_cpu}
+ else
+ try_cpu=generic
+ fi
;;
esac
-# Set any OS dependent compiler flags.
+# Now look for the file(s) usually tied to a CPU model, and make
+# default choices for those if they haven't been explicitly set
+# already.
+cpu_include_dir="cpu/${try_cpu}"
+ATOMICITYH=$cpu_include_dir
+abi_baseline_pair=${try_cpu}-${host_os}
+
+# Set any OS-dependent bits.
+# Set the os_include_dir.
+# Set c_model, c_compatibility here.
+# If atomic ops and/or numeric limits are OS-specific rather than
+# CPU-specifc, set those here too.
# THIS TABLE IS SORTED. KEEP IT THAT WAY.
case "${target_os}" in
aix4.[3456789]* | aix[56789]*)
- os_include_dir="config/os/aix"
+ # We set os_include_dir to os/aix only on AIX 4.3 and newer, but
+ # os/aix/atomicity.h works on earlier versions of AIX 4.*, so we
+ # explicitly duplicate the directory for 4.[<3].
+ os_include_dir="os/aix"
+ ATOMICITYH="os/aix"
OPT_LDFLAGS="-Wl,-G"
;;
- bsd* | freebsd* )
- os_include_dir="config/os/bsd/freebsd"
+ aix4.*)
+ ATOMICITYH="os/aix"
+ ;;
+ aix*)
+ ATOMICITYH="cpu/generic"
+ ;;
+ bsd*)
+ # Plain BSD attempts to share FreeBSD files.
+ os_include_dir="os/bsd/freebsd"
;;
cygwin*)
- os_include_dir="config/os/newlib"
+ os_include_dir="os/newlib"
;;
- *djgpp*)
- os_include_dir="config/os/djgpp"
+ *djgpp*) # leading * picks up "msdosdjgpp"
+ os_include_dir="os/djgpp"
;;
- linux* | gnu*)
- os_include_dir="config/os/gnu-linux"
+ freebsd*)
+ os_include_dir="os/bsd/freebsd"
;;
- irix[1-6] | irix[1-5].* | irix6.[0-4])
- # This is known to work on at least IRIX 5.2 and 6.3.
- os_include_dir="config/os/irix/irix5.2"
- ;;
- irix6.5)
- os_include_dir="config/os/irix/irix6.5"
+ gnu* | linux*)
+ os_include_dir="os/gnu-linux"
+ ;;
+ hpux*)
+ os_include_dir="os/hpux"
+ ;;
+ irix[1-6] | irix[1-5].* | irix6.[0-4]*)
+ # This is known to work on at least IRIX 5.2 and 6.3.
+ os_include_dir="os/irix/irix5.2"
+ ATOMICITYH=$os_include_dir
+ ;;
+ irix6.5*)
+ os_include_dir="os/irix/irix6.5"
+ ATOMICITYH=$os_include_dir
;;
mingw32*)
- os_include_dir="config/os/mingw32"
+ os_include_dir="os/mingw32"
;;
netbsd*)
- os_include_dir="config/os/bsd/netbsd"
+ os_include_dir="os/bsd/netbsd"
;;
solaris2.5*)
- os_include_dir="config/os/solaris/solaris2.5"
+ os_include_dir="os/solaris/solaris2.5"
;;
solaris2.6*)
- os_include_dir="config/os/solaris/solaris2.6"
+ os_include_dir="os/solaris/solaris2.6"
;;
- solaris2.7* | solaris2.8*)
- os_include_dir="config/os/solaris/solaris2.7"
+ solaris2.[789]*)
+ os_include_dir="os/solaris/solaris2.7"
;;
- hpux*)
- os_include_dir="config/os/hpux"
+ windiss*)
+ os_include_dir="os/windiss"
;;
qnx6.[12]*)
- os_include_dir="config/os/qnx/qnx6.1"
+ os_include_dir="os/qnx/qnx6.1"
c_model=c
;;
*)
- os_include_dir="config/os/generic"
+ os_include_dir="os/generic"
;;
esac
-# Set any flags dependent on the full target triplet.
+# Set any OS-dependent and CPU-dependent bits.
# THIS TABLE IS SORTED. KEEP IT THAT WAY.
case "${target}" in
- *-*-aix[456789]*)
- # We set os_include_dir to config/os/aix only on AIX 4.3 and
- # newer, but config/os/aix/bits/atomicity.h works on earlier
- # versions of AIX 4.*, so we explicitly duplicate the directory
- # here, because os_include_dir.
- ATOMICITYH=config/os/aix
- ;;
- *-*-aix*)
- ATOMICITYH=config/cpu/generic
- ;;
- *-*-irix*)
- ATOMICITYH=$os_include_dir
- ;;
- mcore-*-pe*)
- # The EPOC C++ environment does not support exceptions.
- if test -z "$enable_cxx_flags"; then
- enable_cxx_flags="-frtti -fno-exceptions"
- fi
- ATOMICITYH=$cpu_include_dir
- ;;
- *)
- ATOMICITYH=$cpu_include_dir
- ;;
-esac
-
-# Set CPULIMITSH to the directory where the configuration-dependent
-# cpu_limits.h can be found.
-# THIS TABLE IS SORTED. KEEP IT THAT WAY.
-case "${target}" in
- *-*-hpux*)
- CPULIMITSH=config/os/hpux
- ;;
- alpha*-*-*osf5*)
- CPULIMITSH=config/os/osf/osf5.0
- ;;
- alpha*-*-*)
- CPULIMITSH=config/cpu/alpha
- ;;
- cris-*-*)
- CPULIMITSH=config/cpu/cris
- ;;
- ia64-*-*)
- CPULIMITSH=config/cpu/ia64
- ;;
- i?86-*-*)
- CPULIMITSH=config/cpu/i386
- ;;
- m68k-*-* | m680[246]0-*-*)
- CPULIMITSH=config/cpu/m68k
- ;;
- mmix-*-*)
- CPULIMITSH=config/cpu/mmix
- ;;
- powerpc-*-* | rs6000-*-*)
- CPULIMITSH=config/cpu/powerpc
- ;;
- s390-*-* | s390x-*-*)
- CPULIMITSH=config/cpu/s390
- ;;
- x86_64-*-*)
- CPULIMITSH=config/cpu/x86-64
- ;;
- *)
- CPULIMITSH=config/cpu/generic
- ;;
+ mips*-*-linux*)
+ ATOMICITYH="cpu/mips"
+ ;;
+ x86_64-*-linux*)
+ abi_baseline_pair="x86_64-linux-gnu"
+ ;;
+ alpha*-*-freebsd5*)
+ abi_baseline_pair="alpha-freebsd5"
+ ;;
+ i*86-*-freebsd4*)
+ abi_baseline_pair="i386-freebsd4"
+ ;;
+ i*86-*-freebsd5*)
+ abi_baseline_pair="i386-freebsd5"
+ ;;
+ sparc*-*-freebsd5*)
+ abi_baseline_pair="sparc-freebsd5"
+ ;;
esac
diff --git a/contrib/libstdc++/include/Makefile.am b/contrib/libstdc++/include/Makefile.am
index 5c87bb3..906468d 100644
--- a/contrib/libstdc++/include/Makefile.am
+++ b/contrib/libstdc++/include/Makefile.am
@@ -1,6 +1,6 @@
## Makefile for the include subdirectory of the GNU C++ Standard library.
##
-## Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+## Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
##
## This file is part of the libstdc++ version 3 distribution.
## Process this file with automake to produce Makefile.in.
@@ -31,6 +31,75 @@ CXX = @glibcpp_CXX@
glibcpp_srcdir=@glibcpp_srcdir@
glibcpp_builddir=@glibcpp_builddir@
+GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
+LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
+INCLUDES = -nostdinc++ $(GLIBCPP_INCLUDES) $(LIBSUPCXX_INCLUDES)
+
+# Standard C++ includes.
+std_srcdir = ${glibcpp_srcdir}/include/std
+std_builddir = .
+std_headers = \
+ ${std_srcdir}/std_algorithm.h \
+ ${std_srcdir}/std_bitset.h \
+ ${std_srcdir}/std_complex.h \
+ ${std_srcdir}/std_deque.h \
+ ${std_srcdir}/std_fstream.h \
+ ${std_srcdir}/std_functional.h \
+ ${std_srcdir}/std_iomanip.h \
+ ${std_srcdir}/std_ios.h \
+ ${std_srcdir}/std_iosfwd.h \
+ ${std_srcdir}/std_iostream.h \
+ ${std_srcdir}/std_istream.h \
+ ${std_srcdir}/std_iterator.h \
+ ${std_srcdir}/std_limits.h \
+ ${std_srcdir}/std_list.h \
+ ${std_srcdir}/std_locale.h \
+ ${std_srcdir}/std_map.h \
+ ${std_srcdir}/std_memory.h \
+ ${std_srcdir}/std_numeric.h \
+ ${std_srcdir}/std_ostream.h \
+ ${std_srcdir}/std_queue.h \
+ ${std_srcdir}/std_set.h \
+ ${std_srcdir}/std_sstream.h \
+ ${std_srcdir}/std_stack.h \
+ ${std_srcdir}/std_stdexcept.h \
+ ${std_srcdir}/std_streambuf.h \
+ ${std_srcdir}/std_string.h \
+ ${std_srcdir}/std_utility.h \
+ ${std_srcdir}/std_valarray.h \
+ ${std_srcdir}/std_vector.h
+# Renamed at build time.
+std_headers_rename = \
+ algorithm \
+ bitset \
+ complex \
+ deque \
+ fstream \
+ functional \
+ iomanip \
+ ios \
+ iosfwd \
+ iostream \
+ istream \
+ iterator \
+ limits \
+ list \
+ locale \
+ map \
+ memory \
+ numeric \
+ ostream \
+ queue \
+ set \
+ sstream \
+ stack \
+ stdexcept \
+ streambuf \
+ string \
+ utility \
+ valarray \
+ vector
+
bits_srcdir = ${glibcpp_srcdir}/include/bits
bits_builddir = ./bits
bits_headers = \
@@ -43,15 +112,17 @@ bits_headers = \
${bits_srcdir}/codecvt.h \
${bits_srcdir}/concept_check.h \
${bits_srcdir}/cpp_type_traits.h \
+ ${bits_srcdir}/deque.tcc \
${bits_srcdir}/fpos.h \
${bits_srcdir}/fstream.tcc \
${bits_srcdir}/functexcept.h \
- ${bits_srcdir}/generic_shadow.h \
${bits_srcdir}/gslice.h \
${bits_srcdir}/gslice_array.h \
${bits_srcdir}/indirect_array.h \
${bits_srcdir}/ios_base.h \
${bits_srcdir}/istream.tcc \
+ ${bits_srcdir}/list.tcc \
+ ${bits_srcdir}/locale_classes.h \
${bits_srcdir}/locale_facets.h \
${bits_srcdir}/locale_facets.tcc \
${bits_srcdir}/localefwd.h \
@@ -60,7 +131,6 @@ bits_headers = \
${bits_srcdir}/pthread_allocimpl.h \
${bits_srcdir}/stream_iterator.h \
${bits_srcdir}/streambuf_iterator.h \
- ${bits_srcdir}/slice.h \
${bits_srcdir}/slice_array.h \
${bits_srcdir}/sstream.tcc \
${bits_srcdir}/stl_algo.h \
@@ -96,7 +166,8 @@ bits_headers = \
${bits_srcdir}/type_traits.h \
${bits_srcdir}/valarray_array.h \
${bits_srcdir}/valarray_array.tcc \
- ${bits_srcdir}/valarray_meta.h
+ ${bits_srcdir}/valarray_meta.h \
+ ${bits_srcdir}/vector.tcc
backward_srcdir = ${glibcpp_srcdir}/include/backward
backward_builddir = ./backward
@@ -135,7 +206,6 @@ backward_headers = \
${backward_srcdir}/tree.h \
${backward_srcdir}/vector.h \
${backward_srcdir}/fstream.h \
- ${backward_srcdir}/strstream.h \
${backward_srcdir}/strstream \
${backward_srcdir}/backward_warning.h
@@ -239,71 +309,6 @@ else
c_compatibility_headers_extra =
endif
-
-std_srcdir = ${glibcpp_srcdir}/include/std
-std_builddir = .
-std_headers = \
- ${std_srcdir}/std_algorithm.h \
- ${std_srcdir}/std_bitset.h \
- ${std_srcdir}/std_complex.h \
- ${std_srcdir}/std_deque.h \
- ${std_srcdir}/std_fstream.h \
- ${std_srcdir}/std_functional.h \
- ${std_srcdir}/std_iomanip.h \
- ${std_srcdir}/std_ios.h \
- ${std_srcdir}/std_iosfwd.h \
- ${std_srcdir}/std_iostream.h \
- ${std_srcdir}/std_istream.h \
- ${std_srcdir}/std_iterator.h \
- ${std_srcdir}/std_limits.h \
- ${std_srcdir}/std_list.h \
- ${std_srcdir}/std_locale.h \
- ${std_srcdir}/std_map.h \
- ${std_srcdir}/std_memory.h \
- ${std_srcdir}/std_numeric.h \
- ${std_srcdir}/std_ostream.h \
- ${std_srcdir}/std_queue.h \
- ${std_srcdir}/std_set.h \
- ${std_srcdir}/std_sstream.h \
- ${std_srcdir}/std_stack.h \
- ${std_srcdir}/std_stdexcept.h \
- ${std_srcdir}/std_streambuf.h \
- ${std_srcdir}/std_string.h \
- ${std_srcdir}/std_utility.h \
- ${std_srcdir}/std_valarray.h \
- ${std_srcdir}/std_vector.h
-# Renamed at build time.
-std_headers_rename = \
- algorithm \
- bitset \
- complex \
- deque \
- fstream \
- functional \
- iomanip \
- ios \
- iosfwd \
- iostream \
- istream \
- iterator \
- limits \
- list \
- locale \
- map \
- memory \
- numeric \
- ostream \
- queue \
- set \
- sstream \
- stack \
- stdexcept \
- streambuf \
- string \
- utility \
- valarray \
- vector
-
target_srcdir = ${glibcpp_srcdir}/@OS_INC_SRCDIR@
target_builddir = ./${target_alias}/bits
target_headers = \
@@ -311,8 +316,12 @@ target_headers = \
${target_srcdir}/ctype_inline.h \
${target_srcdir}/ctype_noninline.h \
${target_srcdir}/os_defines.h \
- ${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h \
- ${glibcpp_srcdir}/@CPU_LIMITS_INC_SRCDIR@/cpu_limits.h
+ ${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h
+
+# Non-installed target_header files.
+target_headers_noinst = \
+ ${glibcpp_srcdir}/@CLOCALE_INTERNAL_H@
+
# These target_headers_extra files are all built with ad hoc naming rules.
target_headers_extra = \
${target_builddir}/basic_file.h \
@@ -333,9 +342,7 @@ thread_target_headers = \
# CLEANFILES and all-local are kept up-to-date.
allstamps = \
stamp-std stamp-bits stamp-c_base stamp-c_compatibility \
- stamp-backward stamp-ext \
- ${target_builddir}/stamp-target
-
+ stamp-backward stamp-ext stamp-target
# Here are the rules for building the headers
all-local: ${target_builddir}/c++config.h ${thread_target_headers} ${allstamps}
@@ -352,6 +359,12 @@ stamp-std: ${std_headers}
done) ;\
echo `date` > stamp-std
+stamp-std-precompile: stamp-std
+ for h in ${std_headers_rename}; do \
+ $(CXX) -Winvalid-pch -x c++-header $(INCLUDES) $${h}; \
+ done; \
+ echo `date` > stamp-std-precompile
+
stamp-bits: ${bits_headers}
@if [ ! -d "${bits_builddir}" ]; then \
mkdir -p ${bits_builddir} ;\
@@ -402,17 +415,19 @@ stamp-${target_alias}:
fi
# Target includes static.
-${target_builddir}/stamp-target: ${target_headers} stamp-${target_alias}
- @cd ${target_builddir} ;\
- if [ ! -f stamp-target ]; then \
+# XXX Missing dependency info for {target_headers_extra}
+stamp-target: ${target_headers} ${target_headers_noinst} stamp-${target_alias}
+ @if [ ! -f stamp-target ]; then \
+ (cd ${target_builddir} ;\
@LN_S@ ${target_headers} . || true ;\
@LN_S@ ${glibcpp_srcdir}/@BASIC_FILE_H@ basic_file.h || true ;\
@LN_S@ ${glibcpp_srcdir}/@CSTDIO_H@ c++io.h || true ;\
@LN_S@ ${glibcpp_srcdir}/@CLOCALE_H@ c++locale.h || true ;\
+ @LN_S@ ${glibcpp_srcdir}/@CLOCALE_INTERNAL_H@ . || true ;\
@LN_S@ ${glibcpp_srcdir}/@CMESSAGES_H@ messages_members.h || true ;\
@LN_S@ ${glibcpp_srcdir}/@CTIME_H@ time_members.h || true ;\
- @LN_S@ ${glibcpp_srcdir}/@CCODECVT_H@ codecvt_specializations.h || true ;\
- echo `date` > stamp-target; \
+ @LN_S@ ${glibcpp_srcdir}/@CCODECVT_H@ codecvt_specializations.h || true);\
+ echo `date` > stamp-target ; \
fi
# Target includes dynamic.
@@ -495,7 +510,7 @@ install-data-local:
$(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${target_builddir}; done
# By adding these files here, automake will remove them for 'make clean'
-#CLEANFILES = ${allstamps}
+CLEANFILES = *.pch stamp-std-precompile
# Stop implicit '.o' make rules from ever stomping on extensionless
# headers, in the improbable case where some foolish, crack-addled
diff --git a/contrib/libstdc++/include/Makefile.in b/contrib/libstdc++/include/Makefile.in
index 37a06d4..cc7e3a5 100644
--- a/contrib/libstdc++/include/Makefile.in
+++ b/contrib/libstdc++/include/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
@@ -67,15 +67,24 @@ AR = @AR@
AS = @AS@
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
AWK = @AWK@
+BASIC_FILE_CC = @BASIC_FILE_CC@
BASIC_FILE_H = @BASIC_FILE_H@
CC = @CC@
CCODECVT_C = @CCODECVT_C@
+CCODECVT_CC = @CCODECVT_CC@
CCODECVT_H = @CCODECVT_H@
+CCOLLATE_CC = @CCOLLATE_CC@
+CCTYPE_CC = @CCTYPE_CC@
+CLOCALE_CC = @CLOCALE_CC@
CLOCALE_H = @CLOCALE_H@
+CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
+CMESSAGES_CC = @CMESSAGES_CC@
CMESSAGES_H = @CMESSAGES_H@
+CMONEY_CC = @CMONEY_CC@
+CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
-CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@
CSTDIO_H = @CSTDIO_H@
+CTIME_CC = @CTIME_CC@
CTIME_H = @CTIME_H@
CXXCPP = @CXXCPP@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
@@ -85,12 +94,10 @@ EXEEXT = @EXEEXT@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
GCJ = @GCJ@
GCJFLAGS = @GCJFLAGS@
-GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@
LIBIO_INCLUDES = @LIBIO_INCLUDES@
LIBMATHOBJS = @LIBMATHOBJS@
LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
-LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
LIBSUPCXX_PICFLAGS = @LIBSUPCXX_PICFLAGS@
LIBTOOL = @LIBTOOL@
LIBUNWIND_FLAG = @LIBUNWIND_FLAG@
@@ -107,6 +114,7 @@ RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
STRIP = @STRIP@
+SYMVER_MAP = @SYMVER_MAP@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
@@ -139,6 +147,77 @@ CXX = @glibcpp_CXX@
glibcpp_srcdir = @glibcpp_srcdir@
glibcpp_builddir = @glibcpp_builddir@
+GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
+LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
+INCLUDES = -nostdinc++ $(GLIBCPP_INCLUDES) $(LIBSUPCXX_INCLUDES)
+
+# Standard C++ includes.
+std_srcdir = ${glibcpp_srcdir}/include/std
+std_builddir = .
+std_headers = \
+ ${std_srcdir}/std_algorithm.h \
+ ${std_srcdir}/std_bitset.h \
+ ${std_srcdir}/std_complex.h \
+ ${std_srcdir}/std_deque.h \
+ ${std_srcdir}/std_fstream.h \
+ ${std_srcdir}/std_functional.h \
+ ${std_srcdir}/std_iomanip.h \
+ ${std_srcdir}/std_ios.h \
+ ${std_srcdir}/std_iosfwd.h \
+ ${std_srcdir}/std_iostream.h \
+ ${std_srcdir}/std_istream.h \
+ ${std_srcdir}/std_iterator.h \
+ ${std_srcdir}/std_limits.h \
+ ${std_srcdir}/std_list.h \
+ ${std_srcdir}/std_locale.h \
+ ${std_srcdir}/std_map.h \
+ ${std_srcdir}/std_memory.h \
+ ${std_srcdir}/std_numeric.h \
+ ${std_srcdir}/std_ostream.h \
+ ${std_srcdir}/std_queue.h \
+ ${std_srcdir}/std_set.h \
+ ${std_srcdir}/std_sstream.h \
+ ${std_srcdir}/std_stack.h \
+ ${std_srcdir}/std_stdexcept.h \
+ ${std_srcdir}/std_streambuf.h \
+ ${std_srcdir}/std_string.h \
+ ${std_srcdir}/std_utility.h \
+ ${std_srcdir}/std_valarray.h \
+ ${std_srcdir}/std_vector.h
+
+# Renamed at build time.
+std_headers_rename = \
+ algorithm \
+ bitset \
+ complex \
+ deque \
+ fstream \
+ functional \
+ iomanip \
+ ios \
+ iosfwd \
+ iostream \
+ istream \
+ iterator \
+ limits \
+ list \
+ locale \
+ map \
+ memory \
+ numeric \
+ ostream \
+ queue \
+ set \
+ sstream \
+ stack \
+ stdexcept \
+ streambuf \
+ string \
+ utility \
+ valarray \
+ vector
+
+
bits_srcdir = ${glibcpp_srcdir}/include/bits
bits_builddir = ./bits
bits_headers = \
@@ -151,15 +230,17 @@ bits_headers = \
${bits_srcdir}/codecvt.h \
${bits_srcdir}/concept_check.h \
${bits_srcdir}/cpp_type_traits.h \
+ ${bits_srcdir}/deque.tcc \
${bits_srcdir}/fpos.h \
${bits_srcdir}/fstream.tcc \
${bits_srcdir}/functexcept.h \
- ${bits_srcdir}/generic_shadow.h \
${bits_srcdir}/gslice.h \
${bits_srcdir}/gslice_array.h \
${bits_srcdir}/indirect_array.h \
${bits_srcdir}/ios_base.h \
${bits_srcdir}/istream.tcc \
+ ${bits_srcdir}/list.tcc \
+ ${bits_srcdir}/locale_classes.h \
${bits_srcdir}/locale_facets.h \
${bits_srcdir}/locale_facets.tcc \
${bits_srcdir}/localefwd.h \
@@ -168,7 +249,6 @@ bits_headers = \
${bits_srcdir}/pthread_allocimpl.h \
${bits_srcdir}/stream_iterator.h \
${bits_srcdir}/streambuf_iterator.h \
- ${bits_srcdir}/slice.h \
${bits_srcdir}/slice_array.h \
${bits_srcdir}/sstream.tcc \
${bits_srcdir}/stl_algo.h \
@@ -204,7 +284,8 @@ bits_headers = \
${bits_srcdir}/type_traits.h \
${bits_srcdir}/valarray_array.h \
${bits_srcdir}/valarray_array.tcc \
- ${bits_srcdir}/valarray_meta.h
+ ${bits_srcdir}/valarray_meta.h \
+ ${bits_srcdir}/vector.tcc
backward_srcdir = ${glibcpp_srcdir}/include/backward
@@ -244,7 +325,6 @@ backward_headers = \
${backward_srcdir}/tree.h \
${backward_srcdir}/vector.h \
${backward_srcdir}/fstream.h \
- ${backward_srcdir}/strstream.h \
${backward_srcdir}/strstream \
${backward_srcdir}/backward_warning.h
@@ -342,72 +422,6 @@ c_compatibility_headers = \
@GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE@c_compatibility_headers_extra = @GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE@${c_compatibility_headers}
@GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE@c_compatibility_headers_extra =
-std_srcdir = ${glibcpp_srcdir}/include/std
-std_builddir = .
-std_headers = \
- ${std_srcdir}/std_algorithm.h \
- ${std_srcdir}/std_bitset.h \
- ${std_srcdir}/std_complex.h \
- ${std_srcdir}/std_deque.h \
- ${std_srcdir}/std_fstream.h \
- ${std_srcdir}/std_functional.h \
- ${std_srcdir}/std_iomanip.h \
- ${std_srcdir}/std_ios.h \
- ${std_srcdir}/std_iosfwd.h \
- ${std_srcdir}/std_iostream.h \
- ${std_srcdir}/std_istream.h \
- ${std_srcdir}/std_iterator.h \
- ${std_srcdir}/std_limits.h \
- ${std_srcdir}/std_list.h \
- ${std_srcdir}/std_locale.h \
- ${std_srcdir}/std_map.h \
- ${std_srcdir}/std_memory.h \
- ${std_srcdir}/std_numeric.h \
- ${std_srcdir}/std_ostream.h \
- ${std_srcdir}/std_queue.h \
- ${std_srcdir}/std_set.h \
- ${std_srcdir}/std_sstream.h \
- ${std_srcdir}/std_stack.h \
- ${std_srcdir}/std_stdexcept.h \
- ${std_srcdir}/std_streambuf.h \
- ${std_srcdir}/std_string.h \
- ${std_srcdir}/std_utility.h \
- ${std_srcdir}/std_valarray.h \
- ${std_srcdir}/std_vector.h
-
-# Renamed at build time.
-std_headers_rename = \
- algorithm \
- bitset \
- complex \
- deque \
- fstream \
- functional \
- iomanip \
- ios \
- iosfwd \
- iostream \
- istream \
- iterator \
- limits \
- list \
- locale \
- map \
- memory \
- numeric \
- ostream \
- queue \
- set \
- sstream \
- stack \
- stdexcept \
- streambuf \
- string \
- utility \
- valarray \
- vector
-
-
target_srcdir = ${glibcpp_srcdir}/@OS_INC_SRCDIR@
target_builddir = ./${target_alias}/bits
target_headers = \
@@ -415,8 +429,13 @@ target_headers = \
${target_srcdir}/ctype_inline.h \
${target_srcdir}/ctype_noninline.h \
${target_srcdir}/os_defines.h \
- ${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h \
- ${glibcpp_srcdir}/@CPU_LIMITS_INC_SRCDIR@/cpu_limits.h
+ ${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h
+
+
+# Non-installed target_header files.
+target_headers_noinst = \
+ ${glibcpp_srcdir}/@CLOCALE_INTERNAL_H@
+
# These target_headers_extra files are all built with ad hoc naming rules.
target_headers_extra = \
@@ -440,8 +459,7 @@ thread_target_headers = \
# CLEANFILES and all-local are kept up-to-date.
allstamps = \
stamp-std stamp-bits stamp-c_base stamp-c_compatibility \
- stamp-backward stamp-ext \
- ${target_builddir}/stamp-target
+ stamp-backward stamp-ext stamp-target
# Target includes for threads
@@ -457,6 +475,9 @@ uppercase = [ABCDEFGHIJKLMNOPQRSTUVWXYZ_]
# target_headers_extra are taken out of the build tree staging area;
# the rest are taken from the original source tree.
gxx_include_dir = @gxx_include_dir@
+
+# By adding these files here, automake will remove them for 'make clean'
+CLEANFILES = *.pch stamp-std-precompile
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
DIST_COMMON = Makefile.am Makefile.in
@@ -525,6 +546,7 @@ installdirs:
mostlyclean-generic:
clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
@@ -574,6 +596,12 @@ stamp-std: ${std_headers}
done) ;\
echo `date` > stamp-std
+stamp-std-precompile: stamp-std
+ for h in ${std_headers_rename}; do \
+ $(CXX) -Winvalid-pch -x c++-header $(INCLUDES) $${h}; \
+ done; \
+ echo `date` > stamp-std-precompile
+
stamp-bits: ${bits_headers}
@if [ ! -d "${bits_builddir}" ]; then \
mkdir -p ${bits_builddir} ;\
@@ -624,17 +652,19 @@ stamp-${target_alias}:
fi
# Target includes static.
-${target_builddir}/stamp-target: ${target_headers} stamp-${target_alias}
- @cd ${target_builddir} ;\
- if [ ! -f stamp-target ]; then \
+# XXX Missing dependency info for {target_headers_extra}
+stamp-target: ${target_headers} ${target_headers_noinst} stamp-${target_alias}
+ @if [ ! -f stamp-target ]; then \
+ (cd ${target_builddir} ;\
@LN_S@ ${target_headers} . || true ;\
@LN_S@ ${glibcpp_srcdir}/@BASIC_FILE_H@ basic_file.h || true ;\
@LN_S@ ${glibcpp_srcdir}/@CSTDIO_H@ c++io.h || true ;\
@LN_S@ ${glibcpp_srcdir}/@CLOCALE_H@ c++locale.h || true ;\
+ @LN_S@ ${glibcpp_srcdir}/@CLOCALE_INTERNAL_H@ . || true ;\
@LN_S@ ${glibcpp_srcdir}/@CMESSAGES_H@ messages_members.h || true ;\
@LN_S@ ${glibcpp_srcdir}/@CTIME_H@ time_members.h || true ;\
- @LN_S@ ${glibcpp_srcdir}/@CCODECVT_H@ codecvt_specializations.h || true ;\
- echo `date` > stamp-target; \
+ @LN_S@ ${glibcpp_srcdir}/@CCODECVT_H@ codecvt_specializations.h || true);\
+ echo `date` > stamp-target ; \
fi
# Target includes dynamic.
@@ -702,9 +732,6 @@ install-data-local:
${thread_target_headers}; do \
$(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${target_builddir}; done
-# By adding these files here, automake will remove them for 'make clean'
-#CLEANFILES = ${allstamps}
-
# Stop implicit '.o' make rules from ever stomping on extensionless
# headers, in the improbable case where some foolish, crack-addled
# developer tries to create them via make in the include build
diff --git a/contrib/libstdc++/include/bits/basic_ios.h b/contrib/libstdc++/include/bits/basic_ios.h
index 13ad0f8..fe5e36a 100644
--- a/contrib/libstdc++/include/bits/basic_ios.h
+++ b/contrib/libstdc++/include/bits/basic_ios.h
@@ -1,6 +1,7 @@
// Iostreams base classes -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -38,120 +39,291 @@
#pragma GCC system_header
#include <bits/streambuf_iterator.h>
+#include <bits/localefwd.h>
+#include <bits/locale_classes.h>
#include <bits/locale_facets.h>
namespace std
{
// 27.4.5 Template class basic_ios
+ /**
+ * @brief Virtual base class for all stream classes.
+ *
+ * Most of the member functions called dispatched on stream objects
+ * (e.g., @c std::cout.foo(bar);) are consolidated in this class.
+ */
template<typename _CharT, typename _Traits>
class basic_ios : public ios_base
{
public:
- // Types:
- typedef _CharT char_type;
- typedef typename _Traits::int_type int_type;
- typedef typename _Traits::pos_type pos_type;
- typedef typename _Traits::off_type off_type;
- typedef _Traits traits_type;
-
- // Non-standard Types:
- typedef ctype<_CharT> __ctype_type;
- typedef ostreambuf_iterator<_CharT, _Traits> __ostreambuf_iter;
- typedef num_put<_CharT, __ostreambuf_iter> __numput_type;
- typedef istreambuf_iterator<_CharT, _Traits> __istreambuf_iter;
- typedef num_get<_CharT, __istreambuf_iter> __numget_type;
+ //@{
+ /**
+ * These are standard types. They permit a standardized way of
+ * referring to names of (or names dependant on) the template
+ * parameters, which are specific to the implementation.
+ */
+ typedef _CharT char_type;
+ typedef typename _Traits::int_type int_type;
+ typedef typename _Traits::pos_type pos_type;
+ typedef typename _Traits::off_type off_type;
+ typedef _Traits traits_type;
+ //@}
+
+ //@{
+ /**
+ * @if maint
+ * These are non-standard types.
+ * @endif
+ */
+ typedef ctype<_CharT> __ctype_type;
+ typedef ostreambuf_iterator<_CharT, _Traits> __ostreambuf_iter;
+ typedef num_put<_CharT, __ostreambuf_iter> __numput_type;
+ typedef istreambuf_iterator<_CharT, _Traits> __istreambuf_iter;
+ typedef num_get<_CharT, __istreambuf_iter> __numget_type;
+ //@}
+
+ friend void ios_base::Init::_S_ios_create(bool);
// Data members:
protected:
- basic_ostream<_CharT, _Traits>* _M_tie;
- mutable char_type _M_fill;
- mutable bool _M_fill_init;
- basic_streambuf<_CharT, _Traits>* _M_streambuf;
+ basic_ostream<_CharT, _Traits>* _M_tie;
+ mutable char_type _M_fill;
+ mutable bool _M_fill_init;
+ basic_streambuf<_CharT, _Traits>* _M_streambuf;
// Cached use_facet<ctype>, which is based on the current locale info.
- const __ctype_type* _M_fctype;
+ const __ctype_type* _M_fctype;
// From ostream.
- const __numput_type* _M_fnumput;
+ const __numput_type* _M_fnumput;
// From istream.
- const __numget_type* _M_fnumget;
+ const __numget_type* _M_fnumget;
public:
+ //@{
+ /**
+ * @brief The quick-and-easy status check.
+ *
+ * This allows you to write constructs such as
+ * "if (!a_stream) ..." and "while (a_stream) ..."
+ */
operator void*() const
{ return this->fail() ? 0 : const_cast<basic_ios*>(this); }
bool
operator!() const
{ return this->fail(); }
-
+ //@}
+
+ /**
+ * @brief Returns the error state of the stream buffer.
+ * @return A bit pattern (well, isn't everything?)
+ *
+ * See std::ios_base::iostate for the possible bit values. Most
+ * users will call one of the interpreting wrappers, e.g., good().
+ */
iostate
rdstate() const
{ return _M_streambuf_state; }
+ /**
+ * @brief [Re]sets the error state.
+ * @param state The new state flag(s) to set.
+ *
+ * See std::ios_base::iostate for the possible bit values. Most
+ * users will not need to pass an argument.
+ */
void
clear(iostate __state = goodbit);
+ /**
+ * @brief Sets additional flags in the error state.
+ * @param state The additional state flag(s) to set.
+ *
+ * See std::ios_base::iostate for the possible bit values.
+ */
void
setstate(iostate __state)
{ this->clear(this->rdstate() | __state); }
+ /**
+ * @brief Fast error checking.
+ * @return True if no error flags are set.
+ *
+ * A wrapper around rdstate.
+ */
bool
good() const
{ return this->rdstate() == 0; }
+ /**
+ * @brief Fast error checking.
+ * @return True if the eofbit is set.
+ *
+ * Note that other iostate flags may also be set.
+ */
bool
eof() const
{ return (this->rdstate() & eofbit) != 0; }
+ /**
+ * @brief Fast error checking.
+ * @return True if either the badbit or the failbit is set.
+ *
+ * Checking the badbit in fail() is historical practice.
+ * Note that other iostate flags may also be set.
+ */
bool
fail() const
{ return (this->rdstate() & (badbit | failbit)) != 0; }
+ /**
+ * @brief Fast error checking.
+ * @return True if the badbit is set.
+ *
+ * Note that other iostate flags may also be set.
+ */
bool
bad() const
{ return (this->rdstate() & badbit) != 0; }
+ /**
+ * @brief Throwing exceptions on errors.
+ * @return The current exceptions mask.
+ *
+ * This changes nothing in the stream. See the one-argument version
+ * of exceptions(iostate) for the meaning of the return value.
+ */
iostate
exceptions() const
{ return _M_exception; }
+ /**
+ * @brief Throwing exceptions on errors.
+ * @param except The new exceptions mask.
+ *
+ * By default, error flags are set silently. You can set an
+ * exceptions mask for each stream; if a bit in the mask becomes set
+ * in the error flags, then an exception of type
+ * std::ios_base::failure is thrown.
+ *
+ * If the error flage is already set when the exceptions mask is
+ * added, the exception is immediately thrown. Try running the
+ * following under GCC 3.1 or later:
+ * @code
+ * #include <iostream>
+ * #include <fstream>
+ * #include <exception>
+ *
+ * int main()
+ * {
+ * std::set_terminate (__gnu_cxx::__verbose_terminate_handler);
+ *
+ * std::ifstream f ("/etc/motd");
+ *
+ * std::cerr << "Setting badbit\n";
+ * f.setstate (std::ios_base::badbit);
+ *
+ * std::cerr << "Setting exception mask\n";
+ * f.exceptions (std::ios_base::badbit);
+ * }
+ * @endcode
+ */
void
exceptions(iostate __except)
{
- _M_exception = __except;
- this->clear(_M_streambuf_state);
+ _M_exception = __except;
+ this->clear(_M_streambuf_state);
}
// Constructor/destructor:
+ /**
+ * @brief Constructor performs initialization.
+ *
+ * The parameter is passed by derived streams.
+ */
explicit
basic_ios(basic_streambuf<_CharT, _Traits>* __sb) : ios_base()
{ this->init(__sb); }
+ /**
+ * @brief Empty.
+ *
+ * The destructor does nothing. More specifically, it does not
+ * destroy the streambuf held by rdbuf().
+ */
virtual
~basic_ios() { }
// Members:
+ /**
+ * @brief Fetches the current @e tied stream.
+ * @return A pointer to the tied stream, or NULL if the stream is
+ * not tied.
+ *
+ * A stream may be @e tied (or synchronized) to a second output
+ * stream. When this stream performs any I/O, the tied stream is
+ * first flushed. For example, @c std::cin is tied to @c std::cout.
+ */
basic_ostream<_CharT, _Traits>*
tie() const
{ return _M_tie; }
+ /**
+ * @brief Ties this stream to an output stream.
+ * @param tiestr The output stream.
+ * @return The previously tied output stream, or NULL if the stream
+ * was not tied.
+ *
+ * This sets up a new tie; see tie() for more.
+ */
basic_ostream<_CharT, _Traits>*
tie(basic_ostream<_CharT, _Traits>* __tiestr)
{
- basic_ostream<_CharT, _Traits>* __old = _M_tie;
- _M_tie = __tiestr;
- return __old;
+ basic_ostream<_CharT, _Traits>* __old = _M_tie;
+ _M_tie = __tiestr;
+ return __old;
}
+ /**
+ * @brief Accessing the underlying buffer.
+ * @return The current stream buffer.
+ *
+ * This does not change the state of the stream.
+ */
basic_streambuf<_CharT, _Traits>*
rdbuf() const
{ return _M_streambuf; }
+ /**
+ * @brief Changing the underlying buffer.
+ * @param sb The new stream buffer.
+ * @return The previous stream buffer.
+ *
+ * Associates a new buffer with the current stream, and clears the
+ * error state.
+ *
+ * Due to historical accidents which the LWG refuses to correct, the
+ * I/O library suffers from a design error: this function is hidden
+ * in derived classes by overrides of the zero-argument @c rdbuf(),
+ * which is non-virtual for hysterical raisins. As a result, you
+ * must use explicit qualifications to access this function via any
+ * derived class.
+ */
basic_streambuf<_CharT, _Traits>*
rdbuf(basic_streambuf<_CharT, _Traits>* __sb);
+ /**
+ * @doctodo
+ */
basic_ios&
copyfmt(const basic_ios& __rhs);
+ /**
+ * @brief Retreives the "empty" character.
+ * @return The current fill character.
+ *
+ * It defaults to a space (' ') in the current locale.
+ */
char_type
fill() const
{
@@ -163,6 +335,15 @@ namespace std
return _M_fill;
}
+ /**
+ * @brief Sets a new "empty" character.
+ * @param ch The new character.
+ * @return The previous fill character.
+ *
+ * The fill character is used to fill out space when P+ characters
+ * have been requested (e.g., via setw), Q characters are actually
+ * used, and Q<P. It defaults to a space (' ') in the current locale.
+ */
char_type
fill(char_type __ch)
{
@@ -172,20 +353,77 @@ namespace std
}
// Locales:
+ /**
+ * @brief Moves to a new locale.
+ * @param loc The new locale.
+ * @return The previous locale.
+ *
+ * Calls @c ios_base::imbue(loc), and if a stream buffer is associated
+ * with this stream, calls that buffer's @c pubimbue(loc).
+ *
+ * Additional l10n notes are at
+ * http://gcc.gnu.org/onlinedocs/libstdc++/22_locale/howto.html
+ */
locale
imbue(const locale& __loc);
+ /**
+ * @brief Squeezes characters.
+ * @param c The character to narrow.
+ * @param dfault The character to narrow.
+ * @return The narrowed character.
+ *
+ * Maps a character of @c char_type to a character of @c char,
+ * if possible.
+ *
+ * Returns the result of
+ * @code
+ * std::use_facet< ctype<char_type> >(getloc()).narrow(c,dfault)
+ * @endcode
+ *
+ * Additional l10n notes are at
+ * http://gcc.gnu.org/onlinedocs/libstdc++/22_locale/howto.html
+ */
char
narrow(char_type __c, char __dfault) const;
+ /**
+ * @brief Widens characters.
+ * @param c The character to widen.
+ * @return The widened character.
+ *
+ * Maps a character of @c char to a character of @c char_type.
+ *
+ * Returns the result of
+ * @code
+ * std::use_facet< ctype<char_type> >(getloc()).widen(c)
+ * @endcode
+ *
+ * Additional l10n notes are at
+ * http://gcc.gnu.org/onlinedocs/libstdc++/22_locale/howto.html
+ */
char_type
widen(char __c) const;
protected:
// 27.4.5.1 basic_ios constructors
+ /**
+ * @brief Empty.
+ *
+ * The default constructor does nothing and is not normally
+ * accessible to users.
+ */
basic_ios() : ios_base()
{ }
+ /**
+ * @brief All setup is performed here.
+ *
+ * This is called from the public constructor. It is not virtual and
+ * cannot be redefined. The second argument, __cache, is used
+ * to initialize the standard streams without allocating
+ * memory.
+ */
void
init(basic_streambuf<_CharT, _Traits>* __sb);
@@ -198,7 +436,18 @@ namespace std
}
void
+ _M_cache_locale(const locale& __loc);
+
+#if 1
+ // XXX GLIBCXX_ABI Deprecated, compatibility only.
+ void
_M_cache_facets(const locale& __loc);
+#endif
+
+ // Internal state setter that won't throw, only set the state bits.
+ // Used to guarantee we don't throw when setting badbit.
+ void
+ _M_setstate(iostate __state) { _M_streambuf_state |= __state; }
};
} // namespace std
diff --git a/contrib/libstdc++/include/bits/basic_ios.tcc b/contrib/libstdc++/include/bits/basic_ios.tcc
index 7ee8015..1c9cd3b 100644
--- a/contrib/libstdc++/include/bits/basic_ios.tcc
+++ b/contrib/libstdc++/include/bits/basic_ios.tcc
@@ -1,6 +1,6 @@
// basic_ios locale and locale-related member functions -*- C++ -*-
-// Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -95,10 +95,17 @@ namespace std
this->precision(__rhs.precision());
this->tie(__rhs.tie());
this->fill(__rhs.fill());
+ _M_ios_locale = __rhs.getloc();
+
+ // This removes the link to __rhs locale cache
+ _M_call_callbacks(copyfmt_event);
+
+ _M_cache_locale(_M_ios_locale);
+
+
// The next is required to be the last assignment.
this->exceptions(__rhs.exceptions());
- _M_call_callbacks(copyfmt_event);
return *this;
}
@@ -129,7 +136,7 @@ namespace std
{
locale __old(this->getloc());
ios_base::imbue(__loc);
- _M_cache_facets(__loc);
+ _M_cache_locale(__loc);
if (this->rdbuf() != 0)
this->rdbuf()->pubimbue(__loc);
return __old;
@@ -141,7 +148,7 @@ namespace std
{
// NB: This may be called more than once on the same object.
ios_base::_M_init();
- _M_cache_facets(_M_ios_locale);
+ _M_cache_locale(_M_ios_locale);
_M_tie = 0;
// NB: The 27.4.4.1 Postconditions Table specifies requirements
@@ -166,31 +173,47 @@ namespace std
template<typename _CharT, typename _Traits>
void
- basic_ios<_CharT, _Traits>::_M_cache_facets(const locale& __loc)
+ basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc)
{
- if (has_facet<__ctype_type>(__loc))
+ if (__builtin_expect(has_facet<__ctype_type>(__loc), true))
_M_fctype = &use_facet<__ctype_type>(__loc);
else
_M_fctype = 0;
- // Should be filled in by ostream and istream, respectively.
- if (has_facet<__numput_type>(__loc))
+ if (__builtin_expect(has_facet<__numput_type>(__loc), true))
_M_fnumput = &use_facet<__numput_type>(__loc);
else
_M_fnumput = 0;
- if (has_facet<__numget_type>(__loc))
- _M_fnumget = &use_facet<__numget_type>(__loc);
+ if (__builtin_expect(has_facet<__numget_type>(__loc), true))
+ _M_fnumget = &use_facet<__numget_type>(__loc);
else
_M_fnumget = 0;
}
+#if 1
+ // XXX GLIBCXX_ABI Deprecated, compatibility only.
+ template<typename _CharT, typename _Traits>
+ void
+ basic_ios<_CharT, _Traits>::_M_cache_facets(const locale& __loc)
+ {
+ if (__builtin_expect(has_facet<__ctype_type>(__loc), true))
+ _M_fctype = &use_facet<__ctype_type>(__loc);
+ if (__builtin_expect(has_facet<__numput_type>(__loc), true))
+ _M_fnumput = &use_facet<__numput_type>(__loc);
+ if (__builtin_expect(has_facet<__numget_type>(__loc), true))
+ _M_fnumget = &use_facet<__numget_type>(__loc);
+ }
+#endif
+
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
+#if _GLIBCPP_EXTERN_TEMPLATE
extern template class basic_ios<char>;
#ifdef _GLIBCPP_USE_WCHAR_T
extern template class basic_ios<wchar_t>;
#endif
+#endif
} // namespace std
#endif
diff --git a/contrib/libstdc++/include/bits/basic_string.h b/contrib/libstdc++/include/bits/basic_string.h
index a9c02ce..e92009d 100644
--- a/contrib/libstdc++/include/bits/basic_string.h
+++ b/contrib/libstdc++/include/bits/basic_string.h
@@ -38,7 +38,7 @@
*/
#ifndef _CPP_BITS_STRING_H
-#define _CPP_BITS_STRING_H 1
+#define _CPP_BITS_STRING_H 1
#pragma GCC system_header
@@ -46,44 +46,64 @@
namespace std
{
- // Documentation? What's that?
- // Nathan Myers <ncm@cantrip.org>.
- //
- // A string looks like this:
- //
- // [_Rep]
- // _M_length
- // [basic_string<char_type>] _M_capacity
- // _M_dataplus _M_state
- // _M_p ----------------> unnamed array of char_type
-
- // Where the _M_p points to the first character in the string, and
- // you cast it to a pointer-to-_Rep and subtract 1 to get a
- // pointer to the header.
-
- // This approach has the enormous advantage that a string object
- // requires only one allocation. All the ugliness is confined
- // within a single pair of inline functions, which each compile to
- // a single "add" instruction: _Rep::_M_data(), and
- // string::_M_rep(); and the allocation function which gets a
- // block of raw bytes and with room enough and constructs a _Rep
- // object at the front.
-
- // The reason you want _M_data pointing to the character array and
- // not the _Rep is so that the debugger can see the string
- // contents. (Probably we should add a non-inline member to get
- // the _Rep for the debugger to use, so users can check the actual
- // string length.)
-
- // Note that the _Rep object is a POD so that you can have a
- // static "empty string" _Rep object already "constructed" before
- // static constructors have run. The reference-count encoding is
- // chosen so that a 0 indicates one reference, so you never try to
- // destroy the empty-string _Rep object.
-
- // All but the last paragraph is considered pretty conventional
- // for a C++ string implementation.
-
+ /**
+ * @class basic_string basic_string.h <string>
+ * @brief Managing sequences of characters and character-like objects.
+ *
+ * @ingroup Containers
+ * @ingroup Sequences
+ *
+ * Meets the requirements of a <a href="tables.html#65">container</a>, a
+ * <a href="tables.html#66">reversible container</a>, and a
+ * <a href="tables.html#67">sequence</a>. Of the
+ * <a href="tables.html#68">optional sequence requirements</a>, only
+ * @c push_back, @c at, and array access are supported.
+ *
+ * @doctodo
+ *
+ *
+ * @if maint
+ * Documentation? What's that?
+ * Nathan Myers <ncm@cantrip.org>.
+ *
+ * A string looks like this:
+ *
+ * @code
+ * [_Rep]
+ * _M_length
+ * [basic_string<char_type>] _M_capacity
+ * _M_dataplus _M_state
+ * _M_p ----------------> unnamed array of char_type
+ * @endcode
+ *
+ * Where the _M_p points to the first character in the string, and
+ * you cast it to a pointer-to-_Rep and subtract 1 to get a
+ * pointer to the header.
+ *
+ * This approach has the enormous advantage that a string object
+ * requires only one allocation. All the ugliness is confined
+ * within a single pair of inline functions, which each compile to
+ * a single "add" instruction: _Rep::_M_data(), and
+ * string::_M_rep(); and the allocation function which gets a
+ * block of raw bytes and with room enough and constructs a _Rep
+ * object at the front.
+ *
+ * The reason you want _M_data pointing to the character array and
+ * not the _Rep is so that the debugger can see the string
+ * contents. (Probably we should add a non-inline member to get
+ * the _Rep for the debugger to use, so users can check the actual
+ * string length.)
+ *
+ * Note that the _Rep object is a POD so that you can have a
+ * static "empty string" _Rep object already "constructed" before
+ * static constructors have run. The reference-count encoding is
+ * chosen so that a 0 indicates one reference, so you never try to
+ * destroy the empty-string _Rep object.
+ *
+ * All but the last paragraph is considered pretty conventional
+ * for a C++ string implementation.
+ * @endif
+ */
// 21.3 Template class basic_string
template<typename _CharT, typename _Traits, typename _Alloc>
class basic_string
@@ -102,9 +122,9 @@ namespace std
typedef __gnu_cxx::__normal_iterator<pointer, basic_string> iterator;
typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string>
const_iterator;
- typedef reverse_iterator<const_iterator> const_reverse_iterator;
- typedef reverse_iterator<iterator> reverse_iterator;
-
+ typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
+ typedef std::reverse_iterator<iterator> reverse_iterator;
+
private:
// _Rep: string representation
// Invariants:
@@ -125,7 +145,7 @@ namespace std
// Types:
typedef typename _Alloc::template rebind<char>::other _Raw_bytes_alloc;
- // (Public) Data members:
+ // (Public) Data members:
// The maximum number of individual char_type elements of an
// individual string is determined by _S_max_size. This is the
@@ -133,10 +153,10 @@ namespace std
// is the maximum number of bytes the allocator can allocate.)
// If one was to divvy up the theoretical largest size string,
// with a terminating character and m _CharT elements, it'd
- // look like this:
+ // look like this:
// npos = sizeof(_Rep) + (m * sizeof(_CharT)) + sizeof(_CharT)
// Solving for m:
- // m = ((npos - sizeof(_Rep))/sizeof(CharT)) - 1
+ // m = ((npos - sizeof(_Rep))/sizeof(CharT)) - 1
// In addition, this implementation quarters this ammount.
static const size_type _S_max_size;
static const _CharT _S_terminal;
@@ -144,7 +164,7 @@ namespace std
size_type _M_length;
size_type _M_capacity;
_Atomic_word _M_references;
-
+
bool
_M_is_leaked() const
{ return _M_references < 0; }
@@ -154,50 +174,50 @@ namespace std
{ return _M_references > 0; }
void
- _M_set_leaked()
+ _M_set_leaked()
{ _M_references = -1; }
void
- _M_set_sharable()
+ _M_set_sharable()
{ _M_references = 0; }
- _CharT*
+ _CharT*
_M_refdata() throw()
{ return reinterpret_cast<_CharT*>(this + 1); }
- _CharT&
+ _CharT&
operator[](size_t __s) throw()
{ return _M_refdata() [__s]; }
- _CharT*
+ _CharT*
_M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2)
- {
- return (!_M_is_leaked() && __alloc1 == __alloc2)
- ? _M_refcopy() : _M_clone(__alloc1);
+ {
+ return (!_M_is_leaked() && __alloc1 == __alloc2)
+ ? _M_refcopy() : _M_clone(__alloc1);
}
// Create & Destroy
- static _Rep*
+ static _Rep*
_S_create(size_t, const _Alloc&);
- void
+ void
_M_dispose(const _Alloc& __a)
- {
- if (__exchange_and_add(&_M_references, -1) <= 0)
- _M_destroy(__a);
+ {
+ if (__exchange_and_add(&_M_references, -1) <= 0)
+ _M_destroy(__a);
} // XXX MT
- void
+ void
_M_destroy(const _Alloc&) throw();
- _CharT*
+ _CharT*
_M_refcopy() throw()
- {
- __atomic_add(&_M_references, 1);
- return _M_refdata();
+ {
+ __atomic_add(&_M_references, 1);
+ return _M_refdata();
} // XXX MT
- _CharT*
+ _CharT*
_M_clone(const _Alloc&, size_type __res = 0);
};
@@ -224,45 +244,45 @@ namespace std
// (carefully) in an empty string with one reference.
static size_type _S_empty_rep_storage[(sizeof(_Rep) + sizeof(_CharT) + sizeof(size_type) - 1)/sizeof(size_type)];
- _CharT*
- _M_data() const
+ _CharT*
+ _M_data() const
{ return _M_dataplus._M_p; }
- _CharT*
- _M_data(_CharT* __p)
+ _CharT*
+ _M_data(_CharT* __p)
{ return (_M_dataplus._M_p = __p); }
- _Rep*
+ _Rep*
_M_rep() const
{ return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); }
// For the internal use we have functions similar to `begin'/`end'
// but they do not call _M_leak.
- iterator
+ iterator
_M_ibegin() const { return iterator(_M_data()); }
- iterator
+ iterator
_M_iend() const { return iterator(_M_data() + this->size()); }
- void
+ void
_M_leak() // for use in begin() & non-const op[]
- {
- if (!_M_rep()->_M_is_leaked())
- _M_leak_hard();
+ {
+ if (!_M_rep()->_M_is_leaked())
+ _M_leak_hard();
}
- iterator
+ iterator
_M_check(size_type __pos) const
- {
+ {
if (__pos > this->size())
- __throw_out_of_range("basic_string::_M_check");
- return _M_ibegin() + __pos;
+ __throw_out_of_range("basic_string::_M_check");
+ return _M_ibegin() + __pos;
}
// NB: _M_fold doesn't check for a bad __pos1 value.
- iterator
+ iterator
_M_fold(size_type __pos, size_type __off) const
- {
+ {
bool __testoff = __off < this->size() - __pos;
size_type __newoff = __testoff ? __off : this->size() - __pos;
return (_M_ibegin() + __pos + __newoff);
@@ -273,8 +293,8 @@ namespace std
template<class _Iterator>
static void
_S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2)
- {
- for (; __k1 != __k2; ++__k1, ++__p)
+ {
+ for (; __k1 != __k2; ++__k1, ++__p)
traits_type::assign(*__p, *__k1); // These types are off.
}
@@ -285,7 +305,7 @@ namespace std
static void
_S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2)
{ _S_copy_chars(__p, __k1.base(), __k2.base()); }
-
+
static void
_S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2)
{ traits_type::copy(__p, __k1, __k2 - __k1); }
@@ -294,13 +314,13 @@ namespace std
_S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2)
{ traits_type::copy(__p, __k1, __k2 - __k1); }
- void
+ void
_M_mutate(size_type __pos, size_type __len1, size_type __len2);
- void
+ void
_M_leak_hard();
- static _Rep&
+ static _Rep&
_S_empty_rep()
{ return *reinterpret_cast<_Rep*>(&_S_empty_rep_storage); }
@@ -309,10 +329,10 @@ namespace std
// NB: We overload ctors in some cases instead of using default
// arguments, per 17.4.4.4 para. 2 item 2.
- inline
+ inline
basic_string();
- explicit
+ explicit
basic_string(const _Alloc& __a);
// NB: per LWG issue 42, semantics different from IS:
@@ -331,200 +351,173 @@ namespace std
basic_string(_InputIterator __beg, _InputIterator __end,
const _Alloc& __a = _Alloc());
- ~basic_string()
+ ~basic_string()
{ _M_rep()->_M_dispose(this->get_allocator()); }
- basic_string&
+ basic_string&
operator=(const basic_string& __str) { return this->assign(__str); }
- basic_string&
+ basic_string&
operator=(const _CharT* __s) { return this->assign(__s); }
- basic_string&
+ basic_string&
operator=(_CharT __c) { return this->assign(1, __c); }
// Iterators:
- iterator
- begin()
- {
- _M_leak();
+ iterator
+ begin()
+ {
+ _M_leak();
return iterator(_M_data());
}
- const_iterator
- begin() const
+ const_iterator
+ begin() const
{ return const_iterator(_M_data()); }
- iterator
+ iterator
end()
{
_M_leak();
return iterator(_M_data() + this->size());
}
- const_iterator
+ const_iterator
end() const
{ return const_iterator(_M_data() + this->size()); }
- reverse_iterator
- rbegin()
+ reverse_iterator
+ rbegin()
{ return reverse_iterator(this->end()); }
- const_reverse_iterator
- rbegin() const
+ const_reverse_iterator
+ rbegin() const
{ return const_reverse_iterator(this->end()); }
- reverse_iterator
- rend()
+ reverse_iterator
+ rend()
{ return reverse_iterator(this->begin()); }
- const_reverse_iterator
- rend() const
+ const_reverse_iterator
+ rend() const
{ return const_reverse_iterator(this->begin()); }
public:
// Capacity:
- size_type
+ size_type
size() const { return _M_rep()->_M_length; }
- size_type
+ size_type
length() const { return _M_rep()->_M_length; }
- size_type
+ size_type
max_size() const { return _Rep::_S_max_size; }
- void
+ void
resize(size_type __n, _CharT __c);
- void
+ void
resize(size_type __n) { this->resize(__n, _CharT()); }
- size_type
+ size_type
capacity() const { return _M_rep()->_M_capacity; }
- void
+ void
reserve(size_type __res_arg = 0);
- void
+ void
clear() { _M_mutate(0, this->size(), 0); }
- bool
+ bool
empty() const { return this->size() == 0; }
// Element access:
- const_reference
- operator[] (size_type __pos) const
+ const_reference
+ operator[] (size_type __pos) const
{ return _M_data()[__pos]; }
- reference
- operator[](size_type __pos)
- {
- _M_leak();
- return _M_data()[__pos];
+ reference
+ operator[](size_type __pos)
+ {
+ _M_leak();
+ return _M_data()[__pos];
}
- const_reference
+ const_reference
at(size_type __n) const
{
if (__n >= this->size())
__throw_out_of_range("basic_string::at");
- return _M_data()[__n];
+ return _M_data()[__n];
}
- reference
+ reference
at(size_type __n)
{
if (__n >= size())
__throw_out_of_range("basic_string::at");
- _M_leak();
- return _M_data()[__n];
+ _M_leak();
+ return _M_data()[__n];
}
// Modifiers:
- basic_string&
+ basic_string&
operator+=(const basic_string& __str) { return this->append(__str); }
- basic_string&
+ basic_string&
operator+=(const _CharT* __s) { return this->append(__s); }
- basic_string&
+ basic_string&
operator+=(_CharT __c) { return this->append(size_type(1), __c); }
- basic_string&
+ basic_string&
append(const basic_string& __str);
- basic_string&
+ basic_string&
append(const basic_string& __str, size_type __pos, size_type __n);
- basic_string&
+ basic_string&
append(const _CharT* __s, size_type __n);
- basic_string&
+ basic_string&
append(const _CharT* __s)
{ return this->append(__s, traits_type::length(__s)); }
- basic_string&
+ basic_string&
append(size_type __n, _CharT __c);
template<class _InputIterator>
- basic_string&
+ basic_string&
append(_InputIterator __first, _InputIterator __last)
{ return this->replace(_M_iend(), _M_iend(), __first, __last); }
- void
+ void
push_back(_CharT __c)
{ this->replace(_M_iend(), _M_iend(), 1, __c); }
- basic_string&
+ basic_string&
assign(const basic_string& __str);
- basic_string&
- assign(const basic_string& __str, size_type __pos, size_type __n)
- {
- const size_type __strsize = __str.size();
- if (__pos > __strsize)
- __throw_out_of_range("basic_string::assign");
- const bool __testn = __n < __strsize - __pos;
- const size_type __newsize = __testn ? __n : __strsize - __pos;
- return this->assign(__str._M_data() + __pos, __newsize);
- }
+ basic_string&
+ assign(const basic_string& __str, size_type __pos, size_type __n);
- basic_string&
- assign(const _CharT* __s, size_type __n)
- {
- if (__n > this->max_size())
- __throw_length_error("basic_string::assign");
- if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
- || less<const _CharT*>()(_M_data() + this->size(), __s))
- return _M_replace_safe(_M_ibegin(), _M_iend(), __s, __s + __n);
- else
- {
- // Work in-place
- const size_type __pos = __s - _M_data();
- if (__pos >= __n)
- traits_type::copy(_M_data(), __s, __n);
- else if (__pos)
- traits_type::move(_M_data(), __s, __n);
- _M_rep()->_M_length = __n;
- _M_data()[__n] = _Rep::_S_terminal;
- return *this;
- }
- }
+ basic_string&
+ assign(const _CharT* __s, size_type __n);
- basic_string&
+ basic_string&
assign(const _CharT* __s)
{ return this->assign(__s, traits_type::length(__s)); }
- basic_string&
+ basic_string&
assign(size_type __n, _CharT __c)
{ return this->replace(_M_ibegin(), _M_iend(), __n, __c); }
template<class _InputIterator>
- basic_string&
+ basic_string&
assign(_InputIterator __first, _InputIterator __last)
{ return this->replace(_M_ibegin(), _M_iend(), __first, __last); }
- void
+ void
insert(iterator __p, size_type __n, _CharT __c)
{ this->replace(__p, __p, __n, __c); }
@@ -532,93 +525,54 @@ namespace std
void insert(iterator __p, _InputIterator __beg, _InputIterator __end)
{ this->replace(__p, __p, __beg, __end); }
- basic_string&
+ basic_string&
insert(size_type __pos1, const basic_string& __str)
{ return this->insert(__pos1, __str, 0, __str.size()); }
- basic_string&
+ basic_string&
insert(size_type __pos1, const basic_string& __str,
- size_type __pos2, size_type __n)
- {
- const size_type __strsize = __str.size();
- if (__pos2 > __strsize)
- __throw_out_of_range("basic_string::insert");
- const bool __testn = __n < __strsize - __pos2;
- const size_type __newsize = __testn ? __n : __strsize - __pos2;
- return this->insert(__pos1, __str._M_data() + __pos2, __newsize);
- }
+ size_type __pos2, size_type __n);
- basic_string&
- insert(size_type __pos, const _CharT* __s, size_type __n)
- {
- const size_type __size = this->size();
- if (__pos > __size)
- __throw_out_of_range("basic_string::insert");
- if (__size > this->max_size() - __n)
- __throw_length_error("basic_string::insert");
- if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
- || less<const _CharT*>()(_M_data() + __size, __s))
- return _M_replace_safe(_M_ibegin() + __pos, _M_ibegin() + __pos,
- __s, __s + __n);
- else
- {
- // Work in-place. If _M_mutate reallocates the string, __s
- // does not point anymore to valid data, therefore we save its
- // offset, then we restore it.
- const size_type __off = __s - _M_data();
- _M_mutate(__pos, 0, __n);
- __s = _M_data() + __off;
- _CharT* __p = _M_data() + __pos;
- if (__s + __n <= __p)
- traits_type::copy(__p, __s, __n);
- else if (__s >= __p)
- traits_type::copy(__p, __s + __n, __n);
- else
- {
- traits_type::copy(__p, __s, __p - __s);
- traits_type::copy(__p + (__p - __s), __p + __n, __n - (__p - __s));
- }
- return *this;
- }
- }
-
- basic_string&
+ basic_string&
+ insert(size_type __pos, const _CharT* __s, size_type __n);
+
+ basic_string&
insert(size_type __pos, const _CharT* __s)
{ return this->insert(__pos, __s, traits_type::length(__s)); }
- basic_string&
+ basic_string&
insert(size_type __pos, size_type __n, _CharT __c)
- {
- this->insert(_M_check(__pos), __n, __c);
- return *this;
+ {
+ this->insert(_M_check(__pos), __n, __c);
+ return *this;
}
- iterator
+ iterator
insert(iterator __p, _CharT __c = _CharT())
{
size_type __pos = __p - _M_ibegin();
this->insert(_M_check(__pos), size_type(1), __c);
- _M_rep()->_M_set_leaked();
- return this->_M_ibegin() + __pos;
+ _M_rep()->_M_set_leaked();
+ return this->_M_ibegin() + __pos;
}
- basic_string&
+ basic_string&
erase(size_type __pos = 0, size_type __n = npos)
- {
+ {
return this->replace(_M_check(__pos), _M_fold(__pos, __n),
- _M_data(), _M_data());
+ _M_data(), _M_data());
}
- iterator
+ iterator
erase(iterator __position)
{
size_type __i = __position - _M_ibegin();
this->replace(__position, __position + 1, _M_data(), _M_data());
- _M_rep()->_M_set_leaked();
+ _M_rep()->_M_set_leaked();
return _M_ibegin() + __i;
}
- iterator
+ iterator
erase(iterator __first, iterator __last)
{
size_type __i = __first - _M_ibegin();
@@ -627,62 +581,44 @@ namespace std
return _M_ibegin() + __i;
}
- basic_string&
+ basic_string&
replace(size_type __pos, size_type __n, const basic_string& __str)
{ return this->replace(__pos, __n, __str._M_data(), __str.size()); }
- basic_string&
+ basic_string&
replace(size_type __pos1, size_type __n1, const basic_string& __str,
size_type __pos2, size_type __n2);
- basic_string&
+ basic_string&
replace(size_type __pos, size_type __n1, const _CharT* __s,
- size_type __n2)
- {
- const size_type __size = this->size();
- if (__pos > __size)
- __throw_out_of_range("basic_string::replace");
- const bool __testn1 = __n1 < __size - __pos;
- const size_type __foldn1 = __testn1 ? __n1 : __size - __pos;
- if (__size - __foldn1 > this->max_size() - __n2)
- __throw_length_error("basic_string::replace");
- if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
- || less<const _CharT*>()(_M_data() + __size, __s))
- return _M_replace_safe(_M_ibegin() + __pos,
- _M_ibegin() + __pos + __foldn1, __s, __s + __n2);
- // Todo: optimized in-place replace.
- else return
- _M_replace(_M_ibegin() + __pos, _M_ibegin() + __pos + __foldn1,
- __s, __s + __n2,
- typename iterator_traits<const _CharT*>::iterator_category());
- }
+ size_type __n2);
- basic_string&
+ basic_string&
replace(size_type __pos, size_type __n1, const _CharT* __s)
{ return this->replace(__pos, __n1, __s, traits_type::length(__s)); }
- basic_string&
+ basic_string&
replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c)
{ return this->replace(_M_check(__pos), _M_fold(__pos, __n1), __n2, __c); }
- basic_string&
+ basic_string&
replace(iterator __i1, iterator __i2, const basic_string& __str)
{ return this->replace(__i1, __i2, __str._M_data(), __str.size()); }
- basic_string&
+ basic_string&
replace(iterator __i1, iterator __i2,
const _CharT* __s, size_type __n)
{ return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n); }
- basic_string&
+ basic_string&
replace(iterator __i1, iterator __i2, const _CharT* __s)
{ return this->replace(__i1, __i2, __s, traits_type::length(__s)); }
- basic_string&
+ basic_string&
replace(iterator __i1, iterator __i2, size_type __n, _CharT __c);
template<class _InputIterator>
- basic_string&
+ basic_string&
replace(iterator __i1, iterator __i2,
_InputIterator __k1, _InputIterator __k2)
{ return _M_replace(__i1, __i2, __k1, __k2,
@@ -690,23 +626,23 @@ namespace std
// Specializations for the common case of pointer and iterator:
// useful to avoid the overhead of temporary buffering in _M_replace.
- basic_string&
+ basic_string&
replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2)
{ return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
__k1, __k2 - __k1); }
- basic_string&
+ basic_string&
replace(iterator __i1, iterator __i2, const _CharT* __k1, const _CharT* __k2)
{ return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
__k1, __k2 - __k1); }
- basic_string&
+ basic_string&
replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2)
{ return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
__k1.base(), __k2 - __k1);
}
- basic_string&
+ basic_string&
replace(iterator __i1, iterator __i2, const_iterator __k1, const_iterator __k2)
{ return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
__k1.base(), __k2 - __k1);
@@ -714,13 +650,13 @@ namespace std
private:
template<class _InputIterator>
- basic_string&
- _M_replace(iterator __i1, iterator __i2, _InputIterator __k1,
+ basic_string&
+ _M_replace(iterator __i1, iterator __i2, _InputIterator __k1,
_InputIterator __k2, input_iterator_tag);
template<class _ForwardIterator>
- basic_string&
- _M_replace_safe(iterator __i1, iterator __i2, _ForwardIterator __k1,
+ basic_string&
+ _M_replace_safe(iterator __i1, iterator __i2, _ForwardIterator __k1,
_ForwardIterator __k2);
// _S_construct_aux is used to implement the 21.3.1 para 15 which
@@ -733,7 +669,7 @@ namespace std
typedef typename iterator_traits<_InIter>::iterator_category _Tag;
return _S_construct(__beg, __end, __a, _Tag());
}
-
+
template<class _InIter>
static _CharT*
_S_construct_aux(_InIter __beg, _InIter __end, const _Alloc& __a,
@@ -742,7 +678,7 @@ namespace std
return _S_construct(static_cast<size_type>(__beg),
static_cast<value_type>(__end), __a);
}
-
+
template<class _InIter>
static _CharT*
_S_construct(_InIter __beg, _InIter __end, const _Alloc& __a)
@@ -756,7 +692,7 @@ namespace std
static _CharT*
_S_construct(_InIter __beg, _InIter __end, const _Alloc& __a,
input_iterator_tag);
-
+
// For forward_iterators up to random_access_iterators, used for
// string::iterator, _CharT*, etc.
template<class _FwdIter>
@@ -764,19 +700,19 @@ namespace std
_S_construct(_FwdIter __beg, _FwdIter __end, const _Alloc& __a,
forward_iterator_tag);
- static _CharT*
+ static _CharT*
_S_construct(size_type __req, _CharT __c, const _Alloc& __a);
public:
- size_type
+ size_type
copy(_CharT* __s, size_type __n, size_type __pos = 0) const;
- void
+ void
swap(basic_string<_CharT, _Traits, _Alloc>& __s);
// String operations:
- const _CharT*
+ const _CharT*
c_str() const
{
// MT: This assumes concurrent writes are OK.
@@ -785,137 +721,137 @@ namespace std
return _M_data();
}
- const _CharT*
+ const _CharT*
data() const { return _M_data(); }
- allocator_type
+ allocator_type
get_allocator() const { return _M_dataplus; }
- size_type
+ size_type
find(const _CharT* __s, size_type __pos, size_type __n) const;
- size_type
+ size_type
find(const basic_string& __str, size_type __pos = 0) const
{ return this->find(__str.data(), __pos, __str.size()); }
- size_type
+ size_type
find(const _CharT* __s, size_type __pos = 0) const
{ return this->find(__s, __pos, traits_type::length(__s)); }
- size_type
+ size_type
find(_CharT __c, size_type __pos = 0) const;
- size_type
+ size_type
rfind(const basic_string& __str, size_type __pos = npos) const
{ return this->rfind(__str.data(), __pos, __str.size()); }
- size_type
+ size_type
rfind(const _CharT* __s, size_type __pos, size_type __n) const;
- size_type
+ size_type
rfind(const _CharT* __s, size_type __pos = npos) const
{ return this->rfind(__s, __pos, traits_type::length(__s)); }
- size_type
+ size_type
rfind(_CharT __c, size_type __pos = npos) const;
- size_type
+ size_type
find_first_of(const basic_string& __str, size_type __pos = 0) const
{ return this->find_first_of(__str.data(), __pos, __str.size()); }
- size_type
+ size_type
find_first_of(const _CharT* __s, size_type __pos, size_type __n) const;
- size_type
+ size_type
find_first_of(const _CharT* __s, size_type __pos = 0) const
{ return this->find_first_of(__s, __pos, traits_type::length(__s)); }
- size_type
+ size_type
find_first_of(_CharT __c, size_type __pos = 0) const
{ return this->find(__c, __pos); }
- size_type
+ size_type
find_last_of(const basic_string& __str, size_type __pos = npos) const
{ return this->find_last_of(__str.data(), __pos, __str.size()); }
- size_type
+ size_type
find_last_of(const _CharT* __s, size_type __pos, size_type __n) const;
- size_type
+ size_type
find_last_of(const _CharT* __s, size_type __pos = npos) const
{ return this->find_last_of(__s, __pos, traits_type::length(__s)); }
- size_type
+ size_type
find_last_of(_CharT __c, size_type __pos = npos) const
{ return this->rfind(__c, __pos); }
- size_type
+ size_type
find_first_not_of(const basic_string& __str, size_type __pos = 0) const
{ return this->find_first_not_of(__str.data(), __pos, __str.size()); }
- size_type
- find_first_not_of(const _CharT* __s, size_type __pos,
+ size_type
+ find_first_not_of(const _CharT* __s, size_type __pos,
size_type __n) const;
- size_type
+ size_type
find_first_not_of(const _CharT* __s, size_type __pos = 0) const
{ return this->find_first_not_of(__s, __pos, traits_type::length(__s)); }
- size_type
+ size_type
find_first_not_of(_CharT __c, size_type __pos = 0) const;
- size_type
+ size_type
find_last_not_of(const basic_string& __str, size_type __pos = npos) const
{ return this->find_last_not_of(__str.data(), __pos, __str.size()); }
- size_type
- find_last_not_of(const _CharT* __s, size_type __pos,
+ size_type
+ find_last_not_of(const _CharT* __s, size_type __pos,
size_type __n) const;
- size_type
+ size_type
find_last_not_of(const _CharT* __s, size_type __pos = npos) const
{ return this->find_last_not_of(__s, __pos, traits_type::length(__s)); }
- size_type
+ size_type
find_last_not_of(_CharT __c, size_type __pos = npos) const;
- basic_string
+ basic_string
substr(size_type __pos = 0, size_type __n = npos) const
- {
+ {
if (__pos > this->size())
__throw_out_of_range("basic_string::substr");
- return basic_string(*this, __pos, __n);
+ return basic_string(*this, __pos, __n);
}
- int
+ int
compare(const basic_string& __str) const
{
size_type __size = this->size();
size_type __osize = __str.size();
- size_type __len = min(__size, __osize);
-
+ size_type __len = std::min(__size, __osize);
+
int __r = traits_type::compare(_M_data(), __str.data(), __len);
if (!__r)
__r = __size - __osize;
return __r;
}
- int
+ int
compare(size_type __pos, size_type __n, const basic_string& __str) const;
- int
+ int
compare(size_type __pos1, size_type __n1, const basic_string& __str,
size_type __pos2, size_type __n2) const;
- int
+ int
compare(const _CharT* __s) const;
// _GLIBCPP_RESOLVE_LIB_DEFECTS
- // 5. String::compare specification questionable
- int
+ // 5 String::compare specification questionable
+ int
compare(size_type __pos, size_type __n1, const _CharT* __s) const;
- int
- compare(size_type __pos, size_type __n1, const _CharT* __s,
+ int
+ compare(size_type __pos, size_type __n1, const _CharT* __s,
size_type __n2) const;
};
diff --git a/contrib/libstdc++/include/bits/basic_string.tcc b/contrib/libstdc++/include/bits/basic_string.tcc
index 4a22d89..d3f1e8e 100644
--- a/contrib/libstdc++/include/bits/basic_string.tcc
+++ b/contrib/libstdc++/include/bits/basic_string.tcc
@@ -1,6 +1,6 @@
// Components for manipulating sequences of characters -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -137,14 +137,14 @@ namespace std
_S_construct(_InIter __beg, _InIter __end, const _Alloc& __a,
forward_iterator_tag)
{
- size_type __dnew = static_cast<size_type>(distance(__beg, __end));
-
if (__beg == __end && __a == _Alloc())
return _S_empty_rep()._M_refcopy();
// NB: Not required, but considered best practice.
if (__builtin_expect(__beg == _InIter(), 0))
__throw_logic_error("attempt to create string with null pointer");
+
+ size_type __dnew = static_cast<size_type>(std::distance(__beg, __end));
// Check for out_of_range and length_error exceptions.
_Rep* __r = _Rep::_S_create(__dnew, __a);
@@ -254,6 +254,117 @@ namespace std
}
return *this;
}
+
+ template<typename _CharT, typename _Traits, typename _Alloc>
+ basic_string<_CharT, _Traits, _Alloc>&
+ basic_string<_CharT, _Traits, _Alloc>::
+ assign(const basic_string& __str, size_type __pos, size_type __n)
+ {
+ const size_type __strsize = __str.size();
+ if (__pos > __strsize)
+ __throw_out_of_range("basic_string::assign");
+ const bool __testn = __n < __strsize - __pos;
+ const size_type __newsize = __testn ? __n : __strsize - __pos;
+ return this->assign(__str._M_data() + __pos, __newsize);
+ }
+
+ template<typename _CharT, typename _Traits, typename _Alloc>
+ basic_string<_CharT, _Traits, _Alloc>&
+ basic_string<_CharT, _Traits, _Alloc>::
+ assign(const _CharT* __s, size_type __n)
+ {
+ if (__n > this->max_size())
+ __throw_length_error("basic_string::assign");
+ if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
+ || less<const _CharT*>()(_M_data() + this->size(), __s))
+ return _M_replace_safe(_M_ibegin(), _M_iend(), __s, __s + __n);
+ else
+ {
+ // Work in-place
+ const size_type __pos = __s - _M_data();
+ if (__pos >= __n)
+ traits_type::copy(_M_data(), __s, __n);
+ else if (__pos)
+ traits_type::move(_M_data(), __s, __n);
+ _M_rep()->_M_length = __n;
+ _M_data()[__n] = _Rep::_S_terminal; // grr.
+ return *this;
+ }
+ }
+
+ template<typename _CharT, typename _Traits, typename _Alloc>
+ basic_string<_CharT, _Traits, _Alloc>&
+ basic_string<_CharT, _Traits, _Alloc>::
+ insert(size_type __pos1, const basic_string& __str,
+ size_type __pos2, size_type __n)
+ {
+ const size_type __strsize = __str.size();
+ if (__pos2 > __strsize)
+ __throw_out_of_range("basic_string::insert");
+ const bool __testn = __n < __strsize - __pos2;
+ const size_type __newsize = __testn ? __n : __strsize - __pos2;
+ return this->insert(__pos1, __str._M_data() + __pos2, __newsize);
+ }
+
+ template<typename _CharT, typename _Traits, typename _Alloc>
+ basic_string<_CharT, _Traits, _Alloc>&
+ basic_string<_CharT, _Traits, _Alloc>::
+ insert(size_type __pos, const _CharT* __s, size_type __n)
+ {
+ const size_type __size = this->size();
+ if (__pos > __size)
+ __throw_out_of_range("basic_string::insert");
+ if (__size > this->max_size() - __n)
+ __throw_length_error("basic_string::insert");
+ if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
+ || less<const _CharT*>()(_M_data() + __size, __s))
+ return _M_replace_safe(_M_ibegin() + __pos, _M_ibegin() + __pos,
+ __s, __s + __n);
+ else
+ {
+ // Work in-place. If _M_mutate reallocates the string, __s
+ // does not point anymore to valid data, therefore we save its
+ // offset, then we restore it.
+ const size_type __off = __s - _M_data();
+ _M_mutate(__pos, 0, __n);
+ __s = _M_data() + __off;
+ _CharT* __p = _M_data() + __pos;
+ if (__s + __n <= __p)
+ traits_type::copy(__p, __s, __n);
+ else if (__s >= __p)
+ traits_type::copy(__p, __s + __n, __n);
+ else
+ {
+ traits_type::copy(__p, __s, __p - __s);
+ traits_type::copy(__p + (__p-__s), __p + __n, __n - (__p-__s));
+ }
+ return *this;
+ }
+ }
+
+ template<typename _CharT, typename _Traits, typename _Alloc>
+ basic_string<_CharT, _Traits, _Alloc>&
+ basic_string<_CharT, _Traits, _Alloc>::
+ replace(size_type __pos, size_type __n1, const _CharT* __s,
+ size_type __n2)
+ {
+ const size_type __size = this->size();
+ if (__pos > __size)
+ __throw_out_of_range("basic_string::replace");
+ const bool __testn1 = __n1 < __size - __pos;
+ const size_type __foldn1 = __testn1 ? __n1 : __size - __pos;
+ if (__size - __foldn1 > this->max_size() - __n2)
+ __throw_length_error("basic_string::replace");
+ if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
+ || less<const _CharT*>()(_M_data() + __size, __s))
+ return _M_replace_safe(_M_ibegin() + __pos,
+ _M_ibegin() + __pos + __foldn1, __s, __s + __n2);
+ // Todo: optimized in-place replace.
+ else
+ return _M_replace(_M_ibegin() + __pos, _M_ibegin() + __pos + __foldn1,
+ __s, __s + __n2,
+ typename iterator_traits<const _CharT*>::iterator_category());
+ }
template<typename _CharT, typename _Traits, typename _Alloc>
void
@@ -523,7 +634,7 @@ namespace std
_M_replace_safe(iterator __i1, iterator __i2, _ForwardIter __k1,
_ForwardIter __k2)
{
- size_type __dnew = static_cast<size_type>(distance(__k1, __k2));
+ size_type __dnew = static_cast<size_type>(std::distance(__k1, __k2));
size_type __dold = __i2 - __i1;
size_type __dmax = this->max_size();
@@ -578,7 +689,8 @@ namespace std
// Iff appending itself, string needs to pre-reserve the
// correct size so that _M_mutate does not clobber the
// iterators formed here.
- size_type __len = min(__str.size() - __pos, __n) + this->size();
+ size_type __len = std::min(size_type(__str.size() - __pos),
+ __n) + this->size();
if (__len > this->capacity())
this->reserve(__len);
return _M_replace_safe(_M_iend(), _M_iend(), __str._M_check(__pos),
@@ -709,7 +821,7 @@ namespace std
size_type __size = this->size();
if (__n <= __size)
{
- __pos = std::min(__size - __n, __pos);
+ __pos = std::min(size_type(__size - __n), __pos);
const _CharT* __data = _M_data();
do
{
@@ -848,8 +960,8 @@ namespace std
if (__pos > __size)
__throw_out_of_range("basic_string::compare");
- size_type __rsize= min(__size - __pos, __n);
- size_type __len = min(__rsize, __osize);
+ size_type __rsize= std::min(size_type(__size - __pos), __n);
+ size_type __len = std::min(__rsize, __osize);
int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len);
if (!__r)
__r = __rsize - __osize;
@@ -867,9 +979,9 @@ namespace std
if (__pos1 > __size || __pos2 > __osize)
__throw_out_of_range("basic_string::compare");
- size_type __rsize = min(__size - __pos1, __n1);
- size_type __rosize = min(__osize - __pos2, __n2);
- size_type __len = min(__rsize, __rosize);
+ size_type __rsize = std::min(size_type(__size - __pos1), __n1);
+ size_type __rosize = std::min(size_type(__osize - __pos2), __n2);
+ size_type __len = std::min(__rsize, __rosize);
int __r = traits_type::compare(_M_data() + __pos1,
__str.data() + __pos2, __len);
if (!__r)
@@ -885,7 +997,7 @@ namespace std
{
size_type __size = this->size();
size_type __osize = traits_type::length(__s);
- size_type __len = min(__size, __osize);
+ size_type __len = std::min(__size, __osize);
int __r = traits_type::compare(_M_data(), __s, __len);
if (!__r)
__r = __size - __osize;
@@ -903,8 +1015,8 @@ namespace std
__throw_out_of_range("basic_string::compare");
size_type __osize = traits_type::length(__s);
- size_type __rsize = min(__size - __pos, __n1);
- size_type __len = min(__rsize, __osize);
+ size_type __rsize = std::min(size_type(__size - __pos), __n1);
+ size_type __len = std::min(__rsize, __osize);
int __r = traits_type::compare(_M_data() + __pos, __s, __len);
if (!__r)
__r = __rsize - __osize;
@@ -921,9 +1033,9 @@ namespace std
if (__pos > __size)
__throw_out_of_range("basic_string::compare");
- size_type __osize = min(traits_type::length(__s), __n2);
- size_type __rsize = min(__size - __pos, __n1);
- size_type __len = min(__rsize, __osize);
+ size_type __osize = std::min(traits_type::length(__s), __n2);
+ size_type __rsize = std::min(size_type(__size - __pos), __n1);
+ size_type __len = std::min(__rsize, __osize);
int __r = traits_type::compare(_M_data() + __pos, __s, __len);
if (!__r)
__r = __rsize - __osize;
@@ -937,7 +1049,7 @@ namespace std
{
typedef typename _Alloc::size_type size_type;
size_type __strsize = __str.size();
- size_type __bytes = min(__strsize, __bufsiz - 1);
+ size_type __bytes = std::min(__strsize, __bufsiz - 1);
_Traits::copy(__buf, __str.data(), __bytes);
__buf[__bytes] = _CharT();
}
@@ -945,6 +1057,7 @@ namespace std
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
+#if _GLIBCPP_EXTERN_TEMPLATE
extern template class basic_string<char>;
extern template
basic_istream<char>&
@@ -974,6 +1087,7 @@ namespace std
basic_istream<wchar_t>&
getline(basic_istream<wchar_t>&, wstring&);
#endif
+#endif
} // namespace std
#endif
diff --git a/contrib/libstdc++/include/bits/boost_concept_check.h b/contrib/libstdc++/include/bits/boost_concept_check.h
index 29ca61b..d91c2e8 100644
--- a/contrib/libstdc++/include/bits/boost_concept_check.h
+++ b/contrib/libstdc++/include/bits/boost_concept_check.h
@@ -149,6 +149,8 @@ struct _Aux_require_same<_Tp,_Tp> { typedef _Tp _Type; };
__a = __b; // const required for argument to assignment
}
_Tp __a;
+ // possibly should be "Tp* a;" and then dereference "a" in constraint
+ // functions? present way would require a default ctor, i think...
};
template <class _Tp>
diff --git a/contrib/libstdc++/include/bits/c++config b/contrib/libstdc++/include/bits/c++config
index cda776c..1716e25 100644
--- a/contrib/libstdc++/include/bits/c++config
+++ b/contrib/libstdc++/include/bits/c++config
@@ -1,6 +1,7 @@
// Predefined symbols and macros -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -34,10 +35,9 @@
#include <bits/os_defines.h>
// The current version of the C++ library in compressed ISO date format.
-#define __GLIBCPP__ 20030205
+#define __GLIBCPP__ 20030711
-// This is necessary until GCC supports separate template
-// compilation.
+// This is necessary until GCC supports separate template compilation.
#define _GLIBCPP_NO_TEMPLATE_EXPORT 1
// This is a hack around not having either pre-compiled headers or
@@ -49,6 +49,16 @@
// by the compiler, but instead instantiated into the library binary.
#define _GLIBCPP_FULLY_COMPLIANT_HEADERS 1
+// Allow use of the GNU syntax extension, "extern template." This
+// extension is fully documented in the g++ manual, but in a nutshell,
+// it inhibits all implicit instantiations and is used throughout the
+// library to avoid multiple weak definitions for required types that
+// are already explicitly instantiated in the library binary. This
+// substantially reduces the binary size of resulting executables.
+#ifndef _GLIBCPP_EXTERN_TEMPLATE
+#define _GLIBCPP_EXTERN_TEMPLATE 1
+#endif
+
// To enable older, ARM-style iostreams and other anachronisms use this.
//#define _GLIBCPP_DEPRECATED 1
@@ -77,6 +87,13 @@
#error __USE_MALLOC should never be defined. Read the release notes.
#endif
+// Create a boolean flag to be used to determine if --fast-math is set.
+#ifdef __FAST_MATH__
+#define _GLIBCPP_FAST_MATH 1
+#else
+#define _GLIBCPP_FAST_MATH 0
+#endif
+
// The remainder of the prewritten config is mostly automatic; all the
// user hooks are listed above.
diff --git a/contrib/libstdc++/include/bits/char_traits.h b/contrib/libstdc++/include/bits/char_traits.h
index 41f943d..2b733cd 100644
--- a/contrib/libstdc++/include/bits/char_traits.h
+++ b/contrib/libstdc++/include/bits/char_traits.h
@@ -42,14 +42,22 @@
#pragma GCC system_header
-#include <cstring> // For memmove, memset, memchr
-#include <bits/fpos.h> // For streampos
+#include <cstring> // For memmove, memset, memchr
+#include <bits/fpos.h> // For streampos
namespace std
{
- /// 21.1.2 Basis for explicit _Traits specialization
- /// NB: That for any given actual character type this definition is
- /// probably wrong.
+ // 21.1
+ /**
+ * @brief Basis for explicit traits specializations.
+ *
+ * @note For any given actual character type, this definition is
+ * probably wrong.
+ *
+ * See http://gcc.gnu.org/onlinedocs/libstdc++/21_strings/howto.html#5
+ * for advice on how to make use of this class for "unusual" character
+ * types.
+ */
template<class _CharT>
struct char_traits
{
@@ -104,7 +112,7 @@ namespace std
};
- /// 21.1.4 char_traits specializations
+ /// 21.1.3.1 char_traits specializations
template<>
struct char_traits<char>
{
@@ -174,6 +182,7 @@ namespace std
#ifdef _GLIBCPP_USE_WCHAR_T
+ /// 21.1.3.2 char_traits specializations
template<>
struct char_traits<wchar_t>
{
diff --git a/contrib/libstdc++/include/bits/codecvt.h b/contrib/libstdc++/include/bits/codecvt.h
index 3666e98..9ab9f94 100644
--- a/contrib/libstdc++/include/bits/codecvt.h
+++ b/contrib/libstdc++/include/bits/codecvt.h
@@ -1,6 +1,6 @@
// Locale support (codecvt) -*- C++ -*-
-// Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
diff --git a/contrib/libstdc++/include/bits/concept_check.h b/contrib/libstdc++/include/bits/concept_check.h
index 92ceefb..88877eb 100644
--- a/contrib/libstdc++/include/bits/concept_check.h
+++ b/contrib/libstdc++/include/bits/concept_check.h
@@ -61,8 +61,7 @@
// Note that the obvious and elegant approach of
//
-//#define glibcpp_function_requires(C) \
-// boost::function_requires< boost::C >()
+//#define glibcpp_function_requires(C) boost::function_requires< boost::C >()
//
// won't work due to concept templates with more than one parameter, e.g.,
// BinaryPredicateConcept. The preprocessor tries to split things up on
diff --git a/contrib/libstdc++/include/bits/deque.tcc b/contrib/libstdc++/include/bits/deque.tcc
new file mode 100644
index 0000000..a8d43d0
--- /dev/null
+++ b/contrib/libstdc++/include/bits/deque.tcc
@@ -0,0 +1,779 @@
+// Deque implementation (out of line) -*- C++ -*-
+
+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+/*
+ *
+ * Copyright (c) 1994
+ * Hewlett-Packard Company
+ *
+ * Permission to use, copy, modify, distribute and sell this software
+ * and its documentation for any purpose is hereby granted without fee,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation. Hewlett-Packard Company makes no
+ * representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ *
+ * Copyright (c) 1997
+ * Silicon Graphics Computer Systems, Inc.
+ *
+ * Permission to use, copy, modify, distribute and sell this software
+ * and its documentation for any purpose is hereby granted without fee,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation. Silicon Graphics makes no
+ * representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ */
+
+/** @file deque.tcc
+ * This is an internal header file, included by other library headers.
+ * You should not attempt to use it directly.
+ */
+
+#ifndef __GLIBCPP_INTERNAL_DEQUE_TCC
+#define __GLIBCPP_INTERNAL_DEQUE_TCC
+
+namespace std
+{
+ template <typename _Tp, typename _Alloc>
+ deque<_Tp,_Alloc>&
+ deque<_Tp,_Alloc>::
+ operator=(const deque& __x)
+ {
+ const size_type __len = size();
+ if (&__x != this)
+ {
+ if (__len >= __x.size())
+ erase(copy(__x.begin(), __x.end(), _M_start), _M_finish);
+ else
+ {
+ const_iterator __mid = __x.begin() + difference_type(__len);
+ copy(__x.begin(), __mid, _M_start);
+ insert(_M_finish, __mid, __x.end());
+ }
+ }
+ return *this;
+ }
+
+ template <typename _Tp, typename _Alloc>
+ typename deque<_Tp,_Alloc>::iterator
+ deque<_Tp,_Alloc>::
+ insert(iterator position, const value_type& __x)
+ {
+ if (position._M_cur == _M_start._M_cur)
+ {
+ push_front(__x);
+ return _M_start;
+ }
+ else if (position._M_cur == _M_finish._M_cur)
+ {
+ push_back(__x);
+ iterator __tmp = _M_finish;
+ --__tmp;
+ return __tmp;
+ }
+ else
+ return _M_insert_aux(position, __x);
+ }
+
+ template <typename _Tp, typename _Alloc>
+ typename deque<_Tp,_Alloc>::iterator
+ deque<_Tp,_Alloc>::
+ erase(iterator __position)
+ {
+ iterator __next = __position;
+ ++__next;
+ size_type __index = __position - _M_start;
+ if (__index < (size() >> 1))
+ {
+ copy_backward(_M_start, __position, __next);
+ pop_front();
+ }
+ else
+ {
+ copy(__next, _M_finish, __position);
+ pop_back();
+ }
+ return _M_start + __index;
+ }
+
+ template <typename _Tp, typename _Alloc>
+ typename deque<_Tp,_Alloc>::iterator
+ deque<_Tp,_Alloc>::
+ erase(iterator __first, iterator __last)
+ {
+ if (__first == _M_start && __last == _M_finish)
+ {
+ clear();
+ return _M_finish;
+ }
+ else
+ {
+ difference_type __n = __last - __first;
+ difference_type __elems_before = __first - _M_start;
+ if (static_cast<size_type>(__elems_before) < (size() - __n) / 2)
+ {
+ copy_backward(_M_start, __first, __last);
+ iterator __new_start = _M_start + __n;
+ _Destroy(_M_start, __new_start);
+ _M_destroy_nodes(_M_start._M_node, __new_start._M_node);
+ _M_start = __new_start;
+ }
+ else
+ {
+ copy(__last, _M_finish, __first);
+ iterator __new_finish = _M_finish - __n;
+ _Destroy(__new_finish, _M_finish);
+ _M_destroy_nodes(__new_finish._M_node + 1, _M_finish._M_node + 1);
+ _M_finish = __new_finish;
+ }
+ return _M_start + __elems_before;
+ }
+ }
+
+ template <typename _Tp, typename _Alloc>
+ void
+ deque<_Tp,_Alloc>::
+ clear()
+ {
+ for (_Map_pointer __node = _M_start._M_node + 1;
+ __node < _M_finish._M_node;
+ ++__node)
+ {
+ _Destroy(*__node, *__node + _S_buffer_size());
+ _M_deallocate_node(*__node);
+ }
+
+ if (_M_start._M_node != _M_finish._M_node)
+ {
+ _Destroy(_M_start._M_cur, _M_start._M_last);
+ _Destroy(_M_finish._M_first, _M_finish._M_cur);
+ _M_deallocate_node(_M_finish._M_first);
+ }
+ else
+ _Destroy(_M_start._M_cur, _M_finish._M_cur);
+
+ _M_finish = _M_start;
+ }
+
+ template <typename _Tp, class _Alloc>
+ template <typename _InputIter>
+ void
+ deque<_Tp,_Alloc>
+ ::_M_assign_aux(_InputIter __first, _InputIter __last, input_iterator_tag)
+ {
+ iterator __cur = begin();
+ for ( ; __first != __last && __cur != end(); ++__cur, ++__first)
+ *__cur = *__first;
+ if (__first == __last)
+ erase(__cur, end());
+ else
+ insert(end(), __first, __last);
+ }
+
+ template <typename _Tp, typename _Alloc>
+ void
+ deque<_Tp,_Alloc>::
+ _M_fill_insert(iterator __pos, size_type __n, const value_type& __x)
+ {
+ if (__pos._M_cur == _M_start._M_cur)
+ {
+ iterator __new_start = _M_reserve_elements_at_front(__n);
+ try
+ {
+ uninitialized_fill(__new_start, _M_start, __x);
+ _M_start = __new_start;
+ }
+ catch(...)
+ {
+ _M_destroy_nodes(__new_start._M_node, _M_start._M_node);
+ __throw_exception_again;
+ }
+ }
+ else if (__pos._M_cur == _M_finish._M_cur)
+ {
+ iterator __new_finish = _M_reserve_elements_at_back(__n);
+ try
+ {
+ uninitialized_fill(_M_finish, __new_finish, __x);
+ _M_finish = __new_finish;
+ }
+ catch(...)
+ {
+ _M_destroy_nodes(_M_finish._M_node + 1, __new_finish._M_node + 1);
+ __throw_exception_again;
+ }
+ }
+ else
+ _M_insert_aux(__pos, __n, __x);
+ }
+
+ template <typename _Tp, typename _Alloc>
+ void
+ deque<_Tp,_Alloc>::
+ _M_fill_initialize(const value_type& __value)
+ {
+ _Map_pointer __cur;
+ try
+ {
+ for (__cur = _M_start._M_node; __cur < _M_finish._M_node; ++__cur)
+ uninitialized_fill(*__cur, *__cur + _S_buffer_size(), __value);
+ uninitialized_fill(_M_finish._M_first, _M_finish._M_cur, __value);
+ }
+ catch(...)
+ {
+ _Destroy(_M_start, iterator(*__cur, __cur));
+ __throw_exception_again;
+ }
+ }
+
+ template <typename _Tp, typename _Alloc>
+ template <typename _InputIterator>
+ void
+ deque<_Tp,_Alloc>::
+ _M_range_initialize(_InputIterator __first, _InputIterator __last,
+ input_iterator_tag)
+ {
+ _M_initialize_map(0);
+ try
+ {
+ for ( ; __first != __last; ++__first)
+ push_back(*__first);
+ }
+ catch(...)
+ {
+ clear();
+ __throw_exception_again;
+ }
+ }
+
+ template <typename _Tp, typename _Alloc>
+ template <typename _ForwardIterator>
+ void
+ deque<_Tp,_Alloc>::
+ _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last,
+ forward_iterator_tag)
+ {
+ size_type __n = distance(__first, __last);
+ _M_initialize_map(__n);
+
+ _Map_pointer __cur_node;
+ try
+ {
+ for (__cur_node = _M_start._M_node;
+ __cur_node < _M_finish._M_node;
+ ++__cur_node)
+ {
+ _ForwardIterator __mid = __first;
+ advance(__mid, _S_buffer_size());
+ uninitialized_copy(__first, __mid, *__cur_node);
+ __first = __mid;
+ }
+ uninitialized_copy(__first, __last, _M_finish._M_first);
+ }
+ catch(...)
+ {
+ _Destroy(_M_start, iterator(*__cur_node, __cur_node));
+ __throw_exception_again;
+ }
+ }
+
+ // Called only if _M_finish._M_cur == _M_finish._M_last - 1.
+ template <typename _Tp, typename _Alloc>
+ void
+ deque<_Tp,_Alloc>::
+ _M_push_back_aux(const value_type& __t)
+ {
+ value_type __t_copy = __t;
+ _M_reserve_map_at_back();
+ *(_M_finish._M_node + 1) = _M_allocate_node();
+ try
+ {
+ _Construct(_M_finish._M_cur, __t_copy);
+ _M_finish._M_set_node(_M_finish._M_node + 1);
+ _M_finish._M_cur = _M_finish._M_first;
+ }
+ catch(...)
+ {
+ _M_deallocate_node(*(_M_finish._M_node + 1));
+ __throw_exception_again;
+ }
+ }
+
+ #ifdef _GLIBCPP_DEPRECATED
+ // Called only if _M_finish._M_cur == _M_finish._M_last - 1.
+ template <typename _Tp, typename _Alloc>
+ void
+ deque<_Tp,_Alloc>::
+ _M_push_back_aux()
+ {
+ _M_reserve_map_at_back();
+ *(_M_finish._M_node + 1) = _M_allocate_node();
+ try
+ {
+ _Construct(_M_finish._M_cur);
+ _M_finish._M_set_node(_M_finish._M_node + 1);
+ _M_finish._M_cur = _M_finish._M_first;
+ }
+ catch(...)
+ {
+ _M_deallocate_node(*(_M_finish._M_node + 1));
+ __throw_exception_again;
+ }
+ }
+ #endif
+
+ // Called only if _M_start._M_cur == _M_start._M_first.
+ template <typename _Tp, typename _Alloc>
+ void
+ deque<_Tp,_Alloc>::
+ _M_push_front_aux(const value_type& __t)
+ {
+ value_type __t_copy = __t;
+ _M_reserve_map_at_front();
+ *(_M_start._M_node - 1) = _M_allocate_node();
+ try
+ {
+ _M_start._M_set_node(_M_start._M_node - 1);
+ _M_start._M_cur = _M_start._M_last - 1;
+ _Construct(_M_start._M_cur, __t_copy);
+ }
+ catch(...)
+ {
+ ++_M_start;
+ _M_deallocate_node(*(_M_start._M_node - 1));
+ __throw_exception_again;
+ }
+ }
+
+ #ifdef _GLIBCPP_DEPRECATED
+ // Called only if _M_start._M_cur == _M_start._M_first.
+ template <typename _Tp, typename _Alloc>
+ void
+ deque<_Tp,_Alloc>::
+ _M_push_front_aux()
+ {
+ _M_reserve_map_at_front();
+ *(_M_start._M_node - 1) = _M_allocate_node();
+ try
+ {
+ _M_start._M_set_node(_M_start._M_node - 1);
+ _M_start._M_cur = _M_start._M_last - 1;
+ _Construct(_M_start._M_cur);
+ }
+ catch(...)
+ {
+ ++_M_start;
+ _M_deallocate_node(*(_M_start._M_node - 1));
+ __throw_exception_again;
+ }
+ }
+ #endif
+
+ // Called only if _M_finish._M_cur == _M_finish._M_first.
+ template <typename _Tp, typename _Alloc>
+ void deque<_Tp,_Alloc>::
+ _M_pop_back_aux()
+ {
+ _M_deallocate_node(_M_finish._M_first);
+ _M_finish._M_set_node(_M_finish._M_node - 1);
+ _M_finish._M_cur = _M_finish._M_last - 1;
+ _Destroy(_M_finish._M_cur);
+ }
+
+ // Called only if _M_start._M_cur == _M_start._M_last - 1. Note that
+ // if the deque has at least one element (a precondition for this member
+ // function), and if _M_start._M_cur == _M_start._M_last, then the deque
+ // must have at least two nodes.
+ template <typename _Tp, typename _Alloc>
+ void deque<_Tp,_Alloc>::
+ _M_pop_front_aux()
+ {
+ _Destroy(_M_start._M_cur);
+ _M_deallocate_node(_M_start._M_first);
+ _M_start._M_set_node(_M_start._M_node + 1);
+ _M_start._M_cur = _M_start._M_first;
+ }
+
+ template <typename _Tp, typename _Alloc>
+ template <typename _InputIterator>
+ void
+ deque<_Tp,_Alloc>::
+ _M_range_insert_aux(iterator __pos,
+ _InputIterator __first, _InputIterator __last,
+ input_iterator_tag)
+ {
+ copy(__first, __last, inserter(*this, __pos));
+ }
+
+ template <typename _Tp, typename _Alloc>
+ template <typename _ForwardIterator>
+ void
+ deque<_Tp,_Alloc>::
+ _M_range_insert_aux(iterator __pos,
+ _ForwardIterator __first, _ForwardIterator __last,
+ forward_iterator_tag)
+ {
+ size_type __n = distance(__first, __last);
+ if (__pos._M_cur == _M_start._M_cur)
+ {
+ iterator __new_start = _M_reserve_elements_at_front(__n);
+ try
+ {
+ uninitialized_copy(__first, __last, __new_start);
+ _M_start = __new_start;
+ }
+ catch(...)
+ {
+ _M_destroy_nodes(__new_start._M_node, _M_start._M_node);
+ __throw_exception_again;
+ }
+ }
+ else if (__pos._M_cur == _M_finish._M_cur)
+ {
+ iterator __new_finish = _M_reserve_elements_at_back(__n);
+ try
+ {
+ uninitialized_copy(__first, __last, _M_finish);
+ _M_finish = __new_finish;
+ }
+ catch(...)
+ {
+ _M_destroy_nodes(_M_finish._M_node + 1, __new_finish._M_node + 1);
+ __throw_exception_again;
+ }
+ }
+ else
+ _M_insert_aux(__pos, __first, __last, __n);
+ }
+
+ template <typename _Tp, typename _Alloc>
+ typename deque<_Tp, _Alloc>::iterator
+ deque<_Tp,_Alloc>::
+ _M_insert_aux(iterator __pos, const value_type& __x)
+ {
+ difference_type __index = __pos - _M_start;
+ value_type __x_copy = __x; // XXX copy
+ if (static_cast<size_type>(__index) < size() / 2)
+ {
+ push_front(front());
+ iterator __front1 = _M_start;
+ ++__front1;
+ iterator __front2 = __front1;
+ ++__front2;
+ __pos = _M_start + __index;
+ iterator __pos1 = __pos;
+ ++__pos1;
+ copy(__front2, __pos1, __front1);
+ }
+ else
+ {
+ push_back(back());
+ iterator __back1 = _M_finish;
+ --__back1;
+ iterator __back2 = __back1;
+ --__back2;
+ __pos = _M_start + __index;
+ copy_backward(__pos, __back2, __back1);
+ }
+ *__pos = __x_copy;
+ return __pos;
+ }
+
+ #ifdef _GLIBCPP_DEPRECATED
+ // Nothing seems to actually use this. According to the pattern followed by
+ // the rest of the SGI code, it would be called by the deprecated insert(pos)
+ // function, but that has been replaced. We'll take our time removing this
+ // anyhow; mark for 3.4. -pme
+ template <typename _Tp, typename _Alloc>
+ typename deque<_Tp,_Alloc>::iterator
+ deque<_Tp,_Alloc>::
+ _M_insert_aux(iterator __pos)
+ {
+ difference_type __index = __pos - _M_start;
+ if (static_cast<size_type>(__index) < size() / 2)
+ {
+ push_front(front());
+ iterator __front1 = _M_start;
+ ++__front1;
+ iterator __front2 = __front1;
+ ++__front2;
+ __pos = _M_start + __index;
+ iterator __pos1 = __pos;
+ ++__pos1;
+ copy(__front2, __pos1, __front1);
+ }
+ else
+ {
+ push_back(back());
+ iterator __back1 = _M_finish;
+ --__back1;
+ iterator __back2 = __back1;
+ --__back2;
+ __pos = _M_start + __index;
+ copy_backward(__pos, __back2, __back1);
+ }
+ *__pos = value_type();
+ return __pos;
+ }
+ #endif
+
+ template <typename _Tp, typename _Alloc>
+ void
+ deque<_Tp,_Alloc>::
+ _M_insert_aux(iterator __pos, size_type __n, const value_type& __x)
+ {
+ const difference_type __elems_before = __pos - _M_start;
+ size_type __length = this->size();
+ value_type __x_copy = __x;
+ if (__elems_before < difference_type(__length / 2))
+ {
+ iterator __new_start = _M_reserve_elements_at_front(__n);
+ iterator __old_start = _M_start;
+ __pos = _M_start + __elems_before;
+ try
+ {
+ if (__elems_before >= difference_type(__n))
+ {
+ iterator __start_n = _M_start + difference_type(__n);
+ uninitialized_copy(_M_start, __start_n, __new_start);
+ _M_start = __new_start;
+ copy(__start_n, __pos, __old_start);
+ fill(__pos - difference_type(__n), __pos, __x_copy);
+ }
+ else
+ {
+ __uninitialized_copy_fill(_M_start, __pos, __new_start,
+ _M_start, __x_copy);
+ _M_start = __new_start;
+ fill(__old_start, __pos, __x_copy);
+ }
+ }
+ catch(...)
+ {
+ _M_destroy_nodes(__new_start._M_node, _M_start._M_node);
+ __throw_exception_again;
+ }
+ }
+ else
+ {
+ iterator __new_finish = _M_reserve_elements_at_back(__n);
+ iterator __old_finish = _M_finish;
+ const difference_type __elems_after =
+ difference_type(__length) - __elems_before;
+ __pos = _M_finish - __elems_after;
+ try
+ {
+ if (__elems_after > difference_type(__n))
+ {
+ iterator __finish_n = _M_finish - difference_type(__n);
+ uninitialized_copy(__finish_n, _M_finish, _M_finish);
+ _M_finish = __new_finish;
+ copy_backward(__pos, __finish_n, __old_finish);
+ fill(__pos, __pos + difference_type(__n), __x_copy);
+ }
+ else
+ {
+ __uninitialized_fill_copy(_M_finish, __pos + difference_type(__n),
+ __x_copy, __pos, _M_finish);
+ _M_finish = __new_finish;
+ fill(__pos, __old_finish, __x_copy);
+ }
+ }
+ catch(...)
+ {
+ _M_destroy_nodes(_M_finish._M_node + 1, __new_finish._M_node + 1);
+ __throw_exception_again;
+ }
+ }
+ }
+
+ template <typename _Tp, typename _Alloc>
+ template <typename _ForwardIterator>
+ void
+ deque<_Tp,_Alloc>::
+ _M_insert_aux(iterator __pos,
+ _ForwardIterator __first, _ForwardIterator __last,
+ size_type __n)
+ {
+ const difference_type __elemsbefore = __pos - _M_start;
+ size_type __length = size();
+ if (static_cast<size_type>(__elemsbefore) < __length / 2)
+ {
+ iterator __new_start = _M_reserve_elements_at_front(__n);
+ iterator __old_start = _M_start;
+ __pos = _M_start + __elemsbefore;
+ try
+ {
+ if (__elemsbefore >= difference_type(__n))
+ {
+ iterator __start_n = _M_start + difference_type(__n);
+ uninitialized_copy(_M_start, __start_n, __new_start);
+ _M_start = __new_start;
+ copy(__start_n, __pos, __old_start);
+ copy(__first, __last, __pos - difference_type(__n));
+ }
+ else
+ {
+ _ForwardIterator __mid = __first;
+ advance(__mid, difference_type(__n) - __elemsbefore);
+ __uninitialized_copy_copy(_M_start, __pos, __first, __mid,
+ __new_start);
+ _M_start = __new_start;
+ copy(__mid, __last, __old_start);
+ }
+ }
+ catch(...)
+ {
+ _M_destroy_nodes(__new_start._M_node, _M_start._M_node);
+ __throw_exception_again;
+ }
+ }
+ else
+ {
+ iterator __new_finish = _M_reserve_elements_at_back(__n);
+ iterator __old_finish = _M_finish;
+ const difference_type __elemsafter =
+ difference_type(__length) - __elemsbefore;
+ __pos = _M_finish - __elemsafter;
+ try
+ {
+ if (__elemsafter > difference_type(__n))
+ {
+ iterator __finish_n = _M_finish - difference_type(__n);
+ uninitialized_copy(__finish_n, _M_finish, _M_finish);
+ _M_finish = __new_finish;
+ copy_backward(__pos, __finish_n, __old_finish);
+ copy(__first, __last, __pos);
+ }
+ else
+ {
+ _ForwardIterator __mid = __first;
+ advance(__mid, __elemsafter);
+ __uninitialized_copy_copy(__mid, __last, __pos,
+ _M_finish, _M_finish);
+ _M_finish = __new_finish;
+ copy(__first, __mid, __pos);
+ }
+ }
+ catch(...)
+ {
+ _M_destroy_nodes(_M_finish._M_node + 1, __new_finish._M_node + 1);
+ __throw_exception_again;
+ }
+ }
+ }
+
+ template <typename _Tp, typename _Alloc>
+ void
+ deque<_Tp,_Alloc>::
+ _M_new_elements_at_front(size_type __new_elems)
+ {
+ size_type __new_nodes
+ = (__new_elems + _S_buffer_size() - 1) / _S_buffer_size();
+ _M_reserve_map_at_front(__new_nodes);
+ size_type __i;
+ try
+ {
+ for (__i = 1; __i <= __new_nodes; ++__i)
+ *(_M_start._M_node - __i) = _M_allocate_node();
+ }
+ catch(...)
+ {
+ for (size_type __j = 1; __j < __i; ++__j)
+ _M_deallocate_node(*(_M_start._M_node - __j));
+ __throw_exception_again;
+ }
+ }
+
+ template <typename _Tp, typename _Alloc>
+ void
+ deque<_Tp,_Alloc>::
+ _M_new_elements_at_back(size_type __new_elems)
+ {
+ size_type __new_nodes
+ = (__new_elems + _S_buffer_size() - 1) / _S_buffer_size();
+ _M_reserve_map_at_back(__new_nodes);
+ size_type __i;
+ try
+ {
+ for (__i = 1; __i <= __new_nodes; ++__i)
+ *(_M_finish._M_node + __i) = _M_allocate_node();
+ }
+ catch(...)
+ {
+ for (size_type __j = 1; __j < __i; ++__j)
+ _M_deallocate_node(*(_M_finish._M_node + __j));
+ __throw_exception_again;
+ }
+ }
+
+ template <typename _Tp, typename _Alloc>
+ void
+ deque<_Tp,_Alloc>::
+ _M_reallocate_map(size_type __nodes_to_add, bool __add_at_front)
+ {
+ size_type __old_num_nodes = _M_finish._M_node - _M_start._M_node + 1;
+ size_type __new_num_nodes = __old_num_nodes + __nodes_to_add;
+
+ _Map_pointer __new_nstart;
+ if (_M_map_size > 2 * __new_num_nodes)
+ {
+ __new_nstart = _M_map + (_M_map_size - __new_num_nodes) / 2
+ + (__add_at_front ? __nodes_to_add : 0);
+ if (__new_nstart < _M_start._M_node)
+ copy(_M_start._M_node, _M_finish._M_node + 1, __new_nstart);
+ else
+ copy_backward(_M_start._M_node, _M_finish._M_node + 1,
+ __new_nstart + __old_num_nodes);
+ }
+ else
+ {
+ size_type __new_map_size =
+ _M_map_size + max(_M_map_size, __nodes_to_add) + 2;
+
+ _Map_pointer __new_map = _M_allocate_map(__new_map_size);
+ __new_nstart = __new_map + (__new_map_size - __new_num_nodes) / 2
+ + (__add_at_front ? __nodes_to_add : 0);
+ copy(_M_start._M_node, _M_finish._M_node + 1, __new_nstart);
+ _M_deallocate_map(_M_map, _M_map_size);
+
+ _M_map = __new_map;
+ _M_map_size = __new_map_size;
+ }
+
+ _M_start._M_set_node(__new_nstart);
+ _M_finish._M_set_node(__new_nstart + __old_num_nodes - 1);
+ }
+} // namespace std
+
+#endif /* __GLIBCPP_INTERNAL_DEQUE_TCC */
+
diff --git a/contrib/libstdc++/include/bits/fpos.h b/contrib/libstdc++/include/bits/fpos.h
index 279e0ab..5432527 100644
--- a/contrib/libstdc++/include/bits/fpos.h
+++ b/contrib/libstdc++/include/bits/fpos.h
@@ -48,7 +48,10 @@ namespace std
{
// 27.4.1 Types
- // 27.4.3 Template class fpos
+ // [27.4.3] template class fpos
+ /**
+ * @doctodo
+ */
template<typename _StateT>
class fpos
{
@@ -113,9 +116,10 @@ namespace std
_M_position(streamoff __off) { _M_off = __off; }
};
- // 27.2, paragraph 10 about fpos/char_traits circularity
+ /// 27.2, paragraph 10 about fpos/char_traits circularity
typedef fpos<mbstate_t> streampos;
# ifdef _GLIBCPP_USE_WCHAR_T
+ /// 27.2, paragraph 10 about fpos/char_traits circularity
typedef fpos<mbstate_t> wstreampos;
# endif
} // namespace std
diff --git a/contrib/libstdc++/include/bits/fstream.tcc b/contrib/libstdc++/include/bits/fstream.tcc
index 0b3bec1..c69ac9c 100644
--- a/contrib/libstdc++/include/bits/fstream.tcc
+++ b/contrib/libstdc++/include/bits/fstream.tcc
@@ -58,7 +58,7 @@ namespace std
template<typename _CharT, typename _Traits>
void
basic_filebuf<_CharT, _Traits>::
- _M_destroy_internal_buffer()
+ _M_destroy_internal_buffer() throw()
{
if (_M_buf_allocated)
{
@@ -90,11 +90,18 @@ namespace std
{
_M_allocate_internal_buffer();
_M_mode = __mode;
+
+ // Setup initial position of buffer.
_M_set_indeterminate();
if ((__mode & ios_base::ate)
&& this->seekoff(0, ios_base::end, __mode) < 0)
- this->close();
+ {
+ // 27.8.1.3,4
+ this->close();
+ return __ret;
+ }
+
__ret = this;
}
}
@@ -104,35 +111,46 @@ namespace std
template<typename _CharT, typename _Traits>
typename basic_filebuf<_CharT, _Traits>::__filebuf_type*
basic_filebuf<_CharT, _Traits>::
- close()
+ close() throw()
{
- __filebuf_type *__ret = NULL;
+ __filebuf_type* __ret = NULL;
if (this->is_open())
{
- const int_type __eof = traits_type::eof();
- bool __testput = _M_out_cur && _M_out_beg < _M_out_end;
- if (__testput
- && traits_type::eq_int_type(_M_really_overflow(__eof), __eof))
- return __ret;
+ bool __testfail = false;
+ try
+ {
+ const int_type __eof = traits_type::eof();
+ bool __testput = _M_out_cur && _M_out_beg < _M_out_end;
+ if (__testput
+ && traits_type::eq_int_type(_M_really_overflow(__eof),
+ __eof))
+ __testfail = true;
+
+#if 0
+ // XXX not done
+ if (_M_last_overflowed)
+ {
+ _M_output_unshift();
+ _M_really_overflow(__eof);
+ }
+#endif
+ }
+ catch(...)
+ {
+ __testfail = true;
+ }
// NB: Do this here so that re-opened filebufs will be cool...
- _M_mode = ios_base::openmode(0);
+ this->_M_mode = ios_base::openmode(0);
_M_destroy_internal_buffer();
_M_pback_destroy();
-
-#if 0
- // XXX not done
- if (_M_last_overflowed)
- {
- _M_output_unshift();
- _M_really_overflow(__eof);
- }
-#endif
- if (_M_file.close())
+ if (!_M_file.close())
+ __testfail = true;
+
+ if (!__testfail)
__ret = this;
}
-
_M_last_overflowed = false;
return __ret;
}
@@ -144,9 +162,16 @@ namespace std
{
streamsize __ret = -1;
bool __testin = _M_mode & ios_base::in;
+ const locale __loc = this->getloc();
+ const __codecvt_type& __cvt = use_facet<__codecvt_type>(__loc);
if (__testin && this->is_open())
- __ret = _M_in_end - _M_in_cur;
+ {
+ __ret = _M_in_end - _M_in_cur;
+ if (__cvt.always_noconv())
+ __ret += _M_file.showmanyc_helper();
+ }
+
_M_last_overflowed = false;
return __ret;
}
@@ -198,21 +223,26 @@ namespace std
}
else
{
- // At the beginning of the buffer, need to make a
- // putback position available.
- this->seekoff(-1, ios_base::cur);
- this->underflow();
- if (!__testeof)
+ // At the beginning of the buffer, need to make a
+ // putback position available.
+ // But the seek may fail (f.i., at the beginning of
+ // a file, see libstdc++/9439) and in that case
+ // we return traits_type::eof()
+ if (this->seekoff(-1, ios_base::cur) >= 0)
{
- if (!traits_type::eq(__c, *_M_in_cur))
- {
- _M_pback_create();
- *_M_in_cur = __c;
- }
- __ret = __i;
+ this->underflow();
+ if (!__testeof)
+ {
+ if (!traits_type::eq(__c, *_M_in_cur))
+ {
+ _M_pback_create();
+ *_M_in_cur = __c;
+ }
+ __ret = __i;
+ }
+ else
+ __ret = traits_type::not_eof(__i);
}
- else
- __ret = traits_type::not_eof(__i);
}
}
_M_last_overflowed = false;
@@ -230,7 +260,9 @@ namespace std
if (__testout)
{
- if (__testput)
+ if (traits_type::eq_int_type(__c, traits_type::eof()))
+ __ret = traits_type::not_eof(__c);
+ else if (__testput)
{
*_M_out_cur = traits_type::to_char_type(__c);
_M_out_cur_move(1);
@@ -268,14 +300,23 @@ namespace std
char* __buf = static_cast<char*>(__builtin_alloca(__blen));
char* __bend;
const char_type* __iend;
- __res_type __r = __cvt.out(_M_state_cur, __ibuf, __ibuf + __ilen,
- __iend, __buf, __buf + __blen, __bend);
- // Result == ok, partial, noconv
- if (__r != codecvt_base::error)
+ codecvt_base::result __r;
+ __r = __cvt.out(_M_state_cur, __ibuf, __ibuf + __ilen,
+ __iend, __buf, __buf + __blen, __bend);
+
+ if (__r == codecvt_base::ok || __r == codecvt_base::partial)
__blen = __bend - __buf;
- // Result == error
- else
- __blen = 0;
+ else if (__r == codecvt_base::noconv)
+ {
+ // Same as the always_noconv case above.
+ __buf = reinterpret_cast<char*>(__ibuf);
+ __blen = __ilen;
+ }
+ else
+ {
+ // Result == error
+ __blen = 0;
+ }
if (__blen)
{
@@ -291,11 +332,8 @@ namespace std
__r = __cvt.out(_M_state_cur, __iresume, __iresume + __rlen,
__iend, __buf, __buf + __blen, __bend);
if (__r != codecvt_base::error)
- __rlen = __bend - __buf;
- else
- __rlen = 0;
- if (__rlen)
{
+ __rlen = __bend - __buf;
__elen += _M_file.xsputn(__buf, __rlen);
__plen += __rlen;
}
@@ -310,7 +348,7 @@ namespace std
{
int_type __ret = traits_type::eof();
bool __testput = _M_out_cur && _M_out_beg < _M_out_end;
- bool __testunbuffered = _M_file.is_open() && !_M_buf_size_opt;
+ bool __testunbuffered = _M_file.is_open() && !_M_buf_size;
if (__testput || __testunbuffered)
{
@@ -333,26 +371,32 @@ namespace std
_M_convert_to_external(_M_out_beg, _M_out_end - _M_out_beg,
__elen, __plen);
- // Convert pending sequence to external representation, output.
- // If eof, then just attempt sync.
- if (!traits_type::eq_int_type(__c, traits_type::eof()))
- {
- char_type __pending = traits_type::to_char_type(__c);
- _M_convert_to_external(&__pending, 1, __elen, __plen);
-
- // User code must flush when switching modes (thus don't sync).
- if (__elen == __plen)
+ // Checks for codecvt.out failures and _M_file.xsputn failures,
+ // respectively, inside _M_convert_to_external.
+ if (__testunbuffered || (__elen && __elen == __plen))
+ {
+ // Convert pending sequence to external representation, output.
+ // If eof, then just attempt sync.
+ if (!traits_type::eq_int_type(__c, traits_type::eof()))
{
- _M_set_indeterminate();
- __ret = traits_type::not_eof(__c);
+ char_type __pending = traits_type::to_char_type(__c);
+ _M_convert_to_external(&__pending, 1, __elen, __plen);
+
+ // User code must flush when switching modes (thus
+ // don't sync).
+ if (__elen == __plen && __elen)
+ {
+ _M_set_indeterminate();
+ __ret = traits_type::not_eof(__c);
+ }
}
- }
- else if (!_M_file.sync())
- {
- _M_set_indeterminate();
- __ret = traits_type::not_eof(__c);
- }
- }
+ else if (!_M_file.sync())
+ {
+ _M_set_indeterminate();
+ __ret = traits_type::not_eof(__c);
+ }
+ }
+ }
_M_last_overflowed = true;
return __ret;
}
@@ -391,12 +435,13 @@ namespace std
bool __testin = (ios_base::in & _M_mode & __mode) != 0;
bool __testout = (ios_base::out & _M_mode & __mode) != 0;
- // Should probably do has_facet checks here.
- int __width = use_facet<__codecvt_type>(_M_buf_locale).encoding();
+ int __width = 0;
+ if (has_facet<__codecvt_type>(this->_M_buf_locale))
+ __width = use_facet<__codecvt_type>(this->_M_buf_locale).encoding();
if (__width < 0)
__width = 0;
- bool __testfail = __off != 0 && __width <= 0;
-
+
+ bool __testfail = __off != 0 && __width <= 0;
if (this->is_open() && !__testfail && (__testin || __testout))
{
// Ditch any pback buffers to avoid confusion.
@@ -420,7 +465,8 @@ namespace std
//in
else if (__testget && __way == ios_base::cur)
__computed_off += _M_in_cur - _M_filepos;
-
+
+ // Return pos_type(off_type(-1)) in case of failure.
__ret = _M_file.seekoff(__computed_off, __way, __mode);
_M_set_indeterminate();
}
@@ -428,8 +474,14 @@ namespace std
// state, ie _M_file._offset == -1
else
{
- __ret = _M_file.seekoff(__off, ios_base::cur, __mode);
- __ret += max(_M_out_cur, _M_in_cur) - _M_filepos;
+ pos_type __tmp =
+ _M_file.seekoff(__off, ios_base::cur, __mode);
+ if (__tmp >= 0)
+ {
+ // Seek successful.
+ __ret = __tmp;
+ __ret += max(_M_out_cur, _M_in_cur) - _M_filepos;
+ }
}
}
_M_last_overflowed = false;
@@ -473,6 +525,7 @@ namespace std
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
+#if _GLIBCPP_EXTERN_TEMPLATE
extern template class basic_filebuf<char>;
extern template class basic_ifstream<char>;
extern template class basic_ofstream<char>;
@@ -484,6 +537,7 @@ namespace std
extern template class basic_ofstream<wchar_t>;
extern template class basic_fstream<wchar_t>;
#endif
+#endif
} // namespace std
#endif
diff --git a/contrib/libstdc++/include/bits/gslice_array.h b/contrib/libstdc++/include/bits/gslice_array.h
index 8989ac5..1116e9c 100644
--- a/contrib/libstdc++/include/bits/gslice_array.h
+++ b/contrib/libstdc++/include/bits/gslice_array.h
@@ -41,129 +41,131 @@
namespace std {
- template<typename _Tp> class gslice_array
+ template<typename _Tp>
+ class gslice_array
{
public:
- typedef _Tp value_type;
-
- void operator= (const valarray<_Tp>&) const;
- void operator*= (const valarray<_Tp>&) const;
- void operator/= (const valarray<_Tp>&) const;
- void operator%= (const valarray<_Tp>&) const;
- void operator+= (const valarray<_Tp>&) const;
- void operator-= (const valarray<_Tp>&) const;
- void operator^= (const valarray<_Tp>&) const;
- void operator&= (const valarray<_Tp>&) const;
- void operator|= (const valarray<_Tp>&) const;
- void operator<<=(const valarray<_Tp>&) const;
- void operator>>=(const valarray<_Tp>&) const;
- void operator=(const _Tp&);
-
- template<class _Dom>
- void operator= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator*= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator/= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator%= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator+= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator-= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator^= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator&= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator|= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator<<= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator>>= (const _Expr<_Dom,_Tp>&) const;
+ typedef _Tp value_type;
+
+ void operator=(const valarray<_Tp>&) const;
+ void operator*=(const valarray<_Tp>&) const;
+ void operator/=(const valarray<_Tp>&) const;
+ void operator%=(const valarray<_Tp>&) const;
+ void operator+=(const valarray<_Tp>&) const;
+ void operator-=(const valarray<_Tp>&) const;
+ void operator^=(const valarray<_Tp>&) const;
+ void operator&=(const valarray<_Tp>&) const;
+ void operator|=(const valarray<_Tp>&) const;
+ void operator<<=(const valarray<_Tp>&) const;
+ void operator>>=(const valarray<_Tp>&) const;
+ void operator=(const _Tp&) const;
+
+ template<class _Dom>
+ void operator=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator*=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator/=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator%=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator+=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator-=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator^=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator&=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator|=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator<<=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator>>=(const _Expr<_Dom,_Tp>&) const;
private:
- _Array<_Tp> _M_array;
- const valarray<size_t>& _M_index;
+ _Array<_Tp> _M_array;
+ const valarray<size_t>& _M_index;
- friend class valarray<_Tp>;
-
- gslice_array (_Array<_Tp>, const valarray<size_t>&);
+ friend class valarray<_Tp>;
+
+ gslice_array(_Array<_Tp>, const valarray<size_t>&);
- // this constructor needs to be implemented.
- gslice_array (const gslice_array&);
+ // this constructor needs to be implemented.
+ gslice_array(const gslice_array&);
- // not implemented
- gslice_array();
- gslice_array& operator= (const gslice_array&);
+ // not implemented
+ gslice_array();
+ gslice_array& operator= (const gslice_array&);
};
- template<typename _Tp>
+ template<typename _Tp>
inline
- gslice_array<_Tp>::gslice_array (_Array<_Tp> __a,
- const valarray<size_t>& __i)
- : _M_array (__a), _M_index (__i) {}
+ gslice_array<_Tp>::gslice_array(_Array<_Tp> __a,
+ const valarray<size_t>& __i)
+ : _M_array(__a), _M_index(__i) {}
- template<typename _Tp>
+ template<typename _Tp>
inline
- gslice_array<_Tp>::gslice_array (const gslice_array<_Tp>& __a)
- : _M_array (__a._M_array), _M_index (__a._M_index) {}
+ gslice_array<_Tp>::gslice_array(const gslice_array<_Tp>& __a)
+ : _M_array(__a._M_array), _M_index(__a._M_index) {}
- template<typename _Tp>
+ template<typename _Tp>
inline void
- gslice_array<_Tp>::operator= (const _Tp& __t)
+ gslice_array<_Tp>::operator=(const _Tp& __t) const
{
- __valarray_fill (_M_array, _Array<size_t>(_M_index),
- _M_index.size(), __t);
+ __valarray_fill(_M_array, _Array<size_t>(_M_index),
+ _M_index.size(), __t);
}
- template<typename _Tp>
+ template<typename _Tp>
inline void
- gslice_array<_Tp>::operator= (const valarray<_Tp>& __v) const
+ gslice_array<_Tp>::operator=(const valarray<_Tp>& __v) const
{
- __valarray_copy (_Array<_Tp> (__v), __v.size (),
- _M_array, _Array<size_t>(_M_index));
+ __valarray_copy(_Array<_Tp>(__v), __v.size(),
+ _M_array, _Array<size_t>(_M_index));
}
- template<typename _Tp>
- template<class E>
- inline void
- gslice_array<_Tp>::operator= (const _Expr<E, _Tp>& __e) const
- {
- __valarray_copy (__e, _M_index.size(), _M_array,
- _Array<size_t>(_M_index));
- }
+ template<typename _Tp>
+ template<class _Dom>
+ inline void
+ gslice_array<_Tp>::operator=(const _Expr<_Dom, _Tp>& __e) const
+ {
+ __valarray_copy (__e, _M_index.size(), _M_array,
+ _Array<size_t>(_M_index));
+ }
#undef _DEFINE_VALARRAY_OPERATOR
-#define _DEFINE_VALARRAY_OPERATOR(op, name) \
-template<typename _Tp> \
-inline void \
-gslice_array<_Tp>::operator op##= (const valarray<_Tp>& __v) const \
-{ \
- _Array_augmented_##name (_M_array, _Array<size_t>(_M_index), \
- _Array<_Tp> (__v), __v.size ()); \
-} \
+#define _DEFINE_VALARRAY_OPERATOR(_Op, _Name) \
+ template<typename _Tp> \
+ inline void \
+ gslice_array<_Tp>::operator _Op##=(const valarray<_Tp>& __v) const \
+ { \
+ _Array_augmented_##_Name(_M_array, _Array<size_t>(_M_index), \
+ _Array<_Tp>(__v), __v.size()); \
+ } \
\
-template<typename _Tp> template<class E> \
-inline void \
-gslice_array<_Tp>::operator op##= (const _Expr<E, _Tp>& __e) const \
-{ \
- _Array_augmented_##name (_M_array, _Array<size_t>(_M_index), __e, \
- _M_index.size()); \
-}
-
-_DEFINE_VALARRAY_OPERATOR(*, multiplies)
-_DEFINE_VALARRAY_OPERATOR(/, divides)
-_DEFINE_VALARRAY_OPERATOR(%, modulus)
-_DEFINE_VALARRAY_OPERATOR(+, plus)
-_DEFINE_VALARRAY_OPERATOR(-, minus)
-_DEFINE_VALARRAY_OPERATOR(^, xor)
-_DEFINE_VALARRAY_OPERATOR(&, and)
-_DEFINE_VALARRAY_OPERATOR(|, or)
-_DEFINE_VALARRAY_OPERATOR(<<, shift_left)
-_DEFINE_VALARRAY_OPERATOR(>>, shift_right)
+ template<typename _Tp> \
+ template<class _Dom> \
+ inline void \
+ gslice_array<_Tp>::operator _Op##= (const _Expr<_Dom, _Tp>& __e) const\
+ { \
+ _Array_augmented_##_Name(_M_array, _Array<size_t>(_M_index), __e,\
+ _M_index.size()); \
+ }
+
+_DEFINE_VALARRAY_OPERATOR(*, __multiplies)
+_DEFINE_VALARRAY_OPERATOR(/, __divides)
+_DEFINE_VALARRAY_OPERATOR(%, __modulus)
+_DEFINE_VALARRAY_OPERATOR(+, __plus)
+_DEFINE_VALARRAY_OPERATOR(-, __minus)
+_DEFINE_VALARRAY_OPERATOR(^, __bitwise_xor)
+_DEFINE_VALARRAY_OPERATOR(&, __bitwise_and)
+_DEFINE_VALARRAY_OPERATOR(|, __bitwise_or)
+_DEFINE_VALARRAY_OPERATOR(<<, __shift_left)
+_DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
#undef _DEFINE_VALARRAY_OPERATOR
diff --git a/contrib/libstdc++/include/bits/indirect_array.h b/contrib/libstdc++/include/bits/indirect_array.h
index a5737e9..9fc973e 100644
--- a/contrib/libstdc++/include/bits/indirect_array.h
+++ b/contrib/libstdc++/include/bits/indirect_array.h
@@ -1,6 +1,7 @@
// The template and inlines for the -*- C++ -*- indirect_array class.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -48,70 +49,70 @@ namespace std
typedef _Tp value_type;
// XXX: This is a proposed resolution for DR-253.
- indirect_array& operator= (const indirect_array&);
-
- void operator= (const valarray<_Tp>&) const;
- void operator*= (const valarray<_Tp>&) const;
- void operator/= (const valarray<_Tp>&) const;
- void operator%= (const valarray<_Tp>&) const;
- void operator+= (const valarray<_Tp>&) const;
- void operator-= (const valarray<_Tp>&) const;
- void operator^= (const valarray<_Tp>&) const;
- void operator&= (const valarray<_Tp>&) const;
- void operator|= (const valarray<_Tp>&) const;
- void operator<<= (const valarray<_Tp>&) const;
- void operator>>= (const valarray<_Tp>&) const;
- void operator= (const _Tp&);
+ indirect_array& operator=(const indirect_array&);
+
+ void operator=(const valarray<_Tp>&) const;
+ void operator*=(const valarray<_Tp>&) const;
+ void operator/=(const valarray<_Tp>&) const;
+ void operator%=(const valarray<_Tp>&) const;
+ void operator+=(const valarray<_Tp>&) const;
+ void operator-=(const valarray<_Tp>&) const;
+ void operator^=(const valarray<_Tp>&) const;
+ void operator&=(const valarray<_Tp>&) const;
+ void operator|=(const valarray<_Tp>&) const;
+ void operator<<=(const valarray<_Tp>&) const;
+ void operator>>=(const valarray<_Tp>&) const;
+ void operator= (const _Tp&) const;
// ~indirect_array();
-
+
template<class _Dom>
- void operator= (const _Expr<_Dom, _Tp>&) const;
+ void operator=(const _Expr<_Dom, _Tp>&) const;
template<class _Dom>
- void operator*= (const _Expr<_Dom, _Tp>&) const;
+ void operator*=(const _Expr<_Dom, _Tp>&) const;
template<class _Dom>
- void operator/= (const _Expr<_Dom, _Tp>&) const;
+ void operator/=(const _Expr<_Dom, _Tp>&) const;
template<class _Dom>
- void operator%= (const _Expr<_Dom, _Tp>&) const;
+ void operator%=(const _Expr<_Dom, _Tp>&) const;
template<class _Dom>
- void operator+= (const _Expr<_Dom, _Tp>&) const;
+ void operator+=(const _Expr<_Dom, _Tp>&) const;
template<class _Dom>
- void operator-= (const _Expr<_Dom, _Tp>&) const;
+ void operator-=(const _Expr<_Dom, _Tp>&) const;
template<class _Dom>
- void operator^= (const _Expr<_Dom, _Tp>&) const;
+ void operator^=(const _Expr<_Dom, _Tp>&) const;
template<class _Dom>
- void operator&= (const _Expr<_Dom, _Tp>&) const;
+ void operator&=(const _Expr<_Dom, _Tp>&) const;
template<class _Dom>
- void operator|= (const _Expr<_Dom, _Tp>&) const;
+ void operator|=(const _Expr<_Dom, _Tp>&) const;
template<class _Dom>
- void operator<<= (const _Expr<_Dom, _Tp>&) const;
+ void operator<<=(const _Expr<_Dom, _Tp>&) const;
template<class _Dom>
- void operator>>= (const _Expr<_Dom, _Tp>&) const;
+ void operator>>=(const _Expr<_Dom, _Tp>&) const;
private:
- indirect_array (const indirect_array&);
- indirect_array (_Array<_Tp>, size_t, _Array<size_t>);
+ indirect_array(const indirect_array&);
+ indirect_array(_Array<_Tp>, size_t, _Array<size_t>);
friend class valarray<_Tp>;
friend class gslice_array<_Tp>;
-
+
const size_t _M_sz;
const _Array<size_t> _M_index;
const _Array<_Tp> _M_array;
-
+
// not implemented
- indirect_array ();
+ indirect_array();
};
template<typename _Tp>
- inline indirect_array<_Tp>::indirect_array(const indirect_array<_Tp>& __a)
- : _M_sz (__a._M_sz), _M_index (__a._M_index),
- _M_array (__a._M_array) {}
+ inline
+ indirect_array<_Tp>::indirect_array(const indirect_array<_Tp>& __a)
+ : _M_sz(__a._M_sz), _M_index(__a._M_index), _M_array(__a._M_array) {}
template<typename _Tp>
inline
- indirect_array<_Tp>::indirect_array (_Array<_Tp> __a, size_t __s,
- _Array<size_t> __i)
- : _M_sz (__s), _M_index (__i), _M_array (__a) {}
+ indirect_array<_Tp>::indirect_array(_Array<_Tp> __a, size_t __s,
+ _Array<size_t> __i)
+ : _M_sz(__s), _M_index(__i), _M_array(__a) {}
template<typename _Tp>
inline indirect_array<_Tp>&
@@ -124,46 +125,47 @@ namespace std
template<typename _Tp>
inline void
- indirect_array<_Tp>::operator= (const _Tp& __t)
+ indirect_array<_Tp>::operator=(const _Tp& __t) const
{ __valarray_fill(_M_array, _M_index, _M_sz, __t); }
template<typename _Tp>
inline void
- indirect_array<_Tp>::operator= (const valarray<_Tp>& __v) const
- { __valarray_copy (_Array<_Tp> (__v), _M_sz, _M_array, _M_index); }
+ indirect_array<_Tp>::operator=(const valarray<_Tp>& __v) const
+ { __valarray_copy(_Array<_Tp>(__v), _M_sz, _M_array, _M_index); }
template<typename _Tp>
template<class _Dom>
- inline void
- indirect_array<_Tp>::operator= (const _Expr<_Dom,_Tp>& __e) const
- { __valarray_copy (__e, _M_sz, _M_array, _M_index); }
+ inline void
+ indirect_array<_Tp>::operator=(const _Expr<_Dom,_Tp>& __e) const
+ { __valarray_copy(__e, _M_sz, _M_array, _M_index); }
#undef _DEFINE_VALARRAY_OPERATOR
-#define _DEFINE_VALARRAY_OPERATOR(op, name) \
-template<typename _Tp> \
-inline void \
-indirect_array<_Tp>::operator op##= (const valarray<_Tp>& __v) const \
-{ \
- _Array_augmented_##name (_M_array, _M_index, _Array<_Tp> (__v), _M_sz); \
-} \
+#define _DEFINE_VALARRAY_OPERATOR(_Op, _Name) \
+ template<typename _Tp> \
+ inline void \
+ indirect_array<_Tp>::operator _Op##=(const valarray<_Tp>& __v) const\
+ { \
+ _Array_augmented_##_Name(_M_array, _M_index, _Array<_Tp>(__v), _M_sz); \
+ } \
\
-template<typename _Tp> template<class _Dom> \
-inline void \
-indirect_array<_Tp>::operator op##= (const _Expr<_Dom,_Tp>& __e) const \
-{ \
- _Array_augmented_##name (_M_array, _M_index, __e, _M_sz); \
-}
-
-_DEFINE_VALARRAY_OPERATOR(*, multiplies)
-_DEFINE_VALARRAY_OPERATOR(/, divides)
-_DEFINE_VALARRAY_OPERATOR(%, modulus)
-_DEFINE_VALARRAY_OPERATOR(+, plus)
-_DEFINE_VALARRAY_OPERATOR(-, minus)
-_DEFINE_VALARRAY_OPERATOR(^, xor)
-_DEFINE_VALARRAY_OPERATOR(&, and)
-_DEFINE_VALARRAY_OPERATOR(|, or)
-_DEFINE_VALARRAY_OPERATOR(<<, shift_left)
-_DEFINE_VALARRAY_OPERATOR(>>, shift_right)
+ template<typename _Tp> \
+ template<class _Dom> \
+ inline void \
+ indirect_array<_Tp>::operator _Op##=(const _Expr<_Dom,_Tp>& __e) const\
+ { \
+ _Array_augmented_##_Name(_M_array, _M_index, __e, _M_sz); \
+ }
+
+_DEFINE_VALARRAY_OPERATOR(*, __multiplies)
+_DEFINE_VALARRAY_OPERATOR(/, __divides)
+_DEFINE_VALARRAY_OPERATOR(%, __modulus)
+_DEFINE_VALARRAY_OPERATOR(+, __plus)
+_DEFINE_VALARRAY_OPERATOR(-, __minus)
+_DEFINE_VALARRAY_OPERATOR(^, __bitwise_xor)
+_DEFINE_VALARRAY_OPERATOR(&, __bitwise_and)
+_DEFINE_VALARRAY_OPERATOR(|, __bitwise_or)
+_DEFINE_VALARRAY_OPERATOR(<<, __shift_left)
+_DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
#undef _DEFINE_VALARRAY_OPERATOR
diff --git a/contrib/libstdc++/include/bits/ios_base.h b/contrib/libstdc++/include/bits/ios_base.h
index a56475c..3437f84 100644
--- a/contrib/libstdc++/include/bits/ios_base.h
+++ b/contrib/libstdc++/include/bits/ios_base.h
@@ -1,6 +1,6 @@
// Iostreams base classes -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -43,6 +43,8 @@
#pragma GCC system_header
#include <bits/atomicity.h>
+#include <bits/localefwd.h>
+#include <bits/locale_classes.h>
namespace std
{
@@ -145,11 +147,20 @@ namespace std
enum _Ios_Seekdir { _M_ios_seekdir_end = 1L << 16 };
// 27.4.2 Class ios_base
+ /**
+ * @brief The very top of the I/O class hierarchy.
+ *
+ * This class defines everything that can be defined about I/O that does
+ * not depend on the type of characters being input or output. Most
+ * people will only see @c ios_base when they need to specify the full
+ * name of the various I/O flags (e.g., the openmodes).
+ */
class ios_base
{
public:
// 27.4.2.1.1 Class ios_base::failure
+ /// These are thrown to indicate problems. Doc me.
class failure : public exception
{
public:
@@ -173,50 +184,152 @@ namespace std
};
// 27.4.2.1.2 Type ios_base::fmtflags
+ /**
+ * @brief This is a bitmask type.
+ *
+ * @c "_Ios_Fmtflags" is implementation-defined, but it is valid to
+ * perform bitwise operations on these values and expect the Right
+ * Thing to happen. Defined objects of type fmtflags are:
+ * - boolalpha
+ * - dec
+ * - fixed
+ * - hex
+ * - internal
+ * - left
+ * - oct
+ * - right
+ * - scientific
+ * - showbase
+ * - showpoint
+ * - showpos
+ * - skipws
+ * - unitbuf
+ * - uppercase
+ * - adjustfield
+ * - basefield
+ * - floatfield
+ */
typedef _Ios_Fmtflags fmtflags;
- // 27.4.2.1.2 Type fmtflags
+ /// Insert/extract @c bool in alphabetic rather than numeric format.
static const fmtflags boolalpha = fmtflags(__ios_flags::_S_boolalpha);
+ /// Converts integer input or generates integer output in decimal base.
static const fmtflags dec = fmtflags(__ios_flags::_S_dec);
+ /// Generate floating-point output in fixed-point notation.
static const fmtflags fixed = fmtflags(__ios_flags::_S_fixed);
+ /// Converts integer input or generates integer output in hexadecimal base.
static const fmtflags hex = fmtflags(__ios_flags::_S_hex);
+ /// Adds fill characters at a designated internal point in certain
+ /// generated output, or identical to @c right if no such point is
+ /// designated.
static const fmtflags internal = fmtflags(__ios_flags::_S_internal);
+ /// Adds fill characters on the right (final positions) of certain
+ /// generated output. (I.e., the thing you print is flush left.)
static const fmtflags left = fmtflags(__ios_flags::_S_left);
+ /// Converts integer input or generates integer output in octal base.
static const fmtflags oct = fmtflags(__ios_flags::_S_oct);
+ /// Adds fill characters on the left (initial positions) of certain
+ /// generated output. (I.e., the thing you print is flush right.)
static const fmtflags right = fmtflags(__ios_flags::_S_right);
+ /// Generates floating-point output in scientific notation.
static const fmtflags scientific = fmtflags(__ios_flags::_S_scientific);
+ /// Generates a prefix indicating the numeric base of generated integer
+ /// output.
static const fmtflags showbase = fmtflags(__ios_flags::_S_showbase);
+ /// Generates a decimal-point character unconditionally in generated
+ /// floating-point output.
static const fmtflags showpoint = fmtflags(__ios_flags::_S_showpoint);
+ /// Generates a + sign in non-negative generated numeric output.
static const fmtflags showpos = fmtflags(__ios_flags::_S_showpos);
+ /// Skips leading white space before certain input operations.
static const fmtflags skipws = fmtflags(__ios_flags::_S_skipws);
+ /// Flushes output after each output operation.
static const fmtflags unitbuf = fmtflags(__ios_flags::_S_unitbuf);
+ /// Replaces certain lowercase letters with their uppercase equivalents
+ /// in generated output.
static const fmtflags uppercase = fmtflags(__ios_flags::_S_uppercase);
+ /// A mask of left|right|internal. Useful for the 2-arg form of @c setf.
static const fmtflags adjustfield = fmtflags(__ios_flags::_S_adjustfield);
+ /// A mask of dec|oct|hex. Useful for the 2-arg form of @c setf.
static const fmtflags basefield = fmtflags(__ios_flags::_S_basefield);
+ /// A mask of scientific|fixed. Useful for the 2-arg form of @c setf.
static const fmtflags floatfield = fmtflags(__ios_flags::_S_floatfield);
// 27.4.2.1.3 Type ios_base::iostate
+ /**
+ * @brief This is a bitmask type.
+ *
+ * @c "_Ios_Iostate" is implementation-defined, but it is valid to
+ * perform bitwise operations on these values and expect the Right
+ * Thing to happen. Defined objects of type iostate are:
+ * - badbit
+ * - eofbit
+ * - failbit
+ * - goodbit
+ */
typedef _Ios_Iostate iostate;
+ /// Indicates a loss of integrity in an input or output sequence (such
+ /// as an irrecoverable read error from a file).
static const iostate badbit = iostate(__ios_flags::_S_badbit);
+ /// Indicates that an input operation reached the end of an input sequence.
static const iostate eofbit = iostate(__ios_flags::_S_eofbit);
+ /// Indicates that an input operation failed to read the expected
+ /// characters, or that an output operation failed to generate the
+ /// desired characters.
static const iostate failbit = iostate(__ios_flags::_S_failbit);
+ /// Indicates all is well.
static const iostate goodbit = iostate(0);
- // 27.4.2.1.4 Type openmode
+ // 27.4.2.1.4 Type ios_base::openmode
+ /**
+ * @brief This is a bitmask type.
+ *
+ * @c "_Ios_Openmode" is implementation-defined, but it is valid to
+ * perform bitwise operations on these values and expect the Right
+ * Thing to happen. Defined objects of type openmode are:
+ * - app
+ * - ate
+ * - binary
+ * - in
+ * - out
+ * - trunc
+ */
typedef _Ios_Openmode openmode;
+ /// Seek to end before each write.
static const openmode app = openmode(__ios_flags::_S_app);
+ /// Open and seek to end immediately after opening.
static const openmode ate = openmode(__ios_flags::_S_ate);
+ /// Perform input and output in binary mode (as opposed to text mode).
+ /// This is probably not what you think it is; see
+ /// http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#3 and
+ /// http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#7 for more.
static const openmode binary = openmode(__ios_flags::_S_bin);
+ /// Open for input. Default for @c ifstream and fstream.
static const openmode in = openmode(__ios_flags::_S_in);
+ /// Open for output. Default for @c ofstream and fstream.
static const openmode out = openmode(__ios_flags::_S_out);
+ /// Open for input. Default for @c ofstream.
static const openmode trunc = openmode(__ios_flags::_S_trunc);
- // 27.4.2.1.5 Type seekdir
+ // 27.4.2.1.5 Type ios_base::seekdir
+ /**
+ * @brief This is an enumerated type.
+ *
+ * @c "_Ios_Seekdir" is implementation-defined. Defined values
+ * of type seekdir are:
+ * - beg
+ * - cur, equivalent to @c SEEK_CUR in the C standard library.
+ * - end, equivalent to @c SEEK_END in the C standard library.
+ */
typedef _Ios_Seekdir seekdir;
+ /// Request a seek relative to the beginning of the stream.
static const seekdir beg = seekdir(0);
+ /// Request a seek relative to the current position within the sequence.
static const seekdir cur = seekdir(SEEK_CUR);
+ /// Request a seek relative to the current end of the sequence.
static const seekdir end = seekdir(SEEK_END);
#ifdef _GLIBCPP_DEPRECATED
+ // Annex D.6
typedef int io_state;
typedef int open_mode;
typedef int seek_dir;
@@ -226,6 +339,9 @@ namespace std
#endif
// Callbacks;
+ /**
+ * @doctodo
+ */
enum event
{
erase_event,
@@ -233,18 +349,30 @@ namespace std
copyfmt_event
};
+ /**
+ * @doctodo
+ */
typedef void (*event_callback) (event, ios_base&, int);
+ /**
+ * @doctodo
+ */
void
register_callback(event_callback __fn, int __index);
protected:
- // Data Members
+ //@{
+ /**
+ * @if maint
+ * ios_base data members (doc me)
+ * @endif
+ */
streamsize _M_precision;
streamsize _M_width;
fmtflags _M_flags;
iostate _M_exception;
iostate _M_streambuf_state;
+ //@}
// 27.4.2.6 Members for callbacks
// 27.4.2.6 ios_base callbacks
@@ -288,6 +416,7 @@ namespace std
_Words _M_word_zero;
// Guaranteed storage.
+ // The first 5 iword and pword slots are reserved for internal use.
static const int _S_local_word_size = 8;
_Words _M_local_word[_S_local_word_size];
@@ -323,15 +452,32 @@ namespace std
static void
_S_ios_destroy();
+ // NB: Allows debugger applications use of the standard streams
+ // from operator new. _S_ios_base_init must be incremented in
+ // _S_ios_create _after_ initialization is completed.
+ static bool
+ _S_initialized() { return _S_ios_base_init; }
+
private:
static int _S_ios_base_init;
static bool _S_synced_with_stdio;
};
- // Fmtflags state:
+ // [27.4.2.2] fmtflags state functions
+ /**
+ * @brief Access to format flags.
+ * @return The format control flags for both input and output.
+ */
inline fmtflags
flags() const { return _M_flags; }
+ /**
+ * @brief Setting new format flags all at once.
+ * @param fmtfl The new flags to set.
+ * @return The previous format control flags.
+ *
+ * This function overwrites all the format flags with @a fmtfl.
+ */
inline fmtflags
flags(fmtflags __fmtfl)
{
@@ -340,6 +486,14 @@ namespace std
return __old;
}
+ /**
+ * @brief Setting new format flags.
+ * @param fmtfl Additional flags to set.
+ * @return The previous format control flags.
+ *
+ * This function sets additional flags in format control. Flags that
+ * were previously set remain set.
+ */
inline fmtflags
setf(fmtflags __fmtfl)
{
@@ -348,6 +502,15 @@ namespace std
return __old;
}
+ /**
+ * @brief Setting new format flags.
+ * @param fmtfl Additional flags to set.
+ * @param mask The flags mask for @a fmtfl.
+ * @return The previous format control flags.
+ *
+ * This function clears @a mask in the format flags, then sets
+ * @a fmtfl @c & @a mask. An example mask is @c ios_base::adjustfield.
+ */
inline fmtflags
setf(fmtflags __fmtfl, fmtflags __mask)
{
@@ -357,12 +520,32 @@ namespace std
return __old;
}
+ /**
+ * @brief Clearing format flags.
+ * @param mask The flags to unset.
+ *
+ * This function clears @a mask in the format flags.
+ */
inline void
unsetf(fmtflags __mask) { _M_flags &= ~__mask; }
+ /**
+ * @brief Flags access.
+ * @return The precision to generate on certain output operations.
+ *
+ * @if maint
+ * Be careful if you try to give a definition of "precision" here; see
+ * DR 189.
+ * @endif
+ */
inline streamsize
precision() const { return _M_precision; }
+ /**
+ * @brief Changing flags.
+ * @param prec The new precision value.
+ * @return The previous value of precision().
+ */
inline streamsize
precision(streamsize __prec)
{
@@ -371,9 +554,20 @@ namespace std
return __old;
}
+ /**
+ * @brief Flags access.
+ * @return The minimum field width to generate on output operations.
+ *
+ * "Minimum field width" refers to the number of characters.
+ */
inline streamsize
width() const { return _M_width; }
+ /**
+ * @brief Changing flags.
+ * @param wide The new width value.
+ * @return The previous value of width().
+ */
inline streamsize
width(streamsize __wide)
{
@@ -382,20 +576,63 @@ namespace std
return __old;
}
+ // [27.4.2.4] ios_base static members
+ /**
+ * @brief Interaction with the standard C I/O objects.
+ * @param sync Whether to synchronize or not.
+ * @return True if the standard streams were previously synchronized.
+ *
+ * The synchronization referred to is @e only that between the standard
+ * C facilities (e.g., stdout) and the standard C++ objects (e.g.,
+ * cout). User-declared streams are unaffected. See
+ * http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#8 for more.
+ */
static bool
sync_with_stdio(bool __sync = true);
- // Locales:
+ // [27.4.2.3] ios_base locale functions
+ /**
+ * @brief Setting a new locale.
+ * @param loc The new locale.
+ * @return The previous locale.
+ *
+ * Sets the new locale for this stream, and
+ * [XXX does something with callbacks].
+ */
locale
imbue(const locale& __loc);
+ /**
+ * @brief Locale access
+ * @return A copy of the current locale.
+ *
+ * If @c imbue(loc) has previously been called, then this function
+ * returns @c loc. Otherwise, it returns a copy of @c std::locale(),
+ * the global C++ locale.
+ */
inline locale
getloc() const { return _M_ios_locale; }
- // Storage:
+ /**
+ * @brief Locale access
+ * @return A reference to the current locale.
+ *
+ * Like getloc above, but returns a reference instead of
+ * generating a copy.
+ */
+ inline const locale&
+ _M_getloc() const { return _M_ios_locale; }
+
+ // [27.4.2.5] ios_base storage functions
+ /**
+ * @doctodo
+ */
static int
xalloc() throw();
+ /**
+ * @doctodo
+ */
inline long&
iword(int __ix)
{
@@ -404,6 +641,9 @@ namespace std
return __word._M_iword;
}
+ /**
+ * @doctodo
+ */
inline void*&
pword(int __ix)
{
@@ -413,6 +653,10 @@ namespace std
}
// Destructor
+ /**
+ * Destroys local storage and
+ * [XXX does something with callbacks].
+ */
~ios_base();
protected:
@@ -428,7 +672,8 @@ namespace std
#endif
};
- // 27.4.5.1 fmtflags manipulators:
+ // [27.4.5.1] fmtflags manipulators
+ /// Calls base.setf(ios_base::boolalpha).
inline ios_base&
boolalpha(ios_base& __base)
{
@@ -436,6 +681,7 @@ namespace std
return __base;
}
+ /// Calls base.unsetf(ios_base::boolalpha).
inline ios_base&
noboolalpha(ios_base& __base)
{
@@ -443,6 +689,7 @@ namespace std
return __base;
}
+ /// Calls base.setf(ios_base::showbase).
inline ios_base&
showbase(ios_base& __base)
{
@@ -450,6 +697,7 @@ namespace std
return __base;
}
+ /// Calls base.unsetf(ios_base::showbase).
inline ios_base&
noshowbase(ios_base& __base)
{
@@ -457,6 +705,7 @@ namespace std
return __base;
}
+ /// Calls base.setf(ios_base::showpoint).
inline ios_base&
showpoint(ios_base& __base)
{
@@ -464,6 +713,7 @@ namespace std
return __base;
}
+ /// Calls base.unsetf(ios_base::showpoint).
inline ios_base&
noshowpoint(ios_base& __base)
{
@@ -471,6 +721,7 @@ namespace std
return __base;
}
+ /// Calls base.setf(ios_base::showpos).
inline ios_base&
showpos(ios_base& __base)
{
@@ -478,6 +729,7 @@ namespace std
return __base;
}
+ /// Calls base.unsetf(ios_base::showpos).
inline ios_base&
noshowpos(ios_base& __base)
{
@@ -485,6 +737,7 @@ namespace std
return __base;
}
+ /// Calls base.setf(ios_base::skipws).
inline ios_base&
skipws(ios_base& __base)
{
@@ -492,6 +745,7 @@ namespace std
return __base;
}
+ /// Calls base.unsetf(ios_base::skipws).
inline ios_base&
noskipws(ios_base& __base)
{
@@ -499,6 +753,7 @@ namespace std
return __base;
}
+ /// Calls base.setf(ios_base::uppercase).
inline ios_base&
uppercase(ios_base& __base)
{
@@ -506,6 +761,7 @@ namespace std
return __base;
}
+ /// Calls base.unsetf(ios_base::uppercase).
inline ios_base&
nouppercase(ios_base& __base)
{
@@ -513,6 +769,7 @@ namespace std
return __base;
}
+ /// Calls base.setf(ios_base::unitbuf).
inline ios_base&
unitbuf(ios_base& __base)
{
@@ -520,6 +777,7 @@ namespace std
return __base;
}
+ /// Calls base.unsetf(ios_base::unitbuf).
inline ios_base&
nounitbuf(ios_base& __base)
{
@@ -527,7 +785,8 @@ namespace std
return __base;
}
- // 27.4.5.2 adjustfield anipulators:
+ // [27.4.5.2] adjustfield anipulators
+ /// Calls base.setf(ios_base::internal, ios_base::adjustfield).
inline ios_base&
internal(ios_base& __base)
{
@@ -535,6 +794,7 @@ namespace std
return __base;
}
+ /// Calls base.setf(ios_base::left, ios_base::adjustfield).
inline ios_base&
left(ios_base& __base)
{
@@ -542,6 +802,7 @@ namespace std
return __base;
}
+ /// Calls base.setf(ios_base::right, ios_base::adjustfield).
inline ios_base&
right(ios_base& __base)
{
@@ -549,7 +810,8 @@ namespace std
return __base;
}
- // 27.4.5.3 basefield anipulators:
+ // [27.4.5.3] basefield anipulators
+ /// Calls base.setf(ios_base::dec, ios_base::basefield).
inline ios_base&
dec(ios_base& __base)
{
@@ -557,6 +819,7 @@ namespace std
return __base;
}
+ /// Calls base.setf(ios_base::hex, ios_base::basefield).
inline ios_base&
hex(ios_base& __base)
{
@@ -564,6 +827,7 @@ namespace std
return __base;
}
+ /// Calls base.setf(ios_base::oct, ios_base::basefield).
inline ios_base&
oct(ios_base& __base)
{
@@ -571,7 +835,8 @@ namespace std
return __base;
}
- // 27.4.5.4 floatfield anipulators:
+ // [27.4.5.4] floatfield anipulators
+ /// Calls base.setf(ios_base::fixed, ios_base::floatfield).
inline ios_base&
fixed(ios_base& __base)
{
@@ -579,6 +844,7 @@ namespace std
return __base;
}
+ /// Calls base.setf(ios_base::scientific, ios_base::floatfield).
inline ios_base&
scientific(ios_base& __base)
{
diff --git a/contrib/libstdc++/include/bits/istream.tcc b/contrib/libstdc++/include/bits/istream.tcc
index a6e49a9..7ba6735 100644
--- a/contrib/libstdc++/include/bits/istream.tcc
+++ b/contrib/libstdc++/include/bits/istream.tcc
@@ -1,6 +1,6 @@
// istream classes -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -118,11 +118,11 @@ namespace std
_M_fnumget->get(*this, 0, *this, __err, __n);
this->setstate(__err);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -155,11 +155,11 @@ namespace std
#endif
this->setstate(__err);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -182,11 +182,11 @@ namespace std
_M_fnumget->get(*this, 0, *this, __err, __n);
this->setstate(__err);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -219,11 +219,11 @@ namespace std
#endif
this->setstate(__err);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -246,11 +246,11 @@ namespace std
_M_fnumget->get(*this, 0, *this, __err, __n);
this->setstate(__err);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -273,11 +273,11 @@ namespace std
_M_fnumget->get(*this, 0, *this, __err, __n);
this->setstate(__err);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -300,11 +300,11 @@ namespace std
_M_fnumget->get(*this, 0, *this, __err, __n);
this->setstate(__err);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -328,11 +328,11 @@ namespace std
_M_fnumget->get(*this, 0, *this, __err, __n);
this->setstate(__err);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -355,11 +355,11 @@ namespace std
_M_fnumget->get(*this, 0, *this, __err, __n);
this->setstate(__err);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -383,11 +383,11 @@ namespace std
_M_fnumget->get(*this, 0, *this, __err, __n);
this->setstate(__err);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -410,11 +410,11 @@ namespace std
_M_fnumget->get(*this, 0, *this, __err, __n);
this->setstate(__err);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -437,11 +437,11 @@ namespace std
_M_fnumget->get(*this, 0, *this, __err, __n);
this->setstate(__err);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -464,11 +464,11 @@ namespace std
_M_fnumget->get(*this, 0, *this, __err, __n);
this->setstate(__err);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -495,11 +495,11 @@ namespace std
if (!__sbout || !__xtrct)
this->setstate(ios_base::failbit);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.2.5.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -527,11 +527,11 @@ namespace std
else
this->setstate(ios_base::eofbit | ios_base::failbit);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.3 paragraph 1
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -561,11 +561,11 @@ namespace std
else
this->setstate(ios_base::eofbit | ios_base::failbit);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.3 paragraph 1
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -600,11 +600,11 @@ namespace std
if (traits_type::eq_int_type(__c, __eof))
this->setstate(ios_base::eofbit);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.3 paragraph 1
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -643,11 +643,11 @@ namespace std
if (traits_type::eq_int_type(__c, __eof))
this->setstate(ios_base::eofbit);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.3 paragraph 1
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -694,11 +694,11 @@ namespace std
this->setstate(ios_base::failbit);
}
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.3 paragraph 1
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -735,11 +735,11 @@ namespace std
if (traits_type::eq_int_type(__c, __eof))
this->setstate(ios_base::eofbit);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.3 paragraph 1
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -759,11 +759,11 @@ namespace std
{
try
{ __c = this->rdbuf()->sgetc(); }
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.3 paragraph 1
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -786,11 +786,11 @@ namespace std
if (_M_gcount != __n)
this->setstate(ios_base::eofbit | ios_base::failbit);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.3 paragraph 1
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -822,11 +822,11 @@ namespace std
else
this->setstate(ios_base::eofbit);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.3 paragraph 1
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -841,6 +841,10 @@ namespace std
basic_istream<_CharT, _Traits>::
putback(char_type __c)
{
+#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
+// 60. What is a formatted input function?
+ _M_gcount = 0;
+#endif
sentry __cerb(*this, true);
if (__cerb)
{
@@ -852,11 +856,11 @@ namespace std
|| traits_type::eq_int_type(__sb->sputbackc(__c), __eof))
this->setstate(ios_base::badbit);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.3 paragraph 1
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -871,7 +875,10 @@ namespace std
basic_istream<_CharT, _Traits>::
unget(void)
{
+#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
+// 60. What is a formatted input function?
_M_gcount = 0;
+#endif
sentry __cerb(*this, true);
if (__cerb)
{
@@ -883,11 +890,11 @@ namespace std
|| traits_type::eq_int_type(__sb->sungetc(), __eof))
this->setstate(ios_base::badbit);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.3 paragraph 1
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -902,8 +909,8 @@ namespace std
basic_istream<_CharT, _Traits>::
sync(void)
{
+ // DR60. Do not change _M_gcount.
int __ret = -1;
- _M_gcount = 0;
sentry __cerb(*this, true);
if (__cerb)
{
@@ -918,11 +925,11 @@ namespace std
__ret = 0;
}
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.3 paragraph 1
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -935,6 +942,7 @@ namespace std
basic_istream<_CharT, _Traits>::
tellg(void)
{
+ // DR60. Do not change _M_gcount.
pos_type __ret = pos_type(-1);
if (!this->fail())
__ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::in);
@@ -947,7 +955,7 @@ namespace std
basic_istream<_CharT, _Traits>::
seekg(pos_type __pos)
{
- _M_gcount = 0;
+ // DR60. Do not change _M_gcount.
if (!this->fail())
{
#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
@@ -967,7 +975,7 @@ namespace std
basic_istream<_CharT, _Traits>::
seekg(off_type __off, ios_base::seekdir __dir)
{
- _M_gcount = 0;
+ // DR60. Do not change _M_gcount.
if (!this->fail())
{
#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
@@ -994,11 +1002,11 @@ namespace std
{
try
{ __in.get(__c); }
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- __in.setstate(ios_base::badbit);
+ __in._M_setstate(ios_base::badbit);
if ((__in.exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -1026,7 +1034,7 @@ namespace std
{
// Figure out how many characters to extract.
streamsize __num = __in.width();
- if (__num == 0)
+ if (__num <= 0)
__num = numeric_limits<streamsize>::max();
const __ctype_type& __ctype = use_facet<__ctype_type>(__in.getloc());
@@ -1036,9 +1044,9 @@ namespace std
while (__extracted < __num - 1
&& !_Traits::eq_int_type(__c, __eof)
- && !__ctype.is(ctype_base::space, __c))
+ && !__ctype.is(ctype_base::space, _Traits::to_char_type(__c)))
{
- *__s++ = __c;
+ *__s++ = _Traits::to_char_type(__c);
++__extracted;
__c = __sb->snextc();
}
@@ -1051,11 +1059,11 @@ namespace std
#endif
__in.width(0);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- __in.setstate(ios_base::badbit);
+ __in._M_setstate(ios_base::badbit);
if ((__in.exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -1081,7 +1089,7 @@ namespace std
__int_type __c = __sb->sgetc();
while (!_Traits::eq_int_type(__c, __eof)
- && __ctype.is(ctype_base::space, __c))
+ && __ctype.is(ctype_base::space, _Traits::to_char_type(__c)))
__c = __sb->snextc();
if (_Traits::eq_int_type(__c, __eof))
@@ -1119,7 +1127,7 @@ namespace std
while (__extracted < __n
&& !_Traits::eq_int_type(__c, __eof)
- && !__ctype.is(ctype_base::space, __c))
+ && !__ctype.is(ctype_base::space, _Traits::to_char_type(__c)))
{
__str += _Traits::to_char_type(__c);
++__extracted;
@@ -1189,6 +1197,7 @@ namespace std
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
+#if _GLIBCPP_EXTERN_TEMPLATE
extern template class basic_istream<char>;
extern template istream& ws(istream&);
extern template istream& operator>>(istream&, char&);
@@ -1204,4 +1213,5 @@ namespace std
extern template wistream& operator>>(wistream&, wchar_t&);
extern template wistream& operator>>(wistream&, wchar_t*);
#endif
+#endif
} // namespace std
diff --git a/contrib/libstdc++/include/bits/list.tcc b/contrib/libstdc++/include/bits/list.tcc
new file mode 100644
index 0000000..898a502
--- /dev/null
+++ b/contrib/libstdc++/include/bits/list.tcc
@@ -0,0 +1,368 @@
+// List implementation (out of line) -*- C++ -*-
+
+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+/*
+ *
+ * Copyright (c) 1994
+ * Hewlett-Packard Company
+ *
+ * Permission to use, copy, modify, distribute and sell this software
+ * and its documentation for any purpose is hereby granted without fee,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation. Hewlett-Packard Company makes no
+ * representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ *
+ * Copyright (c) 1996,1997
+ * Silicon Graphics Computer Systems, Inc.
+ *
+ * Permission to use, copy, modify, distribute and sell this software
+ * and its documentation for any purpose is hereby granted without fee,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation. Silicon Graphics makes no
+ * representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ */
+
+/** @file list.tcc
+ * This is an internal header file, included by other library headers.
+ * You should not attempt to use it directly.
+ */
+
+#ifndef __GLIBCPP_INTERNAL_LIST_TCC
+#define __GLIBCPP_INTERNAL_LIST_TCC
+
+namespace std
+{
+ template<typename _Tp, typename _Alloc>
+ void
+ _List_base<_Tp,_Alloc>::
+ __clear()
+ {
+ typedef _List_node<_Tp> _Node;
+ _Node* __cur = static_cast<_Node*>(_M_node->_M_next);
+ while (__cur != _M_node)
+ {
+ _Node* __tmp = __cur;
+ __cur = static_cast<_Node*>(__cur->_M_next);
+ _Destroy(&__tmp->_M_data);
+ _M_put_node(__tmp);
+ }
+ _M_node->_M_next = _M_node;
+ _M_node->_M_prev = _M_node;
+ }
+
+ template<typename _Tp, typename _Alloc>
+ typename list<_Tp,_Alloc>::iterator
+ list<_Tp,_Alloc>::
+ insert(iterator __position, const value_type& __x)
+ {
+ _Node* __tmp = _M_create_node(__x);
+ __tmp->_M_next = __position._M_node;
+ __tmp->_M_prev = __position._M_node->_M_prev;
+ __position._M_node->_M_prev->_M_next = __tmp;
+ __position._M_node->_M_prev = __tmp;
+ return __tmp;
+ }
+
+ template<typename _Tp, typename _Alloc>
+ typename list<_Tp,_Alloc>::iterator
+ list<_Tp,_Alloc>::
+ erase(iterator __position)
+ {
+ _List_node_base* __next_node = __position._M_node->_M_next;
+ _List_node_base* __prev_node = __position._M_node->_M_prev;
+ _Node* __n = static_cast<_Node*>(__position._M_node);
+ __prev_node->_M_next = __next_node;
+ __next_node->_M_prev = __prev_node;
+ _Destroy(&__n->_M_data);
+ _M_put_node(__n);
+ return iterator(static_cast<_Node*>(__next_node));
+ }
+
+ template<typename _Tp, typename _Alloc>
+ void
+ list<_Tp,_Alloc>::
+ resize(size_type __new_size, const value_type& __x)
+ {
+ iterator __i = begin();
+ size_type __len = 0;
+ for ( ; __i != end() && __len < __new_size; ++__i, ++__len)
+ ;
+ if (__len == __new_size)
+ erase(__i, end());
+ else // __i == end()
+ insert(end(), __new_size - __len, __x);
+ }
+
+ template<typename _Tp, typename _Alloc>
+ list<_Tp,_Alloc>&
+ list<_Tp,_Alloc>::
+ operator=(const list& __x)
+ {
+ if (this != &__x)
+ {
+ iterator __first1 = begin();
+ iterator __last1 = end();
+ const_iterator __first2 = __x.begin();
+ const_iterator __last2 = __x.end();
+ while (__first1 != __last1 && __first2 != __last2)
+ *__first1++ = *__first2++;
+ if (__first2 == __last2)
+ erase(__first1, __last1);
+ else
+ insert(__last1, __first2, __last2);
+ }
+ return *this;
+ }
+
+ template<typename _Tp, typename _Alloc>
+ void
+ list<_Tp,_Alloc>::
+ _M_fill_assign(size_type __n, const value_type& __val)
+ {
+ iterator __i = begin();
+ for ( ; __i != end() && __n > 0; ++__i, --__n)
+ *__i = __val;
+ if (__n > 0)
+ insert(end(), __n, __val);
+ else
+ erase(__i, end());
+ }
+
+ template<typename _Tp, typename _Alloc>
+ template <typename _InputIter>
+ void
+ list<_Tp,_Alloc>::
+ _M_assign_dispatch(_InputIter __first2, _InputIter __last2, __false_type)
+ {
+ iterator __first1 = begin();
+ iterator __last1 = end();
+ for (; __first1 != __last1 && __first2 != __last2; ++__first1, ++__first2)
+ *__first1 = *__first2;
+ if (__first2 == __last2)
+ erase(__first1, __last1);
+ else
+ insert(__last1, __first2, __last2);
+ }
+
+ template<typename _Tp, typename _Alloc>
+ void
+ list<_Tp,_Alloc>::
+ remove(const value_type& __value)
+ {
+ iterator __first = begin();
+ iterator __last = end();
+ while (__first != __last)
+ {
+ iterator __next = __first;
+ ++__next;
+ if (*__first == __value)
+ erase(__first);
+ __first = __next;
+ }
+ }
+
+ template<typename _Tp, typename _Alloc>
+ void
+ list<_Tp,_Alloc>::
+ unique()
+ {
+ iterator __first = begin();
+ iterator __last = end();
+ if (__first == __last) return;
+ iterator __next = __first;
+ while (++__next != __last)
+ {
+ if (*__first == *__next)
+ erase(__next);
+ else
+ __first = __next;
+ __next = __first;
+ }
+ }
+
+ template<typename _Tp, typename _Alloc>
+ void
+ list<_Tp,_Alloc>::
+ merge(list& __x)
+ {
+ iterator __first1 = begin();
+ iterator __last1 = end();
+ iterator __first2 = __x.begin();
+ iterator __last2 = __x.end();
+ while (__first1 != __last1 && __first2 != __last2)
+ if (*__first2 < *__first1)
+ {
+ iterator __next = __first2;
+ _M_transfer(__first1, __first2, ++__next);
+ __first2 = __next;
+ }
+ else
+ ++__first1;
+ if (__first2 != __last2)
+ _M_transfer(__last1, __first2, __last2);
+ }
+
+ // FIXME put this somewhere else
+ inline void
+ __List_base_reverse(_List_node_base* __p)
+ {
+ _List_node_base* __tmp = __p;
+ do {
+ std::swap(__tmp->_M_next, __tmp->_M_prev);
+ __tmp = __tmp->_M_prev; // Old next node is now prev.
+ } while (__tmp != __p);
+ }
+
+ template<typename _Tp, typename _Alloc>
+ void
+ list<_Tp,_Alloc>::
+ sort()
+ {
+ // Do nothing if the list has length 0 or 1.
+ if (_M_node->_M_next != _M_node && _M_node->_M_next->_M_next != _M_node)
+ {
+ list __carry;
+ list __counter[64];
+ int __fill = 0;
+ while (!empty())
+ {
+ __carry.splice(__carry.begin(), *this, begin());
+ int __i = 0;
+ while(__i < __fill && !__counter[__i].empty())
+ {
+ __counter[__i].merge(__carry);
+ __carry.swap(__counter[__i++]);
+ }
+ __carry.swap(__counter[__i]);
+ if (__i == __fill) ++__fill;
+ }
+
+ for (int __i = 1; __i < __fill; ++__i)
+ __counter[__i].merge(__counter[__i-1]);
+ swap(__counter[__fill-1]);
+ }
+ }
+
+ template<typename _Tp, typename _Alloc>
+ template <typename _Predicate>
+ void
+ list<_Tp,_Alloc>::
+ remove_if(_Predicate __pred)
+ {
+ iterator __first = begin();
+ iterator __last = end();
+ while (__first != __last)
+ {
+ iterator __next = __first;
+ ++__next;
+ if (__pred(*__first)) erase(__first);
+ __first = __next;
+ }
+ }
+
+ template<typename _Tp, typename _Alloc>
+ template <typename _BinaryPredicate>
+ void
+ list<_Tp,_Alloc>::
+ unique(_BinaryPredicate __binary_pred)
+ {
+ iterator __first = begin();
+ iterator __last = end();
+ if (__first == __last) return;
+ iterator __next = __first;
+ while (++__next != __last)
+ {
+ if (__binary_pred(*__first, *__next))
+ erase(__next);
+ else
+ __first = __next;
+ __next = __first;
+ }
+ }
+
+ template<typename _Tp, typename _Alloc>
+ template <typename _StrictWeakOrdering>
+ void
+ list<_Tp,_Alloc>::
+ merge(list& __x, _StrictWeakOrdering __comp)
+ {
+ iterator __first1 = begin();
+ iterator __last1 = end();
+ iterator __first2 = __x.begin();
+ iterator __last2 = __x.end();
+ while (__first1 != __last1 && __first2 != __last2)
+ if (__comp(*__first2, *__first1))
+ {
+ iterator __next = __first2;
+ _M_transfer(__first1, __first2, ++__next);
+ __first2 = __next;
+ }
+ else
+ ++__first1;
+ if (__first2 != __last2) _M_transfer(__last1, __first2, __last2);
+ }
+
+ template<typename _Tp, typename _Alloc>
+ template <typename _StrictWeakOrdering>
+ void
+ list<_Tp,_Alloc>::
+ sort(_StrictWeakOrdering __comp)
+ {
+ // Do nothing if the list has length 0 or 1.
+ if (_M_node->_M_next != _M_node && _M_node->_M_next->_M_next != _M_node)
+ {
+ list __carry;
+ list __counter[64];
+ int __fill = 0;
+ while (!empty())
+ {
+ __carry.splice(__carry.begin(), *this, begin());
+ int __i = 0;
+ while(__i < __fill && !__counter[__i].empty())
+ {
+ __counter[__i].merge(__carry, __comp);
+ __carry.swap(__counter[__i++]);
+ }
+ __carry.swap(__counter[__i]);
+ if (__i == __fill) ++__fill;
+ }
+
+ for (int __i = 1; __i < __fill; ++__i)
+ __counter[__i].merge(__counter[__i-1], __comp);
+ swap(__counter[__fill-1]);
+ }
+ }
+} // namespace std
+
+#endif /* __GLIBCPP_INTERNAL_LIST_TCC */
diff --git a/contrib/libstdc++/include/bits/locale_classes.h b/contrib/libstdc++/include/bits/locale_classes.h
new file mode 100644
index 0000000..ddd23fb
--- /dev/null
+++ b/contrib/libstdc++/include/bits/locale_classes.h
@@ -0,0 +1,404 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+/** @file localefwd.h
+ * This is an internal header file, included by other library headers.
+ * You should not attempt to use it directly.
+ */
+
+#ifndef _CPP_BITS_LOCALE_CLASSES_H
+#define _CPP_BITS_LOCALE_CLASSES_H 1
+
+#pragma GCC system_header
+
+#include <bits/localefwd.h>
+#include <cstring> // For strcmp.
+#include <string>
+#include <bits/atomicity.h>
+
+namespace std
+{
+ class __locale_cache_base;
+ template<typename _Facet> class __locale_cache;
+
+ // 22.1.1 Class locale
+ class locale
+ {
+ public:
+ // Types:
+ typedef unsigned int category;
+
+ // Forward decls and friends:
+ class facet;
+ class id;
+ class _Impl;
+
+ friend class facet;
+ friend class _Impl;
+
+ template<typename _Facet>
+ friend const _Facet&
+ use_facet(const locale&);
+
+ template<typename _Facet>
+ friend bool
+ has_facet(const locale&) throw();
+
+ template<typename _Facet>
+ friend const __locale_cache<_Facet>&
+ __use_cache(const locale&);
+
+ // Category values:
+ // NB: Order must match _S_facet_categories definition in locale.cc
+ static const category none = 0;
+ static const category ctype = 1L << 0;
+ static const category numeric = 1L << 1;
+ static const category collate = 1L << 2;
+ static const category time = 1L << 3;
+ static const category monetary = 1L << 4;
+ static const category messages = 1L << 5;
+ static const category all = (ctype | numeric | collate |
+ time | monetary | messages);
+
+ // Construct/copy/destroy:
+ locale() throw();
+
+ locale(const locale& __other) throw();
+
+ explicit
+ locale(const char* __s);
+
+ locale(const locale& __base, const char* __s, category __cat);
+
+ locale(const locale& __base, const locale& __add, category __cat);
+
+ template<typename _Facet>
+ locale(const locale& __other, _Facet* __f);
+
+ ~locale() throw();
+
+ const locale&
+ operator=(const locale& __other) throw();
+
+ template<typename _Facet>
+ locale
+ combine(const locale& __other) const;
+
+ // Locale operations:
+ string
+ name() const;
+
+ bool
+ operator==(const locale& __other) const throw ();
+
+ inline bool
+ operator!=(const locale& __other) const throw ()
+ { return !(this->operator==(__other)); }
+
+ template<typename _Char, typename _Traits, typename _Alloc>
+ bool
+ operator()(const basic_string<_Char, _Traits, _Alloc>& __s1,
+ const basic_string<_Char, _Traits, _Alloc>& __s2) const;
+
+ // Global locale objects:
+ static locale
+ global(const locale&);
+
+ static const locale&
+ classic();
+
+ private:
+ // The (shared) implementation
+ _Impl* _M_impl;
+
+ // The "C" reference locale
+ static _Impl* _S_classic;
+
+ // Current global locale
+ static _Impl* _S_global;
+
+ // Number of standard categories. For C++, these categories are
+ // collate, ctype, monetary, numeric, time, and messages. These
+ // directly correspond to ISO C99 macros LC_COLLATE, LC_CTYPE,
+ // LC_MONETARY, LC_NUMERIC, and LC_TIME. In addition, POSIX (IEEE
+ // 1003.1-2001) specifies LC_MESSAGES.
+ static const size_t _S_categories_size = 6;
+
+ // In addition to the standard categories, the underlying
+ // operating system is allowed to define extra LC_*
+ // macros. For GNU systems, the following are also valid:
+ // LC_PAPER, LC_NAME, LC_ADDRESS, LC_TELEPHONE, LC_MEASUREMENT,
+ // and LC_IDENTIFICATION.
+ static const size_t _S_extra_categories_size = _GLIBCPP_NUM_CATEGORIES;
+
+ // Names of underlying locale categories.
+ // NB: locale::global() has to know how to modify all the
+ // underlying categories, not just the ones required by the C++
+ // standard.
+ static const char* _S_categories[_S_categories_size
+ + _S_extra_categories_size];
+
+ explicit
+ locale(_Impl*) throw();
+
+ static inline void
+ _S_initialize()
+ {
+ if (!_S_classic)
+ classic();
+ }
+
+ static category
+ _S_normalize_category(category);
+
+ void
+ _M_coalesce(const locale& __base, const locale& __add, category __cat);
+ };
+
+
+ // Implementation object for locale
+ class locale::_Impl
+ {
+ public:
+ // Friends.
+ friend class locale;
+ friend class locale::facet;
+
+ template<typename _Facet>
+ friend const _Facet&
+ use_facet(const locale&);
+
+ template<typename _Facet>
+ friend bool
+ has_facet(const locale&) throw();
+
+ template<typename _Facet>
+ friend const __locale_cache<_Facet>&
+ __use_cache(const locale&);
+
+ private:
+ // Data Members.
+ _Atomic_word _M_references;
+ facet** _M_facets;
+ size_t _M_facets_size;
+
+ char* _M_names[_S_categories_size
+ + _S_extra_categories_size];
+ static const locale::id* const _S_id_ctype[];
+ static const locale::id* const _S_id_numeric[];
+ static const locale::id* const _S_id_collate[];
+ static const locale::id* const _S_id_time[];
+ static const locale::id* const _S_id_monetary[];
+ static const locale::id* const _S_id_messages[];
+ static const locale::id* const* const _S_facet_categories[];
+
+ inline void
+ _M_add_reference() throw()
+ { __atomic_add(&_M_references, 1); }
+
+ inline void
+ _M_remove_reference() throw()
+ {
+ if (__exchange_and_add(&_M_references, -1) == 1)
+ {
+ try
+ { delete this; }
+ catch(...)
+ { }
+ }
+ }
+
+ _Impl(const _Impl&, size_t);
+ _Impl(const char*, size_t);
+ _Impl(facet**, size_t, bool);
+
+ ~_Impl() throw();
+
+ _Impl(const _Impl&); // Not defined.
+
+ void
+ operator=(const _Impl&); // Not defined.
+
+ inline bool
+ _M_check_same_name()
+ {
+ bool __ret = true;
+ for (size_t __i = 0;
+ __ret && __i < _S_categories_size + _S_extra_categories_size - 1;
+ ++__i)
+ __ret &= (strcmp(_M_names[__i], _M_names[__i + 1]) == 0);
+ return __ret;
+ }
+
+ void
+ _M_replace_categories(const _Impl*, category);
+
+ void
+ _M_replace_category(const _Impl*, const locale::id* const*);
+
+ void
+ _M_replace_facet(const _Impl*, const locale::id*);
+
+ void
+ _M_install_facet(const locale::id*, facet*);
+
+ template<typename _Facet>
+ inline void
+ _M_init_facet(_Facet* __facet)
+ { _M_install_facet(&_Facet::id, __facet); }
+
+ // Retrieve the cache at __index. 0 is returned if the cache is
+ // missing. Cache is actually located at __index +
+ // _M_facets_size. __index must be < _M_facets_size.
+ inline __locale_cache_base*
+ _M_get_cache(size_t __index)
+ {
+ return (__locale_cache_base*)_M_facets[__index + _M_facets_size];
+ }
+
+ // Save the supplied cache at __id. Assumes _M_get_cache has been
+ // called.
+ void
+ _M_install_cache(__locale_cache_base* __cache, int __id)
+ {
+ _M_facets[__id + _M_facets_size] =
+ reinterpret_cast<locale::facet*>(__cache);
+ }
+
+ };
+
+ template<typename _Facet>
+ locale::locale(const locale& __other, _Facet* __f)
+ {
+ _M_impl = new _Impl(*__other._M_impl, 1);
+ _M_impl->_M_install_facet(&_Facet::id, __f);
+ for (size_t __i = 0;
+ __i < _S_categories_size + _S_extra_categories_size; ++__i)
+ {
+ delete [] _M_impl->_M_names[__i];
+ char* __new = new char[2];
+ strcpy(__new, "*");
+ _M_impl->_M_names[__i] = __new;
+ }
+ }
+
+
+ // 22.1.1.1.2 Class locale::facet
+ class locale::facet
+ {
+ private:
+ friend class locale;
+ friend class locale::_Impl;
+
+ _Atomic_word _M_references;
+
+ protected:
+ // Contains data from the underlying "C" library for the classic locale.
+ static __c_locale _S_c_locale;
+
+ // String literal for the name of the classic locale.
+ static char _S_c_name[2];
+
+ explicit
+ facet(size_t __refs = 0) throw();
+
+ virtual
+ ~facet();
+
+ static void
+ _S_create_c_locale(__c_locale& __cloc, const char* __s,
+ __c_locale __old = 0);
+
+ static __c_locale
+ _S_clone_c_locale(__c_locale& __cloc);
+
+ static void
+ _S_destroy_c_locale(__c_locale& __cloc);
+
+ private:
+ void
+ _M_add_reference() throw();
+
+ void
+ _M_remove_reference() throw();
+
+ facet(const facet&); // Not defined.
+
+ void
+ operator=(const facet&); // Not defined.
+ };
+
+
+ // 22.1.1.1.3 Class locale::id
+ class locale::id
+ {
+ private:
+ friend class locale;
+ friend class locale::_Impl;
+ template<typename _Facet>
+ friend const _Facet&
+ use_facet(const locale&);
+ template<typename _Facet>
+ friend bool
+ has_facet(const locale&) throw ();
+
+ // NB: There is no accessor for _M_index because it may be used
+ // before the constructor is run; the effect of calling a member
+ // function (even an inline) would be undefined.
+ mutable size_t _M_index;
+
+ // Last id number assigned.
+ static _Atomic_word _S_highwater;
+
+ void
+ operator=(const id&); // Not defined.
+
+ id(const id&); // Not defined.
+
+ public:
+ // NB: This class is always a static data member, and thus can be
+ // counted on to be zero-initialized.
+ id();
+
+ inline size_t
+ _M_id() const
+ {
+ if (!_M_index)
+ _M_index = 1 + __exchange_and_add(&_S_highwater, 1);
+ return _M_index - 1;
+ }
+ };
+} // namespace std
+
+#endif
diff --git a/contrib/libstdc++/include/bits/locale_facets.h b/contrib/libstdc++/include/bits/locale_facets.h
index 6e42b3b..37f6875 100644
--- a/contrib/libstdc++/include/bits/locale_facets.h
+++ b/contrib/libstdc++/include/bits/locale_facets.h
@@ -1,6 +1,6 @@
// Locale support -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -44,7 +44,9 @@
#include <ctime> // For struct tm
#include <cwctype> // For wctype_t
-#include <ios> // For ios_base
+#include <iosfwd>
+#include <bits/ios_base.h> // For ios_base, ios_base::iostate
+#include <streambuf>
namespace std
{
@@ -55,8 +57,109 @@ namespace std
# define _GLIBCPP_NUM_FACETS 14
#endif
+ // Convert string to numeric value of type _Tv and store results.
+ // NB: This is specialized for all required types, there is no
+ // generic definition.
+ template<typename _Tv>
+ void
+ __convert_to_v(const char* __in, _Tv& __out, ios_base::iostate& __err,
+ const __c_locale& __cloc, int __base = 10);
+
+ // Explicit specializations for required types.
+ template<>
+ void
+ __convert_to_v(const char*, long&, ios_base::iostate&,
+ const __c_locale&, int);
+
+ template<>
+ void
+ __convert_to_v(const char*, unsigned long&, ios_base::iostate&,
+ const __c_locale&, int);
+
+#ifdef _GLIBCPP_USE_LONG_LONG
+ template<>
+ void
+ __convert_to_v(const char*, long long&, ios_base::iostate&,
+ const __c_locale&, int);
+
+ template<>
+ void
+ __convert_to_v(const char*, unsigned long long&, ios_base::iostate&,
+ const __c_locale&, int);
+#endif
+
+ template<>
+ void
+ __convert_to_v(const char*, float&, ios_base::iostate&,
+ const __c_locale&, int);
+
+ template<>
+ void
+ __convert_to_v(const char*, double&, ios_base::iostate&,
+ const __c_locale&, int);
+
+ template<>
+ void
+ __convert_to_v(const char*, long double&, ios_base::iostate&,
+ const __c_locale&, int);
+
+ // NB: __pad is a struct, rather than a function, so it can be
+ // partially-specialized.
template<typename _CharT, typename _Traits>
- struct __pad;
+ struct __pad
+ {
+ static void
+ _S_pad(ios_base& __io, _CharT __fill, _CharT* __news,
+ const _CharT* __olds, const streamsize __newlen,
+ const streamsize __oldlen, const bool __num);
+ };
+
+ // Used by both numeric and monetary facets.
+ // Check to make sure that the __grouping_tmp string constructed in
+ // money_get or num_get matches the canonical grouping for a given
+ // locale.
+ // __grouping_tmp is parsed L to R
+ // 1,222,444 == __grouping_tmp of "\1\3\3"
+ // __grouping is parsed R to L
+ // 1,222,444 == __grouping of "\3" == "\3\3\3"
+ template<typename _CharT>
+ bool
+ __verify_grouping(const basic_string<_CharT>& __grouping,
+ basic_string<_CharT>& __grouping_tmp);
+
+ // Used by both numeric and monetary facets.
+ // Inserts "group separator" characters into an array of characters.
+ // It's recursive, one iteration per group. It moves the characters
+ // in the buffer this way: "xxxx12345" -> "12,345xxx". Call this
+ // only with __gbeg != __gend.
+ template<typename _CharT>
+ _CharT*
+ __add_grouping(_CharT* __s, _CharT __sep,
+ const char* __gbeg, const char* __gend,
+ const _CharT* __first, const _CharT* __last);
+
+ // This template permits specializing facet output code for
+ // ostreambuf_iterator. For ostreambuf_iterator, sputn is
+ // significantly more efficient than incrementing iterators.
+ template<typename _CharT>
+ inline
+ ostreambuf_iterator<_CharT>
+ __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len)
+ {
+ __s._M_put(__ws, __len);
+ return __s;
+ }
+
+ // This is the unspecialized form of the template.
+ template<typename _CharT, typename _OutIter>
+ inline
+ _OutIter
+ __write(_OutIter __s, const _CharT* __ws, int __len)
+ {
+ for (int __j = 0; __j < __len; __j++, ++__s)
+ *__s = __ws[__j];
+ return __s;
+ }
// 22.2.1.1 Template class ctype
// Include host and configuration specific ctype enums for ctype_base.
@@ -424,14 +527,38 @@ namespace std
// 22.2.1.5 Template class codecvt
#include <bits/codecvt.h>
-
// 22.2.2 The numeric category.
class __num_base
{
+ public:
+ // NB: Code depends on the order of _S_atoms_out elements.
+ // Below are the indices into _S_atoms_out.
+ enum
+ {
+ _S_minus,
+ _S_plus,
+ _S_x,
+ _S_X,
+ _S_digits,
+ _S_digits_end = _S_digits + 16,
+ _S_udigits = _S_digits_end,
+ _S_udigits_end = _S_udigits + 16,
+ _S_e = _S_digits + 14, // For scientific notation, 'e'
+ _S_E = _S_udigits + 14, // For scientific notation, 'E'
+ _S_end = _S_udigits_end
+ };
+
+ // A list of valid numeric literals for output. This array
+ // contains chars that will be passed through the current locale's
+ // ctype<_CharT>.widen() and then used to render numbers.
+ // For the standard "C" locale, this is
+ // "-+xX0123456789abcdef0123456789ABCDEF".
+ static const char* _S_atoms_out;
+
protected:
// String literal of acceptable (narrow) input, for num_get.
// "0123456789eEabcdfABCDF"
- static const char _S_atoms[];
+ static const char* _S_atoms_in;
enum
{
@@ -443,7 +570,7 @@ namespace std
// num_put
// Construct and return valid scanf format for floating point types.
- static bool
+ static void
_S_format_float(const ios_base& __io, char* __fptr, char __mod,
streamsize __prec);
@@ -454,6 +581,9 @@ namespace std
template<typename _CharT>
+ class __locale_cache;
+
+ template<typename _CharT>
class numpunct : public locale::facet
{
public:
@@ -461,6 +591,8 @@ namespace std
typedef _CharT char_type;
typedef basic_string<_CharT> string_type;
+ friend class __locale_cache<numpunct<_CharT> >;
+
static locale::id id;
private:
@@ -725,7 +857,6 @@ namespace std
// Types:
typedef _CharT char_type;
typedef _OutIter iter_type;
-
static locale::id id;
explicit
@@ -775,6 +906,27 @@ namespace std
_M_convert_float(iter_type, ios_base& __io, char_type __fill,
char __mod, _ValueT __v) const;
+ void
+ _M_group_float(const string& __grouping, char_type __sep,
+ const char_type* __p, char_type* __new, char_type* __cs,
+ int& __len) const;
+
+ template<typename _ValueT>
+ iter_type
+ _M_convert_int(iter_type, ios_base& __io, char_type __fill,
+ _ValueT __v) const;
+
+ void
+ _M_group_int(const string& __grouping, char_type __sep,
+ ios_base& __io, char_type* __new, char_type* __cs,
+ int& __len) const;
+
+ void
+ _M_pad(char_type __fill, streamsize __w, ios_base& __io,
+ char_type* __new, const char_type* __cs, int& __len) const;
+
+#if 1
+ // XXX GLIBCXX_ABI Deprecated, compatibility only.
template<typename _ValueT>
iter_type
_M_convert_int(iter_type, ios_base& __io, char_type __fill,
@@ -791,8 +943,9 @@ namespace std
iter_type
_M_insert(iter_type, ios_base& __io, char_type __fill,
const char_type* __ws, int __len) const;
+#endif
- virtual
+ virtual
~num_put() { };
virtual iter_type
@@ -1805,6 +1958,93 @@ namespace std
inline _CharT
tolower(_CharT __c, const locale& __loc)
{ return use_facet<ctype<_CharT> >(__loc).tolower(__c); }
+
+ /**
+ * @if maint
+ * __locale_cache objects hold information extracted from facets in
+ * a form optimized for parsing and formatting. They are stored in
+ * a locale's facet array and accessed via __use_cache<_Facet>.
+ *
+ * The intent twofold: to avoid the costs of creating a locale
+ * object and to avoid calling the virtual functions in a locale's
+ * facet to look up data.
+ * @endif
+ */
+ class __locale_cache_base
+ {
+ friend class std::locale::_Impl;
+ friend class locale;
+
+ public:
+ virtual
+ ~__locale_cache_base() { }
+
+ };
+
+ // This template doesn't really get used for anything except a
+ // placeholder for specializations
+ template<typename _Facet>
+ class __locale_cache : public __locale_cache_base
+ {
+ // ctor
+ __locale_cache(const locale&) {}
+ };
+
+ template<typename _CharT>
+ class __locale_cache<numpunct<_CharT> > : public __locale_cache_base
+ {
+ // Types:
+ typedef _CharT char_type;
+ typedef char_traits<_CharT> traits_type;
+ typedef basic_string<_CharT> string_type;
+
+ public:
+ // Data Members:
+
+ // The sign used to separate decimal values: for standard US
+ // locales, this would usually be: "." Abstracted from
+ // numpunct::decimal_point().
+ _CharT _M_decimal_point;
+
+ // The sign used to separate groups of digits into smaller
+ // strings that the eye can parse with less difficulty: for
+ // standard US locales, this would usually be: "," Abstracted
+ // from numpunct::thousands_sep().
+ _CharT _M_thousands_sep;
+
+ // However the US's "false" and "true" are translated. From
+ // numpunct::truename() and numpunct::falsename(), respectively.
+ const _CharT* _M_truename;
+ const _CharT* _M_falsename;
+
+ // If we are checking groupings. This should be equivalent to
+ // numpunct::groupings().size() != 0
+ bool _M_use_grouping;
+
+ // If we are using numpunct's groupings, this is the current
+ // grouping string in effect (from numpunct::grouping()).
+ const char* _M_grouping;
+
+ // A list of valid numeric literals: for the standard "C"
+ // locale, this is "-+xX0123456789abcdef0123456789ABCDEF". This
+ // array contains the chars after having been passed through the
+ // current locale's ctype<_CharT>.widen().
+
+ // Copied here from __locale_cache<ctype> to save multiple cache
+ // access in num_put functions.
+ _CharT _M_atoms_out[__num_base::_S_end];
+
+ // ctor
+ __locale_cache(const locale& __loc);
+ __locale_cache(const locale& __loc, bool);
+
+ ~__locale_cache()
+ {
+ delete [] _M_truename;
+ delete [] _M_falsename;
+ delete [] _M_grouping;
+ }
+ };
} // namespace std
#endif
diff --git a/contrib/libstdc++/include/bits/locale_facets.tcc b/contrib/libstdc++/include/bits/locale_facets.tcc
index 1bf3d7c..b8b9918 100644
--- a/contrib/libstdc++/include/bits/locale_facets.tcc
+++ b/contrib/libstdc++/include/bits/locale_facets.tcc
@@ -1,6 +1,6 @@
// Locale support -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -36,13 +36,13 @@
#pragma GCC system_header
#include <cerrno>
-#include <clocale> // For localeconv
-#include <cstdlib> // For strof, strtold
-#include <cmath> // For ceil
-#include <cctype> // For isspace
-#include <limits> // For numeric_limits
+#include <clocale> // For localeconv
+#include <cstdlib> // For strof, strtold
+#include <cmath> // For ceil
+#include <cctype> // For isspace
+#include <limits> // For numeric_limits
+#include <typeinfo> // For bad_cast.
#include <bits/streambuf_iterator.h>
-#include <typeinfo> // For bad_cast.
namespace std
{
@@ -86,6 +86,23 @@ namespace std
return (__i < __loc._M_impl->_M_facets_size && __facets[__i]);
}
+ // Routine to access a cache for the locale. If the cache didn't
+ // exist before, it gets constructed on the fly.
+ template<typename _Facet>
+ inline const __locale_cache<_Facet>&
+ __use_cache(const locale& __loc)
+ {
+ size_t __i = _Facet::id._M_id();
+ if (__builtin_expect(__i >= __loc._M_impl->_M_facets_size,false))
+ __throw_bad_cast();
+ __locale_cache_base* __cache = __loc._M_impl->_M_get_cache(__i);
+ if (__builtin_expect(!__cache, false))
+ {
+ __cache = new __locale_cache<_Facet>(__loc);
+ __loc._M_impl->_M_install_cache(__cache, __i);
+ }
+ return static_cast<const __locale_cache<_Facet>&>(*__cache);
+ }
// Stage 1: Determine a conversion specifier.
template<typename _CharT, typename _InIter>
@@ -113,7 +130,7 @@ namespace std
}
// Next, strip leading zeros.
- const char_type __zero = __ctype.widen(_S_atoms[_M_zero]);
+ const char_type __zero = __ctype.widen(_S_atoms_in[_M_zero]);
bool __found_zero = false;
while (__traits_type::eq(__c, __zero) && __beg != __end)
{
@@ -122,14 +139,14 @@ namespace std
}
if (__found_zero)
{
- __xtrc += _S_atoms[_M_zero];
+ __xtrc += _S_atoms_in[_M_zero];
++__pos;
}
// Only need acceptable digits for floating point numbers.
const size_t __len = _M_E - _M_zero + 1;
char_type __watoms[__len];
- __ctype.widen(_S_atoms, _S_atoms + __len, __watoms);
+ __ctype.widen(_S_atoms_in, _S_atoms_in + __len, __watoms);
bool __found_dec = false;
bool __found_sci = false;
const char_type __dec = __np.decimal_point();
@@ -150,7 +167,7 @@ namespace std
{
// Try first for acceptable digit; record it if found.
++__pos;
- __xtrc += _S_atoms[__p - __watoms];
+ __xtrc += _S_atoms_in[__p - __watoms];
++__sep_pos;
__c = *(++__beg);
}
@@ -261,7 +278,7 @@ namespace std
}
// Next, strip leading zeros and check required digits for base formats.
- const char_type __zero = __ctype.widen(_S_atoms[_M_zero]);
+ const char_type __zero = __ctype.widen(_S_atoms_in[_M_zero]);
const char_type __x = __ctype.widen('x');
const char_type __X = __ctype.widen('X');
if (__base == 10)
@@ -274,7 +291,7 @@ namespace std
}
if (__found_zero)
{
- __xtrc += _S_atoms[_M_zero];
+ __xtrc += _S_atoms_in[_M_zero];
++__pos;
if (__basefield == 0)
{
@@ -296,7 +313,7 @@ namespace std
{
if (__traits_type::eq(__c, __zero) && __beg != __end)
{
- __xtrc += _S_atoms[_M_zero];
+ __xtrc += _S_atoms_in[_M_zero];
++__pos;
__c = *(++__beg);
if ((__traits_type::eq(__c, __x) || __traits_type::eq(__c, __X))
@@ -319,7 +336,7 @@ namespace std
// Extract.
char_type __watoms[_M_size];
- __ctype.widen(_S_atoms, _S_atoms + __len, __watoms);
+ __ctype.widen(_S_atoms_in, _S_atoms_in + __len, __watoms);
string __found_grouping;
const string __grouping = __np.grouping();
bool __check_grouping = __grouping.size();
@@ -333,7 +350,7 @@ namespace std
if (__p && !__traits_type::eq(__c, char_type()))
{
// Try first for acceptable digit; record it if found.
- __xtrc += _S_atoms[__p - __watoms];
+ __xtrc += _S_atoms_in[__p - __watoms];
++__pos;
++__sep_pos;
__c = *(++__beg);
@@ -606,14 +623,251 @@ namespace std
return __beg;
}
- // The following code uses snprintf (or sprintf(), when _GLIBCPP_USE_C99
- // is not defined) to convert floating point values for insertion into a
- // stream. An optimization would be to replace them with code that works
- // directly on a wide buffer and then use __pad to do the padding.
- // It would be good to replace them anyway to gain back the efficiency
- // that C++ provides by knowing up front the type of the values to insert.
- // Also, sprintf is dangerous since may lead to accidental buffer overruns.
- // This implementation follows the C++ standard fairly directly as
+ // For use by integer and floating-point types after they have been
+ // converted into a char_type string.
+ template<typename _CharT, typename _OutIter>
+ void
+ num_put<_CharT, _OutIter>::
+ _M_pad(_CharT __fill, streamsize __w, ios_base& __io,
+ _CharT* __new, const _CharT* __cs, int& __len) const
+ {
+ // [22.2.2.2.2] Stage 3.
+ // If necessary, pad.
+ __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new, __cs,
+ __w, __len, true);
+ __len = static_cast<int>(__w);
+ }
+
+ // Forwarding functions to peel signed from unsigned integer types.
+ template<typename _CharT>
+ inline int
+ __int_to_char(_CharT* __out, const int __size, long __v,
+ const _CharT* __lit, ios_base::fmtflags __flags)
+ {
+ unsigned long __ul = static_cast<unsigned long>(__v);
+ bool __neg = false;
+ if (__v < 0)
+ {
+ __ul = -__ul;
+ __neg = true;
+ }
+ return __int_to_char(__out, __size, __ul, __lit, __flags, __neg);
+ }
+
+ template<typename _CharT>
+ inline int
+ __int_to_char(_CharT* __out, const int __size, unsigned long __v,
+ const _CharT* __lit, ios_base::fmtflags __flags)
+ { return __int_to_char(__out, __size, __v, __lit, __flags, false); }
+
+#ifdef _GLIBCPP_USE_LONG_LONG
+ template<typename _CharT>
+ inline int
+ __int_to_char(_CharT* __out, const int __size, long long __v,
+ const _CharT* __lit, ios_base::fmtflags __flags)
+ {
+ unsigned long long __ull = static_cast<unsigned long long>(__v);
+ bool __neg = false;
+ if (__v < 0)
+ {
+ __ull = -__ull;
+ __neg = true;
+ }
+ return __int_to_char(__out, __size, __ull, __lit, __flags, __neg);
+ }
+
+ template<typename _CharT>
+ inline int
+ __int_to_char(_CharT* __out, const int __size, unsigned long long __v,
+ const _CharT* __lit, ios_base::fmtflags __flags)
+ { return __int_to_char(__out, __size, __v, __lit, __flags, false); }
+#endif
+
+ template<typename _CharT, typename _ValueT>
+ int
+ __int_to_char(_CharT* __out, const int __size, _ValueT __v,
+ const _CharT* __lit, ios_base::fmtflags __flags, bool __neg)
+ {
+ // Don't write base if already 0.
+ const bool __showbase = (__flags & ios_base::showbase) && __v;
+ const ios_base::fmtflags __basefield = __flags & ios_base::basefield;
+ _CharT* __buf = __out + __size - 1;
+ _CharT* __bufend = __out + __size;
+
+ if (__builtin_expect(__basefield != ios_base::oct &&
+ __basefield != ios_base::hex, true))
+ {
+ // Decimal.
+ do
+ {
+ *__buf-- = __lit[(__v % 10) + __num_base::_S_digits];
+ __v /= 10;
+ }
+ while (__v != 0);
+ if (__neg)
+ *__buf-- = __lit[__num_base::_S_minus];
+ else if (__flags & ios_base::showpos)
+ *__buf-- = __lit[__num_base::_S_plus];
+ }
+ else if (__basefield == ios_base::oct)
+ {
+ // Octal.
+ do
+ {
+ *__buf-- = __lit[(__v & 0x7) + __num_base::_S_digits];
+ __v >>= 3;
+ }
+ while (__v != 0);
+ if (__showbase)
+ *__buf-- = __lit[__num_base::_S_digits];
+ }
+ else
+ {
+ // Hex.
+ const bool __uppercase = __flags & ios_base::uppercase;
+ int __case_offset = __uppercase
+ ? __num_base::_S_udigits : __num_base::_S_digits;
+ do
+ {
+ *__buf-- = __lit[(__v & 0xf) + __case_offset];
+ __v >>= 4;
+ }
+ while (__v != 0);
+ if (__showbase)
+ {
+ // 'x' or 'X'
+ *__buf-- = __lit[__num_base::_S_x + __uppercase];
+ // '0'
+ *__buf-- = __lit[__num_base::_S_digits];
+ }
+ }
+ int __ret = __bufend - __buf - 1;
+ return __ret;
+ }
+
+ template<typename _CharT, typename _OutIter>
+ void
+ num_put<_CharT, _OutIter>::
+ _M_group_int(const string& __grouping, _CharT __sep, ios_base& __io,
+ _CharT* __new, _CharT* __cs, int& __len) const
+ {
+ // By itself __add_grouping cannot deal correctly with __ws when
+ // ios::showbase is set and ios_base::oct || ios_base::hex.
+ // Therefore we take care "by hand" of the initial 0, 0x or 0X.
+ // However, remember that the latter do not occur if the number
+ // printed is '0' (__len == 1).
+ streamsize __off = 0;
+ const ios_base::fmtflags __basefield = __io.flags()
+ & ios_base::basefield;
+ if ((__io.flags() & ios_base::showbase) && __len > 1)
+ if (__basefield == ios_base::oct)
+ {
+ __off = 1;
+ *__new = *__cs;
+ }
+ else if (__basefield == ios_base::hex)
+ {
+ __off = 2;
+ *__new = *__cs;
+ *(__new + 1) = *(__cs + 1);
+ }
+ _CharT* __p;
+ __p = __add_grouping(__new + __off, __sep,
+ __grouping.c_str(),
+ __grouping.c_str() + __grouping.size(),
+ __cs + __off, __cs + __len);
+ __len = __p - __new;
+ }
+
+ template<typename _CharT, typename _OutIter>
+ template<typename _ValueT>
+ _OutIter
+ num_put<_CharT, _OutIter>::
+ _M_convert_int(_OutIter __s, ios_base& __io, _CharT __fill,
+ _ValueT __v) const
+ {
+ typedef numpunct<_CharT> __facet_type;
+ typedef __locale_cache<numpunct<_CharT> > __cache_type;
+ const locale& __loc = __io._M_getloc();
+ const __cache_type& __lc = __use_cache<__facet_type>(__loc);
+ const _CharT* __lit = __lc._M_atoms_out;
+
+ // Long enough to hold hex, dec, and octal representations.
+ int __ilen = 4 * sizeof(_ValueT);
+ _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __ilen));
+ // [22.2.2.2.2] Stage 1, numeric conversion to character.
+ // Result is returned right-justified in the buffer.
+ int __len;
+ __len = __int_to_char(&__cs[0], __ilen, __v, __lit, __io.flags());
+ __cs = __cs + __ilen - __len;
+
+ // Add grouping, if necessary.
+ _CharT* __cs2;
+ if (__lc._M_use_grouping)
+ {
+ // Grouping can add (almost) as many separators as the
+ // number of digits, but no more.
+ __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __len * 2));
+ _M_group_int(__lc._M_grouping, __lc._M_thousands_sep, __io,
+ __cs2, __cs, __len);
+ __cs = __cs2;
+ }
+
+ // Pad.
+ _CharT* __cs3;
+ streamsize __w = __io.width();
+ if (__w > static_cast<streamsize>(__len))
+ {
+ __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __w));
+ _M_pad(__fill, __w, __io, __cs3, __cs, __len);
+ __cs = __cs3;
+ }
+ __io.width(0);
+
+ // [22.2.2.2.2] Stage 4.
+ // Write resulting, fully-formatted string to output iterator.
+ return __write(__s, __cs, __len);
+ }
+
+ template<typename _CharT, typename _OutIter>
+ void
+ num_put<_CharT, _OutIter>::
+ _M_group_float(const string& __grouping, _CharT __sep, const _CharT* __p,
+ _CharT* __new, _CharT* __cs, int& __len) const
+ {
+#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
+ //282. What types does numpunct grouping refer to?
+ // Add grouping, if necessary.
+ _CharT* __p2;
+ int __declen = __p ? __p - __cs : __len;
+ __p2 = __add_grouping(__new, __sep,
+ __grouping.c_str(),
+ __grouping.c_str() + __grouping.size(),
+ __cs, __cs + __declen);
+
+ // Tack on decimal part.
+ int __newlen = __p2 - __new;
+ if (__p)
+ {
+ char_traits<_CharT>::copy(__p2, __p, __len - __declen);
+ __newlen += __len - __declen;
+ }
+ __len = __newlen;
+#endif
+ }
+
+ // The following code uses snprintf (or sprintf(), when
+ // _GLIBCPP_USE_C99 is not defined) to convert floating point values
+ // for insertion into a stream. An optimization would be to replace
+ // them with code that works directly on a wide buffer and then use
+ // __pad to do the padding. It would be good to replace them anyway
+ // to gain back the efficiency that C++ provides by knowing up front
+ // the type of the values to insert. Also, sprintf is dangerous
+ // since may lead to accidental buffer overruns. This
+ // implementation follows the C++ standard fairly directly as
// outlined in 22.2.2.2 [lib.locale.num.put]
template<typename _CharT, typename _OutIter>
template<typename _ValueT>
@@ -622,53 +876,55 @@ namespace std
_M_convert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod,
_ValueT __v) const
{
- // Note: digits10 is rounded down: we need to add 1 to ensure
- // we get the full available precision.
- // Then, in general, one more 1 needs to be added since, when the
- // %{g,G} conversion specifiers are chosen inside _S_format_float, the
- // precision field is "the maximum number of significant digits", *not*
- // the "number of digits to appear after the decimal point", as happens
- // for %{e,E,f,F} (C99, 7.19.6.1,4).
+ // Note: digits10 is rounded down: add 1 to ensure the maximum
+ // available precision. Then, in general, one more 1 needs to
+ // be added since, when the %{g,G} conversion specifiers are
+ // chosen inside _S_format_float, the precision field is "the
+ // maximum number of significant digits", *not* the "number of
+ // digits to appear after the decimal point", as happens for
+ // %{e,E,f,F} (C99, 7.19.6.1,4).
const int __max_digits = numeric_limits<_ValueT>::digits10 + 2;
- streamsize __prec = __io.precision();
+ // Use default precision if out of range.
+ streamsize __prec = __io.precision();
if (__prec > static_cast<streamsize>(__max_digits))
__prec = static_cast<streamsize>(__max_digits);
+ else if (__prec < static_cast<streamsize>(0))
+ __prec = static_cast<streamsize>(6);
- // Long enough for the max format spec.
- char __fbuf[16];
+ typedef numpunct<_CharT> __facet_type;
+ typedef __locale_cache<numpunct<_CharT> > __cache_type;
+ const locale __loc = __io._M_getloc();
+ const __cache_type& __lc = __use_cache<__facet_type>(__loc);
// [22.2.2.2.2] Stage 1, numeric conversion to character.
int __len;
+ // Long enough for the max format spec.
+ char __fbuf[16];
+
#ifdef _GLIBCPP_USE_C99
- // First try a buffer perhaps big enough (for sure sufficient for
- // non-ios_base::fixed outputs)
+ // First try a buffer perhaps big enough (for sure sufficient
+ // for non-ios_base::fixed outputs)
int __cs_size = __max_digits * 3;
char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
- const bool __fp = _S_format_float(__io, __fbuf, __mod, __prec);
- if (__fp)
- __len = __convert_from_v(__cs, __cs_size, __fbuf, __v,
- _S_c_locale, __prec);
- else
- __len = __convert_from_v(__cs, __cs_size, __fbuf, __v, _S_c_locale);
+ _S_format_float(__io, __fbuf, __mod, __prec);
+ __len = __convert_from_v(__cs, __cs_size, __fbuf, __v,
+ _S_c_locale, __prec);
// If the buffer was not large enough, try again with the correct size.
if (__len >= __cs_size)
{
__cs_size = __len + 1;
__cs = static_cast<char*>(__builtin_alloca(__cs_size));
- if (__fp)
- __len = __convert_from_v(__cs, __cs_size, __fbuf, __v,
- _S_c_locale, __prec);
- else
- __len = __convert_from_v(__cs, __cs_size, __fbuf, __v,
- _S_c_locale);
+ __len = __convert_from_v(__cs, __cs_size, __fbuf, __v,
+ _S_c_locale, __prec);
}
#else
// Consider the possibility of long ios_base::fixed outputs
const bool __fixed = __io.flags() & ios_base::fixed;
const int __max_exp = numeric_limits<_ValueT>::max_exponent10;
+
// ios_base::fixed outputs may need up to __max_exp+1 chars
// for the integer part + up to __max_digits chars for the
// fractional part + 3 chars for sign, decimal point, '\0'. On
@@ -678,187 +934,53 @@ namespace std
: __max_digits * 3;
char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
- if (_S_format_float(__io, __fbuf, __mod, __prec))
- __len = __convert_from_v(__cs, 0, __fbuf, __v, _S_c_locale, __prec);
- else
- __len = __convert_from_v(__cs, 0, __fbuf, __v, _S_c_locale);
+ _S_format_float(__io, __fbuf, __mod, __prec);
+ __len = __convert_from_v(__cs, 0, __fbuf, __v, _S_c_locale, __prec);
#endif
- return _M_widen_float(__s, __io, __fill, __cs, __len);
- }
- template<typename _CharT, typename _OutIter>
- template<typename _ValueT>
- _OutIter
- num_put<_CharT, _OutIter>::
- _M_convert_int(_OutIter __s, ios_base& __io, _CharT __fill, char __mod,
- char __modl, _ValueT __v) const
- {
- // [22.2.2.2.2] Stage 1, numeric conversion to character.
-
- // Long enough for the max format spec.
- char __fbuf[16];
- _S_format_int(__io, __fbuf, __mod, __modl);
-#ifdef _GLIBCPP_USE_C99
- // First try a buffer perhaps big enough.
- int __cs_size = 64;
- char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
- int __len = __convert_from_v(__cs, __cs_size, __fbuf, __v,
- _S_c_locale);
- // If the buffer was not large enough, try again with the correct size.
- if (__len >= __cs_size)
- {
- __cs_size = __len + 1;
- __cs = static_cast<char*>(__builtin_alloca(__cs_size));
- __len = __convert_from_v(__cs, __cs_size, __fbuf, __v,
- _S_c_locale);
- }
-#else
- // Leave room for "+/-," "0x," and commas. This size is
- // arbitrary, but should be largely sufficient.
- char __cs[128];
- int __len = __convert_from_v(__cs, 0, __fbuf, __v, _S_c_locale);
-#endif
- return _M_widen_int(__s, __io, __fill, __cs, __len);
- }
-
- template<typename _CharT, typename _OutIter>
- _OutIter
- num_put<_CharT, _OutIter>::
- _M_widen_float(_OutIter __s, ios_base& __io, _CharT __fill, char* __cs,
- int __len) const
- {
- typedef char_traits<_CharT> __traits_type;
// [22.2.2.2.2] Stage 2, convert to char_type, using correct
// numpunct.decimal_point() values for '.' and adding grouping.
- const locale __loc = __io.getloc();
const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
+
_CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
* __len));
- // Grouping can add (almost) as many separators as the number of
- // digits, but no more.
- _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
- * __len * 2));
__ctype.widen(__cs, __cs + __len, __ws);
// Replace decimal point.
+ const _CharT __cdec = __ctype.widen('.');
+ const _CharT __dec = __lc._M_decimal_point;
const _CharT* __p;
- const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
- if (__p = __traits_type::find(__ws, __len, __ctype.widen('.')))
- __ws[__p - __ws] = __np.decimal_point();
+ if (__p = char_traits<_CharT>::find(__ws, __len, __cdec))
+ __ws[__p - __ws] = __dec;
-#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
-//282. What types does numpunct grouping refer to?
// Add grouping, if necessary.
- const string __grouping = __np.grouping();
- ios_base::fmtflags __basefield = __io.flags() & ios_base::basefield;
- if (__grouping.size())
+ _CharT* __ws2;
+ if (__lc._M_use_grouping)
{
- _CharT* __p2;
- int __declen = __p ? __p - __ws : __len;
- __p2 = __add_grouping(__ws2, __np.thousands_sep(),
- __grouping.c_str(),
- __grouping.c_str() + __grouping.size(),
- __ws, __ws + __declen);
- int __newlen = __p2 - __ws2;
-
- // Tack on decimal part.
- if (__p)
- {
- __traits_type::copy(__p2, __p, __len - __declen);
- __newlen += __len - __declen;
- }
-
- // Switch strings, establish correct new length.
- __ws = __ws2;
- __len = __newlen;
+ // Grouping can add (almost) as many separators as the
+ // number of digits, but no more.
+ __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __len * 2));
+ _M_group_float(__lc._M_grouping, __lc._M_thousands_sep, __p,
+ __ws2, __ws, __len);
+ __ws = __ws2;
}
-#endif
- return _M_insert(__s, __io, __fill, __ws, __len);
- }
- template<typename _CharT, typename _OutIter>
- _OutIter
- num_put<_CharT, _OutIter>::
- _M_widen_int(_OutIter __s, ios_base& __io, _CharT __fill, char* __cs,
- int __len) const
- {
- // [22.2.2.2.2] Stage 2, convert to char_type, using correct
- // numpunct.decimal_point() values for '.' and adding grouping.
- const locale __loc = __io.getloc();
- const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
- _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
- * __len));
- // Grouping can add (almost) as many separators as the number of
- // digits, but no more.
- _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
- * __len * 2));
- __ctype.widen(__cs, __cs + __len, __ws);
-
- // Add grouping, if necessary.
- const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
- const string __grouping = __np.grouping();
- const ios_base::fmtflags __basefield = __io.flags() & ios_base::basefield;
- if (__grouping.size())
- {
- // By itself __add_grouping cannot deal correctly with __ws when
- // ios::showbase is set and ios_base::oct || ios_base::hex.
- // Therefore we take care "by hand" of the initial 0, 0x or 0X.
- // However, remember that the latter do not occur if the number
- // printed is '0' (__len == 1).
- streamsize __off = 0;
- if ((__io.flags() & ios_base::showbase) && __len > 1)
- if (__basefield == ios_base::oct)
- {
- __off = 1;
- *__ws2 = *__ws;
- }
- else if (__basefield == ios_base::hex)
- {
- __off = 2;
- *__ws2 = *__ws;
- *(__ws2 + 1) = *(__ws + 1);
- }
- _CharT* __p;
- __p = __add_grouping(__ws2 + __off, __np.thousands_sep(),
- __grouping.c_str(),
- __grouping.c_str() + __grouping.size(),
- __ws + __off, __ws + __len);
- __len = __p - __ws2;
- // Switch strings.
- __ws = __ws2;
- }
- return _M_insert(__s, __io, __fill, __ws, __len);
- }
-
- // For use by integer and floating-point types after they have been
- // converted into a char_type string.
- template<typename _CharT, typename _OutIter>
- _OutIter
- num_put<_CharT, _OutIter>::
- _M_insert(_OutIter __s, ios_base& __io, _CharT __fill, const _CharT* __ws,
- int __len) const
- {
- typedef char_traits<_CharT> __traits_type;
- // [22.2.2.2.2] Stage 3.
+ // Pad.
+ _CharT* __ws3;
streamsize __w = __io.width();
- _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
- * __w));
if (__w > static_cast<streamsize>(__len))
{
- __pad<_CharT, __traits_type>::_S_pad(__io, __fill, __ws2, __ws,
- __w, __len, true);
- __len = static_cast<int>(__w);
- // Switch strings.
- __ws = __ws2;
+ __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w));
+ _M_pad(__fill, __w, __io, __ws3, __ws, __len);
+ __ws = __ws3;
}
__io.width(0);
-
+
// [22.2.2.2.2] Stage 4.
// Write resulting, fully-formatted string to output iterator.
- for (int __j = 0; __j < __len; ++__j, ++__s)
- *__s = __ws[__j];
- return __s;
- }
+ return __write(__s, __ws, __len);
+ }
template<typename _CharT, typename _OutIter>
_OutIter
@@ -869,19 +991,35 @@ namespace std
if ((__flags & ios_base::boolalpha) == 0)
{
unsigned long __uv = __v;
- __s = _M_convert_int(__s, __io, __fill, 'u', char(), __uv);
+ __s = _M_convert_int(__s, __io, __fill, __uv);
}
else
{
- typedef basic_string<_CharT> __string_type;
- locale __loc = __io.getloc();
- const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
+ typedef numpunct<_CharT> __facet_type;
+ typedef __locale_cache<numpunct<_CharT> > __cache_type;
+ const locale __loc = __io._M_getloc();
+ const __cache_type& __lc = __use_cache<__facet_type>(__loc);
+
+ typedef basic_string<_CharT> __string_type;
__string_type __name;
if (__v)
- __name = __np.truename();
+ __name = __lc._M_truename;
else
- __name = __np.falsename();
- __s = _M_insert(__s, __io, __fill, __name.c_str(), __name.size());
+ __name = __lc._M_falsename;
+
+ const _CharT* __cs = __name.c_str();
+ int __len = __name.size();
+ _CharT* __cs3;
+ streamsize __w = __io.width();
+ if (__w > static_cast<streamsize>(__len))
+ {
+ __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __w));
+ _M_pad(__fill, __w, __io, __cs3, __cs, __len);
+ __cs = __cs3;
+ }
+ __io.width(0);
+ __s = __write(__s, __cs, __len);
}
return __s;
}
@@ -890,28 +1028,28 @@ namespace std
_OutIter
num_put<_CharT, _OutIter>::
do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const
- { return _M_convert_int(__s, __io, __fill, 'd', char(), __v); }
+ { return _M_convert_int(__s, __io, __fill, __v); }
template<typename _CharT, typename _OutIter>
_OutIter
num_put<_CharT, _OutIter>::
do_put(iter_type __s, ios_base& __io, char_type __fill,
unsigned long __v) const
- { return _M_convert_int(__s, __io, __fill, 'u', char(), __v); }
+ { return _M_convert_int(__s, __io, __fill, __v); }
#ifdef _GLIBCPP_USE_LONG_LONG
template<typename _CharT, typename _OutIter>
_OutIter
num_put<_CharT, _OutIter>::
do_put(iter_type __s, ios_base& __b, char_type __fill, long long __v) const
- { return _M_convert_int(__s, __b, __fill, 'd', 'l', __v); }
+ { return _M_convert_int(__s, __b, __fill, __v); }
template<typename _CharT, typename _OutIter>
_OutIter
num_put<_CharT, _OutIter>::
do_put(iter_type __s, ios_base& __io, char_type __fill,
unsigned long long __v) const
- { return _M_convert_int(__s, __io, __fill, 'u', 'l', __v); }
+ { return _M_convert_int(__s, __io, __fill, __v); }
#endif
template<typename _CharT, typename _OutIter>
@@ -939,7 +1077,7 @@ namespace std
__io.flags(__flags & __fmt | (ios_base::hex | ios_base::showbase));
try
{
- __s = _M_convert_int(__s, __io, __fill, 'u', char(),
+ __s = _M_convert_int(__s, __io, __fill,
reinterpret_cast<unsigned long>(__v));
__io.flags(__flags);
}
@@ -1196,7 +1334,8 @@ namespace std
char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
int __len = __convert_from_v(__cs, 0, "%.01Lf", __units, _S_c_locale);
#endif
- _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __cs_size));
+ _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __cs_size));
__ctype.widen(__cs, __cs + __len, __ws);
string_type __digits(__ws);
return this->do_put(__s, __intl, __io, __fill, __digits);
@@ -1290,7 +1429,7 @@ namespace std
const char* __gend = __gbeg + __grouping.size();
const int __n = (__end - __beg) * 2;
_CharT* __ws2 =
- static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __n));
+ static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __n));
_CharT* __ws_end = __add_grouping(__ws2, __sep, __gbeg,
__gend, __beg, __end);
__value.insert(0, __ws2, __ws_end - __ws2);
@@ -1359,8 +1498,7 @@ namespace std
}
// Write resulting, fully-formatted string to output iterator.
- for (size_type __j = 0; __j < __len; ++__j, ++__s)
- *__s = __res[__j];
+ __s = __write(__s, __res.c_str(), __len);
}
__io.width(0);
return __s;
@@ -1616,7 +1754,8 @@ namespace std
ios_base::iostate& __err) const
{
typedef char_traits<_CharT> __traits_type;
- int* __matches = static_cast<int*>(__builtin_alloca(sizeof(int) * __indexlen));
+ int* __matches = static_cast<int*>(__builtin_alloca(sizeof(int)
+ * __indexlen));
size_t __nmatches = 0;
size_t __pos = 0;
bool __testvalid = true;
@@ -1628,7 +1767,7 @@ namespace std
if (__c == __names[__i1][0])
__matches[__nmatches++] = __i1;
- while(__nmatches > 1)
+ while (__nmatches > 1)
{
// Find smallest matching string.
size_t __minlen = 10;
@@ -1853,8 +1992,7 @@ namespace std
}
else
__format = __c;
- __s = this->do_put(__s, __io, char_type(), __tm, __format,
- __mod);
+ __s = this->do_put(__s, __io, _CharT(), __tm, __format, __mod);
}
else
{
@@ -1878,8 +2016,7 @@ namespace std
// NB: This size is arbitrary. Should this be a data member,
// initialized at construction?
const size_t __maxlen = 64;
- char_type* __res =
- static_cast<char_type*>(__builtin_alloca(sizeof(char_type) * __maxlen));
+ char_type* __res = static_cast<char_type*>(__builtin_alloca(sizeof(char_type) * __maxlen));
// NB: In IEE 1003.1-200x, and perhaps other locale models, it
// is possible that the format character will be longer than one
@@ -1903,10 +2040,7 @@ namespace std
__tp._M_put(__res, __maxlen, __fmt, __tm);
// Write resulting, fully-formatted string to output iterator.
- size_t __len = char_traits<char_type>::length(__res);
- for (size_t __i = 0; __i < __len; ++__i, ++__s)
- *__s = __res[__i];
- return __s;
+ return __write(__s, __res, char_traits<char_type>::length(__res));
}
@@ -1928,9 +2062,37 @@ namespace std
do_compare(const _CharT* __lo1, const _CharT* __hi1,
const _CharT* __lo2, const _CharT* __hi2) const
{
+ // strcoll assumes zero-terminated strings so we make a copy
+ // and then put a zero at the end.
const string_type __one(__lo1, __hi1);
const string_type __two(__lo2, __hi2);
- return _M_compare(__one.c_str(), __two.c_str());
+
+ const _CharT* __p = __one.c_str();
+ const _CharT* __pend = __one.c_str() + __one.length();
+ const _CharT* __q = __two.c_str();
+ const _CharT* __qend = __two.c_str() + __two.length();
+
+ // strcoll stops when it sees a nul character so we break
+ // the strings into zero-terminated substrings and pass those
+ // to strcoll.
+ for (;;)
+ {
+ int __res = _M_compare(__p, __q);
+ if (__res)
+ return __res;
+
+ __p += char_traits<_CharT>::length(__p);
+ __q += char_traits<_CharT>::length(__q);
+ if (__p == __pend && __q == __qend)
+ return 0;
+ else if (__p == __pend)
+ return -1;
+ else if (__q == __qend)
+ return 1;
+
+ __p++;
+ __q++;
+ }
}
template<typename _CharT>
@@ -1938,19 +2100,43 @@ namespace std
collate<_CharT>::
do_transform(const _CharT* __lo, const _CharT* __hi) const
{
+ // strxfrm assumes zero-terminated strings so we make a copy
+ string_type __str(__lo, __hi);
+
+ const _CharT* __p = __str.c_str();
+ const _CharT* __pend = __str.c_str() + __str.length();
+
size_t __len = (__hi - __lo) * 2;
- // First try a buffer perhaps big enough.
- _CharT* __c =
- static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __len));
- size_t __res = _M_transform(__c, __lo, __len);
- // If the buffer was not large enough, try again with the correct size.
- if (__res >= __len)
+
+ string_type __ret;
+
+ // strxfrm stops when it sees a nul character so we break
+ // the string into zero-terminated substrings and pass those
+ // to strxfrm.
+ for (;;)
{
- __c =
- static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * (__res + 1)));
- _M_transform(__c, __lo, __res + 1);
+ // First try a buffer perhaps big enough.
+ _CharT* __c =
+ static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __len));
+ size_t __res = _M_transform(__c, __p, __len);
+ // If the buffer was not large enough, try again with the
+ // correct size.
+ if (__res >= __len)
+ {
+ __len = __res + 1;
+ __c = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __len));
+ __res = _M_transform(__c, __p, __res + 1);
+ }
+
+ __ret.append(__c, __res);
+ __p += char_traits<_CharT>::length(__p);
+ if (__p == __pend)
+ return __ret;
+
+ __p++;
+ __ret.push_back(_CharT());
}
- return string_type(__c);
}
template<typename _CharT>
@@ -1965,22 +2151,6 @@ namespace std
return static_cast<long>(__val);
}
- // Convert string to numeric value of type _Tv and store results.
- // NB: This is specialized for all required types, there is no
- // generic definition.
- template<typename _Tv>
- void
- __convert_to_v(const char* __in, _Tv& __out, ios_base::iostate& __err,
- const __c_locale& __cloc, int __base = 10);
-
- // Convert numeric value of type _Tv to string and return length of string.
- // If snprintf is available use it, otherwise fall back to the unsafe sprintf
- // which, in general, can be dangerous and should be avoided.
- template<typename _Tv>
- int
- __convert_from_v(char* __out, const int __size, const char* __fmt,
- _Tv __v, const __c_locale&, int __prec = -1);
-
// Construct correctly padded string, as per 22.2.2.2.2
// Assumes
// __newlen > __oldlen
@@ -1993,15 +2163,6 @@ namespace std
// NB: Of the two parameters, _CharT can be deduced from the
// function arguments. The other (_Traits) has to be explicitly specified.
template<typename _CharT, typename _Traits>
- struct __pad
- {
- static void
- _S_pad(ios_base& __io, _CharT __fill, _CharT* __news,
- const _CharT* __olds, const streamsize __newlen,
- const streamsize __oldlen, const bool __num);
- };
-
- template<typename _CharT, typename _Traits>
void
__pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill,
_CharT* __news, const _CharT* __olds,
@@ -2009,7 +2170,8 @@ namespace std
const streamsize __oldlen, const bool __num)
{
size_t __plen = static_cast<size_t>(__newlen - __oldlen);
- _CharT* __pads = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __plen));
+ _CharT* __pads = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __plen));
_Traits::assign(__pads, __plen, __fill);
_CharT* __beg;
@@ -2079,14 +2241,6 @@ namespace std
__newlen - __beglen - __mod);
}
- // Used by both numeric and monetary facets.
- // Check to make sure that the __grouping_tmp string constructed in
- // money_get or num_get matches the canonical grouping for a given
- // locale.
- // __grouping_tmp is parsed L to R
- // 1,222,444 == __grouping_tmp of "/1/3/3"
- // __grouping is parsed R to L
- // 1,222,444 == __grouping of "/3" == "/3/3/3"
template<typename _CharT>
bool
__verify_grouping(const basic_string<_CharT>& __grouping,
@@ -2111,11 +2265,6 @@ namespace std
return __test;
}
- // Used by both numeric and monetary facets.
- // Inserts "group separator" characters into an array of characters.
- // It's recursive, one iteration per group. It moves the characters
- // in the buffer this way: "xxxx12345" -> "12,345xxx". Call this
- // only with __gbeg != __gend.
template<typename _CharT>
_CharT*
__add_grouping(_CharT* __s, _CharT __sep,
@@ -2136,9 +2285,249 @@ namespace std
return __s;
}
+#if 1
+ // XXX GLIBCXX_ABI Deprecated, compatibility only.
+ template<typename _CharT, typename _OutIter>
+ template<typename _ValueT>
+ _OutIter
+ num_put<_CharT, _OutIter>::
+ _M_convert_int(_OutIter __s, ios_base& __io, _CharT __fill, char __mod,
+ char __modl, _ValueT __v) const
+ {
+ // [22.2.2.2.2] Stage 1, numeric conversion to character.
+
+ // Long enough for the max format spec.
+ char __fbuf[16];
+ _S_format_int(__io, __fbuf, __mod, __modl);
+#ifdef _GLIBCPP_USE_C99
+ // First try a buffer perhaps big enough.
+ int __cs_size = 64;
+ char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
+ int __len = __convert_from_v(__cs, __cs_size, __fbuf, __v,
+ _S_c_locale);
+ // If the buffer was not large enough, try again with the correct size.
+ if (__len >= __cs_size)
+ {
+ __cs_size = __len + 1;
+ __cs = static_cast<char*>(__builtin_alloca(__cs_size));
+ __len = __convert_from_v(__cs, __cs_size, __fbuf, __v,
+ _S_c_locale);
+ }
+#else
+ // Leave room for "+/-," "0x," and commas. This size is
+ // arbitrary, but should be largely sufficient.
+ char __cs[128];
+ int __len = __convert_from_v(__cs, 0, __fbuf, __v, _S_c_locale);
+#endif
+ return _M_widen_int(__s, __io, __fill, __cs, __len);
+ }
+
+ template<typename _CharT, typename _OutIter>
+ _OutIter
+ num_put<_CharT, _OutIter>::
+ _M_widen_float(_OutIter __s, ios_base& __io, _CharT __fill, char* __cs,
+ int __len) const
+ {
+ typedef char_traits<_CharT> __traits_type;
+ // [22.2.2.2.2] Stage 2, convert to char_type, using correct
+ // numpunct.decimal_point() values for '.' and adding grouping.
+ const locale __loc = __io.getloc();
+ const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
+ _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __len));
+ // Grouping can add (almost) as many separators as the number of
+ // digits, but no more.
+ _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __len * 2));
+ __ctype.widen(__cs, __cs + __len, __ws);
+
+ // Replace decimal point.
+ const _CharT* __p;
+ const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
+ if (__p = __traits_type::find(__ws, __len, __ctype.widen('.')))
+ __ws[__p - __ws] = __np.decimal_point();
+
+#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
+//282. What types does numpunct grouping refer to?
+ // Add grouping, if necessary.
+ const string __grouping = __np.grouping();
+ if (__grouping.size())
+ {
+ _CharT* __p2;
+ int __declen = __p ? __p - __ws : __len;
+ __p2 = __add_grouping(__ws2, __np.thousands_sep(),
+ __grouping.c_str(),
+ __grouping.c_str() + __grouping.size(),
+ __ws, __ws + __declen);
+ int __newlen = __p2 - __ws2;
+
+ // Tack on decimal part.
+ if (__p)
+ {
+ __traits_type::copy(__p2, __p, __len - __declen);
+ __newlen += __len - __declen;
+ }
+
+ // Switch strings, establish correct new length.
+ __ws = __ws2;
+ __len = __newlen;
+ }
+#endif
+ return _M_insert(__s, __io, __fill, __ws, __len);
+ }
+
+ template<typename _CharT, typename _OutIter>
+ _OutIter
+ num_put<_CharT, _OutIter>::
+ _M_widen_int(_OutIter __s, ios_base& __io, _CharT __fill, char* __cs,
+ int __len) const
+ {
+ // [22.2.2.2.2] Stage 2, convert to char_type, using correct
+ // numpunct.decimal_point() values for '.' and adding grouping.
+ const locale __loc = __io.getloc();
+ const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
+ _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __len));
+ // Grouping can add (almost) as many separators as the number of
+ // digits, but no more.
+ _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __len * 2));
+ __ctype.widen(__cs, __cs + __len, __ws);
+
+ // Add grouping, if necessary.
+ const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
+ const string __grouping = __np.grouping();
+ if (__grouping.size())
+ {
+ // By itself __add_grouping cannot deal correctly with __ws when
+ // ios::showbase is set and ios_base::oct || ios_base::hex.
+ // Therefore we take care "by hand" of the initial 0, 0x or 0X.
+ // However, remember that the latter do not occur if the number
+ // printed is '0' (__len == 1).
+ streamsize __off = 0;
+ const ios_base::fmtflags __basefield = __io.flags()
+ & ios_base::basefield;
+ if ((__io.flags() & ios_base::showbase) && __len > 1)
+ if (__basefield == ios_base::oct)
+ {
+ __off = 1;
+ *__ws2 = *__ws;
+ }
+ else if (__basefield == ios_base::hex)
+ {
+ __off = 2;
+ *__ws2 = *__ws;
+ *(__ws2 + 1) = *(__ws + 1);
+ }
+ _CharT* __p;
+ __p = __add_grouping(__ws2 + __off, __np.thousands_sep(),
+ __grouping.c_str(),
+ __grouping.c_str() + __grouping.size(),
+ __ws + __off, __ws + __len);
+ __len = __p - __ws2;
+ // Switch strings.
+ __ws = __ws2;
+ }
+ return _M_insert(__s, __io, __fill, __ws, __len);
+ }
+
+ // For use by integer and floating-point types after they have been
+ // converted into a char_type string.
+ template<typename _CharT, typename _OutIter>
+ _OutIter
+ num_put<_CharT, _OutIter>::
+ _M_insert(_OutIter __s, ios_base& __io, _CharT __fill, const _CharT* __ws,
+ int __len) const
+ {
+ typedef char_traits<_CharT> __traits_type;
+ // [22.2.2.2.2] Stage 3.
+ // If necessary, pad.
+ streamsize __w = __io.width();
+ _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __w));
+ if (__w > static_cast<streamsize>(__len))
+ {
+ __pad<_CharT, __traits_type>::_S_pad(__io, __fill, __ws2, __ws,
+ __w, __len, true);
+ __len = static_cast<int>(__w);
+ // Switch strings.
+ __ws = __ws2;
+ }
+ __io.width(0);
+
+ // [22.2.2.2.2] Stage 4.
+ // Write resulting, fully-formatted string to output iterator.
+ return __write(__s, __ws, __len);
+ }
+#endif
+
+ template<typename _CharT>
+ __locale_cache<numpunct<_CharT> >::__locale_cache(const locale& __loc)
+ : _M_truename(0), _M_falsename(0), _M_use_grouping(false),
+ _M_grouping(0)
+ {
+ if (has_facet<numpunct<_CharT> >(__loc))
+ {
+ const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
+ _M_decimal_point = __np.decimal_point();
+ _M_thousands_sep = __np.thousands_sep();
+
+ string_type __false = __np.falsename();
+ _CharT* __falsename = new _CharT[__false.length() + 1];
+ __false.copy(__falsename, __false.length());
+ __falsename[__false.length()] = _CharT();
+ _M_falsename = __falsename;
+
+ string_type __true = __np.truename();
+ _CharT* __truename = new _CharT[__true.length() + 1];
+ __true.copy(__truename, __true.length());
+ __truename[__true.length()] = _CharT();
+ _M_truename = __truename;
+
+ string __grouping = __np.grouping();
+ char* __group = new char[__grouping.length() + 1];
+ __grouping.copy(__group, __grouping.length());
+ __group[__grouping.length()] = 0;
+ _M_grouping = __group;
+
+ _M_use_grouping = __grouping.length() != 0
+ && __grouping.data()[0] != 0;
+ }
+
+ if (has_facet<ctype<_CharT> >(__loc))
+ {
+ const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__loc);
+ __ct.widen(__num_base::_S_atoms_out,
+ __num_base::_S_atoms_out + __num_base::_S_end,
+ _M_atoms_out);
+ }
+ }
+
+ // Static locale cache initialization. Only instantiated with char
+ // and wchar_t, so no need to check has_facet.
+ template<typename _CharT>
+ __locale_cache<numpunct<_CharT> >::
+ __locale_cache(const locale& __loc, bool)
+ {
+ // Grab pointers to numpunct static strings
+ const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
+ _M_thousands_sep = __np._M_thousands_sep;
+ _M_decimal_point = __np._M_decimal_point;
+ _M_falsename = __np._M_falsename;
+ _M_truename = __np._M_truename;
+ _M_grouping = __np._M_grouping;
+ _M_use_grouping = false;
+
+ const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__loc);
+ __ct.widen(__num_base::_S_atoms_out,
+ __num_base::_S_atoms_out + __num_base::_S_end,
+ _M_atoms_out);
+ }
+
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
+#if _GLIBCPP_EXTERN_TEMPLATE
extern template class moneypunct<char, false>;
extern template class moneypunct<char, true>;
extern template class moneypunct_byname<char, false>;
@@ -2392,6 +2781,7 @@ namespace std
bool
has_facet<messages<wchar_t> >(const locale&);
#endif
+#endif
} // namespace std
#endif
diff --git a/contrib/libstdc++/include/bits/localefwd.h b/contrib/libstdc++/include/bits/localefwd.h
index dedc764..ac9e1a9 100644
--- a/contrib/libstdc++/include/bits/localefwd.h
+++ b/contrib/libstdc++/include/bits/localefwd.h
@@ -1,6 +1,6 @@
// Locale support -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -37,18 +37,15 @@
* You should not attempt to use it directly.
*/
-#ifndef _CPP_BITS_LOCCORE_H
-#define _CPP_BITS_LOCCORE_H 1
+#ifndef _CPP_BITS_LOCALE_FWD_H
+#define _CPP_BITS_LOCALE_FWD_H 1
#pragma GCC system_header
#include <bits/c++config.h>
#include <bits/c++locale.h> // Defines __c_locale, config-specific includes
-#include <climits> // For CHAR_BIT
-#include <cctype> // For isspace, etc.
-#include <string> // For string.
+#include <iosfwd> // For ostreambuf_iterator, istreambuf_iterator
#include <bits/functexcept.h>
-#include <bits/atomicity.h>
namespace std
{
@@ -108,7 +105,6 @@ namespace std
inline _CharT
tolower(_CharT, const locale&);
-
// 22.2.1 and 22.2.1.3 ctype
class ctype_base;
template<typename _CharT>
@@ -175,327 +171,6 @@ namespace std
template<typename _CharT>
class messages_byname;
- // 22.1.1 Class locale
- class locale
- {
- public:
- // Types:
- typedef unsigned int category;
-
- // Forward decls and friends:
- class facet;
- class id;
- class _Impl;
-
- friend class facet;
- friend class _Impl;
-
- template<typename _Facet>
- friend const _Facet&
- use_facet(const locale&);
-
- template<typename _Facet>
- friend bool
- has_facet(const locale&) throw();
-
- // Category values:
- // NB: Order must match _S_facet_categories definition in locale.cc
- static const category none = 0;
- static const category ctype = 1L << 0;
- static const category numeric = 1L << 1;
- static const category collate = 1L << 2;
- static const category time = 1L << 3;
- static const category monetary = 1L << 4;
- static const category messages = 1L << 5;
- static const category all = (ctype | numeric | collate |
- time | monetary | messages);
-
- // Construct/copy/destroy:
- locale() throw();
-
- locale(const locale& __other) throw();
-
- explicit
- locale(const char* __s);
-
- locale(const locale& __base, const char* __s, category __cat);
-
- locale(const locale& __base, const locale& __add, category __cat);
-
- template<typename _Facet>
- locale(const locale& __other, _Facet* __f);
-
- ~locale() throw();
-
- const locale&
- operator=(const locale& __other) throw();
-
- template<typename _Facet>
- locale
- combine(const locale& __other) const;
-
- // Locale operations:
- string
- name() const;
-
- bool
- operator==(const locale& __other) const throw ();
-
- inline bool
- operator!=(const locale& __other) const throw ()
- { return !(this->operator==(__other)); }
-
- template<typename _Char, typename _Traits, typename _Alloc>
- bool
- operator()(const basic_string<_Char, _Traits, _Alloc>& __s1,
- const basic_string<_Char, _Traits, _Alloc>& __s2) const;
-
- // Global locale objects:
- static locale
- global(const locale&);
-
- static const locale&
- classic();
-
- private:
- // The (shared) implementation
- _Impl* _M_impl;
-
- // The "C" reference locale
- static _Impl* _S_classic;
-
- // Current global locale
- static _Impl* _S_global;
-
- // Number of standard categories. For C++, these categories are
- // collate, ctype, monetary, numeric, time, and messages. These
- // directly correspond to ISO C99 macros LC_COLLATE, LC_CTYPE,
- // LC_MONETARY, LC_NUMERIC, and LC_TIME. In addition, POSIX (IEEE
- // 1003.1-2001) specifies LC_MESSAGES.
- static const size_t _S_categories_size = 6;
-
- // In addition to the standard categories, the underlying
- // operating system is allowed to define extra LC_*
- // macros. For GNU systems, the following are also valid:
- // LC_PAPER, LC_NAME, LC_ADDRESS, LC_TELEPHONE, LC_MEASUREMENT,
- // and LC_IDENTIFICATION.
- static const size_t _S_extra_categories_size = _GLIBCPP_NUM_CATEGORIES;
-
- // Names of underlying locale categories.
- // NB: locale::global() has to know how to modify all the
- // underlying categories, not just the ones required by the C++
- // standard.
- static const char* _S_categories[_S_categories_size
- + _S_extra_categories_size];
-
- explicit
- locale(_Impl*) throw();
-
- static inline void
- _S_initialize()
- {
- if (!_S_classic)
- classic();
- }
-
- static category
- _S_normalize_category(category);
-
- void
- _M_coalesce(const locale& __base, const locale& __add, category __cat);
- };
-
-
- // Implementation object for locale
- class locale::_Impl
- {
- public:
- // Friends.
- friend class locale;
- friend class locale::facet;
-
- template<typename _Facet>
- friend const _Facet&
- use_facet(const locale&);
-
- template<typename _Facet>
- friend bool
- has_facet(const locale&) throw();
-
- private:
- // Data Members.
- _Atomic_word _M_references;
- facet** _M_facets;
- size_t _M_facets_size;
-
- char* _M_names[_S_categories_size
- + _S_extra_categories_size];
- static const locale::id* const _S_id_ctype[];
- static const locale::id* const _S_id_numeric[];
- static const locale::id* const _S_id_collate[];
- static const locale::id* const _S_id_time[];
- static const locale::id* const _S_id_monetary[];
- static const locale::id* const _S_id_messages[];
- static const locale::id* const* const _S_facet_categories[];
-
- inline void
- _M_add_reference() throw()
- { __atomic_add(&_M_references, 1); }
-
- inline void
- _M_remove_reference() throw()
- {
- if (__exchange_and_add(&_M_references, -1) == 1)
- {
- try
- { delete this; }
- catch(...)
- { }
- }
- }
-
- _Impl(const _Impl&, size_t);
- _Impl(const char*, size_t);
- _Impl(facet**, size_t, bool);
-
- ~_Impl() throw();
-
- _Impl(const _Impl&); // Not defined.
-
- void
- operator=(const _Impl&); // Not defined.
-
- inline bool
- _M_check_same_name()
- {
- bool __ret = true;
- for (size_t __i = 0;
- __ret && __i < _S_categories_size + _S_extra_categories_size - 1;
- ++__i)
- __ret &= (strcmp(_M_names[__i], _M_names[__i + 1]) == 0);
- return __ret;
- }
-
- void
- _M_replace_categories(const _Impl*, category);
-
- void
- _M_replace_category(const _Impl*, const locale::id* const*);
-
- void
- _M_replace_facet(const _Impl*, const locale::id*);
-
- void
- _M_install_facet(const locale::id*, facet*);
-
- template<typename _Facet>
- inline void
- _M_init_facet(_Facet* __facet)
- { _M_install_facet(&_Facet::id, __facet); }
- };
-
- template<typename _Facet>
- locale::locale(const locale& __other, _Facet* __f)
- {
- _M_impl = new _Impl(*__other._M_impl, 1);
- _M_impl->_M_install_facet(&_Facet::id, __f);
- for (size_t __i = 0;
- __i < _S_categories_size + _S_extra_categories_size; ++__i)
- {
- delete [] _M_impl->_M_names[__i];
- char* __new = new char[2];
- strcpy(__new, "*");
- _M_impl->_M_names[__i] = __new;
- }
- }
-
- // 22.1.1.1.2 Class locale::facet
- class locale::facet
- {
- private:
- friend class locale;
- friend class locale::_Impl;
-
- _Atomic_word _M_references;
-
- protected:
- // Contains data from the underlying "C" library for for the
- // classic locale.
- static __c_locale _S_c_locale;
-
- // String literal for the name of the classic locale.
- static char _S_c_name[2];
-
- explicit
- facet(size_t __refs = 0) throw();
-
- virtual
- ~facet();
-
- static void
- _S_create_c_locale(__c_locale& __cloc, const char* __s,
- __c_locale __old = 0);
-
- static __c_locale
- _S_clone_c_locale(__c_locale& __cloc);
-
- static void
- _S_destroy_c_locale(__c_locale& __cloc);
-
- private:
- void
- _M_add_reference() throw();
-
- void
- _M_remove_reference() throw();
-
- facet(const facet&); // Not defined.
-
- void
- operator=(const facet&); // Not defined.
- };
-
-
- // 22.1.1.1.3 Class locale::id
- class locale::id
- {
- private:
- friend class locale;
- friend class locale::_Impl;
- template<typename _Facet>
- friend const _Facet&
- use_facet(const locale&);
- template<typename _Facet>
- friend bool
- has_facet(const locale&) throw ();
-
- // NB: There is no accessor for _M_index because it may be used
- // before the constructor is run; the effect of calling a member
- // function (even an inline) would be undefined.
- mutable size_t _M_index;
-
- // Last id number assigned.
- static _Atomic_word _S_highwater;
-
- void
- operator=(const id&); // Not defined.
-
- id(const id&); // Not defined.
-
- public:
- // NB: This class is always a static data member, and thus can be
- // counted on to be zero-initialized.
- id();
-
- inline size_t
- _M_id() const
- {
- if (!_M_index)
- _M_index = 1 + __exchange_and_add(&_S_highwater, 1);
- return _M_index - 1;
- }
- };
-
template<typename _Facet>
const _Facet&
use_facet(const locale& __loc);
diff --git a/contrib/libstdc++/include/bits/mask_array.h b/contrib/libstdc++/include/bits/mask_array.h
index 13c01d3..df23a46 100644
--- a/contrib/libstdc++/include/bits/mask_array.h
+++ b/contrib/libstdc++/include/bits/mask_array.h
@@ -1,6 +1,7 @@
// The template and inlines for the -*- C++ -*- mask_array class.
-// Copyright (C) 1997-2001 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -41,120 +42,119 @@
namespace std {
- template <class _Tp> class mask_array
+ template <class _Tp>
+ class mask_array
{
public:
- typedef _Tp value_type;
+ typedef _Tp value_type;
- void operator= (const valarray<_Tp>&) const;
- void operator*= (const valarray<_Tp>&) const;
- void operator/= (const valarray<_Tp>&) const;
- void operator%= (const valarray<_Tp>&) const;
- void operator+= (const valarray<_Tp>&) const;
- void operator-= (const valarray<_Tp>&) const;
- void operator^= (const valarray<_Tp>&) const;
- void operator&= (const valarray<_Tp>&) const;
- void operator|= (const valarray<_Tp>&) const;
- void operator<<=(const valarray<_Tp>&) const;
- void operator>>=(const valarray<_Tp>&) const;
- void operator= (const _Tp&);
+ void operator=(const valarray<_Tp>&) const;
+ void operator*=(const valarray<_Tp>&) const;
+ void operator/=(const valarray<_Tp>&) const;
+ void operator%=(const valarray<_Tp>&) const;
+ void operator+=(const valarray<_Tp>&) const;
+ void operator-=(const valarray<_Tp>&) const;
+ void operator^=(const valarray<_Tp>&) const;
+ void operator&=(const valarray<_Tp>&) const;
+ void operator|=(const valarray<_Tp>&) const;
+ void operator<<=(const valarray<_Tp>&) const;
+ void operator>>=(const valarray<_Tp>&) const;
+ void operator=(const _Tp&) const;
// ~mask_array ();
- template<class _Dom>
- void operator= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator*= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator/= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator%= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator+= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator-= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator^= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator&= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator|= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
+ template<class _Dom>
+ void operator=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator*=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator/=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator%=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator+=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator-=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator^=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator&=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator|=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
void operator<<=(const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
+ template<class _Dom>
void operator>>=(const _Expr<_Dom,_Tp>&) const;
private:
- mask_array (_Array<_Tp>, size_t, _Array<bool>);
- friend class valarray<_Tp>;
+ mask_array(_Array<_Tp>, size_t, _Array<bool>);
+ friend class valarray<_Tp>;
- const size_t _M_sz;
- const _Array<bool> _M_mask;
- const _Array<_Tp> _M_array;
-
- mask_array (const mask_array&);
-
- // not implemented
- mask_array ();
- mask_array& operator= (const mask_array&);
+ const size_t _M_sz;
+ const _Array<bool> _M_mask;
+ const _Array<_Tp> _M_array;
+
+ mask_array (const mask_array&);
+
+ // not implemented
+ mask_array();
+ mask_array& operator=(const mask_array&);
};
- template<typename _Tp>
- inline mask_array<_Tp>::mask_array (const mask_array<_Tp>& a)
- : _M_sz (a._M_sz), _M_mask (a._M_mask), _M_array (a._M_array) {}
+ template<typename _Tp>
+ inline mask_array<_Tp>::mask_array(const mask_array<_Tp>& a)
+ : _M_sz(a._M_sz), _M_mask(a._M_mask), _M_array(a._M_array) {}
- template<typename _Tp>
+ template<typename _Tp>
inline
- mask_array<_Tp>::mask_array (_Array<_Tp> __a, size_t __s, _Array<bool> __m)
- : _M_sz (__s), _M_mask (__m), _M_array (__a) {}
+ mask_array<_Tp>::mask_array(_Array<_Tp> __a, size_t __s, _Array<bool> __m)
+ : _M_sz(__s), _M_mask(__m), _M_array(__a) {}
- // template<typename _Tp>
- // inline mask_array<_Tp>::~mask_array () {}
-
- template<typename _Tp>
+ template<typename _Tp>
inline void
- mask_array<_Tp>::operator= (const _Tp& __t)
- { __valarray_fill (_M_array, _M_sz, _M_mask, __t); }
+ mask_array<_Tp>::operator=(const _Tp& __t) const
+ { __valarray_fill(_M_array, _M_sz, _M_mask, __t); }
- template<typename _Tp>
+ template<typename _Tp>
inline void
- mask_array<_Tp>::operator= (const valarray<_Tp>& __v) const
- { __valarray_copy (_Array<_Tp> (__v), __v.size (), _M_array, _M_mask); }
+ mask_array<_Tp>::operator=(const valarray<_Tp>& __v) const
+ { __valarray_copy(_Array<_Tp>(__v), __v.size(), _M_array, _M_mask); }
- template<typename _Tp>
- template<class E>
- inline void
- mask_array<_Tp>::operator= (const _Expr<E, _Tp>& __e) const
- { __valarray_copy (__e, __e.size (), _M_array, _M_mask); }
+ template<typename _Tp>
+ template<class _Ex>
+ inline void
+ mask_array<_Tp>::operator=(const _Expr<_Ex, _Tp>& __e) const
+ { __valarray_copy(__e, __e.size(), _M_array, _M_mask); }
#undef _DEFINE_VALARRAY_OPERATOR
-#define _DEFINE_VALARRAY_OPERATOR(op, name) \
-template<typename _Tp> \
-inline void \
-mask_array<_Tp>::operator op##= (const valarray<_Tp>& __v) const \
-{ \
- _Array_augmented_##name (_M_array, _M_mask, \
- _Array<_Tp> (__v), __v.size ()); \
-} \
+#define _DEFINE_VALARRAY_OPERATOR(_Op, _Name) \
+ template<typename _Tp> \
+ inline void \
+ mask_array<_Tp>::operator _Op##=(const valarray<_Tp>& __v) const \
+ { \
+ _Array_augmented_##_Name(_M_array, _M_mask, \
+ _Array<_Tp>(__v), __v.size()); \
+ } \
\
-template<typename _Tp> template<class E> \
-inline void \
-mask_array<_Tp>::operator op##= (const _Expr<E, _Tp>& __e) const \
-{ \
- _Array_augmented_##name (_M_array, _M_mask, __e, __e.size ()); \
-}
-
-_DEFINE_VALARRAY_OPERATOR(*, multiplies)
-_DEFINE_VALARRAY_OPERATOR(/, divides)
-_DEFINE_VALARRAY_OPERATOR(%, modulus)
-_DEFINE_VALARRAY_OPERATOR(+, plus)
-_DEFINE_VALARRAY_OPERATOR(-, minus)
-_DEFINE_VALARRAY_OPERATOR(^, xor)
-_DEFINE_VALARRAY_OPERATOR(&, and)
-_DEFINE_VALARRAY_OPERATOR(|, or)
-_DEFINE_VALARRAY_OPERATOR(<<, shift_left)
-_DEFINE_VALARRAY_OPERATOR(>>, shift_right)
+ template<typename _Tp> \
+ template<class _Dom> \
+ inline void \
+ mask_array<_Tp>::operator _Op##=(const _Expr<_Dom, _Tp>& __e) const\
+ { \
+ _Array_augmented_##_Name(_M_array, _M_mask, __e, __e.size()); \
+ }
+
+_DEFINE_VALARRAY_OPERATOR(*, __multiplies)
+_DEFINE_VALARRAY_OPERATOR(/, __divides)
+_DEFINE_VALARRAY_OPERATOR(%, __modulus)
+_DEFINE_VALARRAY_OPERATOR(+, __plus)
+_DEFINE_VALARRAY_OPERATOR(-, __minus)
+_DEFINE_VALARRAY_OPERATOR(^, __bitwise_xor)
+_DEFINE_VALARRAY_OPERATOR(&, __bitwise_and)
+_DEFINE_VALARRAY_OPERATOR(|, __bitwise_or)
+_DEFINE_VALARRAY_OPERATOR(<<, __shift_left)
+_DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
#undef _DEFINE_VALARRAY_OPERATOR
diff --git a/contrib/libstdc++/include/bits/ostream.tcc b/contrib/libstdc++/include/bits/ostream.tcc
index e42eca2..ab15ae8 100644
--- a/contrib/libstdc++/include/bits/ostream.tcc
+++ b/contrib/libstdc++/include/bits/ostream.tcc
@@ -41,11 +41,19 @@ namespace std
template<typename _CharT, typename _Traits>
basic_ostream<_CharT, _Traits>::sentry::
sentry(basic_ostream<_CharT,_Traits>& __os)
- : _M_ok(__os.good()), _M_os(__os)
+ : _M_os(__os)
{
- // XXX MT
- if (_M_ok && __os.tie())
- __os.tie()->flush();
+ // XXX MT
+ if (__os.tie() && __os.good())
+ __os.tie()->flush();
+
+ if (__os.good())
+ _M_ok = true;
+ else
+ {
+ _M_ok = false;
+ __os.setstate(ios_base::failbit);
+ }
}
template<typename _CharT, typename _Traits>
@@ -58,11 +66,11 @@ namespace std
{
try
{ __pf(*this); }
- catch(exception& __fail)
+ catch(...)
{
// 27.6.2.5.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -80,11 +88,11 @@ namespace std
{
try
{ __pf(*this); }
- catch(exception& __fail)
+ catch(...)
{
// 27.6.2.5.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -102,11 +110,11 @@ namespace std
{
try
{ __pf(*this); }
- catch(exception& __fail)
+ catch(...)
{
// 27.6.2.5.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -126,11 +134,11 @@ namespace std
if (!__copy_streambufs(*this, __sbin, this->rdbuf()))
this->setstate(ios_base::failbit);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.2.5.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -153,11 +161,11 @@ namespace std
if (_M_fnumput->put(*this, *this, this->fill(), __n).failed())
this->setstate(ios_base::badbit);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -190,11 +198,11 @@ namespace std
this->setstate(ios_base::badbit);
}
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -215,11 +223,11 @@ namespace std
if (_M_fnumput->put(*this, *this, this->fill(), __n).failed())
this->setstate(ios_base::badbit);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -254,11 +262,11 @@ namespace std
this->setstate(ios_base::badbit);
}
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -279,11 +287,11 @@ namespace std
if (_M_fnumput->put(*this, *this, this->fill(), __n).failed())
this->setstate(ios_base::badbit);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -305,11 +313,11 @@ namespace std
if (_M_fnumput->put(*this, *this, this->fill(), __n).failed())
this->setstate(ios_base::badbit);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -330,11 +338,11 @@ namespace std
if (_M_fnumput->put(*this, *this, this->fill(), __n).failed())
this->setstate(ios_base::badbit);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -355,11 +363,11 @@ namespace std
if (_M_fnumput->put(*this, *this, this->fill(), __n).failed())
this->setstate(ios_base::badbit);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- this->setstate(ios_base::badbit);
+ this->_M_setstate(ios_base::badbit);
if ((this->exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -468,7 +476,7 @@ namespace std
{
try
{
- streamsize __w = __out.width();
+ const streamsize __w = __out.width() > 0 ? __out.width() : 0;
_CharT* __pads = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * (__w + 1)));
__pads[0] = __c;
streamsize __len = 1;
@@ -481,11 +489,11 @@ namespace std
__out.write(__pads, __len);
__out.width(0);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- __out.setstate(ios_base::badbit);
+ __out._M_setstate(ios_base::badbit);
if ((__out.exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -504,7 +512,7 @@ namespace std
{
try
{
- streamsize __w = __out.width();
+ const streamsize __w = __out.width() > 0 ? __out.width() : 0;
char* __pads = static_cast<char*>(__builtin_alloca(__w + 1));
__pads[0] = __c;
streamsize __len = 1;
@@ -517,11 +525,11 @@ namespace std
__out.write(__pads, __len);
__out.width(0);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- __out.setstate(ios_base::badbit);
+ __out._M_setstate(ios_base::badbit);
if ((__out.exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -539,7 +547,7 @@ namespace std
{
try
{
- streamsize __w = __out.width();
+ const streamsize __w = __out.width() > 0 ? __out.width() : 0;
_CharT* __pads = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w));
streamsize __len = static_cast<streamsize>(_Traits::length(__s));
if (__w > __len)
@@ -552,11 +560,11 @@ namespace std
__out.write(__s, __len);
__out.width(0);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- __out.setstate(ios_base::badbit);
+ __out._M_setstate(ios_base::badbit);
if ((__out.exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -588,7 +596,7 @@ namespace std
try
{
streamsize __len = static_cast<streamsize>(__clen);
- streamsize __w = __out.width();
+ const streamsize __w = __out.width() > 0 ? __out.width() : 0;
_CharT* __pads = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w));
if (__w > __len)
@@ -601,11 +609,11 @@ namespace std
__out.write(__str, __len);
__out.width(0);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- __out.setstate(ios_base::badbit);
+ __out._M_setstate(ios_base::badbit);
if ((__out.exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -626,7 +634,7 @@ namespace std
{
try
{
- streamsize __w = __out.width();
+ const streamsize __w = __out.width() > 0 ? __out.width() : 0;
char* __pads = static_cast<char*>(__builtin_alloca(__w));
streamsize __len = static_cast<streamsize>(_Traits::length(__s));
@@ -640,11 +648,11 @@ namespace std
__out.write(__s, __len);
__out.width(0);
}
- catch(exception& __fail)
+ catch(...)
{
// 27.6.1.2.1 Common requirements.
// Turn this on without causing an ios::failure to be thrown.
- __out.setstate(ios_base::badbit);
+ __out._M_setstate(ios_base::badbit);
if ((__out.exceptions() & ios_base::badbit) != 0)
__throw_exception_again;
}
@@ -665,7 +673,7 @@ namespace std
if (__cerb)
{
const _CharT* __s = __str.data();
- streamsize __w = __out.width();
+ const streamsize __w = __out.width() > 0 ? __out.width() : 0;
_CharT* __pads = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w));
streamsize __len = static_cast<streamsize>(__str.size());
#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
@@ -689,6 +697,7 @@ namespace std
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
+#if _GLIBCPP_EXTERN_TEMPLATE
extern template class basic_ostream<char>;
extern template ostream& endl(ostream&);
extern template ostream& ends(ostream&);
@@ -710,4 +719,5 @@ namespace std
extern template wostream& operator<<(wostream&, const wchar_t*);
extern template wostream& operator<<(wostream&, const char*);
#endif
+#endif
} // namespace std
diff --git a/contrib/libstdc++/include/bits/slice_array.h b/contrib/libstdc++/include/bits/slice_array.h
index cca3e63..2502ef4 100644
--- a/contrib/libstdc++/include/bits/slice_array.h
+++ b/contrib/libstdc++/include/bits/slice_array.h
@@ -1,6 +1,6 @@
// The template and inlines for the -*- C++ -*- slice_array class.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -41,134 +41,171 @@
namespace std
{
+ class slice
+ {
+ public:
+ slice();
+ slice(size_t, size_t, size_t);
+
+ size_t start() const;
+ size_t size() const;
+ size_t stride() const;
- template<typename _Tp>
+ private:
+ size_t _M_off; // offset
+ size_t _M_sz; // size
+ size_t _M_st; // stride unit
+ };
+
+ // The default constructor constructor is not required to initialize
+ // data members with any meaningful values, so we choose to do nothing.
+ inline
+ slice::slice() {}
+
+ inline
+ slice::slice(size_t __o, size_t __d, size_t __s)
+ : _M_off(__o), _M_sz(__d), _M_st(__s) {}
+
+ inline size_t
+ slice::start() const
+ { return _M_off; }
+
+ inline size_t
+ slice::size() const
+ { return _M_sz; }
+
+ inline size_t
+ slice::stride() const
+ { return _M_st; }
+
+ template<typename _Tp>
class slice_array
{
public:
- typedef _Tp value_type;
+ typedef _Tp value_type;
// This constructor is implemented since we need to return a value.
- slice_array (const slice_array&);
+ slice_array(const slice_array&);
// This operator must be public. See DR-253.
- slice_array& operator= (const slice_array&);
-
- void operator= (const valarray<_Tp>&) const;
- void operator*= (const valarray<_Tp>&) const;
- void operator/= (const valarray<_Tp>&) const;
- void operator%= (const valarray<_Tp>&) const;
- void operator+= (const valarray<_Tp>&) const;
- void operator-= (const valarray<_Tp>&) const;
- void operator^= (const valarray<_Tp>&) const;
- void operator&= (const valarray<_Tp>&) const;
- void operator|= (const valarray<_Tp>&) const;
- void operator<<= (const valarray<_Tp>&) const;
- void operator>>= (const valarray<_Tp>&) const;
- void operator= (const _Tp &);
- // ~slice_array ();
-
- template<class _Dom>
- void operator= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator*= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator/= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator%= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator+= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator-= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator^= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator&= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator|= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator<<= (const _Expr<_Dom,_Tp>&) const;
- template<class _Dom>
- void operator>>= (const _Expr<_Dom,_Tp>&) const;
-
+ slice_array& operator=(const slice_array&);
+
+ void operator=(const valarray<_Tp>&) const;
+ void operator*=(const valarray<_Tp>&) const;
+ void operator/=(const valarray<_Tp>&) const;
+ void operator%=(const valarray<_Tp>&) const;
+ void operator+=(const valarray<_Tp>&) const;
+ void operator-=(const valarray<_Tp>&) const;
+ void operator^=(const valarray<_Tp>&) const;
+ void operator&=(const valarray<_Tp>&) const;
+ void operator|=(const valarray<_Tp>&) const;
+ void operator<<=(const valarray<_Tp>&) const;
+ void operator>>=(const valarray<_Tp>&) const;
+ void operator=(const _Tp &) const;
+ // ~slice_array ();
+
+ template<class _Dom>
+ void operator=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator*=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator/=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator%=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator+=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator-=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator^=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator&=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator|=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator<<=(const _Expr<_Dom,_Tp>&) const;
+ template<class _Dom>
+ void operator>>=(const _Expr<_Dom,_Tp>&) const;
+
private:
- friend class valarray<_Tp>;
- slice_array(_Array<_Tp>, const slice&);
-
- const size_t _M_sz;
- const size_t _M_stride;
- const _Array<_Tp> _M_array;
+ friend class valarray<_Tp>;
+ slice_array(_Array<_Tp>, const slice&);
+
+ const size_t _M_sz;
+ const size_t _M_stride;
+ const _Array<_Tp> _M_array;
- // not implemented
- slice_array ();
+ // not implemented
+ slice_array();
};
- template<typename _Tp>
- inline slice_array<_Tp>::slice_array (_Array<_Tp> __a, const slice& __s)
- : _M_sz (__s.size ()), _M_stride (__s.stride ()),
- _M_array (__a.begin () + __s.start ()) {}
+ template<typename _Tp>
+ inline
+ slice_array<_Tp>::slice_array(_Array<_Tp> __a, const slice& __s)
+ : _M_sz(__s.size()), _M_stride(__s.stride()),
+ _M_array(__a.begin() + __s.start()) {}
+ template<typename _Tp>
+ inline
+ slice_array<_Tp>::slice_array(const slice_array<_Tp>& a)
+ : _M_sz(a._M_sz), _M_stride(a._M_stride), _M_array(a._M_array) {}
- template<typename _Tp>
- inline slice_array<_Tp>::slice_array(const slice_array<_Tp>& a)
- : _M_sz(a._M_sz), _M_stride(a._M_stride), _M_array(a._M_array) {}
-
- // template<typename _Tp>
- // inline slice_array<_Tp>::~slice_array () {}
+ // template<typename _Tp>
+ // inline slice_array<_Tp>::~slice_array () {}
template<typename _Tp>
- inline slice_array<_Tp>&
- slice_array<_Tp>::operator=(const slice_array<_Tp>& __a)
- {
- __valarray_copy(__a._M_array, __a._M_sz, __a._M_stride,
- _M_array, _M_stride);
- return *this;
- }
-
+ inline slice_array<_Tp>&
+ slice_array<_Tp>::operator=(const slice_array<_Tp>& __a)
+ {
+ __valarray_copy(__a._M_array, __a._M_sz, __a._M_stride,
+ _M_array, _M_stride);
+ return *this;
+ }
- template<typename _Tp>
+ template<typename _Tp>
inline void
- slice_array<_Tp>::operator= (const _Tp& __t)
- { __valarray_fill (_M_array, _M_sz, _M_stride, __t); }
+ slice_array<_Tp>::operator=(const _Tp& __t) const
+ { __valarray_fill(_M_array, _M_sz, _M_stride, __t); }
- template<typename _Tp>
+ template<typename _Tp>
inline void
- slice_array<_Tp>::operator= (const valarray<_Tp>& __v) const
- { __valarray_copy (_Array<_Tp> (__v), _M_array, _M_sz, _M_stride); }
+ slice_array<_Tp>::operator=(const valarray<_Tp>& __v) const
+ { __valarray_copy(_Array<_Tp>(__v), _M_array, _M_sz, _M_stride); }
- template<typename _Tp>
- template<class _Dom>
+ template<typename _Tp>
+ template<class _Dom>
inline void
- slice_array<_Tp>::operator= (const _Expr<_Dom,_Tp>& __e) const
- { __valarray_copy (__e, _M_sz, _M_array, _M_stride); }
+ slice_array<_Tp>::operator=(const _Expr<_Dom,_Tp>& __e) const
+ { __valarray_copy(__e, _M_sz, _M_array, _M_stride); }
#undef _DEFINE_VALARRAY_OPERATOR
-#define _DEFINE_VALARRAY_OPERATOR(op, name) \
-template<typename _Tp> \
-inline void \
-slice_array<_Tp>::operator op##= (const valarray<_Tp>& __v) const \
-{ \
- _Array_augmented_##name (_M_array, _M_sz, _M_stride, _Array<_Tp> (__v));\
-} \
+#define _DEFINE_VALARRAY_OPERATOR(_Op,_Name) \
+ template<typename _Tp> \
+ inline void \
+ slice_array<_Tp>::operator _Op##=(const valarray<_Tp>& __v) const \
+ { \
+ _Array_augmented_##_Name(_M_array, _M_sz, _M_stride, _Array<_Tp>(__v));\
+ } \
\
-template<typename _Tp> template<class _Dom> \
-inline void \
-slice_array<_Tp>::operator op##= (const _Expr<_Dom,_Tp>& __e) const \
-{ \
- _Array_augmented_##name (_M_array, _M_stride, __e, _M_sz); \
-}
+ template<typename _Tp> \
+ template<class _Dom> \
+ inline void \
+ slice_array<_Tp>::operator _Op##=(const _Expr<_Dom,_Tp>& __e) const\
+ { \
+ _Array_augmented_##_Name(_M_array, _M_stride, __e, _M_sz); \
+ }
-_DEFINE_VALARRAY_OPERATOR(*, multiplies)
-_DEFINE_VALARRAY_OPERATOR(/, divides)
-_DEFINE_VALARRAY_OPERATOR(%, modulus)
-_DEFINE_VALARRAY_OPERATOR(+, plus)
-_DEFINE_VALARRAY_OPERATOR(-, minus)
-_DEFINE_VALARRAY_OPERATOR(^, xor)
-_DEFINE_VALARRAY_OPERATOR(&, and)
-_DEFINE_VALARRAY_OPERATOR(|, or)
-_DEFINE_VALARRAY_OPERATOR(<<, shift_left)
-_DEFINE_VALARRAY_OPERATOR(>>, shift_right)
+_DEFINE_VALARRAY_OPERATOR(*, __multiplies)
+_DEFINE_VALARRAY_OPERATOR(/, __divides)
+_DEFINE_VALARRAY_OPERATOR(%, __modulus)
+_DEFINE_VALARRAY_OPERATOR(+, __plus)
+_DEFINE_VALARRAY_OPERATOR(-, __minus)
+_DEFINE_VALARRAY_OPERATOR(^, __bitwise_xor)
+_DEFINE_VALARRAY_OPERATOR(&, __bitwise_and)
+_DEFINE_VALARRAY_OPERATOR(|, __bitwise_or)
+_DEFINE_VALARRAY_OPERATOR(<<, __shift_left)
+_DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
#undef _DEFINE_VALARRAY_OPERATOR
diff --git a/contrib/libstdc++/include/bits/stl_alloc.h b/contrib/libstdc++/include/bits/stl_alloc.h
index 238986d..9677c3e 100644
--- a/contrib/libstdc++/include/bits/stl_alloc.h
+++ b/contrib/libstdc++/include/bits/stl_alloc.h
@@ -1,6 +1,6 @@
// Allocators -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -85,7 +85,6 @@
#include <cstddef>
#include <cstdlib>
#include <cstring>
-#include <cassert>
#include <bits/functexcept.h> // For __throw_bad_alloc
#include <bits/stl_threads.h>
@@ -129,10 +128,7 @@ namespace std
{
private:
static void* _S_oom_malloc(size_t);
-
- // _GLIBCPP_DEPRECATED
static void* _S_oom_realloc(void*, size_t);
-
static void (* __malloc_alloc_oom_handler)();
public:
@@ -149,7 +145,6 @@ namespace std
deallocate(void* __p, size_t /* __n */)
{ free(__p); }
- // _GLIBCPP_DEPRECATED
static void*
reallocate(void* __p, size_t /* old_sz */, size_t __new_sz)
{
@@ -191,7 +186,6 @@ namespace std
}
}
- // _GLIBCPP_DEPRECATED
template<int __inst>
void*
__malloc_alloc_template<__inst>::
@@ -256,10 +250,7 @@ namespace std
/**
* @if maint
* An adaptor for an underlying allocator (_Alloc) to check the size
- * arguments for debugging. Errors are reported using assert; these
- * checks can be disabled via NDEBUG, but the space penalty is still
- * paid, therefore it is far better to just use the underlying allocator
- * by itelf when no checking is desired.
+ * arguments for debugging.
*
* "There is some evidence that this can confuse Purify." - SGI comment
*
@@ -288,16 +279,17 @@ namespace std
deallocate(void* __p, size_t __n)
{
char* __real_p = (char*)__p - (int) _S_extra;
- assert(*(size_t*)__real_p == __n);
+ if (*(size_t*)__real_p != __n)
+ abort();
_Alloc::deallocate(__real_p, __n + (int) _S_extra);
}
- // _GLIBCPP_DEPRECATED
static void*
reallocate(void* __p, size_t __old_sz, size_t __new_sz)
{
char* __real_p = (char*)__p - (int) _S_extra;
- assert(*(size_t*)__real_p == __old_sz);
+ if (*(size_t*)__real_p != __old_sz)
+ abort();
char* __result = (char*) _Alloc::reallocate(__real_p,
__old_sz + (int) _S_extra,
__new_sz + (int) _S_extra);
@@ -405,8 +397,6 @@ namespace std
__atomic_add(&_S_force_new, 1);
else
__atomic_add(&_S_force_new, -1);
- // Trust but verify...
- assert(_S_force_new != 0);
}
if ((__n > (size_t) _MAX_BYTES) || (_S_force_new > 0))
@@ -454,7 +444,6 @@ namespace std
}
}
- // _GLIBCPP_DEPRECATED
static void*
reallocate(void* __p, size_t __old_sz, size_t __new_sz);
};
@@ -511,8 +500,8 @@ namespace std
_Obj* volatile* __my_free_list =
_S_free_list + _S_freelist_index(__bytes_left);
- ((_Obj*)_S_start_free) -> _M_free_list_link = *__my_free_list;
- *__my_free_list = (_Obj*)_S_start_free;
+ ((_Obj*)(void*)_S_start_free) -> _M_free_list_link = *__my_free_list;
+ *__my_free_list = (_Obj*)(void*)_S_start_free;
}
_S_start_free = (char*) __new_alloc::allocate(__bytes_to_get);
if (_S_start_free == 0)
@@ -570,12 +559,12 @@ namespace std
__my_free_list = _S_free_list + _S_freelist_index(__n);
// Build free list in chunk.
- __result = (_Obj*)__chunk;
- *__my_free_list = __next_obj = (_Obj*)(__chunk + __n);
+ __result = (_Obj*)(void*)__chunk;
+ *__my_free_list = __next_obj = (_Obj*)(void*)(__chunk + __n);
for (__i = 1; ; __i++)
{
__current_obj = __next_obj;
- __next_obj = (_Obj*)((char*)__next_obj + __n);
+ __next_obj = (_Obj*)(void*)((char*)__next_obj + __n);
if (__nobjs - 1 == __i)
{
__current_obj -> _M_free_list_link = 0;
@@ -588,7 +577,6 @@ namespace std
}
- // _GLIBCPP_DEPRECATED
template<bool threads, int inst>
void*
__default_alloc_template<threads, inst>::
@@ -976,9 +964,11 @@ namespace std
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
+#if _GLIBCPP_EXTERN_TEMPLATE
extern template class allocator<char>;
extern template class allocator<wchar_t>;
extern template class __default_alloc_template<true,0>;
+#endif
} // namespace std
#endif
diff --git a/contrib/libstdc++/include/bits/stl_bvector.h b/contrib/libstdc++/include/bits/stl_bvector.h
index ce6df71..2c97d47 100644
--- a/contrib/libstdc++/include/bits/stl_bvector.h
+++ b/contrib/libstdc++/include/bits/stl_bvector.h
@@ -91,13 +91,6 @@ public:
void flip() { *_M_p ^= _M_mask; }
};
-inline void swap(_Bit_reference __x, _Bit_reference __y)
-{
- bool __tmp = __x;
- __x = __y;
- __y = __tmp;
-}
-
struct _Bit_iterator_base : public iterator<random_access_iterator_tag, bool>
{
_Bit_type * _M_p;
@@ -363,8 +356,8 @@ template <typename _Alloc>
typedef _Bit_iterator iterator;
typedef _Bit_const_iterator const_iterator;
- typedef reverse_iterator<const_iterator> const_reverse_iterator;
- typedef reverse_iterator<iterator> reverse_iterator;
+ typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
+ typedef std::reverse_iterator<iterator> reverse_iterator;
typedef typename _Bvector_base<_Alloc>::allocator_type allocator_type;
allocator_type get_allocator() const {
@@ -637,6 +630,14 @@ template <typename _Alloc>
std::swap(_M_finish, __x._M_finish);
std::swap(_M_end_of_storage, __x._M_end_of_storage);
}
+
+ // [23.2.5]/1, third-to-last entry in synopsis listing
+ static void swap(reference __x, reference __y) {
+ bool __tmp = __x;
+ __x = __y;
+ __y = __tmp;
+ }
+
iterator insert(iterator __position, bool __x = bool()) {
difference_type __n = __position - begin();
if (_M_finish._M_p != _M_end_of_storage && __position == end())
diff --git a/contrib/libstdc++/include/bits/stl_deque.h b/contrib/libstdc++/include/bits/stl_deque.h
index cbe8779..454fed3 100644
--- a/contrib/libstdc++/include/bits/stl_deque.h
+++ b/contrib/libstdc++/include/bits/stl_deque.h
@@ -1,4 +1,4 @@
-// deque implementation -*- C++ -*-
+// Deque implementation -*- C++ -*-
// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
//
@@ -58,1625 +58,1546 @@
* You should not attempt to use it directly.
*/
-#include <bits/concept_check.h>
-#include <bits/stl_iterator_base_types.h>
-#include <bits/stl_iterator_base_funcs.h>
-
#ifndef __GLIBCPP_INTERNAL_DEQUE_H
#define __GLIBCPP_INTERNAL_DEQUE_H
+#include <bits/concept_check.h>
+#include <bits/stl_iterator_base_types.h>
+#include <bits/stl_iterator_base_funcs.h>
-// Since this entire file is within namespace std, there's no reason to
-// waste two spaces along the left column. Thus the leading indentation is
-// slightly violated from here on.
namespace std
{
-
-/**
- * @if maint
- * @brief This function controls the size of memory nodes.
- * @param size The size of an element.
- * @return The number (not bytesize) of elements per node.
- *
- * This function started off as a compiler kludge from SGI, but seems to
- * be a useful wrapper around a repeated constant expression.
- * @endif
-*/
-inline size_t
-__deque_buf_size(size_t __size)
-{ return __size < 512 ? size_t(512 / __size) : size_t(1); }
-
-
-/// A deque::iterator.
-/**
- * Quite a bit of intelligence here. Much of the functionality of deque is
- * actually passed off to this class. A deque holds two of these internally,
- * marking its valid range. Access to elements is done as offsets of either
- * of those two, relying on operator overloading in this class.
- *
- * @if maint
- * All the functions are op overloads except for _M_set_node.
- * @endif
-*/
-template <class _Tp, class _Ref, class _Ptr>
-struct _Deque_iterator
-{
- typedef _Deque_iterator<_Tp, _Tp&, _Tp*> iterator;
- typedef _Deque_iterator<_Tp, const _Tp&, const _Tp*> const_iterator;
- static size_t _S_buffer_size() { return __deque_buf_size(sizeof(_Tp)); }
-
- typedef random_access_iterator_tag iterator_category;
- typedef _Tp value_type;
- typedef _Ptr pointer;
- typedef _Ref reference;
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
- typedef _Tp** _Map_pointer;
- typedef _Deque_iterator _Self;
-
- _Tp* _M_cur;
- _Tp* _M_first;
- _Tp* _M_last;
- _Map_pointer _M_node;
-
- _Deque_iterator(_Tp* __x, _Map_pointer __y)
- : _M_cur(__x), _M_first(*__y),
- _M_last(*__y + _S_buffer_size()), _M_node(__y) {}
- _Deque_iterator() : _M_cur(0), _M_first(0), _M_last(0), _M_node(0) {}
- _Deque_iterator(const iterator& __x)
- : _M_cur(__x._M_cur), _M_first(__x._M_first),
- _M_last(__x._M_last), _M_node(__x._M_node) {}
-
- reference operator*() const { return *_M_cur; }
- pointer operator->() const { return _M_cur; }
-
- _Self& operator++() {
- ++_M_cur;
- if (_M_cur == _M_last) {
- _M_set_node(_M_node + 1);
- _M_cur = _M_first;
+ /**
+ * @if maint
+ * @brief This function controls the size of memory nodes.
+ * @param size The size of an element.
+ * @return The number (not byte size) of elements per node.
+ *
+ * This function started off as a compiler kludge from SGI, but seems to
+ * be a useful wrapper around a repeated constant expression. The '512' is
+ * tuneable (and no other code needs to change), but no investigation has
+ * been done since inheriting the SGI code.
+ * @endif
+ */
+ inline size_t
+ __deque_buf_size(size_t __size)
+ { return __size < 512 ? size_t(512 / __size) : size_t(1); }
+
+
+ /**
+ * @brief A deque::iterator.
+ *
+ * Quite a bit of intelligence here. Much of the functionality of deque is
+ * actually passed off to this class. A deque holds two of these internally,
+ * marking its valid range. Access to elements is done as offsets of either
+ * of those two, relying on operator overloading in this class.
+ *
+ * @if maint
+ * All the functions are op overloads except for _M_set_node.
+ * @endif
+ */
+ template <typename _Tp, typename _Ref, typename _Ptr>
+ struct _Deque_iterator
+ {
+ typedef _Deque_iterator<_Tp, _Tp&, _Tp*> iterator;
+ typedef _Deque_iterator<_Tp, const _Tp&, const _Tp*> const_iterator;
+ static size_t _S_buffer_size() { return __deque_buf_size(sizeof(_Tp)); }
+
+ typedef random_access_iterator_tag iterator_category;
+ typedef _Tp value_type;
+ typedef _Ptr pointer;
+ typedef _Ref reference;
+ typedef size_t size_type;
+ typedef ptrdiff_t difference_type;
+ typedef _Tp** _Map_pointer;
+ typedef _Deque_iterator _Self;
+
+ _Tp* _M_cur;
+ _Tp* _M_first;
+ _Tp* _M_last;
+ _Map_pointer _M_node;
+
+ _Deque_iterator(_Tp* __x, _Map_pointer __y)
+ : _M_cur(__x), _M_first(*__y),
+ _M_last(*__y + _S_buffer_size()), _M_node(__y) {}
+ _Deque_iterator() : _M_cur(0), _M_first(0), _M_last(0), _M_node(0) {}
+ _Deque_iterator(const iterator& __x)
+ : _M_cur(__x._M_cur), _M_first(__x._M_first),
+ _M_last(__x._M_last), _M_node(__x._M_node) {}
+
+ reference operator*() const { return *_M_cur; }
+ pointer operator->() const { return _M_cur; }
+
+ _Self& operator++() {
+ ++_M_cur;
+ if (_M_cur == _M_last) {
+ _M_set_node(_M_node + 1);
+ _M_cur = _M_first;
+ }
+ return *this;
+ }
+ _Self operator++(int) {
+ _Self __tmp = *this;
+ ++*this;
+ return __tmp;
+ }
+
+ _Self& operator--() {
+ if (_M_cur == _M_first) {
+ _M_set_node(_M_node - 1);
+ _M_cur = _M_last;
+ }
+ --_M_cur;
+ return *this;
+ }
+ _Self operator--(int) {
+ _Self __tmp = *this;
+ --*this;
+ return __tmp;
+ }
+
+ _Self& operator+=(difference_type __n)
+ {
+ difference_type __offset = __n + (_M_cur - _M_first);
+ if (__offset >= 0 && __offset < difference_type(_S_buffer_size()))
+ _M_cur += __n;
+ else {
+ difference_type __node_offset =
+ __offset > 0 ? __offset / difference_type(_S_buffer_size())
+ : -difference_type((-__offset - 1) / _S_buffer_size()) - 1;
+ _M_set_node(_M_node + __node_offset);
+ _M_cur = _M_first +
+ (__offset - __node_offset * difference_type(_S_buffer_size()));
+ }
+ return *this;
+ }
+
+ _Self operator+(difference_type __n) const
+ {
+ _Self __tmp = *this;
+ return __tmp += __n;
+ }
+
+ _Self& operator-=(difference_type __n) { return *this += -__n; }
+
+ _Self operator-(difference_type __n) const {
+ _Self __tmp = *this;
+ return __tmp -= __n;
+ }
+
+ reference operator[](difference_type __n) const { return *(*this + __n); }
+
+ /** @if maint
+ * Prepares to traverse new_node. Sets everything except _M_cur, which
+ * should therefore be set by the caller immediately afterwards, based on
+ * _M_first and _M_last.
+ * @endif
+ */
+ void
+ _M_set_node(_Map_pointer __new_node)
+ {
+ _M_node = __new_node;
+ _M_first = *__new_node;
+ _M_last = _M_first + difference_type(_S_buffer_size());
}
- return *this;
+ };
+
+ // Note: we also provide overloads whose operands are of the same type in
+ // order to avoid ambiguous overload resolution when std::rel_ops operators
+ // are in scope (for additional details, see libstdc++/3628)
+ template <typename _Tp, typename _Ref, typename _Ptr>
+ inline bool
+ operator==(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
+ const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
+ {
+ return __x._M_cur == __y._M_cur;
}
- _Self operator++(int) {
- _Self __tmp = *this;
- ++*this;
- return __tmp;
+
+ template <typename _Tp, typename _RefL, typename _PtrL,
+ typename _RefR, typename _PtrR>
+ inline bool
+ operator==(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
+ const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
+ {
+ return __x._M_cur == __y._M_cur;
}
-
- _Self& operator--() {
- if (_M_cur == _M_first) {
- _M_set_node(_M_node - 1);
- _M_cur = _M_last;
- }
- --_M_cur;
- return *this;
+
+ template <typename _Tp, typename _Ref, typename _Ptr>
+ inline bool
+ operator!=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
+ const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
+ {
+ return !(__x == __y);
}
- _Self operator--(int) {
- _Self __tmp = *this;
- --*this;
- return __tmp;
+
+ template <typename _Tp, typename _RefL, typename _PtrL,
+ typename _RefR, typename _PtrR>
+ inline bool
+ operator!=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
+ const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
+ {
+ return !(__x == __y);
}
-
- _Self& operator+=(difference_type __n)
+
+ template <typename _Tp, typename _Ref, typename _Ptr>
+ inline bool
+ operator<(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
+ const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
{
- difference_type __offset = __n + (_M_cur - _M_first);
- if (__offset >= 0 && __offset < difference_type(_S_buffer_size()))
- _M_cur += __n;
- else {
- difference_type __node_offset =
- __offset > 0 ? __offset / difference_type(_S_buffer_size())
- : -difference_type((-__offset - 1) / _S_buffer_size()) - 1;
- _M_set_node(_M_node + __node_offset);
- _M_cur = _M_first +
- (__offset - __node_offset * difference_type(_S_buffer_size()));
- }
- return *this;
+ return (__x._M_node == __y._M_node) ?
+ (__x._M_cur < __y._M_cur) : (__x._M_node < __y._M_node);
}
-
- _Self operator+(difference_type __n) const
+
+ template <typename _Tp, typename _RefL, typename _PtrL,
+ typename _RefR, typename _PtrR>
+ inline bool
+ operator<(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
+ const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
{
- _Self __tmp = *this;
- return __tmp += __n;
+ return (__x._M_node == __y._M_node) ?
+ (__x._M_cur < __y._M_cur) : (__x._M_node < __y._M_node);
}
-
- _Self& operator-=(difference_type __n) { return *this += -__n; }
-
- _Self operator-(difference_type __n) const {
- _Self __tmp = *this;
- return __tmp -= __n;
+
+ template <typename _Tp, typename _Ref, typename _Ptr>
+ inline bool
+ operator>(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
+ const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
+ {
+ return __y < __x;
}
-
- reference operator[](difference_type __n) const { return *(*this + __n); }
-
- /** @if maint
- * Prepares to traverse new_node. Sets everything except _M_cur, which
- * should therefore be set by the caller immediately afterwards, based on
- * _M_first and _M_last.
- * @endif
- */
- void _M_set_node(_Map_pointer __new_node) {
- _M_node = __new_node;
- _M_first = *__new_node;
- _M_last = _M_first + difference_type(_S_buffer_size());
+
+ template <typename _Tp, typename _RefL, typename _PtrL,
+ typename _RefR, typename _PtrR>
+ inline bool
+ operator>(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
+ const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
+ {
+ return __y < __x;
}
-};
-
-// Note: we also provide overloads whose operands are of the same type in
-// order to avoid ambiguos overload resolution when std::rel_ops operators
-// are in scope (for additional details, see libstdc++/3628)
-template <class _Tp, class _Ref, class _Ptr>
-inline bool
-operator==(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
- const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
-{
- return __x._M_cur == __y._M_cur;
-}
-
-template <class _Tp, class _RefL, class _PtrL, class _RefR, class _PtrR>
-inline bool
-operator==(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
- const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
-{
- return __x._M_cur == __y._M_cur;
-}
-
-template <class _Tp, class _Ref, class _Ptr>
-inline bool
-operator!=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
- const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
-{
- return !(__x == __y);
-}
-
-template <class _Tp, class _RefL, class _PtrL, class _RefR, class _PtrR>
-inline bool
-operator!=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
- const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
-{
- return !(__x == __y);
-}
-
-template <class _Tp, class _Ref, class _Ptr>
-inline bool
-operator<(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
- const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
-{
- return (__x._M_node == __y._M_node) ?
- (__x._M_cur < __y._M_cur) : (__x._M_node < __y._M_node);
-}
-
-template <class _Tp, class _RefL, class _PtrL, class _RefR, class _PtrR>
-inline bool
-operator<(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
- const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
-{
- return (__x._M_node == __y._M_node) ?
- (__x._M_cur < __y._M_cur) : (__x._M_node < __y._M_node);
-}
-
-template <class _Tp, class _Ref, class _Ptr>
-inline bool
-operator>(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
- const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
-{
- return __y < __x;
-}
-
-template <class _Tp, class _RefL, class _PtrL, class _RefR, class _PtrR>
-inline bool
-operator>(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
- const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
-{
- return __y < __x;
-}
-
-template <class _Tp, class _Ref, class _Ptr>
-inline bool
-operator<=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
- const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
-{
- return !(__y < __x);
-}
-
-template <class _Tp, class _RefL, class _PtrL, class _RefR, class _PtrR>
-inline bool
-operator<=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
- const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
-{
- return !(__y < __x);
-}
-
-template <class _Tp, class _Ref, class _Ptr>
-inline bool
-operator>=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
- const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
-{
- return !(__x < __y);
-}
-
-template <class _Tp, class _RefL, class _PtrL, class _RefR, class _PtrR>
-inline bool
-operator>=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
- const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
-{
- return !(__x < __y);
-}
-
-// _GLIBCPP_RESOLVE_LIB_DEFECTS
-// According to the resolution of DR179 not only the various comparison
-// operators but also operator- must accept mixed iterator/const_iterator
-// parameters.
-template <typename _Tp, typename _RefL, typename _PtrL,
- typename _RefR, typename _PtrR>
-inline typename _Deque_iterator<_Tp, _RefL, _PtrL>::difference_type
-operator-(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
- const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
-{
- return _Deque_iterator<_Tp, _RefL, _PtrL>::difference_type
- (_Deque_iterator<_Tp, _RefL, _PtrL>::_S_buffer_size()) *
- (__x._M_node - __y._M_node - 1) + (__x._M_cur - __x._M_first) +
- (__y._M_last - __y._M_cur);
-}
-
-template <class _Tp, class _Ref, class _Ptr>
-inline _Deque_iterator<_Tp, _Ref, _Ptr>
-operator+(ptrdiff_t __n, const _Deque_iterator<_Tp, _Ref, _Ptr>& __x)
-{
- return __x + __n;
-}
-
-
-/// @if maint Primary default version. @endif
-/**
- * @if maint
- * Deque base class. It has two purposes. First, its constructor
- * and destructor allocate (but don't initialize) storage. This makes
- * exception safety easier. Second, the base class encapsulates all of
- * the differences between SGI-style allocators and standard-conforming
- * allocators. There are two versions: this ordinary one, and the
- * space-saving specialization for instanceless allocators.
- * @endif
-*/
-template <class _Tp, class _Alloc, bool __is_static>
-class _Deque_alloc_base
-{
-public:
- typedef typename _Alloc_traits<_Tp,_Alloc>::allocator_type allocator_type;
- allocator_type get_allocator() const { return _M_node_allocator; }
-
- _Deque_alloc_base(const allocator_type& __a)
- : _M_node_allocator(__a), _M_map_allocator(__a),
- _M_map(0), _M_map_size(0)
- {}
-
-protected:
- typedef typename _Alloc_traits<_Tp*, _Alloc>::allocator_type
- _Map_allocator_type;
-
- allocator_type _M_node_allocator;
- _Map_allocator_type _M_map_allocator;
-
- _Tp* _M_allocate_node() {
- return _M_node_allocator.allocate(__deque_buf_size(sizeof(_Tp)));
+
+ template <typename _Tp, typename _Ref, typename _Ptr>
+ inline bool
+ operator<=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
+ const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
+ {
+ return !(__y < __x);
}
- void _M_deallocate_node(_Tp* __p) {
- _M_node_allocator.deallocate(__p, __deque_buf_size(sizeof(_Tp)));
+
+ template <typename _Tp, typename _RefL, typename _PtrL,
+ typename _RefR, typename _PtrR>
+ inline bool
+ operator<=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
+ const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
+ {
+ return !(__y < __x);
}
- _Tp** _M_allocate_map(size_t __n)
- { return _M_map_allocator.allocate(__n); }
- void _M_deallocate_map(_Tp** __p, size_t __n)
- { _M_map_allocator.deallocate(__p, __n); }
-
- _Tp** _M_map;
- size_t _M_map_size;
-};
-
-/// @if maint Specialization for instanceless allocators. @endif
-template <class _Tp, class _Alloc>
-class _Deque_alloc_base<_Tp, _Alloc, true>
-{
-public:
- typedef typename _Alloc_traits<_Tp,_Alloc>::allocator_type allocator_type;
- allocator_type get_allocator() const { return allocator_type(); }
-
- _Deque_alloc_base(const allocator_type&) : _M_map(0), _M_map_size(0) {}
-protected:
- typedef typename _Alloc_traits<_Tp, _Alloc>::_Alloc_type _Node_alloc_type;
- typedef typename _Alloc_traits<_Tp*, _Alloc>::_Alloc_type _Map_alloc_type;
-
- _Tp* _M_allocate_node() {
- return _Node_alloc_type::allocate(__deque_buf_size(sizeof(_Tp)));
+ template <typename _Tp, typename _Ref, typename _Ptr>
+ inline bool
+ operator>=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
+ const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
+ {
+ return !(__x < __y);
}
- void _M_deallocate_node(_Tp* __p) {
- _Node_alloc_type::deallocate(__p, __deque_buf_size(sizeof(_Tp)));
+
+ template <typename _Tp, typename _RefL, typename _PtrL,
+ typename _RefR, typename _PtrR>
+ inline bool
+ operator>=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
+ const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
+ {
+ return !(__x < __y);
}
- _Tp** _M_allocate_map(size_t __n)
- { return _Map_alloc_type::allocate(__n); }
- void _M_deallocate_map(_Tp** __p, size_t __n)
- { _Map_alloc_type::deallocate(__p, __n); }
-
- _Tp** _M_map;
- size_t _M_map_size;
-};
-
-
-/**
- * @if maint
- * Deque base class. Using _Alloc_traits in the instantiation of the parent
- * class provides the compile-time dispatching mentioned in the parent's docs.
- * This class provides the unified face for deque's allocation.
- *
- * Nothing in this class ever constructs or destroys an actual Tp element.
- * (Deque handles that itself.) Only/All memory management is performed here.
- * @endif
-*/
-template <class _Tp, class _Alloc>
-class _Deque_base
- : public _Deque_alloc_base<_Tp,_Alloc,
- _Alloc_traits<_Tp, _Alloc>::_S_instanceless>
-{
-public:
- typedef _Deque_alloc_base<_Tp,_Alloc,
- _Alloc_traits<_Tp, _Alloc>::_S_instanceless>
- _Base;
- typedef typename _Base::allocator_type allocator_type;
- typedef _Deque_iterator<_Tp,_Tp&,_Tp*> iterator;
- typedef _Deque_iterator<_Tp,const _Tp&,const _Tp*> const_iterator;
-
- _Deque_base(const allocator_type& __a, size_t __num_elements)
- : _Base(__a), _M_start(), _M_finish()
- { _M_initialize_map(__num_elements); }
- _Deque_base(const allocator_type& __a)
- : _Base(__a), _M_start(), _M_finish() {}
- ~_Deque_base();
-
-protected:
- void _M_initialize_map(size_t);
- void _M_create_nodes(_Tp** __nstart, _Tp** __nfinish);
- void _M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish);
- enum { _S_initial_map_size = 8 };
-
-protected:
- iterator _M_start;
- iterator _M_finish;
-};
-
-
-template <class _Tp, class _Alloc>
-_Deque_base<_Tp,_Alloc>::~_Deque_base()
-{
- if (_M_map) {
- _M_destroy_nodes(_M_start._M_node, _M_finish._M_node + 1);
- _M_deallocate_map(_M_map, _M_map_size);
+
+ // _GLIBCPP_RESOLVE_LIB_DEFECTS
+ // According to the resolution of DR179 not only the various comparison
+ // operators but also operator- must accept mixed iterator/const_iterator
+ // parameters.
+ template <typename _Tp, typename _RefL, typename _PtrL,
+ typename _RefR, typename _PtrR>
+ inline typename _Deque_iterator<_Tp, _RefL, _PtrL>::difference_type
+ operator-(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
+ const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
+ {
+ return _Deque_iterator<_Tp, _RefL, _PtrL>::difference_type
+ (_Deque_iterator<_Tp, _RefL, _PtrL>::_S_buffer_size()) *
+ (__x._M_node - __y._M_node - 1) + (__x._M_cur - __x._M_first) +
+ (__y._M_last - __y._M_cur);
}
-}
-
-/**
- * @if maint
- * @brief Layout storage.
- * @param num_elements The count of T's for which to allocate space at first.
- * @return Nothing.
- *
- * The initial underlying memory layout is a bit complicated...
- * @endif
-*/
-template <class _Tp, class _Alloc>
-void
-_Deque_base<_Tp,_Alloc>::_M_initialize_map(size_t __num_elements)
-{
- size_t __num_nodes =
- __num_elements / __deque_buf_size(sizeof(_Tp)) + 1;
-
- _M_map_size = max((size_t) _S_initial_map_size, __num_nodes + 2);
- _M_map = _M_allocate_map(_M_map_size);
-
- _Tp** __nstart = _M_map + (_M_map_size - __num_nodes) / 2;
- _Tp** __nfinish = __nstart + __num_nodes;
-
- try
- { _M_create_nodes(__nstart, __nfinish); }
- catch(...)
- {
- _M_deallocate_map(_M_map, _M_map_size);
- _M_map = 0;
- _M_map_size = 0;
- __throw_exception_again;
- }
- _M_start._M_set_node(__nstart);
- _M_finish._M_set_node(__nfinish - 1);
- _M_start._M_cur = _M_start._M_first;
- _M_finish._M_cur = _M_finish._M_first +
- __num_elements % __deque_buf_size(sizeof(_Tp));
-}
-
-template <class _Tp, class _Alloc>
-void _Deque_base<_Tp,_Alloc>::_M_create_nodes(_Tp** __nstart, _Tp** __nfinish)
-{
- _Tp** __cur;
- try {
- for (__cur = __nstart; __cur < __nfinish; ++__cur)
- *__cur = _M_allocate_node();
+ template <typename _Tp, typename _Ref, typename _Ptr>
+ inline _Deque_iterator<_Tp, _Ref, _Ptr>
+ operator+(ptrdiff_t __n, const _Deque_iterator<_Tp, _Ref, _Ptr>& __x)
+ {
+ return __x + __n;
}
- catch(...)
- {
- _M_destroy_nodes(__nstart, __cur);
- __throw_exception_again;
- }
-}
-
-template <class _Tp, class _Alloc>
-void
-_Deque_base<_Tp,_Alloc>::_M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish)
-{
- for (_Tp** __n = __nstart; __n < __nfinish; ++__n)
- _M_deallocate_node(*__n);
-}
-
-
-/**
- * @ingroup Containers
- * @ingroup Sequences
- *
- * Meets the requirements of a <a href="tables.html#65">container</a>, a
- * <a href="tables.html#66">reversible container</a>, and a
- * <a href="tables.html#67">sequence</a>, including the
- * <a href="tables.html#68">optional sequence requirements</a>.
- *
- * Placeholder: see http://www.sgi.com/tech/stl/Deque.html for now.
- *
- * In previous HP/SGI versions of deque, there was an extra template parameter
- * so users could control the node size. This extension turned out to violate
- * the C++ standard (it can be detected using template template parameters),
- * and it was removed.
- *
- * @if maint
- * Here's how a deque<Tp> manages memory. Each deque has 4 members:
- *
- * - Tp** _M_map
- * - size_t _M_map_size
- * - iterator _M_start, _M_finish
- *
- * map_size is at least 8. %map is an array of map_size pointers-to-"nodes".
- * (The name has nothing to do with the std::map class.)
- *
- * A "node" has no specific type name as such, but it is referred to as
- * "node" in this file. It is a simple array-of-Tp. If Tp is very large,
- * there will be one Tp element per node (i.e., an "array" of one).
- * For non-huge Tp's, node size is inversely related to Tp size: the
- * larger the Tp, the fewer Tp's will fit in a node. The goal here is to
- * keep the total size of a node relatively small and constant over different
- * Tp's, to improve allocator efficiency.
- *
- * **** As I write this, the nodes are /not/ allocated using the high-speed
- * memory pool. There are 20 hours left in the year; perhaps I can fix
- * this before 2002.
- *
- * Not every pointer in the %map array will point to a node. If the initial
- * number of elements in the deque is small, the /middle/ %map pointers will
- * be valid, and the ones at the edges will be unused. This same situation
- * will arise as the %map grows: available %map pointers, if any, will be on
- * the ends. As new nodes are created, only a subset of the %map's pointers
- * need to be copied "outward".
- *
- * Class invariants:
- * - For any nonsingular iterator i:
- * - i.node points to a member of the %map array. (Yes, you read that
- * correctly: i.node does not actually point to a node.) The member of
- * the %map array is what actually points to the node.
- * - i.first == *(i.node) (This points to the node (first Tp element).)
- * - i.last == i.first + node_size
- * - i.cur is a pointer in the range [i.first, i.last). NOTE:
- * the implication of this is that i.cur is always a dereferenceable
- * pointer, even if i is a past-the-end iterator.
- * - Start and Finish are always nonsingular iterators. NOTE: this means that
- * an empty deque must have one node, a deque with <N elements (where N is
- * the node buffer size) must have one node, a deque with N through (2N-1)
- * elements must have two nodes, etc.
- * - For every node other than start.node and finish.node, every element in the
- * node is an initialized object. If start.node == finish.node, then
- * [start.cur, finish.cur) are initialized objects, and the elements outside
- * that range are uninitialized storage. Otherwise, [start.cur, start.last)
- * and [finish.first, finish.cur) are initialized objects, and [start.first,
- * start.cur) and [finish.cur, finish.last) are uninitialized storage.
- * - [%map, %map + map_size) is a valid, non-empty range.
- * - [start.node, finish.node] is a valid range contained within
- * [%map, %map + map_size).
- * - A pointer in the range [%map, %map + map_size) points to an allocated node
- * if and only if the pointer is in the range [start.node, finish.node].
- *
- * Here's the magic: nothing in deque is "aware" of the discontiguous storage!
- *
- * The memory setup and layout occurs in the parent, _Base, and the iterator
- * class is entirely responsible for "leaping" from one node to the next. All
- * the implementation routines for deque itself work only through the start
- * and finish iterators. This keeps the routines simple and sane, and we can
- * use other standard algorithms as well.
- * @endif
-*/
-template <class _Tp, class _Alloc = allocator<_Tp> >
-class deque : protected _Deque_base<_Tp, _Alloc>
-{
- // concept requirements
- __glibcpp_class_requires(_Tp, _SGIAssignableConcept)
-
- typedef _Deque_base<_Tp, _Alloc> _Base;
-
-public:
- typedef _Tp value_type;
- typedef value_type* pointer;
- typedef const value_type* const_pointer;
- typedef value_type& reference;
- typedef const value_type& const_reference;
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
-
- typedef typename _Base::allocator_type allocator_type;
- allocator_type get_allocator() const { return _Base::get_allocator(); }
-
- typedef typename _Base::iterator iterator;
- typedef typename _Base::const_iterator const_iterator;
- typedef reverse_iterator<const_iterator> const_reverse_iterator;
- typedef reverse_iterator<iterator> reverse_iterator;
-
-protected:
- typedef pointer* _Map_pointer;
- static size_t _S_buffer_size() { return __deque_buf_size(sizeof(_Tp)); }
-
- // Functions controlling memory layout, and nothing else.
- using _Base::_M_initialize_map;
- using _Base::_M_create_nodes;
- using _Base::_M_destroy_nodes;
- using _Base::_M_allocate_node;
- using _Base::_M_deallocate_node;
- using _Base::_M_allocate_map;
- using _Base::_M_deallocate_map;
-
- /** @if maint
- * A total of four data members accumulated down the heirarchy. If the
- * _Alloc type requires separate instances, then two of them will also be
- * included in each deque.
+
+
+ /// @if maint Primary default version. @endif
+ /**
+ * @if maint
+ * Deque base class. It has two purposes. First, its constructor
+ * and destructor allocate (but don't initialize) storage. This makes
+ * %exception safety easier. Second, the base class encapsulates all of
+ * the differences between SGI-style allocators and standard-conforming
+ * allocators. (See stl_alloc.h for more on this topic.) There are two
+ * versions: this ordinary one, and the space-saving specialization for
+ * instanceless allocators.
* @endif
*/
- using _Base::_M_map;
- using _Base::_M_map_size;
- using _Base::_M_start;
- using _Base::_M_finish;
-
-public: // Basic accessors
- iterator begin() { return _M_start; }
- iterator end() { return _M_finish; }
- const_iterator begin() const { return _M_start; }
- const_iterator end() const { return _M_finish; }
-
- reverse_iterator rbegin() { return reverse_iterator(_M_finish); }
- reverse_iterator rend() { return reverse_iterator(_M_start); }
- const_reverse_iterator rbegin() const
- { return const_reverse_iterator(_M_finish); }
- const_reverse_iterator rend() const
- { return const_reverse_iterator(_M_start); }
-
- reference operator[](size_type __n)
- { return _M_start[difference_type(__n)]; }
- const_reference operator[](size_type __n) const
- { return _M_start[difference_type(__n)]; }
-
- void _M_range_check(size_type __n) const {
- if (__n >= this->size())
- __throw_out_of_range("deque");
- }
-
- reference at(size_type __n)
- { _M_range_check(__n); return (*this)[__n]; }
- const_reference at(size_type __n) const
- { _M_range_check(__n); return (*this)[__n]; }
-
- reference front() { return *_M_start; }
- reference back() {
- iterator __tmp = _M_finish;
- --__tmp;
- return *__tmp;
- }
- const_reference front() const { return *_M_start; }
- const_reference back() const {
- const_iterator __tmp = _M_finish;
- --__tmp;
- return *__tmp;
- }
-
- size_type size() const { return _M_finish - _M_start; }
- size_type max_size() const { return size_type(-1); }
- bool empty() const { return _M_finish == _M_start; }
-
-public: // Constructor, destructor.
- explicit deque(const allocator_type& __a = allocator_type())
- : _Base(__a, 0) {}
- deque(const deque& __x) : _Base(__x.get_allocator(), __x.size())
- { uninitialized_copy(__x.begin(), __x.end(), _M_start); }
- deque(size_type __n, const value_type& __value,
- const allocator_type& __a = allocator_type()) : _Base(__a, __n)
- { _M_fill_initialize(__value); }
-
- explicit
- deque(size_type __n)
- : _Base(allocator_type(), __n)
- { _M_fill_initialize(value_type()); }
-
- // Check whether it's an integral type. If so, it's not an iterator.
- template<class _InputIterator>
- deque(_InputIterator __first, _InputIterator __last,
- const allocator_type& __a = allocator_type())
- : _Base(__a)
+ template <typename _Tp, typename _Alloc, bool __is_static>
+ class _Deque_alloc_base
+ {
+ public:
+ typedef typename _Alloc_traits<_Tp,_Alloc>::allocator_type allocator_type;
+ allocator_type get_allocator() const { return _M_node_allocator; }
+
+ _Deque_alloc_base(const allocator_type& __a)
+ : _M_node_allocator(__a), _M_map_allocator(__a),
+ _M_map(0), _M_map_size(0)
+ {}
+
+ protected:
+ typedef typename _Alloc_traits<_Tp*, _Alloc>::allocator_type
+ _Map_allocator_type;
+
+ _Tp*
+ _M_allocate_node()
{
- typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
- _M_initialize_dispatch(__first, __last, _Integral());
+ return _M_node_allocator.allocate(__deque_buf_size(sizeof(_Tp)));
}
-
- template<class _Integer>
+
void
- _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type)
+ _M_deallocate_node(_Tp* __p)
{
- _M_initialize_map(__n);
- _M_fill_initialize(__x);
+ _M_node_allocator.deallocate(__p, __deque_buf_size(sizeof(_Tp)));
}
-
- template<class _InputIter>
+
+ _Tp**
+ _M_allocate_map(size_t __n)
+ { return _M_map_allocator.allocate(__n); }
+
void
- _M_initialize_dispatch(_InputIter __first, _InputIter __last, __false_type)
+ _M_deallocate_map(_Tp** __p, size_t __n)
+ { _M_map_allocator.deallocate(__p, __n); }
+
+ allocator_type _M_node_allocator;
+ _Map_allocator_type _M_map_allocator;
+ _Tp** _M_map;
+ size_t _M_map_size;
+ };
+
+ /// @if maint Specialization for instanceless allocators. @endif
+ template <typename _Tp, typename _Alloc>
+ class _Deque_alloc_base<_Tp, _Alloc, true>
+ {
+ public:
+ typedef typename _Alloc_traits<_Tp,_Alloc>::allocator_type allocator_type;
+ allocator_type get_allocator() const { return allocator_type(); }
+
+ _Deque_alloc_base(const allocator_type&)
+ : _M_map(0), _M_map_size(0)
+ {}
+
+ protected:
+ typedef typename _Alloc_traits<_Tp,_Alloc>::_Alloc_type _Node_alloc_type;
+ typedef typename _Alloc_traits<_Tp*,_Alloc>::_Alloc_type _Map_alloc_type;
+
+ _Tp*
+ _M_allocate_node()
{
- typedef typename iterator_traits<_InputIter>::iterator_category _IterCategory;
- _M_range_initialize(__first, __last, _IterCategory());
- }
-
- ~deque()
- { _Destroy(_M_start, _M_finish); }
-
- deque& operator= (const deque& __x) {
- const size_type __len = size();
- if (&__x != this) {
- if (__len >= __x.size())
- erase(copy(__x.begin(), __x.end(), _M_start), _M_finish);
- else {
- const_iterator __mid = __x.begin() + difference_type(__len);
- copy(__x.begin(), __mid, _M_start);
- insert(_M_finish, __mid, __x.end());
- }
- }
- return *this;
- }
-
- void swap(deque& __x) {
- std::swap(_M_start, __x._M_start);
- std::swap(_M_finish, __x._M_finish);
- std::swap(_M_map, __x._M_map);
- std::swap(_M_map_size, __x._M_map_size);
- }
-
-public:
- // assign(), a generalized assignment member function. Two
- // versions: one that takes a count, and one that takes a range.
- // The range version is a member template, so we dispatch on whether
- // or not the type is an integer.
-
- void _M_fill_assign(size_type __n, const _Tp& __val) {
- if (__n > size()) {
- fill(begin(), end(), __val);
- insert(end(), __n - size(), __val);
- }
- else {
- erase(begin() + __n, end());
- fill(begin(), end(), __val);
+ return _Node_alloc_type::allocate(__deque_buf_size(sizeof(_Tp)));
}
- }
-
- void
- assign(size_type __n, const _Tp& __val)
- { _M_fill_assign(__n, __val); }
-
- template<class _InputIterator>
+
void
- assign(_InputIterator __first, _InputIterator __last)
+ _M_deallocate_node(_Tp* __p)
{
- typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
- _M_assign_dispatch(__first, __last, _Integral());
+ _Node_alloc_type::deallocate(__p, __deque_buf_size(sizeof(_Tp)));
}
-
-private: // helper functions for assign()
-
- template<class _Integer>
- void
- _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)
- { _M_fill_assign(static_cast<size_type>(__n), static_cast<_Tp>(__val)); }
-
- template<class _InputIterator>
+
+ _Tp**
+ _M_allocate_map(size_t __n)
+ { return _Map_alloc_type::allocate(__n); }
+
void
- _M_assign_dispatch(_InputIterator __first, _InputIterator __last, __false_type)
- {
- typedef typename iterator_traits<_InputIterator>::iterator_category _IterCategory;
- _M_assign_aux(__first, __last, _IterCategory());
- }
-
- template <class _InputIterator>
- void _M_assign_aux(_InputIterator __first, _InputIterator __last,
- input_iterator_tag);
-
- template <class _ForwardIterator>
- void _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,
- forward_iterator_tag) {
- size_type __len = distance(__first, __last);
- if (__len > size()) {
- _ForwardIterator __mid = __first;
- advance(__mid, size());
- copy(__first, __mid, begin());
- insert(end(), __mid, __last);
- }
- else
- erase(copy(__first, __last, begin()), end());
- }
-
-public: // push_* and pop_*
+ _M_deallocate_map(_Tp** __p, size_t __n)
+ { _Map_alloc_type::deallocate(__p, __n); }
- void
- push_back(const value_type& __t)
- {
- if (_M_finish._M_cur != _M_finish._M_last - 1) {
- _Construct(_M_finish._M_cur, __t);
- ++_M_finish._M_cur;
- }
- else
- _M_push_back_aux(__t);
- }
-
- void
- push_back()
+ _Tp** _M_map;
+ size_t _M_map_size;
+ };
+
+
+ /**
+ * @if maint
+ * Deque base class. Using _Alloc_traits in the instantiation of the parent
+ * class provides the compile-time dispatching mentioned in the parent's
+ * docs. This class provides the unified face for %deque's allocation.
+ *
+ * Nothing in this class ever constructs or destroys an actual Tp element.
+ * (Deque handles that itself.) Only/All memory management is performed
+ * here.
+ * @endif
+ */
+ template <typename _Tp, typename _Alloc>
+ class _Deque_base
+ : public _Deque_alloc_base<_Tp,_Alloc,
+ _Alloc_traits<_Tp, _Alloc>::_S_instanceless>
{
- if (_M_finish._M_cur != _M_finish._M_last - 1) {
- _Construct(_M_finish._M_cur);
- ++_M_finish._M_cur;
- }
- else
- _M_push_back_aux();
- }
-
- void
- push_front(const value_type& __t)
+ public:
+ typedef _Deque_alloc_base<_Tp,_Alloc,
+ _Alloc_traits<_Tp, _Alloc>::_S_instanceless>
+ _Base;
+ typedef typename _Base::allocator_type allocator_type;
+ typedef _Deque_iterator<_Tp,_Tp&,_Tp*> iterator;
+ typedef _Deque_iterator<_Tp,const _Tp&,const _Tp*> const_iterator;
+
+ _Deque_base(const allocator_type& __a, size_t __num_elements)
+ : _Base(__a), _M_start(), _M_finish()
+ { _M_initialize_map(__num_elements); }
+ _Deque_base(const allocator_type& __a)
+ : _Base(__a), _M_start(), _M_finish() {}
+ ~_Deque_base();
+
+ protected:
+ void _M_initialize_map(size_t);
+ void _M_create_nodes(_Tp** __nstart, _Tp** __nfinish);
+ void _M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish);
+ enum { _S_initial_map_size = 8 };
+
+ iterator _M_start;
+ iterator _M_finish;
+ };
+
+
+ template <typename _Tp, typename _Alloc>
+ _Deque_base<_Tp,_Alloc>::~_Deque_base()
{
- if (_M_start._M_cur != _M_start._M_first) {
- _Construct(_M_start._M_cur - 1, __t);
- --_M_start._M_cur;
+ if (_M_map)
+ {
+ _M_destroy_nodes(_M_start._M_node, _M_finish._M_node + 1);
+ _M_deallocate_map(_M_map, _M_map_size);
}
- else
- _M_push_front_aux(__t);
}
-
+
+ /**
+ * @if maint
+ * @brief Layout storage.
+ * @param num_elements The count of T's for which to allocate space
+ * at first.
+ * @return Nothing.
+ *
+ * The initial underlying memory layout is a bit complicated...
+ * @endif
+ */
+ template <typename _Tp, typename _Alloc>
void
- push_front()
+ _Deque_base<_Tp,_Alloc>::_M_initialize_map(size_t __num_elements)
{
- if (_M_start._M_cur != _M_start._M_first) {
- _Construct(_M_start._M_cur - 1);
- --_M_start._M_cur;
- }
- else
- _M_push_front_aux();
+ size_t __num_nodes =
+ __num_elements / __deque_buf_size(sizeof(_Tp)) + 1;
+
+ _M_map_size = max((size_t) _S_initial_map_size, __num_nodes + 2);
+ _M_map = _M_allocate_map(_M_map_size);
+
+ // For "small" maps (needing less than _M_map_size nodes), allocation
+ // starts in the middle elements and grows outwards. So nstart may be the
+ // beginning of _M_map, but for small maps it may be as far in as _M_map+3.
+
+ _Tp** __nstart = _M_map + (_M_map_size - __num_nodes) / 2;
+ _Tp** __nfinish = __nstart + __num_nodes;
+
+ try
+ { _M_create_nodes(__nstart, __nfinish); }
+ catch(...)
+ {
+ _M_deallocate_map(_M_map, _M_map_size);
+ _M_map = 0;
+ _M_map_size = 0;
+ __throw_exception_again;
+ }
+
+ _M_start._M_set_node(__nstart);
+ _M_finish._M_set_node(__nfinish - 1);
+ _M_start._M_cur = _M_start._M_first;
+ _M_finish._M_cur = _M_finish._M_first +
+ __num_elements % __deque_buf_size(sizeof(_Tp));
}
-
-
- void
- pop_back()
+
+ template <typename _Tp, typename _Alloc>
+ void _Deque_base<_Tp,_Alloc>::_M_create_nodes(_Tp** __nstart, _Tp** __nfinish)
{
- if (_M_finish._M_cur != _M_finish._M_first) {
- --_M_finish._M_cur;
- _Destroy(_M_finish._M_cur);
- }
- else
- _M_pop_back_aux();
+ _Tp** __cur;
+ try
+ {
+ for (__cur = __nstart; __cur < __nfinish; ++__cur)
+ *__cur = _M_allocate_node();
+ }
+ catch(...)
+ {
+ _M_destroy_nodes(__nstart, __cur);
+ __throw_exception_again;
+ }
}
-
+
+ template <typename _Tp, typename _Alloc>
void
- pop_front()
+ _Deque_base<_Tp,_Alloc>::_M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish)
{
- if (_M_start._M_cur != _M_start._M_last - 1) {
- _Destroy(_M_start._M_cur);
- ++_M_start._M_cur;
- }
- else
- _M_pop_front_aux();
+ for (_Tp** __n = __nstart; __n < __nfinish; ++__n)
+ _M_deallocate_node(*__n);
}
-
-public: // Insert
-
- iterator
- insert(iterator position, const value_type& __x)
+
+
+ /**
+ * @brief A standard container using fixed-size memory allocation and
+ * constant-time manipulation of elements at either end.
+ *
+ * @ingroup Containers
+ * @ingroup Sequences
+ *
+ * Meets the requirements of a <a href="tables.html#65">container</a>, a
+ * <a href="tables.html#66">reversible container</a>, and a
+ * <a href="tables.html#67">sequence</a>, including the
+ * <a href="tables.html#68">optional sequence requirements</a>.
+ *
+ * In previous HP/SGI versions of deque, there was an extra template
+ * parameter so users could control the node size. This extension turned
+ * out to violate the C++ standard (it can be detected using template
+ * template parameters), and it was removed.
+ *
+ * @if maint
+ * Here's how a deque<Tp> manages memory. Each deque has 4 members:
+ *
+ * - Tp** _M_map
+ * - size_t _M_map_size
+ * - iterator _M_start, _M_finish
+ *
+ * map_size is at least 8. %map is an array of map_size pointers-to-"nodes".
+ * (The name %map has nothing to do with the std::map class, and "nodes"
+ * should not be confused with std::list's usage of "node".)
+ *
+ * A "node" has no specific type name as such, but it is referred to as
+ * "node" in this file. It is a simple array-of-Tp. If Tp is very large,
+ * there will be one Tp element per node (i.e., an "array" of one).
+ * For non-huge Tp's, node size is inversely related to Tp size: the
+ * larger the Tp, the fewer Tp's will fit in a node. The goal here is to
+ * keep the total size of a node relatively small and constant over different
+ * Tp's, to improve allocator efficiency.
+ *
+ * **** As I write this, the nodes are /not/ allocated using the high-speed
+ * memory pool. There are 20 hours left in the year; perhaps I can fix
+ * this before 2002.
+ *
+ * Not every pointer in the %map array will point to a node. If the initial
+ * number of elements in the deque is small, the /middle/ %map pointers will
+ * be valid, and the ones at the edges will be unused. This same situation
+ * will arise as the %map grows: available %map pointers, if any, will be on
+ * the ends. As new nodes are created, only a subset of the %map's pointers
+ * need to be copied "outward".
+ *
+ * Class invariants:
+ * - For any nonsingular iterator i:
+ * - i.node points to a member of the %map array. (Yes, you read that
+ * correctly: i.node does not actually point to a node.) The member of
+ * the %map array is what actually points to the node.
+ * - i.first == *(i.node) (This points to the node (first Tp element).)
+ * - i.last == i.first + node_size
+ * - i.cur is a pointer in the range [i.first, i.last). NOTE:
+ * the implication of this is that i.cur is always a dereferenceable
+ * pointer, even if i is a past-the-end iterator.
+ * - Start and Finish are always nonsingular iterators. NOTE: this means that
+ * an empty deque must have one node, a deque with <N elements (where N is
+ * the node buffer size) must have one node, a deque with N through (2N-1)
+ * elements must have two nodes, etc.
+ * - For every node other than start.node and finish.node, every element in
+ * the node is an initialized object. If start.node == finish.node, then
+ * [start.cur, finish.cur) are initialized objects, and the elements outside
+ * that range are uninitialized storage. Otherwise, [start.cur, start.last)
+ * and [finish.first, finish.cur) are initialized objects, and [start.first,
+ * start.cur) and [finish.cur, finish.last) are uninitialized storage.
+ * - [%map, %map + map_size) is a valid, non-empty range.
+ * - [start.node, finish.node] is a valid range contained within
+ * [%map, %map + map_size).
+ * - A pointer in the range [%map, %map + map_size) points to an allocated
+ * node if and only if the pointer is in the range
+ * [start.node, finish.node].
+ *
+ * Here's the magic: nothing in deque is "aware" of the discontiguous
+ * storage!
+ *
+ * The memory setup and layout occurs in the parent, _Base, and the iterator
+ * class is entirely responsible for "leaping" from one node to the next.
+ * All the implementation routines for deque itself work only through the
+ * start and finish iterators. This keeps the routines simple and sane,
+ * and we can use other standard algorithms as well.
+ * @endif
+ */
+ template <typename _Tp, typename _Alloc = allocator<_Tp> >
+ class deque : protected _Deque_base<_Tp, _Alloc>
{
- if (position._M_cur == _M_start._M_cur) {
- push_front(__x);
- return _M_start;
- }
- else if (position._M_cur == _M_finish._M_cur) {
- push_back(__x);
- iterator __tmp = _M_finish;
- --__tmp;
- return __tmp;
- }
- else {
- return _M_insert_aux(position, __x);
- }
- }
-
- iterator
- insert(iterator __position)
- { return insert(__position, value_type()); }
-
- void
- insert(iterator __pos, size_type __n, const value_type& __x)
- { _M_fill_insert(__pos, __n, __x); }
-
- void
- _M_fill_insert(iterator __pos, size_type __n, const value_type& __x);
-
- // Check whether it's an integral type. If so, it's not an iterator.
- template<class _InputIterator>
+ // concept requirements
+ __glibcpp_class_requires(_Tp, _SGIAssignableConcept)
+
+ typedef _Deque_base<_Tp, _Alloc> _Base;
+
+ public:
+ typedef _Tp value_type;
+ typedef value_type* pointer;
+ typedef const value_type* const_pointer;
+ typedef typename _Base::iterator iterator;
+ typedef typename _Base::const_iterator const_iterator;
+ typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
+ typedef std::reverse_iterator<iterator> reverse_iterator;
+ typedef value_type& reference;
+ typedef const value_type& const_reference;
+ typedef size_t size_type;
+ typedef ptrdiff_t difference_type;
+ typedef typename _Base::allocator_type allocator_type;
+
+ protected:
+ typedef pointer* _Map_pointer;
+ static size_t _S_buffer_size() { return __deque_buf_size(sizeof(_Tp)); }
+
+ // Functions controlling memory layout, and nothing else.
+ using _Base::_M_initialize_map;
+ using _Base::_M_create_nodes;
+ using _Base::_M_destroy_nodes;
+ using _Base::_M_allocate_node;
+ using _Base::_M_deallocate_node;
+ using _Base::_M_allocate_map;
+ using _Base::_M_deallocate_map;
+
+ /** @if maint
+ * A total of four data members accumulated down the heirarchy. If the
+ * _Alloc type requires separate instances, then two of them will also be
+ * included in each deque.
+ * @endif
+ */
+ using _Base::_M_map;
+ using _Base::_M_map_size;
+ using _Base::_M_start;
+ using _Base::_M_finish;
+
+ public:
+ // [23.2.1.1] construct/copy/destroy
+ // (assign() and get_allocator() are also listed in this section)
+ /**
+ * @brief Default constructor creates no elements.
+ */
+ explicit
+ deque(const allocator_type& __a = allocator_type())
+ : _Base(__a, 0) {}
+
+ /**
+ * @brief Create a %deque with copies of an exemplar element.
+ * @param n The number of elements to initially create.
+ * @param value An element to copy.
+ *
+ * This constructor fills the %deque with @a n copies of @a value.
+ */
+ deque(size_type __n, const value_type& __value,
+ const allocator_type& __a = allocator_type())
+ : _Base(__a, __n)
+ { _M_fill_initialize(__value); }
+
+ /**
+ * @brief Create a %deque with default elements.
+ * @param n The number of elements to initially create.
+ *
+ * This constructor fills the %deque with @a n copies of a
+ * default-constructed element.
+ */
+ explicit
+ deque(size_type __n)
+ : _Base(allocator_type(), __n)
+ { _M_fill_initialize(value_type()); }
+
+ /**
+ * @brief %Deque copy constructor.
+ * @param x A %deque of identical element and allocator types.
+ *
+ * The newly-created %deque uses a copy of the allocation object used
+ * by @a x.
+ */
+ deque(const deque& __x)
+ : _Base(__x.get_allocator(), __x.size())
+ { uninitialized_copy(__x.begin(), __x.end(), _M_start); }
+
+ /**
+ * @brief Builds a %deque from a range.
+ * @param first An input iterator.
+ * @param last An input iterator.
+ *
+ * Create a %deque consisting of copies of the elements from [first,last).
+ *
+ * If the iterators are forward, bidirectional, or random-access, then
+ * this will call the elements' copy constructor N times (where N is
+ * distance(first,last)) and do no memory reallocation. But if only
+ * input iterators are used, then this will do at most 2N calls to the
+ * copy constructor, and logN memory reallocations.
+ */
+ template<typename _InputIterator>
+ deque(_InputIterator __first, _InputIterator __last,
+ const allocator_type& __a = allocator_type())
+ : _Base(__a)
+ {
+ // Check whether it's an integral type. If so, it's not an iterator.
+ typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
+ _M_initialize_dispatch(__first, __last, _Integral());
+ }
+
+ /**
+ * The dtor only erases the elements, and note that if the elements
+ * themselves are pointers, the pointed-to memory is not touched in any
+ * way. Managing the pointer is the user's responsibilty.
+ */
+ ~deque() { _Destroy(_M_start, _M_finish); }
+
+ /**
+ * @brief %Deque assignment operator.
+ * @param x A %deque of identical element and allocator types.
+ *
+ * All the elements of @a x are copied, but unlike the copy constructor,
+ * the allocator object is not copied.
+ */
+ deque&
+ operator=(const deque& __x);
+
+ /**
+ * @brief Assigns a given value to a %deque.
+ * @param n Number of elements to be assigned.
+ * @param val Value to be assigned.
+ *
+ * This function fills a %deque with @a n copies of the given value.
+ * Note that the assignment completely changes the %deque and that the
+ * resulting %deque's size is the same as the number of elements assigned.
+ * Old data may be lost.
+ */
+ void
+ assign(size_type __n, const value_type& __val) { _M_fill_assign(__n, __val); }
+
+ /**
+ * @brief Assigns a range to a %deque.
+ * @param first An input iterator.
+ * @param last An input iterator.
+ *
+ * This function fills a %deque with copies of the elements in the
+ * range [first,last).
+ *
+ * Note that the assignment completely changes the %deque and that the
+ * resulting %deque's size is the same as the number of elements assigned.
+ * Old data may be lost.
+ */
+ template<typename _InputIterator>
+ void
+ assign(_InputIterator __first, _InputIterator __last)
+ {
+ typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
+ _M_assign_dispatch(__first, __last, _Integral());
+ }
+
+ /// Get a copy of the memory allocation object.
+ allocator_type
+ get_allocator() const { return _Base::get_allocator(); }
+
+ // iterators
+ /**
+ * Returns a read/write iterator that points to the first element in the
+ * %deque. Iteration is done in ordinary element order.
+ */
+ iterator
+ begin() { return _M_start; }
+
+ /**
+ * Returns a read-only (constant) iterator that points to the first element
+ * in the %deque. Iteration is done in ordinary element order.
+ */
+ const_iterator
+ begin() const { return _M_start; }
+
+ /**
+ * Returns a read/write iterator that points one past the last element in
+ * the %deque. Iteration is done in ordinary element order.
+ */
+ iterator
+ end() { return _M_finish; }
+
+ /**
+ * Returns a read-only (constant) iterator that points one past the last
+ * element in the %deque. Iteration is done in ordinary element order.
+ */
+ const_iterator
+ end() const { return _M_finish; }
+
+ /**
+ * Returns a read/write reverse iterator that points to the last element in
+ * the %deque. Iteration is done in reverse element order.
+ */
+ reverse_iterator
+ rbegin() { return reverse_iterator(_M_finish); }
+
+ /**
+ * Returns a read-only (constant) reverse iterator that points to the last
+ * element in the %deque. Iteration is done in reverse element order.
+ */
+ const_reverse_iterator
+ rbegin() const { return const_reverse_iterator(_M_finish); }
+
+ /**
+ * Returns a read/write reverse iterator that points to one before the
+ * first element in the %deque. Iteration is done in reverse element
+ * order.
+ */
+ reverse_iterator
+ rend() { return reverse_iterator(_M_start); }
+
+ /**
+ * Returns a read-only (constant) reverse iterator that points to one
+ * before the first element in the %deque. Iteration is done in reverse
+ * element order.
+ */
+ const_reverse_iterator
+ rend() const { return const_reverse_iterator(_M_start); }
+
+ // [23.2.1.2] capacity
+ /** Returns the number of elements in the %deque. */
+ size_type
+ size() const { return _M_finish - _M_start; }
+
+ /** Returns the size() of the largest possible %deque. */
+ size_type
+ max_size() const { return size_type(-1); }
+
+ /**
+ * @brief Resizes the %deque to the specified number of elements.
+ * @param new_size Number of elements the %deque should contain.
+ * @param x Data with which new elements should be populated.
+ *
+ * This function will %resize the %deque to the specified number of
+ * elements. If the number is smaller than the %deque's current size the
+ * %deque is truncated, otherwise the %deque is extended and new elements
+ * are populated with given data.
+ */
void
- insert(iterator __pos, _InputIterator __first, _InputIterator __last)
+ resize(size_type __new_size, const value_type& __x)
{
- typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
- _M_insert_dispatch(__pos, __first, __last, _Integral());
+ const size_type __len = size();
+ if (__new_size < __len)
+ erase(_M_start + __new_size, _M_finish);
+ else
+ insert(_M_finish, __new_size - __len, __x);
}
-
- template<class _Integer>
+
+ /**
+ * @brief Resizes the %deque to the specified number of elements.
+ * @param new_size Number of elements the %deque should contain.
+ *
+ * This function will resize the %deque to the specified number of
+ * elements. If the number is smaller than the %deque's current size the
+ * %deque is truncated, otherwise the %deque is extended and new elements
+ * are default-constructed.
+ */
void
- _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, __true_type)
- { _M_fill_insert(__pos, static_cast<size_type>(__n), static_cast<value_type>(__x)); }
-
- template<class _InputIterator>
+ resize(size_type new_size) { resize(new_size, value_type()); }
+
+ /**
+ * Returns true if the %deque is empty. (Thus begin() would equal end().)
+ */
+ bool empty() const { return _M_finish == _M_start; }
+
+ // element access
+ /**
+ * @brief Subscript access to the data contained in the %deque.
+ * @param n The index of the element for which data should be accessed.
+ * @return Read/write reference to data.
+ *
+ * This operator allows for easy, array-style, data access.
+ * Note that data access with this operator is unchecked and out_of_range
+ * lookups are not defined. (For checked lookups see at().)
+ */
+ reference
+ operator[](size_type __n) { return _M_start[difference_type(__n)]; }
+
+ /**
+ * @brief Subscript access to the data contained in the %deque.
+ * @param n The index of the element for which data should be accessed.
+ * @return Read-only (constant) reference to data.
+ *
+ * This operator allows for easy, array-style, data access.
+ * Note that data access with this operator is unchecked and out_of_range
+ * lookups are not defined. (For checked lookups see at().)
+ */
+ const_reference
+ operator[](size_type __n) const { return _M_start[difference_type(__n)]; }
+
+ protected:
+ /// @if maint Safety check used only from at(). @endif
void
- _M_insert_dispatch(iterator __pos,
- _InputIterator __first, _InputIterator __last,
- __false_type)
+ _M_range_check(size_type __n) const
{
- typedef typename iterator_traits<_InputIterator>::iterator_category _IterCategory;
- insert(__pos, __first, __last, _IterCategory());
- }
-
- void resize(size_type __new_size, const value_type& __x) {
- const size_type __len = size();
- if (__new_size < __len)
- erase(_M_start + __new_size, _M_finish);
- else
- insert(_M_finish, __new_size - __len, __x);
- }
-
- void resize(size_type new_size) { resize(new_size, value_type()); }
-
-public: // Erase
- iterator erase(iterator __pos) {
- iterator __next = __pos;
- ++__next;
- size_type __index = __pos - _M_start;
- if (__index < (size() >> 1)) {
- copy_backward(_M_start, __pos, __next);
- pop_front();
- }
- else {
- copy(__next, _M_finish, __pos);
- pop_back();
- }
- return _M_start + __index;
- }
-
- iterator erase(iterator __first, iterator __last);
- void clear();
-
-protected: // Internal construction/destruction
-
- void _M_fill_initialize(const value_type& __value);
-
- template <class _InputIterator>
- void _M_range_initialize(_InputIterator __first, _InputIterator __last,
- input_iterator_tag);
-
- template <class _ForwardIterator>
- void _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last,
- forward_iterator_tag);
-
-protected: // Internal push_* and pop_*
-
- void _M_push_back_aux(const value_type&);
- void _M_push_back_aux();
- void _M_push_front_aux(const value_type&);
- void _M_push_front_aux();
- void _M_pop_back_aux();
- void _M_pop_front_aux();
-
-protected: // Internal insert functions
-
- template <class _InputIterator>
- void insert(iterator __pos, _InputIterator __first, _InputIterator __last,
- input_iterator_tag);
-
- template <class _ForwardIterator>
- void insert(iterator __pos,
- _ForwardIterator __first, _ForwardIterator __last,
- forward_iterator_tag);
-
- iterator _M_insert_aux(iterator __pos, const value_type& __x);
- iterator _M_insert_aux(iterator __pos);
- void _M_insert_aux(iterator __pos, size_type __n, const value_type& __x);
-
- template <class _ForwardIterator>
- void _M_insert_aux(iterator __pos,
- _ForwardIterator __first, _ForwardIterator __last,
- size_type __n);
-
- iterator _M_reserve_elements_at_front(size_type __n) {
- size_type __vacancies = _M_start._M_cur - _M_start._M_first;
- if (__n > __vacancies)
- _M_new_elements_at_front(__n - __vacancies);
- return _M_start - difference_type(__n);
- }
-
- iterator _M_reserve_elements_at_back(size_type __n) {
- size_type __vacancies = (_M_finish._M_last - _M_finish._M_cur) - 1;
- if (__n > __vacancies)
- _M_new_elements_at_back(__n - __vacancies);
- return _M_finish + difference_type(__n);
- }
-
- void _M_new_elements_at_front(size_type __new_elements);
- void _M_new_elements_at_back(size_type __new_elements);
-
-protected: // Allocation of _M_map and nodes
-
- // Makes sure the _M_map has space for new nodes. Does not actually
- // add the nodes. Can invalidate _M_map pointers. (And consequently,
- // deque iterators.)
-
- void _M_reserve_map_at_back (size_type __nodes_to_add = 1) {
- if (__nodes_to_add + 1 > _M_map_size - (_M_finish._M_node - _M_map))
- _M_reallocate_map(__nodes_to_add, false);
- }
-
- void _M_reserve_map_at_front (size_type __nodes_to_add = 1) {
- if (__nodes_to_add > size_type(_M_start._M_node - _M_map))
- _M_reallocate_map(__nodes_to_add, true);
- }
-
- void _M_reallocate_map(size_type __nodes_to_add, bool __add_at_front);
-};
-
-// Non-inline member functions
-
-template <class _Tp, class _Alloc>
-template <class _InputIter>
-void deque<_Tp, _Alloc>
- ::_M_assign_aux(_InputIter __first, _InputIter __last, input_iterator_tag)
-{
- iterator __cur = begin();
- for ( ; __first != __last && __cur != end(); ++__cur, ++__first)
- *__cur = *__first;
- if (__first == __last)
- erase(__cur, end());
- else
- insert(end(), __first, __last);
-}
-
-template <class _Tp, class _Alloc>
-void deque<_Tp, _Alloc>::_M_fill_insert(iterator __pos,
- size_type __n, const value_type& __x)
-{
- if (__pos._M_cur == _M_start._M_cur) {
- iterator __new_start = _M_reserve_elements_at_front(__n);
- try {
- uninitialized_fill(__new_start, _M_start, __x);
- _M_start = __new_start;
- }
- catch(...)
- {
- _M_destroy_nodes(__new_start._M_node, _M_start._M_node);
- __throw_exception_again;
- }
- }
- else if (__pos._M_cur == _M_finish._M_cur) {
- iterator __new_finish = _M_reserve_elements_at_back(__n);
- try {
- uninitialized_fill(_M_finish, __new_finish, __x);
- _M_finish = __new_finish;
- }
- catch(...)
- {
- _M_destroy_nodes(_M_finish._M_node + 1, __new_finish._M_node + 1);
- __throw_exception_again;
- }
- }
- else
- _M_insert_aux(__pos, __n, __x);
-}
-
-template <class _Tp, class _Alloc>
-typename deque<_Tp,_Alloc>::iterator
-deque<_Tp,_Alloc>::erase(iterator __first, iterator __last)
-{
- if (__first == _M_start && __last == _M_finish) {
- clear();
- return _M_finish;
- }
- else {
- difference_type __n = __last - __first;
- difference_type __elems_before = __first - _M_start;
- if (static_cast<size_type>(__elems_before) < (size() - __n) / 2) {
- copy_backward(_M_start, __first, __last);
- iterator __new_start = _M_start + __n;
- _Destroy(_M_start, __new_start);
- _M_destroy_nodes(_M_start._M_node, __new_start._M_node);
- _M_start = __new_start;
- }
- else {
- copy(__last, _M_finish, __first);
- iterator __new_finish = _M_finish - __n;
- _Destroy(__new_finish, _M_finish);
- _M_destroy_nodes(__new_finish._M_node + 1, _M_finish._M_node + 1);
- _M_finish = __new_finish;
+ if (__n >= this->size())
+ __throw_out_of_range("deque [] access out of range");
}
- return _M_start + __elems_before;
- }
-}
-
-template <class _Tp, class _Alloc>
-void deque<_Tp,_Alloc>::clear()
-{
- for (_Map_pointer __node = _M_start._M_node + 1;
- __node < _M_finish._M_node;
- ++__node) {
- _Destroy(*__node, *__node + _S_buffer_size());
- _M_deallocate_node(*__node);
- }
-
- if (_M_start._M_node != _M_finish._M_node) {
- _Destroy(_M_start._M_cur, _M_start._M_last);
- _Destroy(_M_finish._M_first, _M_finish._M_cur);
- _M_deallocate_node(_M_finish._M_first);
- }
- else
- _Destroy(_M_start._M_cur, _M_finish._M_cur);
-
- _M_finish = _M_start;
-}
-
-/**
- * @if maint
- * @brief Fills the deque with copies of value.
- * @param value Initial value.
- * @return Nothing.
- * @pre _M_start and _M_finish have already been initialized, but none of the
- * deque's elements have yet been constructed.
- *
- * This function is called only when the user provides an explicit size (with
- * or without an explicit exemplar value).
- * @endif
-*/
-template <class _Tp, class _Alloc>
-void deque<_Tp,_Alloc>::_M_fill_initialize(const value_type& __value)
-{
- _Map_pointer __cur;
- try {
- for (__cur = _M_start._M_node; __cur < _M_finish._M_node; ++__cur)
- uninitialized_fill(*__cur, *__cur + _S_buffer_size(), __value);
- uninitialized_fill(_M_finish._M_first, _M_finish._M_cur, __value);
- }
- catch(...)
+
+ public:
+ /**
+ * @brief Provides access to the data contained in the %deque.
+ * @param n The index of the element for which data should be accessed.
+ * @return Read/write reference to data.
+ * @throw std::out_of_range If @a n is an invalid index.
+ *
+ * This function provides for safer data access. The parameter is first
+ * checked that it is in the range of the deque. The function throws
+ * out_of_range if the check fails.
+ */
+ reference
+ at(size_type __n) { _M_range_check(__n); return (*this)[__n]; }
+
+ /**
+ * @brief Provides access to the data contained in the %deque.
+ * @param n The index of the element for which data should be accessed.
+ * @return Read-only (constant) reference to data.
+ * @throw std::out_of_range If @a n is an invalid index.
+ *
+ * This function provides for safer data access. The parameter is first
+ * checked that it is in the range of the deque. The function throws
+ * out_of_range if the check fails.
+ */
+ const_reference
+ at(size_type __n) const { _M_range_check(__n); return (*this)[__n]; }
+
+ /**
+ * Returns a read/write reference to the data at the first element of the
+ * %deque.
+ */
+ reference
+ front() { return *_M_start; }
+
+ /**
+ * Returns a read-only (constant) reference to the data at the first
+ * element of the %deque.
+ */
+ const_reference
+ front() const { return *_M_start; }
+
+ /**
+ * Returns a read/write reference to the data at the last element of the
+ * %deque.
+ */
+ reference
+ back()
{
- _Destroy(_M_start, iterator(*__cur, __cur));
- __throw_exception_again;
+ iterator __tmp = _M_finish;
+ --__tmp;
+ return *__tmp;
}
-}
-
-/** @{
- * @if maint
- * @brief Fills the deque with whatever is in [first,last).
- * @param first An input iterator.
- * @param last An input iterator.
- * @return Nothing.
- *
- * If the iterators are actually forward iterators (or better), then the
- * memory layout can be done all at once. Else we move forward using
- * push_back on each value from the iterator.
- * @endif
-*/
-template <class _Tp, class _Alloc> template <class _InputIterator>
-void deque<_Tp,_Alloc>::_M_range_initialize(_InputIterator __first,
- _InputIterator __last,
- input_iterator_tag)
-{
- _M_initialize_map(0);
- try {
- for ( ; __first != __last; ++__first)
- push_back(*__first);
- }
- catch(...)
+
+ /**
+ * Returns a read-only (constant) reference to the data at the last
+ * element of the %deque.
+ */
+ const_reference
+ back() const
{
- clear();
- __throw_exception_again;
- }
-}
-
-template <class _Tp, class _Alloc> template <class _ForwardIterator>
-void deque<_Tp,_Alloc>::_M_range_initialize(_ForwardIterator __first,
- _ForwardIterator __last,
- forward_iterator_tag)
-{
- size_type __n = distance(__first, __last);
- _M_initialize_map(__n);
-
- _Map_pointer __cur_node;
- try {
- for (__cur_node = _M_start._M_node;
- __cur_node < _M_finish._M_node;
- ++__cur_node) {
- _ForwardIterator __mid = __first;
- advance(__mid, _S_buffer_size());
- uninitialized_copy(__first, __mid, *__cur_node);
- __first = __mid;
+ const_iterator __tmp = _M_finish;
+ --__tmp;
+ return *__tmp;
}
- uninitialized_copy(__first, __last, _M_finish._M_first);
- }
- catch(...)
+
+ // [23.2.1.2] modifiers
+ /**
+ * @brief Add data to the front of the %deque.
+ * @param x Data to be added.
+ *
+ * This is a typical stack operation. The function creates an element at
+ * the front of the %deque and assigns the given data to it. Due to the
+ * nature of a %deque this operation can be done in constant time.
+ */
+ void
+ push_front(const value_type& __x)
{
- _Destroy(_M_start, iterator(*__cur_node, __cur_node));
- __throw_exception_again;
+ if (_M_start._M_cur != _M_start._M_first) {
+ _Construct(_M_start._M_cur - 1, __x);
+ --_M_start._M_cur;
+ }
+ else
+ _M_push_front_aux(__x);
}
-}
-/** @} */
-
-// Called only if _M_finish._M_cur == _M_finish._M_last - 1.
-template <class _Tp, class _Alloc>
-void
-deque<_Tp,_Alloc>::_M_push_back_aux(const value_type& __t)
-{
- value_type __t_copy = __t;
- _M_reserve_map_at_back();
- *(_M_finish._M_node + 1) = _M_allocate_node();
- try {
- _Construct(_M_finish._M_cur, __t_copy);
- _M_finish._M_set_node(_M_finish._M_node + 1);
- _M_finish._M_cur = _M_finish._M_first;
- }
- catch(...)
+
+ #ifdef _GLIBCPP_DEPRECATED
+ /**
+ * @brief Add data to the front of the %deque.
+ *
+ * This is a typical stack operation. The function creates a
+ * default-constructed element at the front of the %deque. Due to the
+ * nature of a %deque this operation can be done in constant time. You
+ * should consider using push_front(value_type()) instead.
+ *
+ * @note This was deprecated in 3.2 and will be removed in 3.4. You must
+ * define @c _GLIBCPP_DEPRECATED to make this visible in 3.2; see
+ * c++config.h.
+ */
+ void
+ push_front()
{
- _M_deallocate_node(*(_M_finish._M_node + 1));
- __throw_exception_again;
+ if (_M_start._M_cur != _M_start._M_first) {
+ _Construct(_M_start._M_cur - 1);
+ --_M_start._M_cur;
+ }
+ else
+ _M_push_front_aux();
}
-}
-
-// Called only if _M_finish._M_cur == _M_finish._M_last - 1.
-template <class _Tp, class _Alloc>
-void
-deque<_Tp,_Alloc>::_M_push_back_aux()
-{
- _M_reserve_map_at_back();
- *(_M_finish._M_node + 1) = _M_allocate_node();
- try {
- _Construct(_M_finish._M_cur);
- _M_finish._M_set_node(_M_finish._M_node + 1);
- _M_finish._M_cur = _M_finish._M_first;
- }
- catch(...)
+ #endif
+
+ /**
+ * @brief Add data to the end of the %deque.
+ * @param x Data to be added.
+ *
+ * This is a typical stack operation. The function creates an element at
+ * the end of the %deque and assigns the given data to it. Due to the
+ * nature of a %deque this operation can be done in constant time.
+ */
+ void
+ push_back(const value_type& __x)
{
- _M_deallocate_node(*(_M_finish._M_node + 1));
- __throw_exception_again;
+ if (_M_finish._M_cur != _M_finish._M_last - 1) {
+ _Construct(_M_finish._M_cur, __x);
+ ++_M_finish._M_cur;
+ }
+ else
+ _M_push_back_aux(__x);
}
-}
-
-// Called only if _M_start._M_cur == _M_start._M_first.
-template <class _Tp, class _Alloc>
-void
-deque<_Tp,_Alloc>::_M_push_front_aux(const value_type& __t)
-{
- value_type __t_copy = __t;
- _M_reserve_map_at_front();
- *(_M_start._M_node - 1) = _M_allocate_node();
- try {
- _M_start._M_set_node(_M_start._M_node - 1);
- _M_start._M_cur = _M_start._M_last - 1;
- _Construct(_M_start._M_cur, __t_copy);
- }
- catch(...)
+
+ #ifdef _GLIBCPP_DEPRECATED
+ /**
+ * @brief Add data to the end of the %deque.
+ *
+ * This is a typical stack operation. The function creates a
+ * default-constructed element at the end of the %deque. Due to the nature
+ * of a %deque this operation can be done in constant time. You should
+ * consider using push_back(value_type()) instead.
+ *
+ * @note This was deprecated in 3.2 and will be removed in 3.4. You must
+ * define @c _GLIBCPP_DEPRECATED to make this visible in 3.2; see
+ * c++config.h.
+ */
+ void
+ push_back()
{
- ++_M_start;
- _M_deallocate_node(*(_M_start._M_node - 1));
- __throw_exception_again;
+ if (_M_finish._M_cur != _M_finish._M_last - 1) {
+ _Construct(_M_finish._M_cur);
+ ++_M_finish._M_cur;
+ }
+ else
+ _M_push_back_aux();
}
-}
-
-// Called only if _M_start._M_cur == _M_start._M_first.
-template <class _Tp, class _Alloc>
-void
-deque<_Tp,_Alloc>::_M_push_front_aux()
-{
- _M_reserve_map_at_front();
- *(_M_start._M_node - 1) = _M_allocate_node();
- try {
- _M_start._M_set_node(_M_start._M_node - 1);
- _M_start._M_cur = _M_start._M_last - 1;
- _Construct(_M_start._M_cur);
- }
- catch(...)
+ #endif
+
+ /**
+ * @brief Removes first element.
+ *
+ * This is a typical stack operation. It shrinks the %deque by one.
+ *
+ * Note that no data is returned, and if the first element's data is
+ * needed, it should be retrieved before pop_front() is called.
+ */
+ void
+ pop_front()
{
- ++_M_start;
- _M_deallocate_node(*(_M_start._M_node - 1));
- __throw_exception_again;
+ if (_M_start._M_cur != _M_start._M_last - 1) {
+ _Destroy(_M_start._M_cur);
+ ++_M_start._M_cur;
+ }
+ else
+ _M_pop_front_aux();
}
-}
-
-// Called only if _M_finish._M_cur == _M_finish._M_first.
-template <class _Tp, class _Alloc>
-void deque<_Tp,_Alloc>::_M_pop_back_aux()
-{
- _M_deallocate_node(_M_finish._M_first);
- _M_finish._M_set_node(_M_finish._M_node - 1);
- _M_finish._M_cur = _M_finish._M_last - 1;
- _Destroy(_M_finish._M_cur);
-}
-
-// Called only if _M_start._M_cur == _M_start._M_last - 1. Note that
-// if the deque has at least one element (a precondition for this member
-// function), and if _M_start._M_cur == _M_start._M_last, then the deque
-// must have at least two nodes.
-template <class _Tp, class _Alloc>
-void deque<_Tp,_Alloc>::_M_pop_front_aux()
-{
- _Destroy(_M_start._M_cur);
- _M_deallocate_node(_M_start._M_first);
- _M_start._M_set_node(_M_start._M_node + 1);
- _M_start._M_cur = _M_start._M_first;
-}
-
-template <class _Tp, class _Alloc> template <class _InputIterator>
-void deque<_Tp,_Alloc>::insert(iterator __pos,
- _InputIterator __first, _InputIterator __last,
- input_iterator_tag)
-{
- copy(__first, __last, inserter(*this, __pos));
-}
-
-template <class _Tp, class _Alloc> template <class _ForwardIterator>
-void
-deque<_Tp,_Alloc>::insert(iterator __pos,
- _ForwardIterator __first, _ForwardIterator __last,
- forward_iterator_tag) {
- size_type __n = distance(__first, __last);
- if (__pos._M_cur == _M_start._M_cur) {
- iterator __new_start = _M_reserve_elements_at_front(__n);
- try {
- uninitialized_copy(__first, __last, __new_start);
- _M_start = __new_start;
+
+ /**
+ * @brief Removes last element.
+ *
+ * This is a typical stack operation. It shrinks the %deque by one.
+ *
+ * Note that no data is returned, and if the last element's data is
+ * needed, it should be retrieved before pop_back() is called.
+ */
+ void
+ pop_back()
+ {
+ if (_M_finish._M_cur != _M_finish._M_first) {
+ --_M_finish._M_cur;
+ _Destroy(_M_finish._M_cur);
+ }
+ else
+ _M_pop_back_aux();
}
- catch(...)
+
+ /**
+ * @brief Inserts given value into %deque before specified iterator.
+ * @param position An iterator into the %deque.
+ * @param x Data to be inserted.
+ * @return An iterator that points to the inserted data.
+ *
+ * This function will insert a copy of the given value before the specified
+ * location.
+ */
+ iterator
+ insert(iterator position, const value_type& __x);
+
+ #ifdef _GLIBCPP_DEPRECATED
+ /**
+ * @brief Inserts an element into the %deque.
+ * @param position An iterator into the %deque.
+ * @return An iterator that points to the inserted element.
+ *
+ * This function will insert a default-constructed element before the
+ * specified location. You should consider using
+ * insert(position,value_type()) instead.
+ *
+ * @note This was deprecated in 3.2 and will be removed in 3.4. You must
+ * define @c _GLIBCPP_DEPRECATED to make this visible in 3.2; see
+ * c++config.h.
+ */
+ iterator
+ insert(iterator __position)
+ { return insert(__position, value_type()); }
+ #endif
+
+ /**
+ * @brief Inserts a number of copies of given data into the %deque.
+ * @param position An iterator into the %deque.
+ * @param n Number of elements to be inserted.
+ * @param x Data to be inserted.
+ *
+ * This function will insert a specified number of copies of the given data
+ * before the location specified by @a position.
+ */
+ void
+ insert(iterator __position, size_type __n, const value_type& __x)
+ { _M_fill_insert(__position, __n, __x); }
+
+ /**
+ * @brief Inserts a range into the %deque.
+ * @param pos An iterator into the %deque.
+ * @param first An input iterator.
+ * @param last An input iterator.
+ *
+ * This function will insert copies of the data in the range [first,last)
+ * into the %deque before the location specified by @a pos. This is
+ * known as "range insert."
+ */
+ template<typename _InputIterator>
+ void
+ insert(iterator __pos, _InputIterator __first, _InputIterator __last)
{
- _M_destroy_nodes(__new_start._M_node, _M_start._M_node);
- __throw_exception_again;
+ // Check whether it's an integral type. If so, it's not an iterator.
+ typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
+ _M_insert_dispatch(__pos, __first, __last, _Integral());
}
- }
- else if (__pos._M_cur == _M_finish._M_cur) {
- iterator __new_finish = _M_reserve_elements_at_back(__n);
- try {
- uninitialized_copy(__first, __last, _M_finish);
- _M_finish = __new_finish;
+
+ /**
+ * @brief Remove element at given position.
+ * @param position Iterator pointing to element to be erased.
+ * @return An iterator pointing to the next element (or end()).
+ *
+ * This function will erase the element at the given position and thus
+ * shorten the %deque by one.
+ *
+ * The user is cautioned that
+ * this function only erases the element, and that if the element is itself
+ * a pointer, the pointed-to memory is not touched in any way. Managing
+ * the pointer is the user's responsibilty.
+ */
+ iterator
+ erase(iterator __position);
+
+ /**
+ * @brief Remove a range of elements.
+ * @param first Iterator pointing to the first element to be erased.
+ * @param last Iterator pointing to one past the last element to be
+ * erased.
+ * @return An iterator pointing to the element pointed to by @a last
+ * prior to erasing (or end()).
+ *
+ * This function will erase the elements in the range [first,last) and
+ * shorten the %deque accordingly.
+ *
+ * The user is cautioned that
+ * this function only erases the elements, and that if the elements
+ * themselves are pointers, the pointed-to memory is not touched in any
+ * way. Managing the pointer is the user's responsibilty.
+ */
+ iterator
+ erase(iterator __first, iterator __last);
+
+ /**
+ * @brief Swaps data with another %deque.
+ * @param x A %deque of the same element and allocator types.
+ *
+ * This exchanges the elements between two deques in constant time.
+ * (Four pointers, so it should be quite fast.)
+ * Note that the global std::swap() function is specialized such that
+ * std::swap(d1,d2) will feed to this function.
+ */
+ void
+ swap(deque& __x)
+ {
+ std::swap(_M_start, __x._M_start);
+ std::swap(_M_finish, __x._M_finish);
+ std::swap(_M_map, __x._M_map);
+ std::swap(_M_map_size, __x._M_map_size);
}
- catch(...)
+
+ /**
+ * Erases all the elements. Note that this function only erases the
+ * elements, and that if the elements themselves are pointers, the
+ * pointed-to memory is not touched in any way. Managing the pointer is
+ * the user's responsibilty.
+ */
+ void clear();
+
+ protected:
+ // Internal constructor functions follow.
+
+ // called by the range constructor to implement [23.1.1]/9
+ template<typename _Integer>
+ void
+ _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type)
{
- _M_destroy_nodes(_M_finish._M_node + 1, __new_finish._M_node + 1);
- __throw_exception_again;
+ _M_initialize_map(__n);
+ _M_fill_initialize(__x);
}
- }
- else
- _M_insert_aux(__pos, __first, __last, __n);
-}
-
-template <class _Tp, class _Alloc>
-typename deque<_Tp, _Alloc>::iterator
-deque<_Tp,_Alloc>::_M_insert_aux(iterator __pos, const value_type& __x)
-{
- difference_type __index = __pos - _M_start;
- value_type __x_copy = __x;
- if (static_cast<size_type>(__index) < size() / 2) {
- push_front(front());
- iterator __front1 = _M_start;
- ++__front1;
- iterator __front2 = __front1;
- ++__front2;
- __pos = _M_start + __index;
- iterator __pos1 = __pos;
- ++__pos1;
- copy(__front2, __pos1, __front1);
- }
- else {
- push_back(back());
- iterator __back1 = _M_finish;
- --__back1;
- iterator __back2 = __back1;
- --__back2;
- __pos = _M_start + __index;
- copy_backward(__pos, __back2, __back1);
- }
- *__pos = __x_copy;
- return __pos;
-}
-
-template <class _Tp, class _Alloc>
-typename deque<_Tp,_Alloc>::iterator
-deque<_Tp,_Alloc>::_M_insert_aux(iterator __pos)
-{
- difference_type __index = __pos - _M_start;
- if (static_cast<size_type>(__index) < size() / 2) {
- push_front(front());
- iterator __front1 = _M_start;
- ++__front1;
- iterator __front2 = __front1;
- ++__front2;
- __pos = _M_start + __index;
- iterator __pos1 = __pos;
- ++__pos1;
- copy(__front2, __pos1, __front1);
- }
- else {
- push_back(back());
- iterator __back1 = _M_finish;
- --__back1;
- iterator __back2 = __back1;
- --__back2;
- __pos = _M_start + __index;
- copy_backward(__pos, __back2, __back1);
- }
- *__pos = value_type();
- return __pos;
-}
-
-template <class _Tp, class _Alloc>
-void deque<_Tp,_Alloc>::_M_insert_aux(iterator __pos,
- size_type __n,
- const value_type& __x)
-{
- const difference_type __elems_before = __pos - _M_start;
- size_type __length = this->size();
- value_type __x_copy = __x;
- if (__elems_before < difference_type(__length / 2)) {
- iterator __new_start = _M_reserve_elements_at_front(__n);
- iterator __old_start = _M_start;
- __pos = _M_start + __elems_before;
- try {
- if (__elems_before >= difference_type(__n)) {
- iterator __start_n = _M_start + difference_type(__n);
- uninitialized_copy(_M_start, __start_n, __new_start);
- _M_start = __new_start;
- copy(__start_n, __pos, __old_start);
- fill(__pos - difference_type(__n), __pos, __x_copy);
- }
- else {
- __uninitialized_copy_fill(_M_start, __pos, __new_start,
- _M_start, __x_copy);
- _M_start = __new_start;
- fill(__old_start, __pos, __x_copy);
- }
- }
- catch(...)
- {
- _M_destroy_nodes(__new_start._M_node, _M_start._M_node);
- __throw_exception_again;
+
+ // called by the range constructor to implement [23.1.1]/9
+ template<typename _InputIter>
+ void
+ _M_initialize_dispatch(_InputIter __first, _InputIter __last,
+ __false_type)
+ {
+ typedef typename iterator_traits<_InputIter>::iterator_category
+ _IterCategory;
+ _M_range_initialize(__first, __last, _IterCategory());
}
- }
- else {
- iterator __new_finish = _M_reserve_elements_at_back(__n);
- iterator __old_finish = _M_finish;
- const difference_type __elems_after =
- difference_type(__length) - __elems_before;
- __pos = _M_finish - __elems_after;
- try {
- if (__elems_after > difference_type(__n)) {
- iterator __finish_n = _M_finish - difference_type(__n);
- uninitialized_copy(__finish_n, _M_finish, _M_finish);
- _M_finish = __new_finish;
- copy_backward(__pos, __finish_n, __old_finish);
- fill(__pos, __pos + difference_type(__n), __x_copy);
+
+ // called by the second initialize_dispatch above
+ //@{
+ /**
+ * @if maint
+ * @brief Fills the deque with whatever is in [first,last).
+ * @param first An input iterator.
+ * @param last An input iterator.
+ * @return Nothing.
+ *
+ * If the iterators are actually forward iterators (or better), then the
+ * memory layout can be done all at once. Else we move forward using
+ * push_back on each value from the iterator.
+ * @endif
+ */
+ template <typename _InputIterator>
+ void
+ _M_range_initialize(_InputIterator __first, _InputIterator __last,
+ input_iterator_tag);
+
+ // called by the second initialize_dispatch above
+ template <typename _ForwardIterator>
+ void
+ _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last,
+ forward_iterator_tag);
+ //@}
+
+ /**
+ * @if maint
+ * @brief Fills the %deque with copies of value.
+ * @param value Initial value.
+ * @return Nothing.
+ * @pre _M_start and _M_finish have already been initialized, but none of
+ * the %deque's elements have yet been constructed.
+ *
+ * This function is called only when the user provides an explicit size
+ * (with or without an explicit exemplar value).
+ * @endif
+ */
+ void
+ _M_fill_initialize(const value_type& __value);
+
+
+ // Internal assign functions follow. The *_aux functions do the actual
+ // assignment work for the range versions.
+
+ // called by the range assign to implement [23.1.1]/9
+ template<typename _Integer>
+ void
+ _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)
+ {
+ _M_fill_assign(static_cast<size_type>(__n),
+ static_cast<value_type>(__val));
}
- else {
- __uninitialized_fill_copy(_M_finish, __pos + difference_type(__n),
- __x_copy, __pos, _M_finish);
- _M_finish = __new_finish;
- fill(__pos, __old_finish, __x_copy);
+
+ // called by the range assign to implement [23.1.1]/9
+ template<typename _InputIter>
+ void
+ _M_assign_dispatch(_InputIter __first, _InputIter __last, __false_type)
+ {
+ typedef typename iterator_traits<_InputIter>::iterator_category
+ _IterCategory;
+ _M_assign_aux(__first, __last, _IterCategory());
}
- }
- catch(...)
- {
- _M_destroy_nodes(_M_finish._M_node + 1, __new_finish._M_node + 1);
- __throw_exception_again;
+
+ // called by the second assign_dispatch above
+ template <typename _InputIterator>
+ void
+ _M_assign_aux(_InputIterator __first, _InputIterator __last,
+ input_iterator_tag);
+
+ // called by the second assign_dispatch above
+ template <typename _ForwardIterator>
+ void
+ _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,
+ forward_iterator_tag)
+ {
+ size_type __len = distance(__first, __last);
+ if (__len > size()) {
+ _ForwardIterator __mid = __first;
+ advance(__mid, size());
+ copy(__first, __mid, begin());
+ insert(end(), __mid, __last);
+ }
+ else
+ erase(copy(__first, __last, begin()), end());
}
- }
-}
-
-template <class _Tp, class _Alloc> template <class _ForwardIterator>
-void deque<_Tp,_Alloc>::_M_insert_aux(iterator __pos,
- _ForwardIterator __first,
- _ForwardIterator __last,
- size_type __n)
-{
- const difference_type __elemsbefore = __pos - _M_start;
- size_type __length = size();
- if (static_cast<size_type>(__elemsbefore) < __length / 2) {
- iterator __new_start = _M_reserve_elements_at_front(__n);
- iterator __old_start = _M_start;
- __pos = _M_start + __elemsbefore;
- try {
- if (__elemsbefore >= difference_type(__n)) {
- iterator __start_n = _M_start + difference_type(__n);
- uninitialized_copy(_M_start, __start_n, __new_start);
- _M_start = __new_start;
- copy(__start_n, __pos, __old_start);
- copy(__first, __last, __pos - difference_type(__n));
+
+ // Called by assign(n,t), and the range assign when it turns out to be the
+ // same thing.
+ void
+ _M_fill_assign(size_type __n, const value_type& __val)
+ {
+ if (__n > size())
+ {
+ fill(begin(), end(), __val);
+ insert(end(), __n - size(), __val);
}
- else {
- _ForwardIterator __mid = __first;
- advance(__mid, difference_type(__n) - __elemsbefore);
- __uninitialized_copy_copy(_M_start, __pos, __first, __mid,
- __new_start);
- _M_start = __new_start;
- copy(__mid, __last, __old_start);
+ else
+ {
+ erase(begin() + __n, end());
+ fill(begin(), end(), __val);
}
}
- catch(...)
+
+
+ //@{
+ /**
+ * @if maint
+ * @brief Helper functions for push_* and pop_*.
+ * @endif
+ */
+ void _M_push_back_aux(const value_type&);
+ void _M_push_front_aux(const value_type&);
+ #ifdef _GLIBCPP_DEPRECATED
+ void _M_push_back_aux();
+ void _M_push_front_aux();
+ #endif
+ void _M_pop_back_aux();
+ void _M_pop_front_aux();
+ //@}
+
+
+ // Internal insert functions follow. The *_aux functions do the actual
+ // insertion work when all shortcuts fail.
+
+ // called by the range insert to implement [23.1.1]/9
+ template<typename _Integer>
+ void
+ _M_insert_dispatch(iterator __pos,
+ _Integer __n, _Integer __x, __true_type)
{
- _M_destroy_nodes(__new_start._M_node, _M_start._M_node);
- __throw_exception_again;
- }
- }
- else {
- iterator __new_finish = _M_reserve_elements_at_back(__n);
- iterator __old_finish = _M_finish;
- const difference_type __elemsafter =
- difference_type(__length) - __elemsbefore;
- __pos = _M_finish - __elemsafter;
- try {
- if (__elemsafter > difference_type(__n)) {
- iterator __finish_n = _M_finish - difference_type(__n);
- uninitialized_copy(__finish_n, _M_finish, _M_finish);
- _M_finish = __new_finish;
- copy_backward(__pos, __finish_n, __old_finish);
- copy(__first, __last, __pos);
- }
- else {
- _ForwardIterator __mid = __first;
- advance(__mid, __elemsafter);
- __uninitialized_copy_copy(__mid, __last, __pos, _M_finish, _M_finish);
- _M_finish = __new_finish;
- copy(__first, __mid, __pos);
+ _M_fill_insert(__pos, static_cast<size_type>(__n),
+ static_cast<value_type>(__x));
}
- }
- catch(...)
+
+ // called by the range insert to implement [23.1.1]/9
+ template<typename _InputIterator>
+ void
+ _M_insert_dispatch(iterator __pos,
+ _InputIterator __first, _InputIterator __last,
+ __false_type)
{
- _M_destroy_nodes(_M_finish._M_node + 1, __new_finish._M_node + 1);
- __throw_exception_again;
+ typedef typename iterator_traits<_InputIterator>::iterator_category
+ _IterCategory;
+ _M_range_insert_aux(__pos, __first, __last, _IterCategory());
}
+
+ // called by the second insert_dispatch above
+ template <typename _InputIterator>
+ void
+ _M_range_insert_aux(iterator __pos, _InputIterator __first,
+ _InputIterator __last, input_iterator_tag);
+
+ // called by the second insert_dispatch above
+ template <typename _ForwardIterator>
+ void
+ _M_range_insert_aux(iterator __pos, _ForwardIterator __first,
+ _ForwardIterator __last, forward_iterator_tag);
+
+ // Called by insert(p,n,x), and the range insert when it turns out to be
+ // the same thing. Can use fill functions in optimal situations, otherwise
+ // passes off to insert_aux(p,n,x).
+ void
+ _M_fill_insert(iterator __pos, size_type __n, const value_type& __x);
+
+ // called by insert(p,x)
+ iterator
+ _M_insert_aux(iterator __pos, const value_type& __x);
+
+ // called by insert(p,n,x) via fill_insert
+ void
+ _M_insert_aux(iterator __pos, size_type __n, const value_type& __x);
+
+ // called by range_insert_aux for forward iterators
+ template <typename _ForwardIterator>
+ void
+ _M_insert_aux(iterator __pos,
+ _ForwardIterator __first, _ForwardIterator __last,
+ size_type __n);
+
+ #ifdef _GLIBCPP_DEPRECATED
+ // unused, see comment in implementation
+ iterator _M_insert_aux(iterator __pos);
+ #endif
+
+ //@{
+ /**
+ * @if maint
+ * @brief Memory-handling helpers for the previous internal insert
+ * functions.
+ * @endif
+ */
+ iterator
+ _M_reserve_elements_at_front(size_type __n)
+ {
+ size_type __vacancies = _M_start._M_cur - _M_start._M_first;
+ if (__n > __vacancies)
+ _M_new_elements_at_front(__n - __vacancies);
+ return _M_start - difference_type(__n);
+ }
+
+ iterator
+ _M_reserve_elements_at_back(size_type __n)
+ {
+ size_type __vacancies = (_M_finish._M_last - _M_finish._M_cur) - 1;
+ if (__n > __vacancies)
+ _M_new_elements_at_back(__n - __vacancies);
+ return _M_finish + difference_type(__n);
+ }
+
+ void
+ _M_new_elements_at_front(size_type __new_elements);
+
+ void
+ _M_new_elements_at_back(size_type __new_elements);
+ //@}
+
+
+ //@{
+ /**
+ * @if maint
+ * @brief Memory-handling helpers for the major %map.
+ *
+ * Makes sure the _M_map has space for new nodes. Does not actually add
+ * the nodes. Can invalidate _M_map pointers. (And consequently, %deque
+ * iterators.)
+ * @endif
+ */
+ void
+ _M_reserve_map_at_back (size_type __nodes_to_add = 1)
+ {
+ if (__nodes_to_add + 1 > _M_map_size - (_M_finish._M_node - _M_map))
+ _M_reallocate_map(__nodes_to_add, false);
+ }
+
+ void
+ _M_reserve_map_at_front (size_type __nodes_to_add = 1)
+ {
+ if (__nodes_to_add > size_type(_M_start._M_node - _M_map))
+ _M_reallocate_map(__nodes_to_add, true);
+ }
+
+ void
+ _M_reallocate_map(size_type __nodes_to_add, bool __add_at_front);
+ //@}
+ };
+
+
+ /**
+ * @brief Deque equality comparison.
+ * @param x A %deque.
+ * @param y A %deque of the same type as @a x.
+ * @return True iff the size and elements of the deques are equal.
+ *
+ * This is an equivalence relation. It is linear in the size of the
+ * deques. Deques are considered equivalent if their sizes are equal,
+ * and if corresponding elements compare equal.
+ */
+ template <typename _Tp, typename _Alloc>
+ inline bool operator==(const deque<_Tp, _Alloc>& __x,
+ const deque<_Tp, _Alloc>& __y)
+ {
+ return __x.size() == __y.size() &&
+ equal(__x.begin(), __x.end(), __y.begin());
}
-}
-
-template <class _Tp, class _Alloc>
-void deque<_Tp,_Alloc>::_M_new_elements_at_front(size_type __new_elems)
-{
- size_type __new_nodes
- = (__new_elems + _S_buffer_size() - 1) / _S_buffer_size();
- _M_reserve_map_at_front(__new_nodes);
- size_type __i;
- try {
- for (__i = 1; __i <= __new_nodes; ++__i)
- *(_M_start._M_node - __i) = _M_allocate_node();
+
+ /**
+ * @brief Deque ordering relation.
+ * @param x A %deque.
+ * @param y A %deque of the same type as @a x.
+ * @return True iff @a x is lexographically less than @a y.
+ *
+ * This is a total ordering relation. It is linear in the size of the
+ * deques. The elements must be comparable with @c <.
+ *
+ * See std::lexographical_compare() for how the determination is made.
+ */
+ template <typename _Tp, typename _Alloc>
+ inline bool operator<(const deque<_Tp, _Alloc>& __x,
+ const deque<_Tp, _Alloc>& __y)
+ {
+ return lexicographical_compare(__x.begin(), __x.end(),
+ __y.begin(), __y.end());
}
- catch(...) {
- for (size_type __j = 1; __j < __i; ++__j)
- _M_deallocate_node(*(_M_start._M_node - __j));
- __throw_exception_again;
+
+ /// Based on operator==
+ template <typename _Tp, typename _Alloc>
+ inline bool operator!=(const deque<_Tp, _Alloc>& __x,
+ const deque<_Tp, _Alloc>& __y) {
+ return !(__x == __y);
}
-}
-
-template <class _Tp, class _Alloc>
-void deque<_Tp,_Alloc>::_M_new_elements_at_back(size_type __new_elems)
-{
- size_type __new_nodes
- = (__new_elems + _S_buffer_size() - 1) / _S_buffer_size();
- _M_reserve_map_at_back(__new_nodes);
- size_type __i;
- try {
- for (__i = 1; __i <= __new_nodes; ++__i)
- *(_M_finish._M_node + __i) = _M_allocate_node();
+
+ /// Based on operator<
+ template <typename _Tp, typename _Alloc>
+ inline bool operator>(const deque<_Tp, _Alloc>& __x,
+ const deque<_Tp, _Alloc>& __y) {
+ return __y < __x;
}
- catch(...) {
- for (size_type __j = 1; __j < __i; ++__j)
- _M_deallocate_node(*(_M_finish._M_node + __j));
- __throw_exception_again;
+
+ /// Based on operator<
+ template <typename _Tp, typename _Alloc>
+ inline bool operator<=(const deque<_Tp, _Alloc>& __x,
+ const deque<_Tp, _Alloc>& __y) {
+ return !(__y < __x);
}
-}
-
-template <class _Tp, class _Alloc>
-void deque<_Tp,_Alloc>::_M_reallocate_map(size_type __nodes_to_add,
- bool __add_at_front)
-{
- size_type __old_num_nodes = _M_finish._M_node - _M_start._M_node + 1;
- size_type __new_num_nodes = __old_num_nodes + __nodes_to_add;
-
- _Map_pointer __new_nstart;
- if (_M_map_size > 2 * __new_num_nodes) {
- __new_nstart = _M_map + (_M_map_size - __new_num_nodes) / 2
- + (__add_at_front ? __nodes_to_add : 0);
- if (__new_nstart < _M_start._M_node)
- copy(_M_start._M_node, _M_finish._M_node + 1, __new_nstart);
- else
- copy_backward(_M_start._M_node, _M_finish._M_node + 1,
- __new_nstart + __old_num_nodes);
+
+ /// Based on operator<
+ template <typename _Tp, typename _Alloc>
+ inline bool operator>=(const deque<_Tp, _Alloc>& __x,
+ const deque<_Tp, _Alloc>& __y) {
+ return !(__x < __y);
}
- else {
- size_type __new_map_size =
- _M_map_size + max(_M_map_size, __nodes_to_add) + 2;
-
- _Map_pointer __new_map = _M_allocate_map(__new_map_size);
- __new_nstart = __new_map + (__new_map_size - __new_num_nodes) / 2
- + (__add_at_front ? __nodes_to_add : 0);
- copy(_M_start._M_node, _M_finish._M_node + 1, __new_nstart);
- _M_deallocate_map(_M_map, _M_map_size);
-
- _M_map = __new_map;
- _M_map_size = __new_map_size;
+
+ /// See std::deque::swap().
+ template <typename _Tp, typename _Alloc>
+ inline void swap(deque<_Tp,_Alloc>& __x, deque<_Tp,_Alloc>& __y)
+ {
+ __x.swap(__y);
}
-
- _M_start._M_set_node(__new_nstart);
- _M_finish._M_set_node(__new_nstart + __old_num_nodes - 1);
-}
-
-
-// Nonmember functions.
-
-template <class _Tp, class _Alloc>
-inline bool operator==(const deque<_Tp, _Alloc>& __x,
- const deque<_Tp, _Alloc>& __y) {
- return __x.size() == __y.size() &&
- equal(__x.begin(), __x.end(), __y.begin());
-}
-
-template <class _Tp, class _Alloc>
-inline bool operator<(const deque<_Tp, _Alloc>& __x,
- const deque<_Tp, _Alloc>& __y) {
- return lexicographical_compare(__x.begin(), __x.end(),
- __y.begin(), __y.end());
-}
-
-template <class _Tp, class _Alloc>
-inline bool operator!=(const deque<_Tp, _Alloc>& __x,
- const deque<_Tp, _Alloc>& __y) {
- return !(__x == __y);
-}
-
-template <class _Tp, class _Alloc>
-inline bool operator>(const deque<_Tp, _Alloc>& __x,
- const deque<_Tp, _Alloc>& __y) {
- return __y < __x;
-}
-
-template <class _Tp, class _Alloc>
-inline bool operator<=(const deque<_Tp, _Alloc>& __x,
- const deque<_Tp, _Alloc>& __y) {
- return !(__y < __x);
-}
-template <class _Tp, class _Alloc>
-inline bool operator>=(const deque<_Tp, _Alloc>& __x,
- const deque<_Tp, _Alloc>& __y) {
- return !(__x < __y);
-}
-
-template <class _Tp, class _Alloc>
-inline void swap(deque<_Tp,_Alloc>& __x, deque<_Tp,_Alloc>& __y) {
- __x.swap(__y);
-}
-
} // namespace std
#endif /* __GLIBCPP_INTERNAL_DEQUE_H */
-
diff --git a/contrib/libstdc++/include/bits/stl_iterator.h b/contrib/libstdc++/include/bits/stl_iterator.h
index 6fb0d81..529ad77 100644
--- a/contrib/libstdc++/include/bits/stl_iterator.h
+++ b/contrib/libstdc++/include/bits/stl_iterator.h
@@ -106,9 +106,12 @@ namespace std
public:
/**
- * The default constructor gives an undefined state to this %iterator.
+ * The default constructor default-initializes member @p current.
+ * If it is a pointer, that means it is zero-initialized.
*/
- reverse_iterator() { }
+ // _GLIBCPP_RESOLVE_LIB_DEFECTS
+ // 235 No specification of default ctor for reverse_iterator
+ reverse_iterator() : current() { }
/**
* This %iterator will move in the opposite direction that @p x does.
@@ -317,6 +320,8 @@ namespace std
// 24.4.2.2.1 back_insert_iterator
/**
+ * @brief Turns assignment into insertion.
+ *
* These are output iterators, constructed from a container-of-T.
* Assigning a T to the iterator appends it to the container using
* push_back.
@@ -387,6 +392,8 @@ namespace std
{ return back_insert_iterator<_Container>(__x); }
/**
+ * @brief Turns assignment into insertion.
+ *
* These are output iterators, constructed from a container-of-T.
* Assigning a T to the iterator prepends it to the container using
* push_front.
@@ -456,6 +463,8 @@ namespace std
{ return front_insert_iterator<_Container>(__x); }
/**
+ * @brief Turns assignment into insertion.
+ *
* These are output iterators, constructed from a container-of-T.
* Assigning a T to the iterator inserts it in the container at the
* %iterator's position, rather than overwriting the value at that
diff --git a/contrib/libstdc++/include/bits/stl_iterator_base_funcs.h b/contrib/libstdc++/include/bits/stl_iterator_base_funcs.h
index 8389f5e..7c245d0 100644
--- a/contrib/libstdc++/include/bits/stl_iterator_base_funcs.h
+++ b/contrib/libstdc++/include/bits/stl_iterator_base_funcs.h
@@ -67,113 +67,105 @@
#pragma GCC system_header
#include <bits/concept_check.h>
-// Since this entire file is within namespace std, there's no reason to
-// waste two spaces along the left column. Thus the leading indentation is
-// slightly violated from here on.
namespace std
{
-template<typename _InputIterator>
- inline typename iterator_traits<_InputIterator>::difference_type
- __distance(_InputIterator __first, _InputIterator __last, input_iterator_tag)
- {
- // concept requirements
- __glibcpp_function_requires(_InputIteratorConcept<_InputIterator>)
-
- typename iterator_traits<_InputIterator>::difference_type __n = 0;
- while (__first != __last) {
- ++__first; ++__n;
+ template<typename _InputIterator>
+ inline typename iterator_traits<_InputIterator>::difference_type
+ __distance(_InputIterator __first, _InputIterator __last,
+ input_iterator_tag)
+ {
+ // concept requirements
+ __glibcpp_function_requires(_InputIteratorConcept<_InputIterator>)
+
+ typename iterator_traits<_InputIterator>::difference_type __n = 0;
+ while (__first != __last) {
+ ++__first; ++__n;
+ }
+ return __n;
}
- return __n;
- }
-
-template<typename _RandomAccessIterator>
- inline typename iterator_traits<_RandomAccessIterator>::difference_type
- __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
- random_access_iterator_tag)
- {
- // concept requirements
- __glibcpp_function_requires(_RandomAccessIteratorConcept<_RandomAccessIterator>)
- return __last - __first;
- }
-
-/**
- * @brief A generalization of pointer arithmetic.
- * @param first An input iterator.
- * @param last An input iterator.
- * @return The distance between them.
- *
- * Returns @c n such that first + n == last. This requires that @p last
- * must be reachable from @p first. Note that @c n may be negative.
- *
- * For random access iterators, this uses their @c + and @c - operations
- * and are constant time. For other %iterator classes they are linear time.
-*/
-template<typename _InputIterator>
- inline typename iterator_traits<_InputIterator>::difference_type
- distance(_InputIterator __first, _InputIterator __last)
- {
- // concept requirements -- taken care of in __distance
- return __distance(__first, __last, __iterator_category(__first));
- }
-
-template<typename _InputIter, typename _Distance>
- inline void
- __advance(_InputIter& __i, _Distance __n, input_iterator_tag)
- {
- // concept requirements
- __glibcpp_function_requires(_InputIteratorConcept<_InputIter>)
- while (__n--) ++__i;
- }
-
-template<typename _BidirectionalIterator, typename _Distance>
- inline void
- __advance(_BidirectionalIterator& __i, _Distance __n,
- bidirectional_iterator_tag)
- {
- // concept requirements
- __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIterator>)
-
- if (__n > 0)
+
+ template<typename _RandomAccessIterator>
+ inline typename iterator_traits<_RandomAccessIterator>::difference_type
+ __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
+ random_access_iterator_tag)
+ {
+ // concept requirements
+ __glibcpp_function_requires(_RandomAccessIteratorConcept<_RandomAccessIterator>)
+ return __last - __first;
+ }
+
+ /**
+ * @brief A generalization of pointer arithmetic.
+ * @param first An input iterator.
+ * @param last An input iterator.
+ * @return The distance between them.
+ *
+ * Returns @c n such that first + n == last. This requires that @p last
+ * must be reachable from @p first. Note that @c n may be negative.
+ *
+ * For random access iterators, this uses their @c + and @c - operations
+ * and are constant time. For other %iterator classes they are linear time.
+ */
+ template<typename _InputIterator>
+ inline typename iterator_traits<_InputIterator>::difference_type
+ distance(_InputIterator __first, _InputIterator __last)
+ {
+ // concept requirements -- taken care of in __distance
+ return __distance(__first, __last, __iterator_category(__first));
+ }
+
+ template<typename _InputIter, typename _Distance>
+ inline void
+ __advance(_InputIter& __i, _Distance __n, input_iterator_tag)
+ {
+ // concept requirements
+ __glibcpp_function_requires(_InputIteratorConcept<_InputIter>)
while (__n--) ++__i;
- else
- while (__n++) --__i;
- }
-
-template<typename _RandomAccessIterator, typename _Distance>
- inline void
- __advance(_RandomAccessIterator& __i, _Distance __n,
- random_access_iterator_tag)
- {
- // concept requirements
- __glibcpp_function_requires(_RandomAccessIteratorConcept<_RandomAccessIterator>)
- __i += __n;
- }
-
-/**
- * @brief A generalization of pointer arithmetic.
- * @param i An input iterator.
- * @param n The "delta" by which to change @p i.
- * @return Nothing.
- *
- * This increments @p i by @p n. For bidirectional and random access
- * iterators, @p n may be negative, in which case @p i is decremented.
- *
- * For random access iterators, this uses their @c + and @c - operations
- * and are constant time. For other %iterator classes they are linear time.
-*/
-template<typename _InputIterator, typename _Distance>
- inline void
- advance(_InputIterator& __i, _Distance __n)
- {
- // concept requirements -- taken care of in __advance
- __advance(__i, __n, __iterator_category(__i));
- }
-
+ }
+
+ template<typename _BidirectionalIterator, typename _Distance>
+ inline void
+ __advance(_BidirectionalIterator& __i, _Distance __n,
+ bidirectional_iterator_tag)
+ {
+ // concept requirements
+ __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIterator>)
+
+ if (__n > 0)
+ while (__n--) ++__i;
+ else
+ while (__n++) --__i;
+ }
+
+ template<typename _RandomAccessIterator, typename _Distance>
+ inline void
+ __advance(_RandomAccessIterator& __i, _Distance __n,
+ random_access_iterator_tag)
+ {
+ // concept requirements
+ __glibcpp_function_requires(_RandomAccessIteratorConcept<_RandomAccessIterator>)
+ __i += __n;
+ }
+
+ /**
+ * @brief A generalization of pointer arithmetic.
+ * @param i An input iterator.
+ * @param n The "delta" by which to change @p i.
+ * @return Nothing.
+ *
+ * This increments @p i by @p n. For bidirectional and random access
+ * iterators, @p n may be negative, in which case @p i is decremented.
+ *
+ * For random access iterators, this uses their @c + and @c - operations
+ * and are constant time. For other %iterator classes they are linear time.
+ */
+ template<typename _InputIterator, typename _Distance>
+ inline void
+ advance(_InputIterator& __i, _Distance __n)
+ {
+ // concept requirements -- taken care of in __advance
+ __advance(__i, __n, __iterator_category(__i));
+ }
} // namespace std
#endif /* __GLIBCPP_INTERNAL_ITERATOR_BASE_FUNCS_H */
-
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/contrib/libstdc++/include/bits/stl_iterator_base_types.h b/contrib/libstdc++/include/bits/stl_iterator_base_types.h
index 5dff8fc..8b040e4 100644
--- a/contrib/libstdc++/include/bits/stl_iterator_base_types.h
+++ b/contrib/libstdc++/include/bits/stl_iterator_base_types.h
@@ -68,13 +68,13 @@
namespace std
{
+ //@{
/**
* @defgroup iterator_tags Iterator Tags
* These are empty types, used to distinguish different iterators. The
* distinction is not made by what they contain, but simply by what they
* are. Different underlying algorithms can then be used based on the
* different operations supporetd by different iterator types.
- * @{
*/
/// Marking input iterators.
struct input_iterator_tag {};
@@ -90,6 +90,8 @@ namespace std
/**
+ * @brief Common %iterator class.
+ *
* This class does nothing but define nested typedefs. %Iterator classes
* can inherit from this class to save some work. The typedefs are then
* used in specializations and overloading.
@@ -98,8 +100,9 @@ namespace std
* such as @c operator++ and the like. (How could there be?)
*/
template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t,
- typename _Pointer = _Tp*, typename _Reference = _Tp&>
- struct iterator {
+ typename _Pointer = _Tp*, typename _Reference = _Tp&>
+ struct iterator
+ {
/// One of the @link iterator_tags tag types@endlink.
typedef _Category iterator_category;
/// The type "pointed to" by the iterator.
diff --git a/contrib/libstdc++/include/bits/stl_list.h b/contrib/libstdc++/include/bits/stl_list.h
index 3d470b1..fcba359 100644
--- a/contrib/libstdc++/include/bits/stl_list.h
+++ b/contrib/libstdc++/include/bits/stl_list.h
@@ -65,215 +65,263 @@
namespace std
{
-
+ // Supporting structures are split into common and templated types; the
+ // latter publicly inherits from the former in an effort to reduce code
+ // duplication. This results in some "needless" static_cast'ing later on,
+ // but it's all safe downcasting.
+
+ /// @if maint Common part of a node in the %list. @endif
struct _List_node_base
{
- _List_node_base* _M_next;
- _List_node_base* _M_prev;
+ _List_node_base* _M_next; ///< Self-explanatory
+ _List_node_base* _M_prev; ///< Self-explanatory
};
-
+
+ /// @if maint An actual node in the %list. @endif
template<typename _Tp>
struct _List_node : public _List_node_base
- {
- _Tp _M_data;
- };
-
+ {
+ _Tp _M_data; ///< User's data.
+ };
+
+
+ /**
+ * @if maint
+ * @brief Common part of a list::iterator.
+ *
+ * A simple type to walk a doubly-linked list. All operations here should
+ * be self-explanatory after taking any decent introductory data structures
+ * course.
+ * @endif
+ */
struct _List_iterator_base
{
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
- typedef bidirectional_iterator_tag iterator_category;
-
+ typedef size_t size_type;
+ typedef ptrdiff_t difference_type;
+ typedef bidirectional_iterator_tag iterator_category;
+
+ /// The only member points to the %list element.
_List_node_base* _M_node;
-
+
_List_iterator_base(_List_node_base* __x)
: _M_node(__x)
{ }
-
+
_List_iterator_base()
{ }
-
+
+ /// Walk the %list forward.
void
_M_incr()
{ _M_node = _M_node->_M_next; }
-
+
+ /// Walk the %list backward.
void
_M_decr()
{ _M_node = _M_node->_M_prev; }
-
+
bool
operator==(const _List_iterator_base& __x) const
{ return _M_node == __x._M_node; }
-
+
bool
operator!=(const _List_iterator_base& __x) const
{ return _M_node != __x._M_node; }
- };
-
+ };
+
+ /**
+ * @brief A list::iterator.
+ *
+ * In addition to being used externally, a list holds one of these
+ * internally, pointing to the sequence of data.
+ *
+ * @if maint
+ * All the functions are op overloads.
+ * @endif
+ */
template<typename _Tp, typename _Ref, typename _Ptr>
struct _List_iterator : public _List_iterator_base
+ {
+ typedef _List_iterator<_Tp,_Tp&,_Tp*> iterator;
+ typedef _List_iterator<_Tp,const _Tp&,const _Tp*> const_iterator;
+ typedef _List_iterator<_Tp,_Ref,_Ptr> _Self;
+
+ typedef _Tp value_type;
+ typedef _Ptr pointer;
+ typedef _Ref reference;
+ typedef _List_node<_Tp> _Node;
+
+ _List_iterator(_Node* __x)
+ : _List_iterator_base(__x)
+ { }
+
+ _List_iterator()
+ { }
+
+ _List_iterator(const iterator& __x)
+ : _List_iterator_base(__x._M_node)
+ { }
+
+ reference
+ operator*() const
+ { return static_cast<_Node*>(_M_node)->_M_data; }
+ // Must downcast from List_node_base to _List_node to get to _M_data.
+
+ pointer
+ operator->() const
+ { return &(operator*()); }
+
+ _Self&
+ operator++()
{
- typedef _List_iterator<_Tp,_Tp&,_Tp*> iterator;
- typedef _List_iterator<_Tp,const _Tp&,const _Tp*> const_iterator;
- typedef _List_iterator<_Tp,_Ref,_Ptr> _Self;
-
- typedef _Tp value_type;
- typedef _Ptr pointer;
- typedef _Ref reference;
- typedef _List_node<_Tp> _Node;
-
- _List_iterator(_Node* __x)
- : _List_iterator_base(__x)
- { }
-
- _List_iterator()
- { }
-
- _List_iterator(const iterator& __x)
- : _List_iterator_base(__x._M_node)
- { }
-
- reference
- operator*() const
- { return ((_Node*) _M_node)->_M_data; }
-
- pointer
- operator->() const
- { return &(operator*()); }
-
- _Self&
- operator++()
- {
- this->_M_incr();
- return *this;
- }
-
- _Self
- operator++(int)
- {
- _Self __tmp = *this;
- this->_M_incr();
- return __tmp;
- }
-
- _Self&
- operator--()
- {
- this->_M_decr();
- return *this;
- }
-
- _Self
- operator--(int)
- {
- _Self __tmp = *this;
- this->_M_decr();
- return __tmp;
- }
- };
-
-
- // Base class that encapsulates details of allocators. Three cases:
- // an ordinary standard-conforming allocator, a standard-conforming
- // allocator with no non-static data, and an SGI-style allocator.
- // This complexity is necessary only because we're worrying about backward
- // compatibility and because we want to avoid wasting storage on an
- // allocator instance if it isn't necessary.
-
-
- // Base for general standard-conforming allocators.
+ this->_M_incr();
+ return *this;
+ }
+
+ _Self
+ operator++(int)
+ {
+ _Self __tmp = *this;
+ this->_M_incr();
+ return __tmp;
+ }
+
+ _Self&
+ operator--()
+ {
+ this->_M_decr();
+ return *this;
+ }
+
+ _Self
+ operator--(int)
+ {
+ _Self __tmp = *this;
+ this->_M_decr();
+ return __tmp;
+ }
+ };
+
+
+ /// @if maint Primary default version. @endif
+ /**
+ * @if maint
+ * See bits/stl_deque.h's _Deque_alloc_base for an explanation.
+ * @endif
+ */
template<typename _Tp, typename _Allocator, bool _IsStatic>
class _List_alloc_base
- {
- public:
- typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type
- allocator_type;
-
- allocator_type
- get_allocator() const
- { return _Node_allocator; }
-
- _List_alloc_base(const allocator_type& __a)
- : _Node_allocator(__a)
- { }
-
- protected:
- _List_node<_Tp>*
- _M_get_node()
- { return _Node_allocator.allocate(1); }
-
- void
- _M_put_node(_List_node<_Tp>* __p)
- { _Node_allocator.deallocate(__p, 1); }
-
- protected:
- typename _Alloc_traits<_List_node<_Tp>, _Allocator>::allocator_type
- _Node_allocator;
-
- _List_node<_Tp>* _M_node;
- };
-
- // Specialization for instanceless allocators.
-
+ {
+ public:
+ typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type
+ allocator_type;
+
+ allocator_type
+ get_allocator() const { return _M_node_allocator; }
+
+ _List_alloc_base(const allocator_type& __a)
+ : _M_node_allocator(__a)
+ { }
+
+ protected:
+ _List_node<_Tp>*
+ _M_get_node()
+ { return _M_node_allocator.allocate(1); }
+
+ void
+ _M_put_node(_List_node<_Tp>* __p)
+ { _M_node_allocator.deallocate(__p, 1); }
+
+ // NOTA BENE
+ // The stored instance is not actually of "allocator_type"'s type. Instead
+ // we rebind the type to Allocator<List_node<Tp>>, which according to
+ // [20.1.5]/4 should probably be the same. List_node<Tp> is not the same
+ // size as Tp (it's two pointers larger), and specializations on Tp may go
+ // unused because List_node<Tp> is being bound instead.
+ //
+ // We put this to the test in get_allocator above; if the two types are
+ // actually different, there had better be a conversion between them.
+ //
+ // None of the predefined allocators shipped with the library (as of 3.1)
+ // use this instantiation anyhow; they're all instanceless.
+ typename _Alloc_traits<_List_node<_Tp>, _Allocator>::allocator_type
+ _M_node_allocator;
+
+ _List_node<_Tp>* _M_node;
+ };
+
+ /// @if maint Specialization for instanceless allocators. @endif
template<typename _Tp, typename _Allocator>
class _List_alloc_base<_Tp, _Allocator, true>
+ {
+ public:
+ typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type
+ allocator_type;
+
+ allocator_type
+ get_allocator() const { return allocator_type(); }
+
+ _List_alloc_base(const allocator_type&)
+ { }
+
+ protected:
+ // See comment in primary template class about why this is safe for the
+ // standard predefined classes.
+ typedef typename _Alloc_traits<_List_node<_Tp>, _Allocator>::_Alloc_type
+ _Alloc_type;
+
+ _List_node<_Tp>*
+ _M_get_node()
+ { return _Alloc_type::allocate(1); }
+
+ void
+ _M_put_node(_List_node<_Tp>* __p)
+ { _Alloc_type::deallocate(__p, 1); }
+
+ _List_node<_Tp>* _M_node;
+ };
+
+
+ /**
+ * @if maint
+ * See bits/stl_deque.h's _Deque_base for an explanation.
+ * @endif
+ */
+ template <typename _Tp, typename _Alloc>
+ class _List_base
+ : public _List_alloc_base<_Tp, _Alloc,
+ _Alloc_traits<_Tp, _Alloc>::_S_instanceless>
+ {
+ public:
+ typedef _List_alloc_base<_Tp, _Alloc,
+ _Alloc_traits<_Tp, _Alloc>::_S_instanceless>
+ _Base;
+ typedef typename _Base::allocator_type allocator_type;
+
+ _List_base(const allocator_type& __a)
+ : _Base(__a)
{
- public:
- typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type
- allocator_type;
-
- allocator_type
- get_allocator() const
- { return allocator_type(); }
-
- _List_alloc_base(const allocator_type&)
- { }
-
- protected:
- typedef typename _Alloc_traits<_List_node<_Tp>, _Allocator>::_Alloc_type
- _Alloc_type;
-
- _List_node<_Tp>*
- _M_get_node()
- { return _Alloc_type::allocate(1); }
-
- void
- _M_put_node(_List_node<_Tp>* __p)
- { _Alloc_type::deallocate(__p, 1); }
-
- protected:
- _List_node<_Tp>* _M_node;
- };
-
- template<typename _Tp, typename _Alloc>
- class _List_base
- : public _List_alloc_base<_Tp, _Alloc,
- _Alloc_traits<_Tp, _Alloc>::_S_instanceless>
+ _M_node = _M_get_node();
+ _M_node->_M_next = _M_node;
+ _M_node->_M_prev = _M_node;
+ }
+
+ // This is what actually destroys the list.
+ ~_List_base()
{
- public:
- typedef _List_alloc_base<_Tp, _Alloc,
- _Alloc_traits<_Tp, _Alloc>::_S_instanceless>
- _Base;
- typedef typename _Base::allocator_type allocator_type;
-
- _List_base(const allocator_type& __a)
- : _Base(__a)
- {
- _M_node = _M_get_node();
- _M_node->_M_next = _M_node;
- _M_node->_M_prev = _M_node;
- }
-
- ~_List_base()
- {
- clear();
- _M_put_node(_M_node);
- }
-
- void clear();
- };
-
+ __clear();
+ _M_put_node(_M_node);
+ }
+
+ void
+ __clear();
+ };
+
+
/**
+ * @brief A standard container with linear time access to elements, and
+ * fixed time insertion/deletion at any point in the sequence.
+ *
* @ingroup Containers
* @ingroup Sequences
*
@@ -283,384 +331,778 @@ namespace std
* <a href="tables.html#68">optional sequence requirements</a> with the
* %exception of @c at and @c operator[].
*
- * @doctodo
+ * This is a @e doubly @e linked %list. Traversal up and down the %list
+ * requires linear time, but adding and removing elements (or @e nodes) is
+ * done in constant time, regardless of where the change takes place.
+ * Unlike std::vector and std::deque, random-access iterators are not
+ * provided, so subscripting ( @c [] ) access is not allowed. For algorithms
+ * which only need sequential access, this lack makes no difference.
+ *
+ * Also unlike the other standard containers, std::list provides specialized
+ * algorithms %unique to linked lists, such as splicing, sorting, and
+ * in-place reversal.
+ *
+ * @if maint
+ * A couple points on memory allocation for list<Tp>:
*
+ * First, we never actually allocate a Tp, we allocate List_node<Tp>'s
+ * and trust [20.1.5]/4 to DTRT. This is to ensure that after elements from
+ * %list<X,Alloc1> are spliced into %list<X,Alloc2>, destroying the memory of
+ * the second %list is a valid operation, i.e., Alloc1 giveth and Alloc2
+ * taketh away.
+ *
+ * Second, a %list conceptually represented as
+ * @code
+ * A <---> B <---> C <---> D
+ * @endcode
+ * is actually circular; a link exists between A and D. The %list class
+ * holds (as its only data member) a private list::iterator pointing to
+ * @e D, not to @e A! To get to the head of the %list, we start at the tail
+ * and move forward by one. When this member iterator's next/previous
+ * pointers refer to itself, the %list is %empty.
+ * @endif
*/
template<typename _Tp, typename _Alloc = allocator<_Tp> >
class list : protected _List_base<_Tp, _Alloc>
+ {
+ // concept requirements
+ __glibcpp_class_requires(_Tp, _SGIAssignableConcept)
+
+ typedef _List_base<_Tp, _Alloc> _Base;
+
+ public:
+ typedef _Tp value_type;
+ typedef value_type* pointer;
+ typedef const value_type* const_pointer;
+ typedef _List_iterator<_Tp,_Tp&,_Tp*> iterator;
+ typedef _List_iterator<_Tp,const _Tp&,const _Tp*> const_iterator;
+ typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
+ typedef std::reverse_iterator<iterator> reverse_iterator;
+ typedef value_type& reference;
+ typedef const value_type& const_reference;
+ typedef size_t size_type;
+ typedef ptrdiff_t difference_type;
+ typedef typename _Base::allocator_type allocator_type;
+
+ protected:
+ // Note that pointers-to-_Node's can be ctor-converted to iterator types.
+ typedef _List_node<_Tp> _Node;
+
+ /** @if maint
+ * One data member plus two memory-handling functions. If the _Alloc
+ * type requires separate instances, then one of those will also be
+ * included, accumulated from the topmost parent.
+ * @endif
+ */
+ using _Base::_M_node;
+ using _Base::_M_put_node;
+ using _Base::_M_get_node;
+
+ /**
+ * @if maint
+ * @param x An instance of user data.
+ *
+ * Allocates space for a new node and constructs a copy of @a x in it.
+ * @endif
+ */
+ _Node*
+ _M_create_node(const value_type& __x)
{
- // concept requirements
- __glibcpp_class_requires(_Tp, _SGIAssignableConcept)
-
- typedef _List_base<_Tp, _Alloc> _Base;
- protected:
- typedef void* _Void_pointer;
-
- public:
- typedef _Tp value_type;
- typedef value_type* pointer;
- typedef const value_type* const_pointer;
- typedef value_type& reference;
- typedef const value_type& const_reference;
- typedef _List_node<_Tp> _Node;
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
-
- typedef typename _Base::allocator_type allocator_type;
-
- typedef _List_iterator<_Tp,_Tp&,_Tp*> iterator;
- typedef _List_iterator<_Tp,const _Tp&,const _Tp*> const_iterator;
-
- typedef reverse_iterator<const_iterator> const_reverse_iterator;
- typedef reverse_iterator<iterator> reverse_iterator;
-
- protected:
- using _Base::_M_node;
- using _Base::_M_put_node;
- using _Base::_M_get_node;
-
- protected:
- _Node*
- _M_create_node(const _Tp& __x)
+ _Node* __p = _M_get_node();
+ try {
+ _Construct(&__p->_M_data, __x);
+ }
+ catch(...)
{
- _Node* __p = _M_get_node();
- try {
- _Construct(&__p->_M_data, __x);
- }
- catch(...)
- {
- _M_put_node(__p);
- __throw_exception_again;
- }
- return __p;
+ _M_put_node(__p);
+ __throw_exception_again;
}
-
- _Node*
- _M_create_node()
+ return __p;
+ }
+
+ /**
+ * @if maint
+ * Allocates space for a new node and default-constructs a new instance
+ * of @c value_type in it.
+ * @endif
+ */
+ _Node*
+ _M_create_node()
+ {
+ _Node* __p = _M_get_node();
+ try {
+ _Construct(&__p->_M_data);
+ }
+ catch(...)
{
- _Node* __p = _M_get_node();
- try {
- _Construct(&__p->_M_data);
- }
- catch(...)
- {
- _M_put_node(__p);
- __throw_exception_again;
- }
- return __p;
+ _M_put_node(__p);
+ __throw_exception_again;
}
-
- public:
- allocator_type
- get_allocator() const
- { return _Base::get_allocator(); }
-
- explicit
- list(const allocator_type& __a = allocator_type())
+ return __p;
+ }
+
+ public:
+ // [23.2.2.1] construct/copy/destroy
+ // (assign() and get_allocator() are also listed in this section)
+ /**
+ * @brief Default constructor creates no elements.
+ */
+ explicit
+ list(const allocator_type& __a = allocator_type())
+ : _Base(__a) { }
+
+ /**
+ * @brief Create a %list with copies of an exemplar element.
+ * @param n The number of elements to initially create.
+ * @param value An element to copy.
+ *
+ * This constructor fills the %list with @a n copies of @a value.
+ */
+ list(size_type __n, const value_type& __value,
+ const allocator_type& __a = allocator_type())
: _Base(__a)
- { }
-
- iterator
- begin()
- { return static_cast<_Node*>(_M_node->_M_next); }
-
- const_iterator
- begin() const
- { return static_cast<_Node*>(_M_node->_M_next); }
-
- iterator
- end()
- { return _M_node; }
-
- const_iterator
- end() const
- { return _M_node; }
-
- reverse_iterator
- rbegin()
- { return reverse_iterator(end()); }
-
- const_reverse_iterator
- rbegin() const
- { return const_reverse_iterator(end()); }
-
- reverse_iterator
- rend()
- { return reverse_iterator(begin()); }
-
- const_reverse_iterator
- rend() const
- { return const_reverse_iterator(begin()); }
-
- bool
- empty() const
- { return _M_node->_M_next == _M_node; }
-
- size_type
- size() const
- { return distance(begin(), end()); }
-
- size_type
- max_size() const
- { return size_type(-1); }
-
- reference
- front()
- { return *begin(); }
-
- const_reference
- front() const
- { return *begin(); }
-
- reference
- back()
- { return *(--end()); }
-
- const_reference
- back() const
- { return *(--end()); }
-
+ { this->insert(begin(), __n, __value); }
+
+ /**
+ * @brief Create a %list with default elements.
+ * @param n The number of elements to initially create.
+ *
+ * This constructor fills the %list with @a n copies of a
+ * default-constructed element.
+ */
+ explicit
+ list(size_type __n)
+ : _Base(allocator_type())
+ { this->insert(begin(), __n, value_type()); }
+
+ /**
+ * @brief %List copy constructor.
+ * @param x A %list of identical element and allocator types.
+ *
+ * The newly-created %list uses a copy of the allocation object used
+ * by @a x.
+ */
+ list(const list& __x)
+ : _Base(__x.get_allocator())
+ { this->insert(begin(), __x.begin(), __x.end()); }
+
+ /**
+ * @brief Builds a %list from a range.
+ * @param first An input iterator.
+ * @param last An input iterator.
+ *
+ * Create a %list consisting of copies of the elements from [first,last).
+ * This is linear in N (where N is distance(first,last)).
+ *
+ * @if maint
+ * We don't need any dispatching tricks here, because insert does all of
+ * that anyway.
+ * @endif
+ */
+ template<typename _InputIterator>
+ list(_InputIterator __first, _InputIterator __last,
+ const allocator_type& __a = allocator_type())
+ : _Base(__a)
+ { this->insert(begin(), __first, __last); }
+
+ /**
+ * The dtor only erases the elements, and note that if the elements
+ * themselves are pointers, the pointed-to memory is not touched in any
+ * way. Managing the pointer is the user's responsibilty.
+ */
+ ~list() { }
+
+ /**
+ * @brief %List assignment operator.
+ * @param x A %list of identical element and allocator types.
+ *
+ * All the elements of @a x are copied, but unlike the copy constructor,
+ * the allocator object is not copied.
+ */
+ list&
+ operator=(const list& __x);
+
+ /**
+ * @brief Assigns a given value to a %list.
+ * @param n Number of elements to be assigned.
+ * @param val Value to be assigned.
+ *
+ * This function fills a %list with @a n copies of the given value.
+ * Note that the assignment completely changes the %list and that the
+ * resulting %list's size is the same as the number of elements assigned.
+ * Old data may be lost.
+ */
+ void
+ assign(size_type __n, const value_type& __val) { _M_fill_assign(__n, __val); }
+
+ /**
+ * @brief Assigns a range to a %list.
+ * @param first An input iterator.
+ * @param last An input iterator.
+ *
+ * This function fills a %list with copies of the elements in the
+ * range [first,last).
+ *
+ * Note that the assignment completely changes the %list and that the
+ * resulting %list's size is the same as the number of elements assigned.
+ * Old data may be lost.
+ */
+ template<typename _InputIterator>
void
- swap(list<_Tp, _Alloc>& __x)
- { std::swap(_M_node, __x._M_node); }
-
- iterator
- insert(iterator __position, const _Tp& __x)
+ assign(_InputIterator __first, _InputIterator __last)
{
- _Node* __tmp = _M_create_node(__x);
- __tmp->_M_next = __position._M_node;
- __tmp->_M_prev = __position._M_node->_M_prev;
- __position._M_node->_M_prev->_M_next = __tmp;
- __position._M_node->_M_prev = __tmp;
- return __tmp;
+ // Check whether it's an integral type. If so, it's not an iterator.
+ typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
+ _M_assign_dispatch(__first, __last, _Integral());
}
-
- iterator
- insert(iterator __position)
- { return insert(__position, _Tp()); }
-
- // Check whether it's an integral type. If so, it's not an iterator.
- template<typename _Integer>
- void
- _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, __true_type)
- { _M_fill_insert(__pos, (size_type) __n, (_Tp) __x); }
-
- template<typename _InputIterator>
- void
- _M_insert_dispatch(iterator __pos,
- _InputIterator __first, _InputIterator __last,
- __false_type);
-
- template<typename _InputIterator>
- void
- insert(iterator __pos, _InputIterator __first, _InputIterator __last)
- {
- typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
- _M_insert_dispatch(__pos, __first, __last, _Integral());
- }
-
- void
- insert(iterator __pos, size_type __n, const _Tp& __x)
- { _M_fill_insert(__pos, __n, __x); }
-
- void
- _M_fill_insert(iterator __pos, size_type __n, const _Tp& __x);
-
- void
- push_front(const _Tp& __x)
- { insert(begin(), __x); }
-
- void
- push_front()
- { insert(begin()); }
-
- void
- push_back(const _Tp& __x)
- { insert(end(), __x); }
-
+
+ /// Get a copy of the memory allocation object.
+ allocator_type
+ get_allocator() const { return _Base::get_allocator(); }
+
+ // iterators
+ /**
+ * Returns a read/write iterator that points to the first element in the
+ * %list. Iteration is done in ordinary element order.
+ */
+ iterator
+ begin() { return static_cast<_Node*>(_M_node->_M_next); }
+
+ /**
+ * Returns a read-only (constant) iterator that points to the first element
+ * in the %list. Iteration is done in ordinary element order.
+ */
+ const_iterator
+ begin() const { return static_cast<_Node*>(_M_node->_M_next); }
+
+ /**
+ * Returns a read/write iterator that points one past the last element in
+ * the %list. Iteration is done in ordinary element order.
+ */
+ iterator
+ end() { return _M_node; }
+
+ /**
+ * Returns a read-only (constant) iterator that points one past the last
+ * element in the %list. Iteration is done in ordinary element order.
+ */
+ const_iterator
+ end() const { return _M_node; }
+
+ /**
+ * Returns a read/write reverse iterator that points to the last element in
+ * the %list. Iteration is done in reverse element order.
+ */
+ reverse_iterator
+ rbegin() { return reverse_iterator(end()); }
+
+ /**
+ * Returns a read-only (constant) reverse iterator that points to the last
+ * element in the %list. Iteration is done in reverse element order.
+ */
+ const_reverse_iterator
+ rbegin() const { return const_reverse_iterator(end()); }
+
+ /**
+ * Returns a read/write reverse iterator that points to one before the
+ * first element in the %list. Iteration is done in reverse element
+ * order.
+ */
+ reverse_iterator
+ rend() { return reverse_iterator(begin()); }
+
+ /**
+ * Returns a read-only (constant) reverse iterator that points to one
+ * before the first element in the %list. Iteration is done in reverse
+ * element order.
+ */
+ const_reverse_iterator
+ rend() const
+ { return const_reverse_iterator(begin()); }
+
+ // [23.2.2.2] capacity
+ /**
+ * Returns true if the %list is empty. (Thus begin() would equal end().)
+ */
+ bool
+ empty() const { return _M_node->_M_next == _M_node; }
+
+ /** Returns the number of elements in the %list. */
+ size_type
+ size() const { return distance(begin(), end()); }
+
+ /** Returns the size() of the largest possible %list. */
+ size_type
+ max_size() const { return size_type(-1); }
+
+ /**
+ * @brief Resizes the %list to the specified number of elements.
+ * @param new_size Number of elements the %list should contain.
+ * @param x Data with which new elements should be populated.
+ *
+ * This function will %resize the %list to the specified number of
+ * elements. If the number is smaller than the %list's current size the
+ * %list is truncated, otherwise the %list is extended and new elements
+ * are populated with given data.
+ */
+ void
+ resize(size_type __new_size, const value_type& __x);
+
+ /**
+ * @brief Resizes the %list to the specified number of elements.
+ * @param new_size Number of elements the %list should contain.
+ *
+ * This function will resize the %list to the specified number of
+ * elements. If the number is smaller than the %list's current size the
+ * %list is truncated, otherwise the %list is extended and new elements
+ * are default-constructed.
+ */
+ void
+ resize(size_type __new_size) { this->resize(__new_size, value_type()); }
+
+ // element access
+ /**
+ * Returns a read/write reference to the data at the first element of the
+ * %list.
+ */
+ reference
+ front() { return *begin(); }
+
+ /**
+ * Returns a read-only (constant) reference to the data at the first
+ * element of the %list.
+ */
+ const_reference
+ front() const { return *begin(); }
+
+ /**
+ * Returns a read/write reference to the data at the last element of the
+ * %list.
+ */
+ reference
+ back() { return *(--end()); }
+
+ /**
+ * Returns a read-only (constant) reference to the data at the last
+ * element of the %list.
+ */
+ const_reference
+ back() const { return *(--end()); }
+
+ // [23.2.2.3] modifiers
+ /**
+ * @brief Add data to the front of the %list.
+ * @param x Data to be added.
+ *
+ * This is a typical stack operation. The function creates an element at
+ * the front of the %list and assigns the given data to it. Due to the
+ * nature of a %list this operation can be done in constant time, and
+ * does not invalidate iterators and references.
+ */
+ void
+ push_front(const value_type& __x) { this->insert(begin(), __x); }
+
+ #ifdef _GLIBCPP_DEPRECATED
+ /**
+ * @brief Add data to the front of the %list.
+ *
+ * This is a typical stack operation. The function creates a
+ * default-constructed element at the front of the %list. Due to the
+ * nature of a %list this operation can be done in constant time. You
+ * should consider using push_front(value_type()) instead.
+ *
+ * @note This was deprecated in 3.2 and will be removed in 3.4. You must
+ * define @c _GLIBCPP_DEPRECATED to make this visible in 3.2; see
+ * c++config.h.
+ */
+ void
+ push_front() { this->insert(begin(), value_type()); }
+ #endif
+
+ /**
+ * @brief Removes first element.
+ *
+ * This is a typical stack operation. It shrinks the %list by one.
+ * Due to the nature of a %list this operation can be done in constant
+ * time, and only invalidates iterators/references to the element being
+ * removed.
+ *
+ * Note that no data is returned, and if the first element's data is
+ * needed, it should be retrieved before pop_front() is called.
+ */
+ void
+ pop_front() { this->erase(begin()); }
+
+ /**
+ * @brief Add data to the end of the %list.
+ * @param x Data to be added.
+ *
+ * This is a typical stack operation. The function creates an element at
+ * the end of the %list and assigns the given data to it. Due to the
+ * nature of a %list this operation can be done in constant time, and
+ * does not invalidate iterators and references.
+ */
+ void
+ push_back(const value_type& __x) { this->insert(end(), __x); }
+
+ #ifdef _GLIBCPP_DEPRECATED
+ /**
+ * @brief Add data to the end of the %list.
+ *
+ * This is a typical stack operation. The function creates a
+ * default-constructed element at the end of the %list. Due to the nature
+ * of a %list this operation can be done in constant time. You should
+ * consider using push_back(value_type()) instead.
+ *
+ * @note This was deprecated in 3.2 and will be removed in 3.4. You must
+ * define @c _GLIBCPP_DEPRECATED to make this visible in 3.2; see
+ * c++config.h.
+ */
+ void
+ push_back() { this->insert(end(), value_type()); }
+ #endif
+
+ /**
+ * @brief Removes last element.
+ *
+ * This is a typical stack operation. It shrinks the %list by one.
+ * Due to the nature of a %list this operation can be done in constant
+ * time, and only invalidates iterators/references to the element being
+ * removed.
+ *
+ * Note that no data is returned, and if the last element's data is
+ * needed, it should be retrieved before pop_back() is called.
+ */
+ void
+ pop_back()
+ {
+ iterator __tmp = end();
+ this->erase(--__tmp);
+ }
+
+ /**
+ * @brief Inserts given value into %list before specified iterator.
+ * @param position An iterator into the %list.
+ * @param x Data to be inserted.
+ * @return An iterator that points to the inserted data.
+ *
+ * This function will insert a copy of the given value before the specified
+ * location.
+ * Due to the nature of a %list this operation can be done in constant
+ * time, and does not invalidate iterators and references.
+ */
+ iterator
+ insert(iterator __position, const value_type& __x);
+
+ #ifdef _GLIBCPP_DEPRECATED
+ /**
+ * @brief Inserts an element into the %list.
+ * @param position An iterator into the %list.
+ * @return An iterator that points to the inserted element.
+ *
+ * This function will insert a default-constructed element before the
+ * specified location. You should consider using
+ * insert(position,value_type()) instead.
+ * Due to the nature of a %list this operation can be done in constant
+ * time, and does not invalidate iterators and references.
+ *
+ * @note This was deprecated in 3.2 and will be removed in 3.4. You must
+ * define @c _GLIBCPP_DEPRECATED to make this visible in 3.2; see
+ * c++config.h.
+ */
+ iterator
+ insert(iterator __position) { return insert(__position, value_type()); }
+ #endif
+
+ /**
+ * @brief Inserts a number of copies of given data into the %list.
+ * @param position An iterator into the %list.
+ * @param n Number of elements to be inserted.
+ * @param x Data to be inserted.
+ *
+ * This function will insert a specified number of copies of the given data
+ * before the location specified by @a position.
+ *
+ * Due to the nature of a %list this operation can be done in constant
+ * time, and does not invalidate iterators and references.
+ */
+ void
+ insert(iterator __pos, size_type __n, const value_type& __x)
+ { _M_fill_insert(__pos, __n, __x); }
+
+ /**
+ * @brief Inserts a range into the %list.
+ * @param pos An iterator into the %list.
+ * @param first An input iterator.
+ * @param last An input iterator.
+ *
+ * This function will insert copies of the data in the range [first,last)
+ * into the %list before the location specified by @a pos.
+ *
+ * Due to the nature of a %list this operation can be done in constant
+ * time, and does not invalidate iterators and references.
+ */
+ template<typename _InputIterator>
void
- push_back()
- { insert(end()); }
-
- iterator
- erase(iterator __position)
+ insert(iterator __pos, _InputIterator __first, _InputIterator __last)
{
- _List_node_base* __next_node = __position._M_node->_M_next;
- _List_node_base* __prev_node = __position._M_node->_M_prev;
- _Node* __n = static_cast<_Node*>(__position._M_node);
- __prev_node->_M_next = __next_node;
- __next_node->_M_prev = __prev_node;
- _Destroy(&__n->_M_data);
- _M_put_node(__n);
- return iterator(static_cast<_Node*>(__next_node));
+ // Check whether it's an integral type. If so, it's not an iterator.
+ typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
+ _M_insert_dispatch(__pos, __first, __last, _Integral());
}
-
- iterator
- erase(iterator __first, iterator __last);
-
- void
- clear()
- { _Base::clear(); }
-
- void
- resize(size_type __new_size, const _Tp& __x);
-
- void
- resize(size_type __new_size)
- { this->resize(__new_size, _Tp()); }
-
+
+ /**
+ * @brief Remove element at given position.
+ * @param position Iterator pointing to element to be erased.
+ * @return An iterator pointing to the next element (or end()).
+ *
+ * This function will erase the element at the given position and thus
+ * shorten the %list by one.
+ *
+ * Due to the nature of a %list this operation can be done in constant
+ * time, and only invalidates iterators/references to the element being
+ * removed.
+ * The user is also cautioned that
+ * this function only erases the element, and that if the element is itself
+ * a pointer, the pointed-to memory is not touched in any way. Managing
+ * the pointer is the user's responsibilty.
+ */
+ iterator
+ erase(iterator __position);
+
+ /**
+ * @brief Remove a range of elements.
+ * @param first Iterator pointing to the first element to be erased.
+ * @param last Iterator pointing to one past the last element to be
+ * erased.
+ * @return An iterator pointing to the element pointed to by @a last
+ * prior to erasing (or end()).
+ *
+ * This function will erase the elements in the range [first,last) and
+ * shorten the %list accordingly.
+ *
+ * Due to the nature of a %list this operation can be done in constant
+ * time, and only invalidates iterators/references to the element being
+ * removed.
+ * The user is also cautioned that
+ * this function only erases the elements, and that if the elements
+ * themselves are pointers, the pointed-to memory is not touched in any
+ * way. Managing the pointer is the user's responsibilty.
+ */
+ iterator
+ erase(iterator __first, iterator __last)
+ {
+ while (__first != __last)
+ erase(__first++);
+ return __last;
+ }
+
+ /**
+ * @brief Swaps data with another %list.
+ * @param x A %list of the same element and allocator types.
+ *
+ * This exchanges the elements between two lists in constant time.
+ * (It is only swapping a single pointer, so it should be quite fast.)
+ * Note that the global std::swap() function is specialized such that
+ * std::swap(l1,l2) will feed to this function.
+ */
+ void
+ swap(list& __x) { std::swap(_M_node, __x._M_node); }
+
+ /**
+ * Erases all the elements. Note that this function only erases the
+ * elements, and that if the elements themselves are pointers, the
+ * pointed-to memory is not touched in any way. Managing the pointer is
+ * the user's responsibilty.
+ */
+ void
+ clear() { _Base::__clear(); }
+
+ // [23.2.2.4] list operations
+ /**
+ * @doctodo
+ */
+ void
+ splice(iterator __position, list& __x)
+ {
+ if (!__x.empty())
+ this->_M_transfer(__position, __x.begin(), __x.end());
+ }
+
+ /**
+ * @doctodo
+ */
+ void
+ splice(iterator __position, list&, iterator __i)
+ {
+ iterator __j = __i;
+ ++__j;
+ if (__position == __i || __position == __j) return;
+ this->_M_transfer(__position, __i, __j);
+ }
+
+ /**
+ * @doctodo
+ */
+ void
+ splice(iterator __position, list&, iterator __first, iterator __last)
+ {
+ if (__first != __last)
+ this->_M_transfer(__position, __first, __last);
+ }
+
+ /**
+ * @doctodo
+ */
+ void
+ remove(const _Tp& __value);
+
+ /**
+ * @doctodo
+ */
+ template<typename _Predicate>
void
- pop_front()
- { erase(begin()); }
-
+ remove_if(_Predicate);
+
+ /**
+ * @doctodo
+ */
+ void
+ unique();
+
+ /**
+ * @doctodo
+ */
+ template<typename _BinaryPredicate>
void
- pop_back()
- {
- iterator __tmp = end();
- erase(--__tmp);
- }
-
- list(size_type __n, const _Tp& __value,
- const allocator_type& __a = allocator_type())
- : _Base(__a)
- { insert(begin(), __n, __value); }
-
- explicit
- list(size_type __n)
- : _Base(allocator_type())
- { insert(begin(), __n, _Tp()); }
-
- // We don't need any dispatching tricks here, because insert does all of
- // that anyway.
- template<typename _InputIterator>
- list(_InputIterator __first, _InputIterator __last,
- const allocator_type& __a = allocator_type())
- : _Base(__a)
- { insert(begin(), __first, __last); }
-
- list(const list<_Tp, _Alloc>& __x)
- : _Base(__x.get_allocator())
- { insert(begin(), __x.begin(), __x.end()); }
-
- ~list()
- { }
-
- list<_Tp, _Alloc>&
- operator=(const list<_Tp, _Alloc>& __x);
-
- public:
- // assign(), a generalized assignment member function. Two
- // versions: one that takes a count, and one that takes a range.
- // The range version is a member template, so we dispatch on whether
- // or not the type is an integer.
-
+ unique(_BinaryPredicate);
+
+ /**
+ * @doctodo
+ */
+ void
+ merge(list& __x);
+
+ /**
+ * @doctodo
+ */
+ template<typename _StrictWeakOrdering>
void
- assign(size_type __n, const _Tp& __val)
- { _M_fill_assign(__n, __val); }
-
+ merge(list&, _StrictWeakOrdering);
+
+ /**
+ * @doctodo
+ */
+ void
+ reverse() { __List_base_reverse(this->_M_node); }
+
+ /**
+ * @doctodo
+ */
+ void
+ sort();
+
+ /**
+ * @doctodo
+ */
+ template<typename _StrictWeakOrdering>
void
- _M_fill_assign(size_type __n, const _Tp& __val);
-
- template<typename _InputIterator>
- void
- assign(_InputIterator __first, _InputIterator __last)
- {
- typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
- _M_assign_dispatch(__first, __last, _Integral());
- }
-
- template<typename _Integer>
- void
- _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)
- { _M_fill_assign((size_type) __n, (_Tp) __val); }
-
- template<typename _InputIterator>
- void
- _M_assign_dispatch(_InputIterator __first, _InputIterator __last,
- __false_type);
-
- protected:
+ sort(_StrictWeakOrdering);
+
+ protected:
+ // Internal assign functions follow.
+
+ // called by the range assign to implement [23.1.1]/9
+ template<typename _Integer>
void
- _M_transfer(iterator __position, iterator __first, iterator __last)
+ _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)
{
- if (__position != __last) {
- // Remove [first, last) from its old position.
- __last._M_node->_M_prev->_M_next = __position._M_node;
- __first._M_node->_M_prev->_M_next = __last._M_node;
- __position._M_node->_M_prev->_M_next = __first._M_node;
-
- // Splice [first, last) into its new position.
- _List_node_base* __tmp = __position._M_node->_M_prev;
- __position._M_node->_M_prev = __last._M_node->_M_prev;
- __last._M_node->_M_prev = __first._M_node->_M_prev;
- __first._M_node->_M_prev = __tmp;
- }
+ _M_fill_assign(static_cast<size_type>(__n),
+ static_cast<value_type>(__val));
}
-
- public:
+
+ // called by the range assign to implement [23.1.1]/9
+ template<typename _InputIter>
void
- splice(iterator __position, list& __x)
- {
- if (!__x.empty())
- this->_M_transfer(__position, __x.begin(), __x.end());
- }
-
+ _M_assign_dispatch(_InputIter __first, _InputIter __last, __false_type);
+
+ // Called by assign(n,t), and the range assign when it turns out to be the
+ // same thing.
+ void
+ _M_fill_assign(size_type __n, const value_type& __val);
+
+
+ // Internal insert functions follow.
+
+ // called by the range insert to implement [23.1.1]/9
+ template<typename _Integer>
void
- splice(iterator __position, list&, iterator __i)
+ _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x,
+ __true_type)
{
- iterator __j = __i;
- ++__j;
- if (__position == __i || __position == __j) return;
- this->_M_transfer(__position, __i, __j);
+ _M_fill_insert(__pos, static_cast<size_type>(__n),
+ static_cast<value_type>(__x));
}
-
+
+ // called by the range insert to implement [23.1.1]/9
+ template<typename _InputIterator>
void
- splice(iterator __position, list&, iterator __first, iterator __last)
+ _M_insert_dispatch(iterator __pos,
+ _InputIterator __first, _InputIterator __last,
+ __false_type)
{
- if (__first != __last)
- this->_M_transfer(__position, __first, __last);
+ for ( ; __first != __last; ++__first)
+ insert(__pos, *__first);
}
-
- void
- remove(const _Tp& __value);
-
- void
- unique();
-
- void
- merge(list& __x);
-
- void
- reverse();
-
- void
- sort();
-
- template<typename _Predicate>
- void
- remove_if(_Predicate);
-
- template<typename _BinaryPredicate>
- void
- unique(_BinaryPredicate);
-
- template<typename _StrictWeakOrdering>
- void
- merge(list&, _StrictWeakOrdering);
-
- template<typename _StrictWeakOrdering>
- void
- sort(_StrictWeakOrdering);
- };
-
+
+ // Called by insert(p,n,x), and the range insert when it turns out to be
+ // the same thing.
+ void
+ _M_fill_insert(iterator __pos, size_type __n, const value_type& __x)
+ {
+ for ( ; __n > 0; --__n)
+ insert(__pos, __x);
+ }
+
+
+ // Moves the elements from [first,last) before position.
+ void
+ _M_transfer(iterator __position, iterator __first, iterator __last)
+ {
+ if (__position != __last) {
+ // Remove [first, last) from its old position.
+ __last._M_node->_M_prev->_M_next = __position._M_node;
+ __first._M_node->_M_prev->_M_next = __last._M_node;
+ __position._M_node->_M_prev->_M_next = __first._M_node;
+
+ // Splice [first, last) into its new position.
+ _List_node_base* __tmp = __position._M_node->_M_prev;
+ __position._M_node->_M_prev = __last._M_node->_M_prev;
+ __last._M_node->_M_prev = __first._M_node->_M_prev;
+ __first._M_node->_M_prev = __tmp;
+ }
+ }
+ };
+
+
+ /**
+ * @brief List equality comparison.
+ * @param x A %list.
+ * @param y A %list of the same type as @a x.
+ * @return True iff the size and elements of the lists are equal.
+ *
+ * This is an equivalence relation. It is linear in the size of the
+ * lists. Lists are considered equivalent if their sizes are equal,
+ * and if corresponding elements compare equal.
+ */
template<typename _Tp, typename _Alloc>
- inline bool
+ inline bool
operator==(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y)
{
typedef typename list<_Tp,_Alloc>::const_iterator const_iterator;
const_iterator __end1 = __x.end();
const_iterator __end2 = __y.end();
-
+
const_iterator __i1 = __x.begin();
const_iterator __i2 = __y.begin();
while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2) {
@@ -669,7 +1111,18 @@ namespace std
}
return __i1 == __end1 && __i2 == __end2;
}
-
+
+ /**
+ * @brief List ordering relation.
+ * @param x A %list.
+ * @param y A %list of the same type as @a x.
+ * @return True iff @a x is lexographically less than @a y.
+ *
+ * This is a total ordering relation. It is linear in the size of the
+ * lists. The elements must be comparable with @c <.
+ *
+ * See std::lexographical_compare() for how the determination is made.
+ */
template<typename _Tp, typename _Alloc>
inline bool
operator<(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y)
@@ -677,313 +1130,36 @@ namespace std
return lexicographical_compare(__x.begin(), __x.end(),
__y.begin(), __y.end());
}
-
+
+ /// Based on operator==
template<typename _Tp, typename _Alloc>
inline bool
operator!=(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y)
{ return !(__x == __y); }
-
+
+ /// Based on operator<
template<typename _Tp, typename _Alloc>
inline bool
operator>(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y)
{ return __y < __x; }
-
+
+ /// Based on operator<
template<typename _Tp, typename _Alloc>
inline bool
operator<=(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y)
{ return !(__y < __x); }
-
+
+ /// Based on operator<
template<typename _Tp, typename _Alloc>
inline bool
operator>=(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y)
{ return !(__x < __y); }
-
+
+ /// See std::list::swap().
template<typename _Tp, typename _Alloc>
- inline void
+ inline void
swap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y)
{ __x.swap(__y); }
-
- // move these to stl_list.tcc
-
- template<typename _Tp, typename _Alloc>
- void _List_base<_Tp,_Alloc>::
- clear()
- {
- _List_node<_Tp>* __cur = static_cast<_List_node<_Tp>*>(_M_node->_M_next);
- while (__cur != _M_node) {
- _List_node<_Tp>* __tmp = __cur;
- __cur = static_cast<_List_node<_Tp>*>(__cur->_M_next);
- _Destroy(&__tmp->_M_data);
- _M_put_node(__tmp);
- }
- _M_node->_M_next = _M_node;
- _M_node->_M_prev = _M_node;
- }
-
- template<typename _Tp, typename _Alloc>
- template <typename _InputIter>
- void list<_Tp, _Alloc>::
- _M_insert_dispatch(iterator __position, _InputIter __first, _InputIter __last,
- __false_type)
- {
- for ( ; __first != __last; ++__first)
- insert(__position, *__first);
-
- }
-
- template<typename _Tp, typename _Alloc>
- void list<_Tp, _Alloc>::
- _M_fill_insert(iterator __position, size_type __n, const _Tp& __x)
- {
- for ( ; __n > 0; --__n)
- insert(__position, __x);
- }
-
- template<typename _Tp, typename _Alloc>
- typename list<_Tp,_Alloc>::iterator list<_Tp, _Alloc>::
- erase(iterator __first, iterator __last)
- {
- while (__first != __last)
- erase(__first++);
- return __last;
- }
-
- template<typename _Tp, typename _Alloc>
- void list<_Tp, _Alloc>::
- resize(size_type __new_size, const _Tp& __x)
- {
- iterator __i = begin();
- size_type __len = 0;
- for ( ; __i != end() && __len < __new_size; ++__i, ++__len)
- ;
- if (__len == __new_size)
- erase(__i, end());
- else // __i == end()
- insert(end(), __new_size - __len, __x);
- }
-
- template<typename _Tp, typename _Alloc>
- list<_Tp, _Alloc>& list<_Tp, _Alloc>::
- operator=(const list<_Tp, _Alloc>& __x)
- {
- if (this != &__x) {
- iterator __first1 = begin();
- iterator __last1 = end();
- const_iterator __first2 = __x.begin();
- const_iterator __last2 = __x.end();
- while (__first1 != __last1 && __first2 != __last2)
- *__first1++ = *__first2++;
- if (__first2 == __last2)
- erase(__first1, __last1);
- else
- insert(__last1, __first2, __last2);
- }
- return *this;
- }
-
- template<typename _Tp, typename _Alloc>
- void list<_Tp, _Alloc>::
- _M_fill_assign(size_type __n, const _Tp& __val) {
- iterator __i = begin();
- for ( ; __i != end() && __n > 0; ++__i, --__n)
- *__i = __val;
- if (__n > 0)
- insert(end(), __n, __val);
- else
- erase(__i, end());
- }
-
- template<typename _Tp, typename _Alloc>
- template <typename _InputIter>
- void list<_Tp, _Alloc>::
- _M_assign_dispatch(_InputIter __first2, _InputIter __last2, __false_type)
- {
- iterator __first1 = begin();
- iterator __last1 = end();
- for ( ; __first1 != __last1 && __first2 != __last2; ++__first1, ++__first2)
- *__first1 = *__first2;
- if (__first2 == __last2)
- erase(__first1, __last1);
- else
- insert(__last1, __first2, __last2);
- }
-
- template<typename _Tp, typename _Alloc>
- void list<_Tp, _Alloc>::
- remove(const _Tp& __value)
- {
- iterator __first = begin();
- iterator __last = end();
- while (__first != __last) {
- iterator __next = __first;
- ++__next;
- if (*__first == __value) erase(__first);
- __first = __next;
- }
- }
-
- template<typename _Tp, typename _Alloc>
- void list<_Tp, _Alloc>::
- unique()
- {
- iterator __first = begin();
- iterator __last = end();
- if (__first == __last) return;
- iterator __next = __first;
- while (++__next != __last) {
- if (*__first == *__next)
- erase(__next);
- else
- __first = __next;
- __next = __first;
- }
- }
-
- template<typename _Tp, typename _Alloc>
- void list<_Tp, _Alloc>::
- merge(list<_Tp, _Alloc>& __x)
- {
- iterator __first1 = begin();
- iterator __last1 = end();
- iterator __first2 = __x.begin();
- iterator __last2 = __x.end();
- while (__first1 != __last1 && __first2 != __last2)
- if (*__first2 < *__first1) {
- iterator __next = __first2;
- _M_transfer(__first1, __first2, ++__next);
- __first2 = __next;
- }
- else
- ++__first1;
- if (__first2 != __last2) _M_transfer(__last1, __first2, __last2);
- }
-
- inline void
- __List_base_reverse(_List_node_base* __p)
- {
- _List_node_base* __tmp = __p;
- do {
- std::swap(__tmp->_M_next, __tmp->_M_prev);
- __tmp = __tmp->_M_prev; // Old next node is now prev.
- } while (__tmp != __p);
- }
-
- template<typename _Tp, typename _Alloc>
- inline void list<_Tp, _Alloc>::
- reverse()
- { __List_base_reverse(this->_M_node); }
-
- template<typename _Tp, typename _Alloc>
- void list<_Tp, _Alloc>::
- sort()
- {
- // Do nothing if the list has length 0 or 1.
- if (_M_node->_M_next != _M_node && _M_node->_M_next->_M_next != _M_node) {
- list<_Tp, _Alloc> __carry;
- list<_Tp, _Alloc> __counter[64];
- int __fill = 0;
- while (!empty()) {
- __carry.splice(__carry.begin(), *this, begin());
- int __i = 0;
- while(__i < __fill && !__counter[__i].empty()) {
- __counter[__i].merge(__carry);
- __carry.swap(__counter[__i++]);
- }
- __carry.swap(__counter[__i]);
- if (__i == __fill) ++__fill;
- }
-
- for (int __i = 1; __i < __fill; ++__i)
- __counter[__i].merge(__counter[__i-1]);
- swap(__counter[__fill-1]);
- }
- }
-
- template<typename _Tp, typename _Alloc>
- template <typename _Predicate>
- void list<_Tp, _Alloc>::
- remove_if(_Predicate __pred)
- {
- iterator __first = begin();
- iterator __last = end();
- while (__first != __last) {
- iterator __next = __first;
- ++__next;
- if (__pred(*__first)) erase(__first);
- __first = __next;
- }
- }
-
- template<typename _Tp, typename _Alloc>
- template <typename _BinaryPredicate>
- void list<_Tp, _Alloc>::
- unique(_BinaryPredicate __binary_pred)
- {
- iterator __first = begin();
- iterator __last = end();
- if (__first == __last) return;
- iterator __next = __first;
- while (++__next != __last) {
- if (__binary_pred(*__first, *__next))
- erase(__next);
- else
- __first = __next;
- __next = __first;
- }
- }
-
- template<typename _Tp, typename _Alloc>
- template <typename _StrictWeakOrdering>
- void list<_Tp, _Alloc>::
- merge(list<_Tp, _Alloc>& __x, _StrictWeakOrdering __comp)
- {
- iterator __first1 = begin();
- iterator __last1 = end();
- iterator __first2 = __x.begin();
- iterator __last2 = __x.end();
- while (__first1 != __last1 && __first2 != __last2)
- if (__comp(*__first2, *__first1)) {
- iterator __next = __first2;
- _M_transfer(__first1, __first2, ++__next);
- __first2 = __next;
- }
- else
- ++__first1;
- if (__first2 != __last2) _M_transfer(__last1, __first2, __last2);
- }
-
- template<typename _Tp, typename _Alloc>
- template <typename _StrictWeakOrdering>
- void list<_Tp, _Alloc>::
- sort(_StrictWeakOrdering __comp)
- {
- // Do nothing if the list has length 0 or 1.
- if (_M_node->_M_next != _M_node && _M_node->_M_next->_M_next != _M_node) {
- list<_Tp, _Alloc> __carry;
- list<_Tp, _Alloc> __counter[64];
- int __fill = 0;
- while (!empty()) {
- __carry.splice(__carry.begin(), *this, begin());
- int __i = 0;
- while(__i < __fill && !__counter[__i].empty()) {
- __counter[__i].merge(__carry, __comp);
- __carry.swap(__counter[__i++]);
- }
- __carry.swap(__counter[__i]);
- if (__i == __fill) ++__fill;
- }
-
- for (int __i = 1; __i < __fill; ++__i)
- __counter[__i].merge(__counter[__i-1], __comp);
- swap(__counter[__fill-1]);
- }
- }
-
-} // namespace std
+} // namespace std
#endif /* __GLIBCPP_INTERNAL_LIST_H */
-
-// vi:set ts=2 sw=2:
-// Local Variables:
-// mode:C++
-// End:
diff --git a/contrib/libstdc++/include/bits/stl_map.h b/contrib/libstdc++/include/bits/stl_map.h
index 07c62e4..ed47bbb 100644
--- a/contrib/libstdc++/include/bits/stl_map.h
+++ b/contrib/libstdc++/include/bits/stl_map.h
@@ -58,446 +58,604 @@
* You should not attempt to use it directly.
*/
-#ifndef _CPP_BITS_STL_MAP_H
-#define _CPP_BITS_STL_MAP_H 1
+#ifndef __GLIBCPP_INTERNAL_MAP_H
+#define __GLIBCPP_INTERNAL_MAP_H
#include <bits/concept_check.h>
namespace std
{
-
-/**
- * @brief A standard container made up of pairs (see std::pair in <utility>)
- * which can be retrieved based on a key.
- *
- * This is an associative container. Values contained within it can be
- * quickly retrieved through a key element. Example: MyMap["First"] would
- * return the data associated with the key "First".
-*/
-template <class _Key, class _Tp, class _Compare = less<_Key>,
- class _Alloc = allocator<pair<const _Key, _Tp> > >
-class map
-{
- // concept requirements
- __glibcpp_class_requires(_Tp, _SGIAssignableConcept)
- __glibcpp_class_requires4(_Compare, bool, _Key, _Key, _BinaryFunctionConcept);
-
-public:
- // typedefs:
- typedef _Key key_type;
- typedef _Tp data_type;
- typedef _Tp mapped_type;
- typedef pair<const _Key, _Tp> value_type;
- typedef _Compare key_compare;
-
- class value_compare
- : public binary_function<value_type, value_type, bool> {
- friend class map<_Key,_Tp,_Compare,_Alloc>;
- protected :
- _Compare comp;
- value_compare(_Compare __c) : comp(__c) {}
- public:
- bool operator()(const value_type& __x, const value_type& __y) const {
- return comp(__x.first, __y.first);
- }
- };
-
-private:
- typedef _Rb_tree<key_type, value_type,
- _Select1st<value_type>, key_compare, _Alloc> _Rep_type;
- _Rep_type _M_t; // red-black tree representing map
-public:
- typedef typename _Rep_type::pointer pointer;
- typedef typename _Rep_type::const_pointer const_pointer;
- typedef typename _Rep_type::reference reference;
- typedef typename _Rep_type::const_reference const_reference;
- typedef typename _Rep_type::iterator iterator;
- typedef typename _Rep_type::const_iterator const_iterator;
- typedef typename _Rep_type::reverse_iterator reverse_iterator;
- typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
- typedef typename _Rep_type::size_type size_type;
- typedef typename _Rep_type::difference_type difference_type;
- typedef typename _Rep_type::allocator_type allocator_type;
-
- // allocation/deallocation
-
- map() : _M_t(_Compare(), allocator_type()) {}
- explicit map(const _Compare& __comp,
- const allocator_type& __a = allocator_type())
- : _M_t(__comp, __a) {}
-
- template <class _InputIterator>
- map(_InputIterator __first, _InputIterator __last)
- : _M_t(_Compare(), allocator_type())
- { _M_t.insert_unique(__first, __last); }
-
- template <class _InputIterator>
- map(_InputIterator __first, _InputIterator __last, const _Compare& __comp,
- const allocator_type& __a = allocator_type())
- : _M_t(__comp, __a) { _M_t.insert_unique(__first, __last); }
- map(const map<_Key,_Tp,_Compare,_Alloc>& __x) : _M_t(__x._M_t) {}
-
- map<_Key,_Tp,_Compare,_Alloc>&
- operator=(const map<_Key, _Tp, _Compare, _Alloc>& __x)
- {
- _M_t = __x._M_t;
- return *this;
- }
-
- // accessors:
-
- key_compare key_comp() const { return _M_t.key_comp(); }
- value_compare value_comp() const { return value_compare(_M_t.key_comp()); }
- allocator_type get_allocator() const { return _M_t.get_allocator(); }
-
- /**
- * Returns a read/write iterator that points to the first pair in the map.
- * Iteration is done in ascending order according to the keys.
- */
- iterator begin() { return _M_t.begin(); }
-
- /**
- * Returns a read-only (constant) iterator that points to the first pair
- * in the map. Iteration is done in ascending order according to the keys.
- */
- const_iterator begin() const { return _M_t.begin(); }
-
- /**
- * Returns a read/write iterator that points one past the last pair in the
- * map. Iteration is done in ascending order according to the keys.
- */
- iterator end() { return _M_t.end(); }
-
- /**
- * Returns a read-only (constant) iterator that points one past the last
- * pair in the map. Iteration is done in ascending order according to the
- * keys.
- */
- const_iterator end() const { return _M_t.end(); }
-
/**
- * Returns a read/write reverse iterator that points to the last pair in
- * the map. Iteration is done in descending order according to the keys.
- */
- reverse_iterator rbegin() { return _M_t.rbegin(); }
-
- /**
- * Returns a read-only (constant) reverse iterator that points to the last
- * pair in the map. Iteration is done in descending order according to
- * the keys.
- */
- const_reverse_iterator rbegin() const { return _M_t.rbegin(); }
-
- /**
- * Returns a read/write reverse iterator that points to one before the
- * first pair in the map. Iteration is done in descending order according
- * to the keys.
- */
- reverse_iterator rend() { return _M_t.rend(); }
-
- /**
- * Returns a read-only (constant) reverse iterator that points to one
- * before the first pair in the map. Iteration is done in descending order
- * according to the keys.
- */
- const_reverse_iterator rend() const { return _M_t.rend(); }
-
- /** Returns true if the map is empty. (Thus begin() would equal end().) */
- bool empty() const { return _M_t.empty(); }
- /** Returns the size of the map. */
- size_type size() const { return _M_t.size(); }
- /** Returns the maximum size of the map. */
- size_type max_size() const { return _M_t.max_size(); }
-
- /**
- * @brief Subscript ( [] ) access to map data.
- * @param k The key for which data should be retrieved.
- *
- * Allows for easy lookup with the subscript ( [] ) operator. Returns the
- * data associated with the key specified in subscript. If the key does
- * not exist a pair with that key is created with a default value, which
- * is then returned.
- */
- _Tp& operator[](const key_type& __k) {
- iterator __i = lower_bound(__k);
- // __i->first is greater than or equivalent to __k.
- if (__i == end() || key_comp()(__k, (*__i).first))
- __i = insert(__i, value_type(__k, _Tp()));
- return (*__i).second;
- }
-
- void swap(map<_Key,_Tp,_Compare,_Alloc>& __x) { _M_t.swap(__x._M_t); }
-
- // insert/erase
- /**
- * @brief Attempts to insert a std::pair into the map.
- * @param x Pair to be inserted (see std::make_pair for easy creation of
- * pairs).
- * @return A pair of which the first element is an iterator that points
- * to the possibly inserted pair, a second element of type bool
- * to show if the pair was actually inserted.
+ * @brief A standard container made up of (key,value) pairs, which can be
+ * retrieved based on a key, in logarithmic time.
*
- * This function attempts to insert a (key, value) pair into the map. A
- * map relies on unique keys and thus a pair is only inserted if its first
- * element (the key) is not already present in the map.
- */
- pair<iterator,bool> insert(const value_type& __x)
- { return _M_t.insert_unique(__x); }
-
- /**
- * @brief Attempts to insert a std::pair into the map.
- * @param position An iterator that serves as a hint as to where the
- * pair should be inserted.
- * @param x Pair to be inserted (see std::make_pair for easy creation of
- * pairs).
- * @return An iterator that points to the inserted (key,value) pair.
+ * @ingroup Containers
+ * @ingroup Assoc_containers
*
- * This function is not concerned about whether the insertion took place
- * or not and thus does not return a boolean like the single-argument
- * insert() does. Note that the first parameter is only a hint and can
- * potentially improve the performance of the insertion process. A bad
- * hint would cause no gains in efficiency.
- */
- iterator insert(iterator position, const value_type& __x)
- { return _M_t.insert_unique(position, __x); }
-
- /**
- * @brief A template function that attemps to insert elements from
- * another range (possibly another map).
- * @param first Iterator pointing to the start of the range to be inserted.
- * @param last Iterator pointing to the end of the range.
- */
- template <class _InputIterator>
- void insert(_InputIterator __first, _InputIterator __last) {
- _M_t.insert_unique(__first, __last);
- }
-
- /**
- * @brief Erases an element from a map.
- * @param position An iterator pointing to the element to be erased.
+ * Meets the requirements of a <a href="tables.html#65">container</a>, a
+ * <a href="tables.html#66">reversible container</a>, and an
+ * <a href="tables.html#69">associative container</a> (using unique keys).
+ * For a @c map<Key,T> the key_type is Key, the mapped_type is T, and the
+ * value_type is std::pair<const Key,T>.
*
- * This function erases an element, pointed to by the given iterator, from
- * a map. Note that this function only erases the element, and that if
- * the element is itself a pointer, the pointed-to memory is not touched
- * in any way. Managing the pointer is the user's responsibilty.
- */
- void erase(iterator __position) { _M_t.erase(__position); }
-
- /**
- * @brief Erases an element according to the provided key.
- * @param x Key of element to be erased.
- * @return Doc me! (Number of elements that match key? Only makes sense
- * with multimap)
- *
- * This function erases an element, located by the given key, from a map.
- * Note that this function only erases the element, and that if
- * the element is itself a pointer, the pointed-to memory is not touched
- * in any way. Managing the pointer is the user's responsibilty.
- */
- size_type erase(const key_type& __x) { return _M_t.erase(__x); }
-
- /**
- * @brief Erases a [first,last) range of elements from a map.
- * @param first Iterator pointing to the start of the range to be erased.
- * @param last Iterator pointing to the end of the range to be erased.
- *
- * This function erases a sequence of elements from a map.
- * Note that this function only erases the element, and that if
- * the element is itself a pointer, the pointed-to memory is not touched
- * in any way. Managing the pointer is the user's responsibilty.
- */
- void erase(iterator __first, iterator __last)
- { _M_t.erase(__first, __last); }
-
- /** Erases all elements in a map. Note that this function only erases
- * the elements, and that if the elements themselves are pointers, the
- * pointed-to memory is not touched in any way. Managing the pointer is
- * the user's responsibilty.
- */
- void clear() { _M_t.clear(); }
-
- // map operations:
-
- /**
- * @brief Tries to locate an element in a map.
- * @param x Key of (key, value) pair to be located.
- * @return Iterator pointing to sought-after element, or end() if not
- * found.
- *
- * This function takes a key and tries to locate the element with which
- * the key matches. If successful the function returns an iterator
- * pointing to the sought after pair. If unsuccessful it returns the
- * one past the end ( end() ) iterator.
- */
- iterator find(const key_type& __x) { return _M_t.find(__x); }
-
- /**
- * @brief Tries to locate an element in a map.
- * @param x Key of (key, value) pair to be located.
- * @return Read-only (constant) iterator pointing to sought-after
- * element, or end() if not found.
- *
- * This function takes a key and tries to locate the element with which
- * the key matches. If successful the function returns a constant iterator
- * pointing to the sought after pair. If unsuccessful it returns the
- * one past the end ( end() ) iterator.
- */
- const_iterator find(const key_type& __x) const { return _M_t.find(__x); }
-
- /**
- * @brief Finds the number of elements with given key.
- * @param x Key of (key, value) pairs to be located.
- * @return Number of elements with specified key.
- *
- * This function only makes sense for multimaps.
- */
- size_type count(const key_type& __x) const {
- return _M_t.find(__x) == _M_t.end() ? 0 : 1;
- }
-
- /**
- * @brief Finds the beginning of a subsequence matching given key.
- * @param x Key of (key, value) pair to be located.
- * @return Iterator pointing to first element matching given key, or
- * end() if not found.
- *
- * This function is useful only with std::multimap. It returns the first
- * element of a subsequence of elements that matches the given key. If
- * unsuccessful it returns an iterator pointing to the first element that
- * has a greater value than given key or end() if no such element exists.
- */
- iterator lower_bound(const key_type& __x) {return _M_t.lower_bound(__x); }
-
- /**
- * @brief Finds the beginning of a subsequence matching given key.
- * @param x Key of (key, value) pair to be located.
- * @return Read-only (constant) iterator pointing to first element
- * matching given key, or end() if not found.
+ * Maps support bidirectional iterators.
*
- * This function is useful only with std::multimap. It returns the first
- * element of a subsequence of elements that matches the given key. If
- * unsuccessful the iterator will point to the next greatest element or,
- * if no such greater element exists, to end().
+ * @if maint
+ * The private tree data is declared exactly the same way for map and
+ * multimap; the distinction is made entirely in how the tree functions are
+ * called (*_unique versus *_equal, same as the standard).
+ * @endif
*/
- const_iterator lower_bound(const key_type& __x) const {
- return _M_t.lower_bound(__x);
- }
-
- /**
- * @brief Finds the end of a subsequence matching given key.
- * @param x Key of (key, value) pair to be located.
- * @return Iterator pointing to last element matching given key.
- *
- * This function only makes sense with multimaps.
- */
- iterator upper_bound(const key_type& __x) {return _M_t.upper_bound(__x); }
-
- /**
- * @brief Finds the end of a subsequence matching given key.
- * @param x Key of (key, value) pair to be located.
- * @return Read-only (constant) iterator pointing to last element matching
- * given key.
- *
- * This function only makes sense with multimaps.
- */
- const_iterator upper_bound(const key_type& __x) const {
- return _M_t.upper_bound(__x);
- }
-
+ template <typename _Key, typename _Tp, typename _Compare = less<_Key>,
+ typename _Alloc = allocator<pair<const _Key, _Tp> > >
+ class map
+ {
+ // concept requirements
+ __glibcpp_class_requires(_Tp, _SGIAssignableConcept)
+ __glibcpp_class_requires4(_Compare, bool, _Key, _Key, _BinaryFunctionConcept)
+
+ public:
+ typedef _Key key_type;
+ typedef _Tp mapped_type;
+ typedef pair<const _Key, _Tp> value_type;
+ typedef _Compare key_compare;
+
+ class value_compare
+ : public binary_function<value_type, value_type, bool>
+ {
+ friend class map<_Key,_Tp,_Compare,_Alloc>;
+ protected:
+ _Compare comp;
+ value_compare(_Compare __c) : comp(__c) {}
+ public:
+ bool operator()(const value_type& __x, const value_type& __y) const
+ { return comp(__x.first, __y.first); }
+ };
+
+ private:
+ /// @if maint This turns a red-black tree into a [multi]map. @endif
+ typedef _Rb_tree<key_type, value_type,
+ _Select1st<value_type>, key_compare, _Alloc> _Rep_type;
+ /// @if maint The actual tree structure. @endif
+ _Rep_type _M_t;
+
+ public:
+ // many of these are specified differently in ISO, but the following are
+ // "functionally equivalent"
+ typedef typename _Rep_type::allocator_type allocator_type;
+ typedef typename _Rep_type::reference reference;
+ typedef typename _Rep_type::const_reference const_reference;
+ typedef typename _Rep_type::iterator iterator;
+ typedef typename _Rep_type::const_iterator const_iterator;
+ typedef typename _Rep_type::size_type size_type;
+ typedef typename _Rep_type::difference_type difference_type;
+ typedef typename _Rep_type::pointer pointer;
+ typedef typename _Rep_type::const_pointer const_pointer;
+ typedef typename _Rep_type::reverse_iterator reverse_iterator;
+ typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
+
+
+ // [23.3.1.1] construct/copy/destroy
+ // (get_allocator() is normally listed in this section, but seems to have
+ // been accidentally omitted in the printed standard)
+ /**
+ * @brief Default constructor creates no elements.
+ */
+ map() : _M_t(_Compare(), allocator_type()) { }
+
+ // for some reason this was made a separate function
+ /**
+ * @brief Default constructor creates no elements.
+ */
+ explicit
+ map(const _Compare& __comp, const allocator_type& __a = allocator_type())
+ : _M_t(__comp, __a) { }
+
+ /**
+ * @brief Map copy constructor.
+ * @param x A %map of identical element and allocator types.
+ *
+ * The newly-created %map uses a copy of the allocation object used
+ * by @a x.
+ */
+ map(const map& __x)
+ : _M_t(__x._M_t) { }
+
+ /**
+ * @brief Builds a %map from a range.
+ * @param first An input iterator.
+ * @param last An input iterator.
+ *
+ * Create a %map consisting of copies of the elements from [first,last).
+ * This is linear in N if the range is already sorted, and NlogN
+ * otherwise (where N is distance(first,last)).
+ */
+ template <typename _InputIterator>
+ map(_InputIterator __first, _InputIterator __last)
+ : _M_t(_Compare(), allocator_type())
+ { _M_t.insert_unique(__first, __last); }
+
+ /**
+ * @brief Builds a %map from a range.
+ * @param first An input iterator.
+ * @param last An input iterator.
+ * @param comp A comparison functor.
+ * @param a An allocator object.
+ *
+ * Create a %map consisting of copies of the elements from [first,last).
+ * This is linear in N if the range is already sorted, and NlogN
+ * otherwise (where N is distance(first,last)).
+ */
+ template <typename _InputIterator>
+ map(_InputIterator __first, _InputIterator __last,
+ const _Compare& __comp, const allocator_type& __a = allocator_type())
+ : _M_t(__comp, __a)
+ { _M_t.insert_unique(__first, __last); }
+
+ // FIXME There is no dtor declared, but we should have something generated
+ // by Doxygen. I don't know what tags to add to this paragraph to make
+ // that happen:
+ /**
+ * The dtor only erases the elements, and note that if the elements
+ * themselves are pointers, the pointed-to memory is not touched in any
+ * way. Managing the pointer is the user's responsibilty.
+ */
+
+ /**
+ * @brief Map assignment operator.
+ * @param x A %map of identical element and allocator types.
+ *
+ * All the elements of @a x are copied, but unlike the copy constructor,
+ * the allocator object is not copied.
+ */
+ map&
+ operator=(const map& __x)
+ {
+ _M_t = __x._M_t;
+ return *this;
+ }
+
+ /// Get a copy of the memory allocation object.
+ allocator_type
+ get_allocator() const { return _M_t.get_allocator(); }
+
+ // iterators
+ /**
+ * Returns a read/write iterator that points to the first pair in the %map.
+ * Iteration is done in ascending order according to the keys.
+ */
+ iterator
+ begin() { return _M_t.begin(); }
+
+ /**
+ * Returns a read-only (constant) iterator that points to the first pair
+ * in the %map. Iteration is done in ascending order according to the
+ * keys.
+ */
+ const_iterator
+ begin() const { return _M_t.begin(); }
+
+ /**
+ * Returns a read/write iterator that points one past the last pair in the
+ * %map. Iteration is done in ascending order according to the keys.
+ */
+ iterator
+ end() { return _M_t.end(); }
+
+ /**
+ * Returns a read-only (constant) iterator that points one past the last
+ * pair in the %map. Iteration is done in ascending order according to the
+ * keys.
+ */
+ const_iterator
+ end() const { return _M_t.end(); }
+
+ /**
+ * Returns a read/write reverse iterator that points to the last pair in
+ * the %map. Iteration is done in descending order according to the keys.
+ */
+ reverse_iterator
+ rbegin() { return _M_t.rbegin(); }
+
+ /**
+ * Returns a read-only (constant) reverse iterator that points to the last
+ * pair in the %map. Iteration is done in descending order according to
+ * the keys.
+ */
+ const_reverse_iterator
+ rbegin() const { return _M_t.rbegin(); }
+
+ /**
+ * Returns a read/write reverse iterator that points to one before the
+ * first pair in the %map. Iteration is done in descending order according
+ * to the keys.
+ */
+ reverse_iterator
+ rend() { return _M_t.rend(); }
+
+ /**
+ * Returns a read-only (constant) reverse iterator that points to one
+ * before the first pair in the %map. Iteration is done in descending
+ * order according to the keys.
+ */
+ const_reverse_iterator
+ rend() const { return _M_t.rend(); }
+
+ // capacity
+ /** Returns true if the %map is empty. (Thus begin() would equal end().) */
+ bool
+ empty() const { return _M_t.empty(); }
+
+ /** Returns the size of the %map. */
+ size_type
+ size() const { return _M_t.size(); }
+
+ /** Returns the maximum size of the %map. */
+ size_type
+ max_size() const { return _M_t.max_size(); }
+
+ // [23.3.1.2] element access
+ /**
+ * @brief Subscript ( @c [] ) access to %map data.
+ * @param k The key for which data should be retrieved.
+ * @return A reference to the data of the (key,data) %pair.
+ *
+ * Allows for easy lookup with the subscript ( @c [] ) operator. Returns
+ * data associated with the key specified in subscript. If the key does
+ * not exist, a pair with that key is created using default values, which
+ * is then returned.
+ *
+ * Lookup requires logarithmic time.
+ */
+ mapped_type&
+ operator[](const key_type& __k)
+ {
+ // concept requirements
+ __glibcpp_function_requires(_DefaultConstructibleConcept<mapped_type>)
+
+ iterator __i = lower_bound(__k);
+ // __i->first is greater than or equivalent to __k.
+ if (__i == end() || key_comp()(__k, (*__i).first))
+ __i = insert(__i, value_type(__k, mapped_type()));
+ return (*__i).second;
+ }
+
+ // modifiers
+ /**
+ * @brief Attempts to insert a std::pair into the %map.
+ * @param x Pair to be inserted (see std::make_pair for easy creation of
+ * pairs).
+ * @return A pair, of which the first element is an iterator that points
+ * to the possibly inserted pair, and the second is a bool that
+ * is true if the pair was actually inserted.
+ *
+ * This function attempts to insert a (key, value) %pair into the %map.
+ * A %map relies on unique keys and thus a %pair is only inserted if its
+ * first element (the key) is not already present in the %map.
+ *
+ * Insertion requires logarithmic time.
+ */
+ pair<iterator,bool>
+ insert(const value_type& __x)
+ { return _M_t.insert_unique(__x); }
+
+ /**
+ * @brief Attempts to insert a std::pair into the %map.
+ * @param position An iterator that serves as a hint as to where the
+ * pair should be inserted.
+ * @param x Pair to be inserted (see std::make_pair for easy creation of
+ * pairs).
+ * @return An iterator that points to the element with key of @a x (may
+ * or may not be the %pair passed in).
+ *
+ * This function is not concerned about whether the insertion took place,
+ * and thus does not return a boolean like the single-argument
+ * insert() does. Note that the first parameter is only a hint and can
+ * potentially improve the performance of the insertion process. A bad
+ * hint would cause no gains in efficiency.
+ *
+ * See http://gcc.gnu.org/onlinedocs/libstdc++/23_containers/howto.html#4
+ * for more on "hinting".
+ *
+ * Insertion requires logarithmic time (if the hint is not taken).
+ */
+ iterator
+ insert(iterator position, const value_type& __x)
+ { return _M_t.insert_unique(position, __x); }
+
+ /**
+ * @brief A template function that attemps to insert a range of elements.
+ * @param first Iterator pointing to the start of the range to be
+ * inserted.
+ * @param last Iterator pointing to the end of the range.
+ *
+ * Complexity similar to that of the range constructor.
+ */
+ template <typename _InputIterator>
+ void
+ insert(_InputIterator __first, _InputIterator __last)
+ { _M_t.insert_unique(__first, __last); }
+
+ /**
+ * @brief Erases an element from a %map.
+ * @param position An iterator pointing to the element to be erased.
+ *
+ * This function erases an element, pointed to by the given iterator, from
+ * a %map. Note that this function only erases the element, and that if
+ * the element is itself a pointer, the pointed-to memory is not touched
+ * in any way. Managing the pointer is the user's responsibilty.
+ */
+ void
+ erase(iterator __position) { _M_t.erase(__position); }
+
+ /**
+ * @brief Erases elements according to the provided key.
+ * @param x Key of element to be erased.
+ * @return The number of elements erased.
+ *
+ * This function erases all the elements located by the given key from
+ * a %map.
+ * Note that this function only erases the element, and that if
+ * the element is itself a pointer, the pointed-to memory is not touched
+ * in any way. Managing the pointer is the user's responsibilty.
+ */
+ size_type
+ erase(const key_type& __x) { return _M_t.erase(__x); }
+
+ /**
+ * @brief Erases a [first,last) range of elements from a %map.
+ * @param first Iterator pointing to the start of the range to be erased.
+ * @param last Iterator pointing to the end of the range to be erased.
+ *
+ * This function erases a sequence of elements from a %map.
+ * Note that this function only erases the element, and that if
+ * the element is itself a pointer, the pointed-to memory is not touched
+ * in any way. Managing the pointer is the user's responsibilty.
+ */
+ void
+ erase(iterator __first, iterator __last) { _M_t.erase(__first, __last); }
+
+ /**
+ * @brief Swaps data with another %map.
+ * @param x A %map of the same element and allocator types.
+ *
+ * This exchanges the elements between two maps in constant time.
+ * (It is only swapping a pointer, an integer, and an instance of
+ * the @c Compare type (which itself is often stateless and empty), so it
+ * should be quite fast.)
+ * Note that the global std::swap() function is specialized such that
+ * std::swap(m1,m2) will feed to this function.
+ */
+ void
+ swap(map& __x) { _M_t.swap(__x._M_t); }
+
+ /**
+ * Erases all elements in a %map. Note that this function only erases
+ * the elements, and that if the elements themselves are pointers, the
+ * pointed-to memory is not touched in any way. Managing the pointer is
+ * the user's responsibilty.
+ */
+ void
+ clear() { _M_t.clear(); }
+
+ // observers
+ /**
+ * Returns the key comparison object out of which the %map was constructed.
+ */
+ key_compare
+ key_comp() const { return _M_t.key_comp(); }
+
+ /**
+ * Returns a value comparison object, built from the key comparison
+ * object out of which the %map was constructed.
+ */
+ value_compare
+ value_comp() const { return value_compare(_M_t.key_comp()); }
+
+ // [23.3.1.3] map operations
+ /**
+ * @brief Tries to locate an element in a %map.
+ * @param x Key of (key, value) %pair to be located.
+ * @return Iterator pointing to sought-after element, or end() if not
+ * found.
+ *
+ * This function takes a key and tries to locate the element with which
+ * the key matches. If successful the function returns an iterator
+ * pointing to the sought after %pair. If unsuccessful it returns the
+ * past-the-end ( @c end() ) iterator.
+ */
+ iterator
+ find(const key_type& __x) { return _M_t.find(__x); }
+
+ /**
+ * @brief Tries to locate an element in a %map.
+ * @param x Key of (key, value) %pair to be located.
+ * @return Read-only (constant) iterator pointing to sought-after
+ * element, or end() if not found.
+ *
+ * This function takes a key and tries to locate the element with which
+ * the key matches. If successful the function returns a constant iterator
+ * pointing to the sought after %pair. If unsuccessful it returns the
+ * past-the-end ( @c end() ) iterator.
+ */
+ const_iterator
+ find(const key_type& __x) const { return _M_t.find(__x); }
+
+ /**
+ * @brief Finds the number of elements with given key.
+ * @param x Key of (key, value) pairs to be located.
+ * @return Number of elements with specified key.
+ *
+ * This function only makes sense for multimaps; for map the result will
+ * either be 0 (not present) or 1 (present).
+ */
+ size_type
+ count(const key_type& __x) const
+ { return _M_t.find(__x) == _M_t.end() ? 0 : 1; }
+
+ /**
+ * @brief Finds the beginning of a subsequence matching given key.
+ * @param x Key of (key, value) pair to be located.
+ * @return Iterator pointing to first element matching given key, or
+ * end() if not found.
+ *
+ * This function is useful only with multimaps. It returns the first
+ * element of a subsequence of elements that matches the given key. If
+ * unsuccessful it returns an iterator pointing to the first element that
+ * has a greater value than given key or end() if no such element exists.
+ */
+ iterator
+ lower_bound(const key_type& __x) { return _M_t.lower_bound(__x); }
+
+ /**
+ * @brief Finds the beginning of a subsequence matching given key.
+ * @param x Key of (key, value) pair to be located.
+ * @return Read-only (constant) iterator pointing to first element
+ * matching given key, or end() if not found.
+ *
+ * This function is useful only with multimaps. It returns the first
+ * element of a subsequence of elements that matches the given key. If
+ * unsuccessful the iterator will point to the next greatest element or,
+ * if no such greater element exists, to end().
+ */
+ const_iterator
+ lower_bound(const key_type& __x) const { return _M_t.lower_bound(__x); }
+
+ /**
+ * @brief Finds the end of a subsequence matching given key.
+ * @param x Key of (key, value) pair to be located.
+ * @return Iterator pointing to last element matching given key.
+ *
+ * This function only makes sense with multimaps.
+ */
+ iterator
+ upper_bound(const key_type& __x) { return _M_t.upper_bound(__x); }
+
+ /**
+ * @brief Finds the end of a subsequence matching given key.
+ * @param x Key of (key, value) pair to be located.
+ * @return Read-only (constant) iterator pointing to last element matching
+ * given key.
+ *
+ * This function only makes sense with multimaps.
+ */
+ const_iterator
+ upper_bound(const key_type& __x) const
+ { return _M_t.upper_bound(__x); }
+
+ /**
+ * @brief Finds a subsequence matching given key.
+ * @param x Key of (key, value) pairs to be located.
+ * @return Pair of iterators that possibly points to the subsequence
+ * matching given key.
+ *
+ * This function returns a pair of which the first
+ * element possibly points to the first element matching the given key
+ * and the second element possibly points to the last element matching the
+ * given key. If unsuccessful the first element of the returned pair will
+ * contain an iterator pointing to the next greatest element or, if no such
+ * greater element exists, to end().
+ *
+ * This function only makes sense for multimaps.
+ */
+ pair<iterator,iterator>
+ equal_range(const key_type& __x)
+ { return _M_t.equal_range(__x); }
+
+ /**
+ * @brief Finds a subsequence matching given key.
+ * @param x Key of (key, value) pairs to be located.
+ * @return Pair of read-only (constant) iterators that possibly points to
+ * the subsequence matching given key.
+ *
+ * This function returns a pair of which the first
+ * element possibly points to the first element matching the given key
+ * and the second element possibly points to the last element matching the
+ * given key. If unsuccessful the first element of the returned pair will
+ * contain an iterator pointing to the next greatest element or, if no such
+ * a greater element exists, to end().
+ *
+ * This function only makes sense for multimaps.
+ */
+ pair<const_iterator,const_iterator>
+ equal_range(const key_type& __x) const
+ { return _M_t.equal_range(__x); }
+
+ template <typename _K1, typename _T1, typename _C1, typename _A1>
+ friend bool operator== (const map<_K1,_T1,_C1,_A1>&,
+ const map<_K1,_T1,_C1,_A1>&);
+ template <typename _K1, typename _T1, typename _C1, typename _A1>
+ friend bool operator< (const map<_K1,_T1,_C1,_A1>&,
+ const map<_K1,_T1,_C1,_A1>&);
+ };
+
+
/**
- * @brief Finds a subsequence matching given key.
- * @param x Key of (key, value) pairs to be located.
- * @return Pair of iterators that possibly points to the subsequence
- * matching given key.
+ * @brief Map equality comparison.
+ * @param x A %map.
+ * @param y A %map of the same type as @a x.
+ * @return True iff the size and elements of the maps are equal.
*
- * This function improves on lower_bound() and upper_bound() by giving a more
- * elegant and efficient solution. It returns a pair of which the first
- * element possibly points to the first element matching the given key
- * and the second element possibly points to the last element matching the
- * given key. If unsuccessful the first element of the returned pair will
- * contain an iterator pointing to the next greatest element or, if no such
- * greater element exists, to end().
- *
- * This function only makes sense for multimaps.
+ * This is an equivalence relation. It is linear in the size of the
+ * maps. Maps are considered equivalent if their sizes are equal,
+ * and if corresponding elements compare equal.
*/
- pair<iterator,iterator> equal_range(const key_type& __x) {
- return _M_t.equal_range(__x);
- }
-
+ template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+ inline bool
+ operator==(const map<_Key,_Tp,_Compare,_Alloc>& __x,
+ const map<_Key,_Tp,_Compare,_Alloc>& __y)
+ { return __x._M_t == __y._M_t; }
+
/**
- * @brief Finds a subsequence matching given key.
- * @param x Key of (key, value) pairs to be located.
- * @return Pair of read-only (constant) iterators that possibly points to
- * the subsequence matching given key.
+ * @brief Map ordering relation.
+ * @param x A %map.
+ * @param y A %map of the same type as @a x.
+ * @return True iff @a x is lexographically less than @a y.
*
- * This function improves on lower_bound() and upper_bound() by giving a more
- * elegant and efficient solution. It returns a pair of which the first
- * element possibly points to the first element matching the given key
- * and the second element possibly points to the last element matching the
- * given key. If unsuccessful the first element of the returned pair will
- * contain an iterator pointing to the next greatest element or, if no such
- * a greater element exists, to end().
+ * This is a total ordering relation. It is linear in the size of the
+ * maps. The elements must be comparable with @c <.
*
- * This function only makes sense for multimaps.
+ * See std::lexographical_compare() for how the determination is made.
*/
- pair<const_iterator,const_iterator> equal_range(const key_type& __x) const {
- return _M_t.equal_range(__x);
- }
-
- template <class _K1, class _T1, class _C1, class _A1>
- friend bool operator== (const map<_K1, _T1, _C1, _A1>&,
- const map<_K1, _T1, _C1, _A1>&);
- template <class _K1, class _T1, class _C1, class _A1>
- friend bool operator< (const map<_K1, _T1, _C1, _A1>&,
- const map<_K1, _T1, _C1, _A1>&);
-};
-
-template <class _Key, class _Tp, class _Compare, class _Alloc>
-inline bool operator==(const map<_Key,_Tp,_Compare,_Alloc>& __x,
- const map<_Key,_Tp,_Compare,_Alloc>& __y) {
- return __x._M_t == __y._M_t;
-}
-
-template <class _Key, class _Tp, class _Compare, class _Alloc>
-inline bool operator<(const map<_Key,_Tp,_Compare,_Alloc>& __x,
- const map<_Key,_Tp,_Compare,_Alloc>& __y) {
- return __x._M_t < __y._M_t;
-}
-
-template <class _Key, class _Tp, class _Compare, class _Alloc>
-inline bool operator!=(const map<_Key,_Tp,_Compare,_Alloc>& __x,
- const map<_Key,_Tp,_Compare,_Alloc>& __y) {
- return !(__x == __y);
-}
-
-template <class _Key, class _Tp, class _Compare, class _Alloc>
-inline bool operator>(const map<_Key,_Tp,_Compare,_Alloc>& __x,
- const map<_Key,_Tp,_Compare,_Alloc>& __y) {
- return __y < __x;
-}
-
-template <class _Key, class _Tp, class _Compare, class _Alloc>
-inline bool operator<=(const map<_Key,_Tp,_Compare,_Alloc>& __x,
- const map<_Key,_Tp,_Compare,_Alloc>& __y) {
- return !(__y < __x);
-}
-
-template <class _Key, class _Tp, class _Compare, class _Alloc>
-inline bool operator>=(const map<_Key,_Tp,_Compare,_Alloc>& __x,
- const map<_Key,_Tp,_Compare,_Alloc>& __y) {
- return !(__x < __y);
-}
-
-template <class _Key, class _Tp, class _Compare, class _Alloc>
-inline void swap(map<_Key,_Tp,_Compare,_Alloc>& __x,
- map<_Key,_Tp,_Compare,_Alloc>& __y) {
- __x.swap(__y);
-}
-
+ template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+ inline bool
+ operator<(const map<_Key,_Tp,_Compare,_Alloc>& __x,
+ const map<_Key,_Tp,_Compare,_Alloc>& __y)
+ { return __x._M_t < __y._M_t; }
+
+ /// Based on operator==
+ template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+ inline bool
+ operator!=(const map<_Key,_Tp,_Compare,_Alloc>& __x,
+ const map<_Key,_Tp,_Compare,_Alloc>& __y)
+ { return !(__x == __y); }
+
+ /// Based on operator<
+ template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+ inline bool
+ operator>(const map<_Key,_Tp,_Compare,_Alloc>& __x,
+ const map<_Key,_Tp,_Compare,_Alloc>& __y)
+ { return __y < __x; }
+
+ /// Based on operator<
+ template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+ inline bool
+ operator<=(const map<_Key,_Tp,_Compare,_Alloc>& __x,
+ const map<_Key,_Tp,_Compare,_Alloc>& __y)
+ { return !(__y < __x); }
+
+ /// Based on operator<
+ template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+ inline bool
+ operator>=(const map<_Key,_Tp,_Compare,_Alloc>& __x,
+ const map<_Key,_Tp,_Compare,_Alloc>& __y)
+ { return !(__x < __y); }
+
+ /// See std::map::swap().
+ template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+ inline void
+ swap(map<_Key,_Tp,_Compare,_Alloc>& __x, map<_Key,_Tp,_Compare,_Alloc>& __y)
+ { __x.swap(__y); }
} // namespace std
-#endif /* _CPP_BITS_STL_MAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
+#endif /* __GLIBCPP_INTERNAL_MAP_H */
diff --git a/contrib/libstdc++/include/bits/stl_multimap.h b/contrib/libstdc++/include/bits/stl_multimap.h
index 5947d75..0fa79a8 100644
--- a/contrib/libstdc++/include/bits/stl_multimap.h
+++ b/contrib/libstdc++/include/bits/stl_multimap.h
@@ -1,6 +1,6 @@
// Multimap implementation -*- C++ -*-
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -65,427 +65,572 @@
namespace std
{
-// Forward declaration of operators < and ==, needed for friend declaration.
-template <class _Key, class _Tp,
- class _Compare = less<_Key>,
- class _Alloc = allocator<pair<const _Key, _Tp> > >
-class multimap;
-
-template <class _Key, class _Tp, class _Compare, class _Alloc>
-inline bool operator==(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
- const multimap<_Key,_Tp,_Compare,_Alloc>& __y);
-
-template <class _Key, class _Tp, class _Compare, class _Alloc>
-inline bool operator<(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
- const multimap<_Key,_Tp,_Compare,_Alloc>& __y);
-
-/**
- * @brief A standard container made up of pairs (see std::pair in <utility>)
- * which can be retrieved based on a key.
- *
- * This is an associative container. Values contained within it can be
- * quickly retrieved through a key element. In contrast with a map a
- * multimap can have multiple duplicate keys.
-*/
-template <class _Key, class _Tp, class _Compare, class _Alloc>
-class multimap
-{
- // concept requirements
- __glibcpp_class_requires(_Tp, _SGIAssignableConcept)
- __glibcpp_class_requires4(_Compare, bool, _Key, _Key, _BinaryFunctionConcept);
-
-public:
-
-// typedefs:
-
- typedef _Key key_type;
- typedef _Tp data_type;
- typedef _Tp mapped_type;
- typedef pair<const _Key, _Tp> value_type;
- typedef _Compare key_compare;
-
- class value_compare : public binary_function<value_type, value_type, bool> {
- friend class multimap<_Key,_Tp,_Compare,_Alloc>;
- protected:
- _Compare comp;
- value_compare(_Compare __c) : comp(__c) {}
- public:
- bool operator()(const value_type& __x, const value_type& __y) const {
- return comp(__x.first, __y.first);
- }
- };
-
-private:
- typedef _Rb_tree<key_type, value_type,
- _Select1st<value_type>, key_compare, _Alloc> _Rep_type;
- _Rep_type _M_t; // red-black tree representing multimap
-public:
- typedef typename _Rep_type::pointer pointer;
- typedef typename _Rep_type::const_pointer const_pointer;
- typedef typename _Rep_type::reference reference;
- typedef typename _Rep_type::const_reference const_reference;
- typedef typename _Rep_type::iterator iterator;
- typedef typename _Rep_type::const_iterator const_iterator;
- typedef typename _Rep_type::reverse_iterator reverse_iterator;
- typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
- typedef typename _Rep_type::size_type size_type;
- typedef typename _Rep_type::difference_type difference_type;
- typedef typename _Rep_type::allocator_type allocator_type;
-
-// allocation/deallocation
-
- multimap() : _M_t(_Compare(), allocator_type()) { }
- explicit multimap(const _Compare& __comp,
- const allocator_type& __a = allocator_type())
- : _M_t(__comp, __a) { }
-
- template <class _InputIterator>
- multimap(_InputIterator __first, _InputIterator __last)
- : _M_t(_Compare(), allocator_type())
- { _M_t.insert_equal(__first, __last); }
-
- template <class _InputIterator>
- multimap(_InputIterator __first, _InputIterator __last,
- const _Compare& __comp,
- const allocator_type& __a = allocator_type())
- : _M_t(__comp, __a) { _M_t.insert_equal(__first, __last); }
- multimap(const multimap<_Key,_Tp,_Compare,_Alloc>& __x) : _M_t(__x._M_t) { }
-
- multimap<_Key,_Tp,_Compare,_Alloc>&
- operator=(const multimap<_Key,_Tp,_Compare,_Alloc>& __x) {
- _M_t = __x._M_t;
- return *this;
- }
-
- // accessors:
-
- key_compare key_comp() const { return _M_t.key_comp(); }
- value_compare value_comp() const { return value_compare(_M_t.key_comp()); }
- allocator_type get_allocator() const { return _M_t.get_allocator(); }
-
+ // Forward declaration of operators < and ==, needed for friend declaration.
+
+ template <typename _Key, typename _Tp,
+ typename _Compare = less<_Key>,
+ typename _Alloc = allocator<pair<const _Key, _Tp> > >
+ class multimap;
+
+ template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+ inline bool operator==(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
+ const multimap<_Key,_Tp,_Compare,_Alloc>& __y);
+
+ template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+ inline bool operator<(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
+ const multimap<_Key,_Tp,_Compare,_Alloc>& __y);
+
/**
- * Returns a read/write iterator that points to the first pair in the
- * multimap. Iteration is done in ascending order according to the keys.
- */
- iterator begin() { return _M_t.begin(); }
-
- /**
- * Returns a read-only (constant) iterator that points to the first pair
- * in the multimap. Iteration is done in ascending order according to the
- * keys.
- */
- const_iterator begin() const { return _M_t.begin(); }
-
- /**
- * Returns a read/write iterator that points one past the last pair in the
- * multimap. Iteration is done in ascending order according to the keys.
- */
- iterator end() { return _M_t.end(); }
-
- /**
- * Returns a read-only (constant) iterator that points one past the last
- * pair in the multimap. Iteration is done in ascending order according
- * to the keys.
- */
- const_iterator end() const { return _M_t.end(); }
-
- /**
- * Returns a read/write reverse iterator that points to the last pair in
- * the multimap. Iteration is done in descending order according to the
- * keys.
- */
- reverse_iterator rbegin() { return _M_t.rbegin(); }
-
- /**
- * Returns a read-only (constant) reverse iterator that points to the last
- * pair in the multimap. Iteration is done in descending order according
- * to the keys.
- */
- const_reverse_iterator rbegin() const { return _M_t.rbegin(); }
-
- /**
- * Returns a read/write reverse iterator that points to one before the
- * first pair in the multimap. Iteration is done in descending order
- * according to the keys.
- */
- reverse_iterator rend() { return _M_t.rend(); }
-
- /**
- * Returns a read-only (constant) reverse iterator that points to one
- * before the first pair in the multimap. Iteration is done in descending
- * order according to the keys.
- */
- const_reverse_iterator rend() const { return _M_t.rend(); }
-
- /** Returns true if the map is empty. (Thus begin() would equal end().) */
- bool empty() const { return _M_t.empty(); }
-
- /** Returns the size of the map. */
- size_type size() const { return _M_t.size(); }
-
- /** Returns the maximum size of the map. */
- size_type max_size() const { return _M_t.max_size(); }
-
- void swap(multimap<_Key,_Tp,_Compare,_Alloc>& __x) { _M_t.swap(__x._M_t); }
-
- // insert/erase
- /**
- * @brief Inserts a std::pair into the multimap.
- * @param x Pair to be inserted (see std::make_pair for easy creation of
- * pairs).
- * @return An iterator that points to the inserted (key,value) pair.
+ * @brief A standard container made up of (key,value) pairs, which can be
+ * retrieved based on a key, in logarithmic time.
*
- * This function inserts a (key, value) pair into the multimap. Contrary
- * to a std::map the multimap does not rely on unique keys and thus a
- * multiple pairs with the same key can be inserted.
- */
- iterator insert(const value_type& __x) { return _M_t.insert_equal(__x); }
-
- /**
- * @brief Inserts a std::pair into the multimap.
- * @param position An iterator that serves as a hint as to where the
- * pair should be inserted.
- * @param x Pair to be inserted (see std::make_pair for easy creation of
- * pairs).
- * @return An iterator that points to the inserted (key,value) pair.
+ * @ingroup Containers
+ * @ingroup Assoc_containers
*
- * This function inserts a (key, value) pair into the multimap. Contrary
- * to a std::map the multimap does not rely on unique keys and thus a
- * multiple pairs with the same key can be inserted.
- * Note that the first parameter is only a hint and can potentially
- * improve the performance of the insertion process. A bad hint would
- * cause no gains in efficiency.
- */
- iterator insert(iterator __position, const value_type& __x) {
- return _M_t.insert_equal(__position, __x);
- }
-
- /**
- * @brief A template function that attemps to insert elements from
- * another range (possibly another multimap or standard container).
- * @param first Iterator pointing to the start of the range to be
- * inserted.
- * @param last Iterator pointing to the end of the range to be inserted.
- */
- template <class _InputIterator>
- void insert(_InputIterator __first, _InputIterator __last) {
- _M_t.insert_equal(__first, __last);
- }
-
- /**
- * @brief Erases an element from a multimap.
- * @param position An iterator pointing to the element to be erased.
- *
- * This function erases an element, pointed to by the given iterator, from
- * a mutlimap. Note that this function only erases the element, and that
- * if the element is itself a pointer, the pointed-to memory is not
- * touched in any way. Managing the pointer is the user's responsibilty.
- */
- void erase(iterator __position) { _M_t.erase(__position); }
-
- /**
- * @brief Erases an element according to the provided key.
- * @param x Key of element to be erased.
- * @return Doc me! (Number of elements erased?)
+ * Meets the requirements of a <a href="tables.html#65">container</a>, a
+ * <a href="tables.html#66">reversible container</a>, and an
+ * <a href="tables.html#69">associative container</a> (using equivalent
+ * keys). For a @c multimap<Key,T> the key_type is Key, the mapped_type
+ * is T, and the value_type is std::pair<const Key,T>.
*
- * This function erases all elements, located by the given key, from a
- * multimap.
- * Note that this function only erases the element, and that if
- * the element is itself a pointer, the pointed-to memory is not touched
- * in any way. Managing the pointer is the user's responsibilty.
- */
- size_type erase(const key_type& __x) { return _M_t.erase(__x); }
-
- /**
- * @brief Erases a [first,last) range of elements from a multimap.
- * @param first Iterator pointing to the start of the range to be erased.
- * @param last Iterator pointing to the end of the range to be erased.
- *
- * This function erases a sequence of elements from a multimap.
- * Note that this function only erases the elements, and that if
- * the elements themselves are pointers, the pointed-to memory is not
- * touched in any way. Managing the pointer is the user's responsibilty.
- */
- void erase(iterator __first, iterator __last)
- { _M_t.erase(__first, __last); }
-
- /** Erases all elements in a multimap. Note that this function only erases
- * the elements, and that if the elements themselves are pointers, the
- * pointed-to memory is not touched in any way. Managing the pointer is
- * the user's responsibilty.
- */
- void clear() { _M_t.clear(); }
-
- // multimap operations:
-
- /**
- * @brief Tries to locate an element in a multimap.
- * @param x Key of (key, value) pair to be located.
- * @return Iterator pointing to sought-after (first matching?) element,
- * or end() if not found.
- *
- * This function takes a key and tries to locate the element with which
- * the key matches. If successful the function returns an iterator
- * pointing to the sought after pair. If unsuccessful it returns the
- * one past the end ( end() ) iterator.
- */
- iterator find(const key_type& __x) { return _M_t.find(__x); }
-
- /**
- * @brief Tries to locate an element in a multimap.
- * @param x Key of (key, value) pair to be located.
- * @return Read-only (constant) iterator pointing to sought-after (first
- * matching?) element, or end() if not found.
- *
- * This function takes a key and tries to locate the element with which
- * the key matches. If successful the function returns a constant iterator
- * pointing to the sought after pair. If unsuccessful it returns the
- * one past the end ( end() ) iterator.
- */
- const_iterator find(const key_type& __x) const { return _M_t.find(__x); }
-
- /**
- * @brief Finds the number of elements with given key.
- * @param x Key of (key, value) pairs to be located.
- * @return Number of elements with specified key.
- */
- size_type count(const key_type& __x) const { return _M_t.count(__x); }
-
- /**
- * @brief Finds the beginning of a subsequence matching given key.
- * @param x Key of (key, value) pair to be located.
- * @return Iterator pointing to first element matching given key, or
- * end() if not found.
+ * Multimaps support bidirectional iterators.
*
- * This function returns the first element of a subsequence of elements
- * that matches the given key. If unsuccessful it returns an iterator
- * pointing to the first element that has a greater value than given key
- * or end() if no such element exists.
+ * @if maint
+ * The private tree data is declared exactly the same way for map and
+ * multimap; the distinction is made entirely in how the tree functions are
+ * called (*_unique versus *_equal, same as the standard).
+ * @endif
*/
- iterator lower_bound(const key_type& __x) {return _M_t.lower_bound(__x); }
-
+ template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+ class multimap
+ {
+ // concept requirements
+ __glibcpp_class_requires(_Tp, _SGIAssignableConcept)
+ __glibcpp_class_requires4(_Compare, bool, _Key, _Key, _BinaryFunctionConcept)
+
+ public:
+ typedef _Key key_type;
+ typedef _Tp mapped_type;
+ typedef pair<const _Key, _Tp> value_type;
+ typedef _Compare key_compare;
+
+ class value_compare
+ : public binary_function<value_type, value_type, bool>
+ {
+ friend class multimap<_Key,_Tp,_Compare,_Alloc>;
+ protected:
+ _Compare comp;
+ value_compare(_Compare __c) : comp(__c) {}
+ public:
+ bool operator()(const value_type& __x, const value_type& __y) const
+ { return comp(__x.first, __y.first); }
+ };
+
+ private:
+ /// @if maint This turns a red-black tree into a [multi]map. @endif
+ typedef _Rb_tree<key_type, value_type,
+ _Select1st<value_type>, key_compare, _Alloc> _Rep_type;
+ /// @if maint The actual tree structure. @endif
+ _Rep_type _M_t;
+
+ public:
+ // many of these are specified differently in ISO, but the following are
+ // "functionally equivalent"
+ typedef typename _Rep_type::allocator_type allocator_type;
+ typedef typename _Rep_type::reference reference;
+ typedef typename _Rep_type::const_reference const_reference;
+ typedef typename _Rep_type::iterator iterator;
+ typedef typename _Rep_type::const_iterator const_iterator;
+ typedef typename _Rep_type::size_type size_type;
+ typedef typename _Rep_type::difference_type difference_type;
+ typedef typename _Rep_type::pointer pointer;
+ typedef typename _Rep_type::const_pointer const_pointer;
+ typedef typename _Rep_type::reverse_iterator reverse_iterator;
+ typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
+
+
+ // [23.3.2] construct/copy/destroy
+ // (get_allocator() is also listed in this section)
+ /**
+ * @brief Default constructor creates no elements.
+ */
+ multimap() : _M_t(_Compare(), allocator_type()) { }
+
+ // for some reason this was made a separate function
+ /**
+ * @brief Default constructor creates no elements.
+ */
+ explicit
+ multimap(const _Compare& __comp, const allocator_type& __a = allocator_type())
+ : _M_t(__comp, __a) { }
+
+ /**
+ * @brief %Multimap copy constructor.
+ * @param x A %multimap of identical element and allocator types.
+ *
+ * The newly-created %multimap uses a copy of the allocation object used
+ * by @a x.
+ */
+ multimap(const multimap& __x)
+ : _M_t(__x._M_t) { }
+
+ /**
+ * @brief Builds a %multimap from a range.
+ * @param first An input iterator.
+ * @param last An input iterator.
+ *
+ * Create a %multimap consisting of copies of the elements from
+ * [first,last). This is linear in N if the range is already sorted,
+ * and NlogN otherwise (where N is distance(first,last)).
+ */
+ template <typename _InputIterator>
+ multimap(_InputIterator __first, _InputIterator __last)
+ : _M_t(_Compare(), allocator_type())
+ { _M_t.insert_equal(__first, __last); }
+
+ /**
+ * @brief Builds a %multimap from a range.
+ * @param first An input iterator.
+ * @param last An input iterator.
+ * @param comp A comparison functor.
+ * @param a An allocator object.
+ *
+ * Create a %multimap consisting of copies of the elements from
+ * [first,last). This is linear in N if the range is already sorted,
+ * and NlogN otherwise (where N is distance(first,last)).
+ */
+ template <typename _InputIterator>
+ multimap(_InputIterator __first, _InputIterator __last,
+ const _Compare& __comp,
+ const allocator_type& __a = allocator_type())
+ : _M_t(__comp, __a)
+ { _M_t.insert_equal(__first, __last); }
+
+ // FIXME There is no dtor declared, but we should have something generated
+ // by Doxygen. I don't know what tags to add to this paragraph to make
+ // that happen:
+ /**
+ * The dtor only erases the elements, and note that if the elements
+ * themselves are pointers, the pointed-to memory is not touched in any
+ * way. Managing the pointer is the user's responsibilty.
+ */
+
+ /**
+ * @brief %Multimap assignment operator.
+ * @param x A %multimap of identical element and allocator types.
+ *
+ * All the elements of @a x are copied, but unlike the copy constructor,
+ * the allocator object is not copied.
+ */
+ multimap&
+ operator=(const multimap& __x)
+ {
+ _M_t = __x._M_t;
+ return *this;
+ }
+
+ /// Get a copy of the memory allocation object.
+ allocator_type
+ get_allocator() const { return _M_t.get_allocator(); }
+
+ // iterators
+ /**
+ * Returns a read/write iterator that points to the first pair in the
+ * %multimap. Iteration is done in ascending order according to the keys.
+ */
+ iterator
+ begin() { return _M_t.begin(); }
+
+ /**
+ * Returns a read-only (constant) iterator that points to the first pair
+ * in the %multimap. Iteration is done in ascending order according to the
+ * keys.
+ */
+ const_iterator
+ begin() const { return _M_t.begin(); }
+
+ /**
+ * Returns a read/write iterator that points one past the last pair in the
+ * %multimap. Iteration is done in ascending order according to the keys.
+ */
+ iterator
+ end() { return _M_t.end(); }
+
+ /**
+ * Returns a read-only (constant) iterator that points one past the last
+ * pair in the %multimap. Iteration is done in ascending order according
+ * to the keys.
+ */
+ const_iterator
+ end() const { return _M_t.end(); }
+
+ /**
+ * Returns a read/write reverse iterator that points to the last pair in
+ * the %multimap. Iteration is done in descending order according to the
+ * keys.
+ */
+ reverse_iterator
+ rbegin() { return _M_t.rbegin(); }
+
+ /**
+ * Returns a read-only (constant) reverse iterator that points to the last
+ * pair in the %multimap. Iteration is done in descending order according
+ * to the keys.
+ */
+ const_reverse_iterator
+ rbegin() const { return _M_t.rbegin(); }
+
+ /**
+ * Returns a read/write reverse iterator that points to one before the
+ * first pair in the %multimap. Iteration is done in descending order
+ * according to the keys.
+ */
+ reverse_iterator
+ rend() { return _M_t.rend(); }
+
+ /**
+ * Returns a read-only (constant) reverse iterator that points to one
+ * before the first pair in the %multimap. Iteration is done in descending
+ * order according to the keys.
+ */
+ const_reverse_iterator
+ rend() const { return _M_t.rend(); }
+
+ // capacity
+ /** Returns true if the %multimap is empty. */
+ bool
+ empty() const { return _M_t.empty(); }
+
+ /** Returns the size of the %multimap. */
+ size_type
+ size() const { return _M_t.size(); }
+
+ /** Returns the maximum size of the %multimap. */
+ size_type
+ max_size() const { return _M_t.max_size(); }
+
+ // modifiers
+ /**
+ * @brief Inserts a std::pair into the %multimap.
+ * @param x Pair to be inserted (see std::make_pair for easy creation of
+ * pairs).
+ * @return An iterator that points to the inserted (key,value) pair.
+ *
+ * This function inserts a (key, value) pair into the %multimap. Contrary
+ * to a std::map the %multimap does not rely on unique keys and thus
+ * multiple pairs with the same key can be inserted.
+ *
+ * Insertion requires logarithmic time.
+ */
+ iterator
+ insert(const value_type& __x) { return _M_t.insert_equal(__x); }
+
+ /**
+ * @brief Inserts a std::pair into the %multimap.
+ * @param position An iterator that serves as a hint as to where the
+ * pair should be inserted.
+ * @param x Pair to be inserted (see std::make_pair for easy creation of
+ * pairs).
+ * @return An iterator that points to the inserted (key,value) pair.
+ *
+ * This function inserts a (key, value) pair into the %multimap. Contrary
+ * to a std::map the %multimap does not rely on unique keys and thus
+ * multiple pairs with the same key can be inserted.
+ * Note that the first parameter is only a hint and can potentially
+ * improve the performance of the insertion process. A bad hint would
+ * cause no gains in efficiency.
+ *
+ * See http://gcc.gnu.org/onlinedocs/libstdc++/23_containers/howto.html#4
+ * for more on "hinting".
+ *
+ * Insertion requires logarithmic time (if the hint is not taken).
+ */
+ iterator
+ insert(iterator __position, const value_type& __x)
+ { return _M_t.insert_equal(__position, __x); }
+
+ /**
+ * @brief A template function that attemps to insert a range of elements.
+ * @param first Iterator pointing to the start of the range to be
+ * inserted.
+ * @param last Iterator pointing to the end of the range.
+ *
+ * Complexity similar to that of the range constructor.
+ */
+ template <typename _InputIterator>
+ void
+ insert(_InputIterator __first, _InputIterator __last)
+ { _M_t.insert_equal(__first, __last); }
+
+ /**
+ * @brief Erases an element from a %multimap.
+ * @param position An iterator pointing to the element to be erased.
+ *
+ * This function erases an element, pointed to by the given iterator, from
+ * a %multimap. Note that this function only erases the element, and that
+ * if the element is itself a pointer, the pointed-to memory is not
+ * touched in any way. Managing the pointer is the user's responsibilty.
+ */
+ void
+ erase(iterator __position) { _M_t.erase(__position); }
+
+ /**
+ * @brief Erases elements according to the provided key.
+ * @param x Key of element to be erased.
+ * @return The number of elements erased.
+ *
+ * This function erases all elements located by the given key from a
+ * %multimap.
+ * Note that this function only erases the element, and that if
+ * the element is itself a pointer, the pointed-to memory is not touched
+ * in any way. Managing the pointer is the user's responsibilty.
+ */
+ size_type
+ erase(const key_type& __x) { return _M_t.erase(__x); }
+
+ /**
+ * @brief Erases a [first,last) range of elements from a %multimap.
+ * @param first Iterator pointing to the start of the range to be erased.
+ * @param last Iterator pointing to the end of the range to be erased.
+ *
+ * This function erases a sequence of elements from a %multimap.
+ * Note that this function only erases the elements, and that if
+ * the elements themselves are pointers, the pointed-to memory is not
+ * touched in any way. Managing the pointer is the user's responsibilty.
+ */
+ void
+ erase(iterator __first, iterator __last) { _M_t.erase(__first, __last); }
+
+ /**
+ * @brief Swaps data with another %multimap.
+ * @param x A %multimap of the same element and allocator types.
+ *
+ * This exchanges the elements between two multimaps in constant time.
+ * (It is only swapping a pointer, an integer, and an instance of
+ * the @c Compare type (which itself is often stateless and empty), so it
+ * should be quite fast.)
+ * Note that the global std::swap() function is specialized such that
+ * std::swap(m1,m2) will feed to this function.
+ */
+ void
+ swap(multimap& __x) { _M_t.swap(__x._M_t); }
+
+ /**
+ * Erases all elements in a %multimap. Note that this function only erases
+ * the elements, and that if the elements themselves are pointers, the
+ * pointed-to memory is not touched in any way. Managing the pointer is
+ * the user's responsibilty.
+ */
+ void
+ clear() { _M_t.clear(); }
+
+ // observers
+ /**
+ * Returns the key comparison object out of which the %multimap
+ * was constructed.
+ */
+ key_compare
+ key_comp() const { return _M_t.key_comp(); }
+
+ /**
+ * Returns a value comparison object, built from the key comparison
+ * object out of which the %multimap was constructed.
+ */
+ value_compare
+ value_comp() const { return value_compare(_M_t.key_comp()); }
+
+ // multimap operations
+ /**
+ * @brief Tries to locate an element in a %multimap.
+ * @param x Key of (key, value) pair to be located.
+ * @return Iterator pointing to sought-after element,
+ * or end() if not found.
+ *
+ * This function takes a key and tries to locate the element with which
+ * the key matches. If successful the function returns an iterator
+ * pointing to the sought after %pair. If unsuccessful it returns the
+ * past-the-end ( @c end() ) iterator.
+ */
+ iterator
+ find(const key_type& __x) { return _M_t.find(__x); }
+
+ /**
+ * @brief Tries to locate an element in a %multimap.
+ * @param x Key of (key, value) pair to be located.
+ * @return Read-only (constant) iterator pointing to sought-after
+ * element, or end() if not found.
+ *
+ * This function takes a key and tries to locate the element with which
+ * the key matches. If successful the function returns a constant iterator
+ * pointing to the sought after %pair. If unsuccessful it returns the
+ * past-the-end ( @c end() ) iterator.
+ */
+ const_iterator
+ find(const key_type& __x) const { return _M_t.find(__x); }
+
+ /**
+ * @brief Finds the number of elements with given key.
+ * @param x Key of (key, value) pairs to be located.
+ * @return Number of elements with specified key.
+ */
+ size_type
+ count(const key_type& __x) const { return _M_t.count(__x); }
+
+ /**
+ * @brief Finds the beginning of a subsequence matching given key.
+ * @param x Key of (key, value) pair to be located.
+ * @return Iterator pointing to first element matching given key, or
+ * end() if not found.
+ *
+ * This function returns the first element of a subsequence of elements
+ * that matches the given key. If unsuccessful it returns an iterator
+ * pointing to the first element that has a greater value than given key
+ * or end() if no such element exists.
+ */
+ iterator
+ lower_bound(const key_type& __x) { return _M_t.lower_bound(__x); }
+
+ /**
+ * @brief Finds the beginning of a subsequence matching given key.
+ * @param x Key of (key, value) pair to be located.
+ * @return Read-only (constant) iterator pointing to first element
+ * matching given key, or end() if not found.
+ *
+ * This function returns the first element of a subsequence of elements
+ * that matches the given key. If unsuccessful the iterator will point
+ * to the next greatest element or, if no such greater element exists, to
+ * end().
+ */
+ const_iterator
+ lower_bound(const key_type& __x) const { return _M_t.lower_bound(__x); }
+
+ /**
+ * @brief Finds the end of a subsequence matching given key.
+ * @param x Key of (key, value) pair to be located.
+ * @return Iterator pointing to last element matching given key.
+ */
+ iterator
+ upper_bound(const key_type& __x) { return _M_t.upper_bound(__x); }
+
+ /**
+ * @brief Finds the end of a subsequence matching given key.
+ * @param x Key of (key, value) pair to be located.
+ * @return Read-only (constant) iterator pointing to last element matching
+ * given key.
+ */
+ const_iterator
+ upper_bound(const key_type& __x) const { return _M_t.upper_bound(__x); }
+
+ /**
+ * @brief Finds a subsequence matching given key.
+ * @param x Key of (key, value) pairs to be located.
+ * @return Pair of iterators that possibly points to the subsequence
+ * matching given key.
+ *
+ * This function returns a pair of which the first
+ * element possibly points to the first element matching the given key
+ * and the second element possibly points to the last element matching the
+ * given key. If unsuccessful the first element of the returned pair will
+ * contain an iterator pointing to the next greatest element or, if no such
+ * greater element exists, to end().
+ */
+ pair<iterator,iterator>
+ equal_range(const key_type& __x) { return _M_t.equal_range(__x); }
+
+ /**
+ * @brief Finds a subsequence matching given key.
+ * @param x Key of (key, value) pairs to be located.
+ * @return Pair of read-only (constant) iterators that possibly points to
+ * the subsequence matching given key.
+ *
+ * This function returns a pair of which the first
+ * element possibly points to the first element matching the given key
+ * and the second element possibly points to the last element matching the
+ * given key. If unsuccessful the first element of the returned pair will
+ * contain an iterator pointing to the next greatest element or, if no such
+ * a greater element exists, to end().
+ */
+ pair<const_iterator,const_iterator>
+ equal_range(const key_type& __x) const { return _M_t.equal_range(__x); }
+
+ template <typename _K1, typename _T1, typename _C1, typename _A1>
+ friend bool operator== (const multimap<_K1,_T1,_C1,_A1>&,
+ const multimap<_K1,_T1,_C1,_A1>&);
+ template <typename _K1, typename _T1, typename _C1, typename _A1>
+ friend bool operator< (const multimap<_K1,_T1,_C1,_A1>&,
+ const multimap<_K1,_T1,_C1,_A1>&);
+ };
+
+
/**
- * @brief Finds the beginning of a subsequence matching given key.
- * @param x Key of (key, value) pair to be located.
- * @return Read-only (constant) iterator pointing to first element
- * matching given key, or end() if not found.
+ * @brief Multimap equality comparison.
+ * @param x A %multimap.
+ * @param y A %multimap of the same type as @a x.
+ * @return True iff the size and elements of the maps are equal.
*
- * This function returns the first element of a subsequence of elements
- * that matches the given key. If unsuccessful the iterator will point
- * to the next greatest element or, if no such greater element exists, to
- * end().
- */
- const_iterator lower_bound(const key_type& __x) const {
- return _M_t.lower_bound(__x);
- }
-
- /**
- * @brief Finds the end of a subsequence matching given key.
- * @param x Key of (key, value) pair to be located.
- * @return Iterator pointing to last element matching given key.
+ * This is an equivalence relation. It is linear in the size of the
+ * multimaps. Multimaps are considered equivalent if their sizes are equal,
+ * and if corresponding elements compare equal.
*/
- iterator upper_bound(const key_type& __x) {return _M_t.upper_bound(__x); }
-
- /**
- * @brief Finds the end of a subsequence matching given key.
- * @param x Key of (key, value) pair to be located.
- * @return Read-only (constant) iterator pointing to last element matching
- * given key.
- */
- const_iterator upper_bound(const key_type& __x) const {
- return _M_t.upper_bound(__x);
- }
-
+ template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+ inline bool
+ operator==(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
+ const multimap<_Key,_Tp,_Compare,_Alloc>& __y)
+ {
+ return __x._M_t == __y._M_t;
+ }
+
/**
- * @brief Finds a subsequence matching given key.
- * @param x Key of (key, value) pairs to be located.
- * @return Pair of iterators that possibly points to the subsequence
- * matching given key.
+ * @brief Multimap ordering relation.
+ * @param x A %multimap.
+ * @param y A %multimap of the same type as @a x.
+ * @return True iff @a x is lexographically less than @a y.
*
- * This function improves on lower_bound() and upper_bound() by giving a more
- * elegant and efficient solution. It returns a pair of which the first
- * element possibly points to the first element matching the given key
- * and the second element possibly points to the last element matching the
- * given key. If unsuccessful the first element of the returned pair will
- * contain an iterator pointing to the next greatest element or, if no such
- * greater element exists, to end().
- */
- pair<iterator,iterator> equal_range(const key_type& __x) {
- return _M_t.equal_range(__x);
- }
-
- /**
- * @brief Finds a subsequence matching given key.
- * @param x Key of (key, value) pairs to be located.
- * @return Pair of read-only (constant) iterators that possibly points to
- * the subsequence matching given key.
+ * This is a total ordering relation. It is linear in the size of the
+ * multimaps. The elements must be comparable with @c <.
*
- * This function improves on lower_bound() and upper_bound() by giving a more
- * elegant and efficient solution. It returns a pair of which the first
- * element possibly points to the first element matching the given key
- * and the second element possibly points to the last element matching the
- * given key. If unsuccessful the first element of the returned pair will
- * contain an iterator pointing to the next greatest element or, if no such
- * a greater element exists, to end().
+ * See std::lexographical_compare() for how the determination is made.
*/
- pair<const_iterator,const_iterator> equal_range(const key_type& __x) const {
- return _M_t.equal_range(__x);
- }
-
- template <class _K1, class _T1, class _C1, class _A1>
- friend bool operator== (const multimap<_K1, _T1, _C1, _A1>&,
- const multimap<_K1, _T1, _C1, _A1>&);
- template <class _K1, class _T1, class _C1, class _A1>
- friend bool operator< (const multimap<_K1, _T1, _C1, _A1>&,
- const multimap<_K1, _T1, _C1, _A1>&);
-};
-
-template <class _Key, class _Tp, class _Compare, class _Alloc>
-inline bool operator==(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
- const multimap<_Key,_Tp,_Compare,_Alloc>& __y) {
- return __x._M_t == __y._M_t;
-}
-
-template <class _Key, class _Tp, class _Compare, class _Alloc>
-inline bool operator<(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
- const multimap<_Key,_Tp,_Compare,_Alloc>& __y) {
- return __x._M_t < __y._M_t;
-}
-
-template <class _Key, class _Tp, class _Compare, class _Alloc>
-inline bool operator!=(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
- const multimap<_Key,_Tp,_Compare,_Alloc>& __y) {
- return !(__x == __y);
-}
-
-template <class _Key, class _Tp, class _Compare, class _Alloc>
-inline bool operator>(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
- const multimap<_Key,_Tp,_Compare,_Alloc>& __y) {
- return __y < __x;
-}
-
-template <class _Key, class _Tp, class _Compare, class _Alloc>
-inline bool operator<=(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
- const multimap<_Key,_Tp,_Compare,_Alloc>& __y) {
- return !(__y < __x);
-}
-
-template <class _Key, class _Tp, class _Compare, class _Alloc>
-inline bool operator>=(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
- const multimap<_Key,_Tp,_Compare,_Alloc>& __y) {
- return !(__x < __y);
-}
-
-template <class _Key, class _Tp, class _Compare, class _Alloc>
-inline void swap(multimap<_Key,_Tp,_Compare,_Alloc>& __x,
- multimap<_Key,_Tp,_Compare,_Alloc>& __y) {
- __x.swap(__y);
-}
-
+ template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+ inline bool
+ operator<(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
+ const multimap<_Key,_Tp,_Compare,_Alloc>& __y)
+ { return __x._M_t < __y._M_t; }
+
+ /// Based on operator==
+ template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+ inline bool
+ operator!=(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
+ const multimap<_Key,_Tp,_Compare,_Alloc>& __y)
+ { return !(__x == __y); }
+
+ /// Based on operator<
+ template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+ inline bool
+ operator>(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
+ const multimap<_Key,_Tp,_Compare,_Alloc>& __y)
+ { return __y < __x; }
+
+ /// Based on operator<
+ template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+ inline bool
+ operator<=(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
+ const multimap<_Key,_Tp,_Compare,_Alloc>& __y)
+ { return !(__y < __x); }
+
+ /// Based on operator<
+ template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+ inline bool
+ operator>=(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,
+ const multimap<_Key,_Tp,_Compare,_Alloc>& __y)
+ { return !(__x < __y); }
+
+ /// See std::multimap::swap().
+ template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+ inline void
+ swap(multimap<_Key,_Tp,_Compare,_Alloc>& __x,
+ multimap<_Key,_Tp,_Compare,_Alloc>& __y)
+ { __x.swap(__y); }
} // namespace std
#endif /* __GLIBCPP_INTERNAL_MULTIMAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/contrib/libstdc++/include/bits/stl_queue.h b/contrib/libstdc++/include/bits/stl_queue.h
index 5503640..ff2ba26 100644
--- a/contrib/libstdc++/include/bits/stl_queue.h
+++ b/contrib/libstdc++/include/bits/stl_queue.h
@@ -1,6 +1,6 @@
// Queue implementation -*- C++ -*-
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -65,180 +65,366 @@
namespace std
{
-
-// Forward declarations of operators < and ==, needed for friend declaration.
-
-template <class _Tp,
- class _Sequence = deque<_Tp> >
-class queue;
-
-template <class _Tp, class _Seq>
-inline bool operator==(const queue<_Tp, _Seq>&, const queue<_Tp, _Seq>&);
-
-template <class _Tp, class _Seq>
-inline bool operator<(const queue<_Tp, _Seq>&, const queue<_Tp, _Seq>&);
-
-
-template <class _Tp, class _Sequence>
-class queue
-{
- // concept requirements
- __glibcpp_class_requires(_Tp, _SGIAssignableConcept)
- __glibcpp_class_requires(_Sequence, _FrontInsertionSequenceConcept)
- __glibcpp_class_requires(_Sequence, _BackInsertionSequenceConcept)
- typedef typename _Sequence::value_type _Sequence_value_type;
- __glibcpp_class_requires2(_Tp, _Sequence_value_type, _SameTypeConcept);
-
- template <class _Tp1, class _Seq1>
- friend bool operator== (const queue<_Tp1, _Seq1>&,
- const queue<_Tp1, _Seq1>&);
- template <class _Tp1, class _Seq1>
- friend bool operator< (const queue<_Tp1, _Seq1>&,
- const queue<_Tp1, _Seq1>&);
-public:
- typedef typename _Sequence::value_type value_type;
- typedef typename _Sequence::size_type size_type;
- typedef _Sequence container_type;
-
- typedef typename _Sequence::reference reference;
- typedef typename _Sequence::const_reference const_reference;
-protected:
- _Sequence c;
-public:
- explicit queue(const _Sequence& __c = _Sequence()) : c(__c) {}
-
- bool empty() const { return c.empty(); }
- size_type size() const { return c.size(); }
- reference front() { return c.front(); }
- const_reference front() const { return c.front(); }
- reference back() { return c.back(); }
- const_reference back() const { return c.back(); }
- void push(const value_type& __x) { c.push_back(__x); }
- void pop() { c.pop_front(); }
-};
-
-template <class _Tp, class _Sequence>
-bool
-operator==(const queue<_Tp, _Sequence>& __x, const queue<_Tp, _Sequence>& __y)
-{
- return __x.c == __y.c;
-}
-
-template <class _Tp, class _Sequence>
-bool
-operator<(const queue<_Tp, _Sequence>& __x, const queue<_Tp, _Sequence>& __y)
-{
- return __x.c < __y.c;
-}
-
-template <class _Tp, class _Sequence>
-bool
-operator!=(const queue<_Tp, _Sequence>& __x, const queue<_Tp, _Sequence>& __y)
-{
- return !(__x == __y);
-}
-
-template <class _Tp, class _Sequence>
-bool
-operator>(const queue<_Tp, _Sequence>& __x, const queue<_Tp, _Sequence>& __y)
-{
- return __y < __x;
-}
-
-template <class _Tp, class _Sequence>
-bool
-operator<=(const queue<_Tp, _Sequence>& __x, const queue<_Tp, _Sequence>& __y)
-{
- return !(__y < __x);
-}
-
-template <class _Tp, class _Sequence>
-bool
-operator>=(const queue<_Tp, _Sequence>& __x, const queue<_Tp, _Sequence>& __y)
-{
- return !(__x < __y);
-}
-
-template <class _Tp,
- class _Sequence = vector<_Tp>,
- class _Compare = less<typename _Sequence::value_type> >
-class priority_queue
-{
- // concept requirements
- __glibcpp_class_requires(_Tp, _SGIAssignableConcept)
- __glibcpp_class_requires(_Sequence, _SequenceConcept)
- __glibcpp_class_requires(_Sequence, _RandomAccessContainerConcept)
- typedef typename _Sequence::value_type _Sequence_value_type;
- __glibcpp_class_requires2(_Tp, _Sequence_value_type, _SameTypeConcept);
- __glibcpp_class_requires4(_Compare, bool, _Tp, _Tp, _BinaryFunctionConcept);
-
-public:
- typedef typename _Sequence::value_type value_type;
- typedef typename _Sequence::size_type size_type;
- typedef _Sequence container_type;
-
- typedef typename _Sequence::reference reference;
- typedef typename _Sequence::const_reference const_reference;
-protected:
- _Sequence c;
- _Compare comp;
-public:
- explicit priority_queue(const _Compare& __x = _Compare(),
- const _Sequence& __s = _Sequence())
- : c(__s), comp(__x)
- { make_heap(c.begin(), c.end(), comp); }
-
- template <class _InputIterator>
- priority_queue(_InputIterator __first, _InputIterator __last,
- const _Compare& __x = _Compare(),
- const _Sequence& __s = _Sequence())
- : c(__s), comp(__x)
- {
- c.insert(c.end(), __first, __last);
- make_heap(c.begin(), c.end(), comp);
- }
-
- bool empty() const { return c.empty(); }
- size_type size() const { return c.size(); }
- const_reference top() const { return c.front(); }
-
- void
- push(const value_type& __x)
+ // Forward declarations of operators < and ==, needed for friend declaration.
+
+ template <typename _Tp, typename _Sequence = deque<_Tp> >
+ class queue;
+
+ template <typename _Tp, typename _Seq>
+ inline bool operator==(const queue<_Tp,_Seq>&, const queue<_Tp,_Seq>&);
+
+ template <typename _Tp, typename _Seq>
+ inline bool operator<(const queue<_Tp,_Seq>&, const queue<_Tp,_Seq>&);
+
+
+ /**
+ * @brief A standard container giving FIFO behavior.
+ *
+ * @ingroup Containers
+ * @ingroup Sequences
+ *
+ * Meets many of the requirements of a
+ * <a href="tables.html#65">container</a>,
+ * but does not define anything to do with iterators. Very few of the
+ * other standard container interfaces are defined.
+ *
+ * This is not a true container, but an @e adaptor. It holds another
+ * container, and provides a wrapper interface to that container. The
+ * wrapper is what enforces strict first-in-first-out %queue behavior.
+ *
+ * The second template parameter defines the type of the underlying
+ * sequence/container. It defaults to std::deque, but it can be any type
+ * that supports @c front, @c back, @c push_back, and @c pop_front,
+ * such as std::list or an appropriate user-defined type.
+ *
+ * Members not found in "normal" containers are @c container_type,
+ * which is a typedef for the second Sequence parameter, and @c push and
+ * @c pop, which are standard %queue/FIFO operations.
+ */
+ template <typename _Tp, typename _Sequence>
+ class queue
{
- try
- {
- c.push_back(__x);
- push_heap(c.begin(), c.end(), comp);
- }
- catch(...)
- {
- c.clear();
- __throw_exception_again;
- }
- }
-
- void
- pop()
+ // concept requirements
+ typedef typename _Sequence::value_type _Sequence_value_type;
+ __glibcpp_class_requires(_Tp, _SGIAssignableConcept)
+ __glibcpp_class_requires(_Sequence, _FrontInsertionSequenceConcept)
+ __glibcpp_class_requires(_Sequence, _BackInsertionSequenceConcept)
+ __glibcpp_class_requires2(_Tp, _Sequence_value_type, _SameTypeConcept)
+
+ template <typename _Tp1, typename _Seq1>
+ friend bool operator== (const queue<_Tp1, _Seq1>&,
+ const queue<_Tp1, _Seq1>&);
+ template <typename _Tp1, typename _Seq1>
+ friend bool operator< (const queue<_Tp1, _Seq1>&,
+ const queue<_Tp1, _Seq1>&);
+
+ public:
+ typedef typename _Sequence::value_type value_type;
+ typedef typename _Sequence::reference reference;
+ typedef typename _Sequence::const_reference const_reference;
+ typedef typename _Sequence::size_type size_type;
+ typedef _Sequence container_type;
+
+ protected:
+ /**
+ * 'c' is the underlying container. Maintainers wondering why this isn't
+ * uglified as per style guidelines should note that this name is
+ * specified in the standard, [23.2.3.1]. (Why? Presumably for the same
+ * reason that it's protected instead of private: to allow derivation.
+ * But none of the other containers allow for derivation. Odd.)
+ */
+ _Sequence c;
+
+ public:
+ /**
+ * @brief Default constructor creates no elements.
+ */
+ explicit
+ queue(const _Sequence& __c = _Sequence())
+ : c(__c) {}
+
+ /**
+ * Returns true if the %queue is empty.
+ */
+ bool
+ empty() const { return c.empty(); }
+
+ /** Returns the number of elements in the %queue. */
+ size_type
+ size() const { return c.size(); }
+
+ /**
+ * Returns a read/write reference to the data at the first element of the
+ * %queue.
+ */
+ reference
+ front() { return c.front(); }
+
+ /**
+ * Returns a read-only (constant) reference to the data at the first
+ * element of the %queue.
+ */
+ const_reference
+ front() const { return c.front(); }
+
+ /**
+ * Returns a read/write reference to the data at the last element of the
+ * %queue.
+ */
+ reference
+ back() { return c.back(); }
+
+ /**
+ * Returns a read-only (constant) reference to the data at the last
+ * element of the %queue.
+ */
+ const_reference
+ back() const { return c.back(); }
+
+ /**
+ * @brief Add data to the end of the %queue.
+ * @param x Data to be added.
+ *
+ * This is a typical %queue operation. The function creates an element at
+ * the end of the %queue and assigns the given data to it.
+ * The time complexity of the operation depends on the underlying
+ * sequence.
+ */
+ void
+ push(const value_type& __x) { c.push_back(__x); }
+
+ /**
+ * @brief Removes first element.
+ *
+ * This is a typical %queue operation. It shrinks the %queue by one.
+ * The time complexity of the operation depends on the underlying
+ * sequence.
+ *
+ * Note that no data is returned, and if the first element's data is
+ * needed, it should be retrieved before pop() is called.
+ */
+ void
+ pop() { c.pop_front(); }
+ };
+
+
+ /**
+ * @brief Queue equality comparison.
+ * @param x A %queue.
+ * @param y A %queue of the same type as @a x.
+ * @return True iff the size and elements of the queues are equal.
+ *
+ * This is an equivalence relation. Complexity and semantics depend on the
+ * underlying sequence type, but the expected rules are: this relation is
+ * linear in the size of the sequences, and queues are considered equivalent
+ * if their sequences compare equal.
+ */
+ template <typename _Tp, typename _Sequence>
+ inline bool
+ operator==(const queue<_Tp,_Sequence>& __x, const queue<_Tp,_Sequence>& __y)
+ { return __x.c == __y.c; }
+
+ /**
+ * @brief Queue ordering relation.
+ * @param x A %queue.
+ * @param y A %queue of the same type as @a x.
+ * @return True iff @a x is lexographically less than @a y.
+ *
+ * This is an total ordering relation. Complexity and semantics depend on
+ * the underlying sequence type, but the expected rules are: this relation
+ * is linear in the size of the sequences, the elements must be comparable
+ * with @c <, and std::lexographical_compare() is usually used to make the
+ * determination.
+ */
+ template <typename _Tp, typename _Sequence>
+ inline bool
+ operator<(const queue<_Tp,_Sequence>& __x, const queue<_Tp,_Sequence>& __y)
+ { return __x.c < __y.c; }
+
+ /// Based on operator==
+ template <typename _Tp, typename _Sequence>
+ inline bool
+ operator!=(const queue<_Tp,_Sequence>& __x, const queue<_Tp,_Sequence>& __y)
+ { return !(__x == __y); }
+
+ /// Based on operator<
+ template <typename _Tp, typename _Sequence>
+ inline bool
+ operator>(const queue<_Tp,_Sequence>& __x, const queue<_Tp,_Sequence>& __y)
+ { return __y < __x; }
+
+ /// Based on operator<
+ template <typename _Tp, typename _Sequence>
+ inline bool
+ operator<=(const queue<_Tp,_Sequence>& __x, const queue<_Tp,_Sequence>& __y)
+ { return !(__y < __x); }
+
+ /// Based on operator<
+ template <typename _Tp, typename _Sequence>
+ inline bool
+ operator>=(const queue<_Tp,_Sequence>& __x, const queue<_Tp,_Sequence>& __y)
+ { return !(__x < __y); }
+
+
+ /**
+ * @brief A standard container automatically sorting its contents.
+ *
+ * @ingroup Containers
+ * @ingroup Sequences
+ *
+ * This is not a true container, but an @e adaptor. It holds another
+ * container, and provides a wrapper interface to that container. The
+ * wrapper is what enforces sorting and first-in-first-out %queue behavior.
+ * Very few of the standard container/sequence interface requirements are
+ * met (e.g., iterators).
+ *
+ * The second template parameter defines the type of the underlying
+ * sequence/container. It defaults to std::vector, but it can be any type
+ * that supports @c front(), @c push_back, @c pop_back, and random-access
+ * iterators, such as std::deque or an appropriate user-defined type.
+ *
+ * The third template parameter supplies the means of making priority
+ * comparisons. It defaults to @c less<value_type> but can be anything
+ * defining a strict weak ordering.
+ *
+ * Members not found in "normal" containers are @c container_type,
+ * which is a typedef for the second Sequence parameter, and @c push,
+ * @c pop, and @c top, which are standard %queue/FIFO operations.
+ *
+ * @note No equality/comparison operators are provided for %priority_queue.
+ *
+ * @note Sorting of the elements takes place as they are added to, and
+ * removed from, the %priority_queue using the %priority_queue's
+ * member functions. If you access the elements by other means, and
+ * change their data such that the sorting order would be different,
+ * the %priority_queue will not re-sort the elements for you. (How
+ * could it know to do so?)
+ */
+ template <typename _Tp, typename _Sequence = vector<_Tp>,
+ typename _Compare = less<typename _Sequence::value_type> >
+ class priority_queue
{
- try
- {
- pop_heap(c.begin(), c.end(), comp);
- c.pop_back();
- }
- catch(...)
- {
- c.clear();
- __throw_exception_again;
+ // concept requirements
+ typedef typename _Sequence::value_type _Sequence_value_type;
+ __glibcpp_class_requires(_Tp, _SGIAssignableConcept)
+ __glibcpp_class_requires(_Sequence, _SequenceConcept)
+ __glibcpp_class_requires(_Sequence, _RandomAccessContainerConcept)
+ __glibcpp_class_requires2(_Tp, _Sequence_value_type, _SameTypeConcept)
+ __glibcpp_class_requires4(_Compare, bool, _Tp, _Tp, _BinaryFunctionConcept)
+
+ public:
+ typedef typename _Sequence::value_type value_type;
+ typedef typename _Sequence::reference reference;
+ typedef typename _Sequence::const_reference const_reference;
+ typedef typename _Sequence::size_type size_type;
+ typedef _Sequence container_type;
+
+ protected:
+ // See queue::c for notes on these names.
+ _Sequence c;
+ _Compare comp;
+
+ public:
+ /**
+ * @brief Default constructor creates no elements.
+ */
+ explicit
+ priority_queue(const _Compare& __x = _Compare(),
+ const _Sequence& __s = _Sequence())
+ : c(__s), comp(__x)
+ { make_heap(c.begin(), c.end(), comp); }
+
+ /**
+ * @brief Builds a %queue from a range.
+ * @param first An input iterator.
+ * @param last An input iterator.
+ * @param x A comparison functor describing a strict weak ordering.
+ * @param s An initial sequence with which to start.
+ *
+ * Begins by copying @a s, inserting a copy of the elements from
+ * @a [first,last) into the copy of @a s, then ordering the copy
+ * according to @a x.
+ *
+ * For more information on function objects, see the documentation on
+ * @link s20_3_1_base functor base classes@endlink.
+ */
+ template <typename _InputIterator>
+ priority_queue(_InputIterator __first, _InputIterator __last,
+ const _Compare& __x = _Compare(),
+ const _Sequence& __s = _Sequence())
+ : c(__s), comp(__x)
+ {
+ c.insert(c.end(), __first, __last);
+ make_heap(c.begin(), c.end(), comp);
}
- }
-};
-
-// no equality is provided
-
+
+ /**
+ * Returns true if the %queue is empty.
+ */
+ bool
+ empty() const { return c.empty(); }
+
+ /** Returns the number of elements in the %queue. */
+ size_type
+ size() const { return c.size(); }
+
+ /**
+ * Returns a read-only (constant) reference to the data at the first
+ * element of the %queue.
+ */
+ const_reference
+ top() const { return c.front(); }
+
+ /**
+ * @brief Add data to the %queue.
+ * @param x Data to be added.
+ *
+ * This is a typical %queue operation.
+ * The time complexity of the operation depends on the underlying
+ * sequence.
+ */
+ void
+ push(const value_type& __x)
+ {
+ try
+ {
+ c.push_back(__x);
+ push_heap(c.begin(), c.end(), comp);
+ }
+ catch(...)
+ {
+ c.clear();
+ __throw_exception_again;
+ }
+ }
+
+ /**
+ * @brief Removes first element.
+ *
+ * This is a typical %queue operation. It shrinks the %queue by one.
+ * The time complexity of the operation depends on the underlying
+ * sequence.
+ *
+ * Note that no data is returned, and if the first element's data is
+ * needed, it should be retrieved before pop() is called.
+ */
+ void
+ pop()
+ {
+ try
+ {
+ pop_heap(c.begin(), c.end(), comp);
+ c.pop_back();
+ }
+ catch(...)
+ {
+ c.clear();
+ __throw_exception_again;
+ }
+ }
+ };
+
+ // No equality/comparison operators are provided for priority_queue.
} // namespace std
#endif /* __GLIBCPP_INTERNAL_QUEUE_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/contrib/libstdc++/include/bits/stl_stack.h b/contrib/libstdc++/include/bits/stl_stack.h
index 0a80b10..7f2496c 100644
--- a/contrib/libstdc++/include/bits/stl_stack.h
+++ b/contrib/libstdc++/include/bits/stl_stack.h
@@ -1,6 +1,6 @@
// Stack implementation -*- C++ -*-
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -65,96 +65,186 @@
namespace std
{
-
-// Forward declarations of operators == and <, needed for friend declaration.
-
-template <class _Tp,
- class _Sequence = deque<_Tp> >
-class stack;
-
-template <class _Tp, class _Seq>
-bool operator==(const stack<_Tp,_Seq>& __x, const stack<_Tp,_Seq>& __y);
-
-template <class _Tp, class _Seq>
-bool operator<(const stack<_Tp,_Seq>& __x, const stack<_Tp,_Seq>& __y);
-
-
-template <class _Tp, class _Sequence>
-class stack
-{
- // concept requirements
- __glibcpp_class_requires(_Tp, _SGIAssignableConcept)
- __glibcpp_class_requires(_Sequence, _BackInsertionSequenceConcept)
- typedef typename _Sequence::value_type _Sequence_value_type;
- __glibcpp_class_requires2(_Tp, _Sequence_value_type, _SameTypeConcept);
-
- template <class _Tp1, class _Seq1>
- friend bool operator== (const stack<_Tp1, _Seq1>&,
- const stack<_Tp1, _Seq1>&);
- template <class _Tp1, class _Seq1>
- friend bool operator< (const stack<_Tp1, _Seq1>&,
- const stack<_Tp1, _Seq1>&);
-public:
- typedef typename _Sequence::value_type value_type;
- typedef typename _Sequence::size_type size_type;
- typedef _Sequence container_type;
-
- typedef typename _Sequence::reference reference;
- typedef typename _Sequence::const_reference const_reference;
-protected:
- _Sequence c;
-public:
- stack() : c() {}
- explicit stack(const _Sequence& __s) : c(__s) {}
-
- bool empty() const { return c.empty(); }
- size_type size() const { return c.size(); }
- reference top() { return c.back(); }
- const_reference top() const { return c.back(); }
- void push(const value_type& __x) { c.push_back(__x); }
- void pop() { c.pop_back(); }
-};
-
-template <class _Tp, class _Seq>
-bool operator==(const stack<_Tp,_Seq>& __x, const stack<_Tp,_Seq>& __y)
-{
- return __x.c == __y.c;
-}
-
-template <class _Tp, class _Seq>
-bool operator<(const stack<_Tp,_Seq>& __x, const stack<_Tp,_Seq>& __y)
-{
- return __x.c < __y.c;
-}
-
-template <class _Tp, class _Seq>
-bool operator!=(const stack<_Tp,_Seq>& __x, const stack<_Tp,_Seq>& __y)
-{
- return !(__x == __y);
-}
-
-template <class _Tp, class _Seq>
-bool operator>(const stack<_Tp,_Seq>& __x, const stack<_Tp,_Seq>& __y)
-{
- return __y < __x;
-}
-
-template <class _Tp, class _Seq>
-bool operator<=(const stack<_Tp,_Seq>& __x, const stack<_Tp,_Seq>& __y)
-{
- return !(__y < __x);
-}
-
-template <class _Tp, class _Seq>
-bool operator>=(const stack<_Tp,_Seq>& __x, const stack<_Tp,_Seq>& __y)
-{
- return !(__x < __y);
-}
-
+ // Forward declarations of operators == and <, needed for friend declaration.
+
+ template <typename _Tp, typename _Sequence = deque<_Tp> >
+ class stack;
+
+ template <typename _Tp, typename _Seq>
+ inline bool operator==(const stack<_Tp,_Seq>& __x,
+ const stack<_Tp,_Seq>& __y);
+
+ template <typename _Tp, typename _Seq>
+ inline bool operator<(const stack<_Tp,_Seq>& __x, const stack<_Tp,_Seq>& __y);
+
+
+ /**
+ * @brief A standard container giving FILO behavior.
+ *
+ * @ingroup Containers
+ * @ingroup Sequences
+ *
+ * Meets many of the requirements of a
+ * <a href="tables.html#65">container</a>,
+ * but does not define anything to do with iterators. Very few of the
+ * other standard container interfaces are defined.
+ *
+ * This is not a true container, but an @e adaptor. It holds another
+ * container, and provides a wrapper interface to that container. The
+ * wrapper is what enforces strict first-in-last-out %stack behavior.
+ *
+ * The second template parameter defines the type of the underlying
+ * sequence/container. It defaults to std::deque, but it can be any type
+ * that supports @c back, @c push_back, and @c pop_front, such as
+ * std::list, std::vector, or an appropriate user-defined type.
+ *
+ * Members not found in "normal" containers are @c container_type,
+ * which is a typedef for the second Sequence parameter, and @c push,
+ * @c pop, and @c top, which are standard %stack/FILO operations.
+ */
+ template <typename _Tp, typename _Sequence>
+ class stack
+ {
+ // concept requirements
+ typedef typename _Sequence::value_type _Sequence_value_type;
+ __glibcpp_class_requires(_Tp, _SGIAssignableConcept)
+ __glibcpp_class_requires(_Sequence, _BackInsertionSequenceConcept)
+ __glibcpp_class_requires2(_Tp, _Sequence_value_type, _SameTypeConcept)
+
+ template <typename _Tp1, typename _Seq1>
+ friend bool operator== (const stack<_Tp1, _Seq1>&,
+ const stack<_Tp1, _Seq1>&);
+ template <typename _Tp1, typename _Seq1>
+ friend bool operator< (const stack<_Tp1, _Seq1>&,
+ const stack<_Tp1, _Seq1>&);
+
+ public:
+ typedef typename _Sequence::value_type value_type;
+ typedef typename _Sequence::reference reference;
+ typedef typename _Sequence::const_reference const_reference;
+ typedef typename _Sequence::size_type size_type;
+ typedef _Sequence container_type;
+
+ protected:
+ // See queue::c for notes on this name.
+ _Sequence c;
+
+ public:
+ // XXX removed old def ctor, added def arg to this one to match 14882
+ /**
+ * @brief Default constructor creates no elements.
+ */
+ explicit
+ stack(const _Sequence& __c = _Sequence())
+ : c(__c) {}
+
+ /**
+ * Returns true if the %stack is empty.
+ */
+ bool
+ empty() const { return c.empty(); }
+
+ /** Returns the number of elements in the %stack. */
+ size_type
+ size() const { return c.size(); }
+
+ /**
+ * Returns a read/write reference to the data at the first element of the
+ * %stack.
+ */
+ reference
+ top() { return c.back(); }
+
+ /**
+ * Returns a read-only (constant) reference to the data at the first
+ * element of the %stack.
+ */
+ const_reference
+ top() const { return c.back(); }
+
+ /**
+ * @brief Add data to the top of the %stack.
+ * @param x Data to be added.
+ *
+ * This is a typical %stack operation. The function creates an element at
+ * the top of the %stack and assigns the given data to it.
+ * The time complexity of the operation depends on the underlying
+ * sequence.
+ */
+ void
+ push(const value_type& __x) { c.push_back(__x); }
+
+ /**
+ * @brief Removes first element.
+ *
+ * This is a typical %stack operation. It shrinks the %stack by one.
+ * The time complexity of the operation depends on the underlying
+ * sequence.
+ *
+ * Note that no data is returned, and if the first element's data is
+ * needed, it should be retrieved before pop() is called.
+ */
+ void
+ pop() { c.pop_back(); }
+ };
+
+
+ /**
+ * @brief Stack equality comparison.
+ * @param x A %stack.
+ * @param y A %stack of the same type as @a x.
+ * @return True iff the size and elements of the stacks are equal.
+ *
+ * This is an equivalence relation. Complexity and semantics depend on the
+ * underlying sequence type, but the expected rules are: this relation is
+ * linear in the size of the sequences, and stacks are considered equivalent
+ * if their sequences compare equal.
+ */
+ template <typename _Tp, typename _Seq>
+ inline bool
+ operator==(const stack<_Tp,_Seq>& __x, const stack<_Tp,_Seq>& __y)
+ { return __x.c == __y.c; }
+
+ /**
+ * @brief Stack ordering relation.
+ * @param x A %stack.
+ * @param y A %stack of the same type as @a x.
+ * @return True iff @a x is lexographically less than @a y.
+ *
+ * This is an total ordering relation. Complexity and semantics depend on
+ * the underlying sequence type, but the expected rules are: this relation
+ * is linear in the size of the sequences, the elements must be comparable
+ * with @c <, and std::lexographical_compare() is usually used to make the
+ * determination.
+ */
+ template <typename _Tp, typename _Seq>
+ inline bool
+ operator<(const stack<_Tp,_Seq>& __x, const stack<_Tp,_Seq>& __y)
+ { return __x.c < __y.c; }
+
+ /// Based on operator==
+ template <typename _Tp, typename _Seq>
+ inline bool
+ operator!=(const stack<_Tp,_Seq>& __x, const stack<_Tp,_Seq>& __y)
+ { return !(__x == __y); }
+
+ /// Based on operator<
+ template <typename _Tp, typename _Seq>
+ inline bool
+ operator>(const stack<_Tp,_Seq>& __x, const stack<_Tp,_Seq>& __y)
+ { return __y < __x; }
+
+ /// Based on operator<
+ template <typename _Tp, typename _Seq>
+ inline bool
+ operator<=(const stack<_Tp,_Seq>& __x, const stack<_Tp,_Seq>& __y)
+ { return !(__y < __x); }
+
+ /// Based on operator<
+ template <typename _Tp, typename _Seq>
+ inline bool
+ operator>=(const stack<_Tp,_Seq>& __x, const stack<_Tp,_Seq>& __y)
+ { return !(__x < __y); }
} // namespace std
#endif /* __GLIBCPP_INTERNAL_STACK_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/contrib/libstdc++/include/bits/stl_threads.h b/contrib/libstdc++/include/bits/stl_threads.h
index 0150cd5..b21ebdd 100644
--- a/contrib/libstdc++/include/bits/stl_threads.h
+++ b/contrib/libstdc++/include/bits/stl_threads.h
@@ -1,6 +1,6 @@
// Threading support -*- C++ -*-
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -126,6 +126,7 @@ namespace std
return __result;
}
#endif
+} //namespace std
// Locking class. Note that this class *does not have a
// constructor*. It must be initialized either statically, with
@@ -141,13 +142,18 @@ namespace std
// functions, and no private or protected members.
#if !defined(__GTHREAD_MUTEX_INIT) && defined(__GTHREAD_MUTEX_INIT_FUNCTION)
+namespace __gnu_cxx
+{
extern __gthread_mutex_t _GLIBCPP_mutex;
extern __gthread_mutex_t *_GLIBCPP_mutex_address;
extern __gthread_once_t _GLIBCPP_once;
extern void _GLIBCPP_mutex_init (void);
extern void _GLIBCPP_mutex_address_init (void);
+}
#endif
+namespace std
+{
struct _STL_mutex_lock
{
// The class must be statically initialized with __STL_MUTEX_INITIALIZER.
@@ -164,22 +170,24 @@ namespace std
// There should be no code in this path given the usage rules above.
#elif defined(__GTHREAD_MUTEX_INIT_FUNCTION)
if (_M_init_flag) return;
- if (__gthread_once (&_GLIBCPP_once, _GLIBCPP_mutex_init) != 0
+ if (__gthread_once (&__gnu_cxx::_GLIBCPP_once,
+ __gnu_cxx::_GLIBCPP_mutex_init) != 0
&& __gthread_active_p ())
abort ();
- __gthread_mutex_lock (&_GLIBCPP_mutex);
+ __gthread_mutex_lock (&__gnu_cxx::_GLIBCPP_mutex);
if (!_M_init_flag)
{
// Even though we have a global lock, we use __gthread_once to be
// absolutely certain the _M_lock mutex is only initialized once on
// multiprocessor systems.
- _GLIBCPP_mutex_address = &_M_lock;
- if (__gthread_once (&_M_once, _GLIBCPP_mutex_address_init) != 0
+ __gnu_cxx::_GLIBCPP_mutex_address = &_M_lock;
+ if (__gthread_once (&_M_once,
+ __gnu_cxx::_GLIBCPP_mutex_address_init) != 0
&& __gthread_active_p ())
abort ();
_M_init_flag = 1;
}
- __gthread_mutex_unlock (&_GLIBCPP_mutex);
+ __gthread_mutex_unlock (&__gnu_cxx::_GLIBCPP_mutex);
#endif
}
diff --git a/contrib/libstdc++/include/bits/stl_tree.h b/contrib/libstdc++/include/bits/stl_tree.h
index d2ae142..1e7fdf5 100644
--- a/contrib/libstdc++/include/bits/stl_tree.h
+++ b/contrib/libstdc++/include/bits/stl_tree.h
@@ -457,7 +457,7 @@ namespace std
if (__w->_M_right == 0
|| __w->_M_right->_M_color == _M_black)
{
- if (__w->_M_left) __w->_M_left->_M_color = _M_black;
+ __w->_M_left->_M_color = _M_black;
__w->_M_color = _M_red;
_Rb_tree_rotate_right(__w, __root);
__w = __x_parent->_M_right;
@@ -494,7 +494,7 @@ namespace std
{
if (__w->_M_left == 0 || __w->_M_left->_M_color == _M_black)
{
- if (__w->_M_right) __w->_M_right->_M_color = _M_black;
+ __w->_M_right->_M_color = _M_black;
__w->_M_color = _M_red;
_Rb_tree_rotate_left(__w, __root);
__w = __x_parent->_M_left;
@@ -702,8 +702,8 @@ namespace std
typedef _Rb_tree_iterator<value_type, const_reference, const_pointer>
const_iterator;
- typedef reverse_iterator<const_iterator> const_reverse_iterator;
- typedef reverse_iterator<iterator> reverse_iterator;
+ typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
+ typedef std::reverse_iterator<iterator> reverse_iterator;
private:
iterator
diff --git a/contrib/libstdc++/include/bits/stl_vector.h b/contrib/libstdc++/include/bits/stl_vector.h
index ef3b1c2..5354732 100644
--- a/contrib/libstdc++/include/bits/stl_vector.h
+++ b/contrib/libstdc++/include/bits/stl_vector.h
@@ -67,1019 +67,926 @@
namespace std
{
-
-// The vector base class serves two purposes. First, its constructor
-// and destructor allocate (but don't initialize) storage. This makes
-// exception safety easier. Second, the base class encapsulates all of
-// the differences between SGI-style allocators and standard-conforming
-// allocators.
-
-// Base class for ordinary allocators.
-template <class _Tp, class _Allocator, bool _IsStatic>
-class _Vector_alloc_base {
-public:
- typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type
- allocator_type;
- allocator_type get_allocator() const { return _M_data_allocator; }
-
- _Vector_alloc_base(const allocator_type& __a)
- : _M_data_allocator(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0)
- {}
-
-protected:
- allocator_type _M_data_allocator;
- _Tp* _M_start;
- _Tp* _M_finish;
- _Tp* _M_end_of_storage;
-
- _Tp* _M_allocate(size_t __n)
- { return _M_data_allocator.allocate(__n); }
- void _M_deallocate(_Tp* __p, size_t __n)
- { if (__p) _M_data_allocator.deallocate(__p, __n); }
-};
-
-// Specialization for allocators that have the property that we don't
-// actually have to store an allocator object.
-template <class _Tp, class _Allocator>
-class _Vector_alloc_base<_Tp, _Allocator, true> {
-public:
- typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type
- allocator_type;
- allocator_type get_allocator() const { return allocator_type(); }
-
- _Vector_alloc_base(const allocator_type&)
- : _M_start(0), _M_finish(0), _M_end_of_storage(0)
- {}
-
-protected:
- _Tp* _M_start;
- _Tp* _M_finish;
- _Tp* _M_end_of_storage;
-
- typedef typename _Alloc_traits<_Tp, _Allocator>::_Alloc_type _Alloc_type;
- _Tp* _M_allocate(size_t __n)
- { return _Alloc_type::allocate(__n); }
- void _M_deallocate(_Tp* __p, size_t __n)
- { _Alloc_type::deallocate(__p, __n);}
-};
-
-template <class _Tp, class _Alloc>
-struct _Vector_base
- : public _Vector_alloc_base<_Tp, _Alloc,
- _Alloc_traits<_Tp, _Alloc>::_S_instanceless>
-{
- typedef _Vector_alloc_base<_Tp, _Alloc,
- _Alloc_traits<_Tp, _Alloc>::_S_instanceless>
- _Base;
- typedef typename _Base::allocator_type allocator_type;
-
- _Vector_base(const allocator_type& __a) : _Base(__a) {}
- _Vector_base(size_t __n, const allocator_type& __a) : _Base(__a) {
- _M_start = _M_allocate(__n);
- _M_finish = _M_start;
- _M_end_of_storage = _M_start + __n;
- }
-
- ~_Vector_base() { _M_deallocate(_M_start, _M_end_of_storage - _M_start); }
-};
-
-
-/**
- * @brief A standard container which offers fixed time access to individual
- * elements in any order.
- *
- * @ingroup Containers
- * @ingroup Sequences
- *
- * Meets the requirements of a <a href="tables.html#65">container</a>, a
- * <a href="tables.html#66">reversible container</a>, and a
- * <a href="tables.html#67">sequence</a>, including the
- * <a href="tables.html#68">optional sequence requirements</a> with the
- * %exception of @c push_front and @c pop_front.
- *
- * In some terminology a vector can be described as a dynamic C-style array,
- * it offers fast and efficient access to individual elements in any order
- * and saves the user from worrying about memory and size allocation.
- * Subscripting ( [] ) access is also provided as with C-style arrays.
-*/
-template <class _Tp, class _Alloc = allocator<_Tp> >
-class vector : protected _Vector_base<_Tp, _Alloc>
-{
- // concept requirements
- __glibcpp_class_requires(_Tp, _SGIAssignableConcept)
-
-private:
- typedef _Vector_base<_Tp, _Alloc> _Base;
- typedef vector<_Tp, _Alloc> vector_type;
-public:
- typedef _Tp value_type;
- typedef value_type* pointer;
- typedef const value_type* const_pointer;
- typedef __gnu_cxx::__normal_iterator<pointer, vector_type> iterator;
- typedef __gnu_cxx::__normal_iterator<const_pointer, vector_type>
- const_iterator;
- typedef value_type& reference;
- typedef const value_type& const_reference;
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
-
- typedef typename _Base::allocator_type allocator_type;
- allocator_type get_allocator() const { return _Base::get_allocator(); }
-
- typedef reverse_iterator<const_iterator> const_reverse_iterator;
- typedef reverse_iterator<iterator> reverse_iterator;
-
-protected:
- using _Base::_M_allocate;
- using _Base::_M_deallocate;
- using _Base::_M_start;
- using _Base::_M_finish;
- using _Base::_M_end_of_storage;
-
-protected:
- void _M_insert_aux(iterator __position, const _Tp& __x);
- void _M_insert_aux(iterator __position);
-
-public:
- /**
- * Returns a read/write iterator that points to the first element in the
- * vector. Iteration is done in ordinary element order.
- */
- iterator begin() { return iterator (_M_start); }
-
- /**
- * Returns a read-only (constant) iterator that points to the first element
- * in the vector. Iteration is done in ordinary element order.
- */
- const_iterator begin() const
- { return const_iterator (_M_start); }
-
+ /// @if maint Primary default version. @endif
/**
- * Returns a read/write iterator that points one past the last element in
- * the vector. Iteration is done in ordinary element order.
+ * @if maint
+ * See bits/stl_deque.h's _Deque_alloc_base for an explanation.
+ * @endif
*/
- iterator end() { return iterator (_M_finish); }
-
- /**
- * Returns a read-only (constant) iterator that points one past the last
- * element in the vector. Iteration is done in ordinary element order.
- */
- const_iterator end() const { return const_iterator (_M_finish); }
-
- /**
- * Returns a read/write reverse iterator that points to the last element in
- * the vector. Iteration is done in reverse element order.
- */
- reverse_iterator rbegin()
- { return reverse_iterator(end()); }
-
- /**
- * Returns a read-only (constant) reverse iterator that points to the last
- * element in the vector. Iteration is done in reverse element order.
- */
- const_reverse_iterator rbegin() const
- { return const_reverse_iterator(end()); }
-
- /**
- * Returns a read/write reverse iterator that points to one before the
- * first element in the vector. Iteration is done in reverse element
- * order.
- */
- reverse_iterator rend()
- { return reverse_iterator(begin()); }
-
- /**
- * Returns a read-only (constant) reverse iterator that points to one
- * before the first element in the vector. Iteration is done in reverse
- * element order.
- */
- const_reverse_iterator rend() const
- { return const_reverse_iterator(begin()); }
-
- /** Returns the number of elements in the vector. */
- size_type size() const
- { return size_type(end() - begin()); }
-
- /** Returns the size of the largest possible vector. */
- size_type max_size() const
- { return size_type(-1) / sizeof(_Tp); }
-
- /**
- * Returns the amount of memory that has been alocated for the current
- * elements (?).
- */
- size_type capacity() const
- { return size_type(const_iterator(_M_end_of_storage) - begin()); }
-
- /**
- * Returns true if the vector is empty. (Thus begin() would equal end().)
- */
- bool empty() const
- { return begin() == end(); }
-
+ template<typename _Tp, typename _Allocator, bool _IsStatic>
+ class _Vector_alloc_base
+ {
+ public:
+ typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type
+ allocator_type;
+
+ allocator_type
+ get_allocator() const { return _M_data_allocator; }
+
+ _Vector_alloc_base(const allocator_type& __a)
+ : _M_data_allocator(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0)
+ { }
+
+ protected:
+ allocator_type _M_data_allocator;
+ _Tp* _M_start;
+ _Tp* _M_finish;
+ _Tp* _M_end_of_storage;
+
+ _Tp*
+ _M_allocate(size_t __n) { return _M_data_allocator.allocate(__n); }
+
+ void
+ _M_deallocate(_Tp* __p, size_t __n)
+ { if (__p) _M_data_allocator.deallocate(__p, __n); }
+ };
+
+ /// @if maint Specialization for instanceless allocators. @endif
+ template<typename _Tp, typename _Allocator>
+ class _Vector_alloc_base<_Tp, _Allocator, true>
+ {
+ public:
+ typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type
+ allocator_type;
+
+ allocator_type
+ get_allocator() const { return allocator_type(); }
+
+ _Vector_alloc_base(const allocator_type&)
+ : _M_start(0), _M_finish(0), _M_end_of_storage(0)
+ { }
+
+ protected:
+ _Tp* _M_start;
+ _Tp* _M_finish;
+ _Tp* _M_end_of_storage;
+
+ typedef typename _Alloc_traits<_Tp, _Allocator>::_Alloc_type _Alloc_type;
+
+ _Tp*
+ _M_allocate(size_t __n) { return _Alloc_type::allocate(__n); }
+
+ void
+ _M_deallocate(_Tp* __p, size_t __n) { _Alloc_type::deallocate(__p, __n);}
+ };
+
+
/**
- * @brief Subscript access to the data contained in the vector.
- * @param n The element for which data should be accessed.
- * @return Read/write reference to data.
- *
- * This operator allows for easy, array-style, data access.
- * Note that data access with this operator is unchecked and out_of_range
- * lookups are not defined. (For checked lookups see at().)
+ * @if maint
+ * See bits/stl_deque.h's _Deque_base for an explanation.
+ * @endif
*/
- reference operator[](size_type __n) { return *(begin() + __n); }
-
+ template<typename _Tp, typename _Alloc>
+ struct _Vector_base
+ : public _Vector_alloc_base<_Tp, _Alloc,
+ _Alloc_traits<_Tp, _Alloc>::_S_instanceless>
+ {
+ public:
+ typedef _Vector_alloc_base<_Tp, _Alloc,
+ _Alloc_traits<_Tp, _Alloc>::_S_instanceless>
+ _Base;
+ typedef typename _Base::allocator_type allocator_type;
+
+ _Vector_base(const allocator_type& __a)
+ : _Base(__a) { }
+
+ _Vector_base(size_t __n, const allocator_type& __a)
+ : _Base(__a)
+ {
+ _M_start = _M_allocate(__n);
+ _M_finish = _M_start;
+ _M_end_of_storage = _M_start + __n;
+ }
+
+ ~_Vector_base()
+ { _M_deallocate(_M_start, _M_end_of_storage - _M_start); }
+ };
+
+
/**
- * @brief Subscript access to the data contained in the vector.
- * @param n The element for which data should be accessed.
- * @return Read-only (constant) reference to data.
+ * @brief A standard container which offers fixed time access to individual
+ * elements in any order.
*
- * This operator allows for easy, array-style, data access.
- * Note that data access with this operator is unchecked and out_of_range
- * lookups are not defined. (For checked lookups see at().)
- */
- const_reference operator[](size_type __n) const { return *(begin() + __n); }
-
- void _M_range_check(size_type __n) const {
- if (__n >= this->size())
- __throw_out_of_range("vector");
- }
-
- /**
- * @brief Provides access to the data contained in the vector.
- * @param n The element for which data should be accessed.
- * @return Read/write reference to data.
+ * @ingroup Containers
+ * @ingroup Sequences
*
- * This function provides for safer data access. The parameter is first
- * checked that it is in the range of the vector. The function throws
- * out_of_range if the check fails.
- */
- reference at(size_type __n)
- { _M_range_check(__n); return (*this)[__n]; }
-
- /**
- * @brief Provides access to the data contained in the vector.
- * @param n The element for which data should be accessed.
- * @return Read-only (constant) reference to data.
+ * Meets the requirements of a <a href="tables.html#65">container</a>, a
+ * <a href="tables.html#66">reversible container</a>, and a
+ * <a href="tables.html#67">sequence</a>, including the
+ * <a href="tables.html#68">optional sequence requirements</a> with the
+ * %exception of @c push_front and @c pop_front.
*
- * This function provides for safer data access. The parameter is first
- * checked that it is in the range of the vector. The function throws
- * out_of_range if the check fails.
+ * In some terminology a %vector can be described as a dynamic C-style array,
+ * it offers fast and efficient access to individual elements in any order
+ * and saves the user from worrying about memory and size allocation.
+ * Subscripting ( @c [] ) access is also provided as with C-style arrays.
*/
- const_reference at(size_type __n) const
- { _M_range_check(__n); return (*this)[__n]; }
-
-
- explicit vector(const allocator_type& __a = allocator_type())
- : _Base(__a) {}
-
- vector(size_type __n, const _Tp& __value,
- const allocator_type& __a = allocator_type())
- : _Base(__n, __a)
- { _M_finish = uninitialized_fill_n(_M_start, __n, __value); }
-
- explicit vector(size_type __n)
- : _Base(__n, allocator_type())
- { _M_finish = uninitialized_fill_n(_M_start, __n, _Tp()); }
-
- vector(const vector<_Tp, _Alloc>& __x)
- : _Base(__x.size(), __x.get_allocator())
- { _M_finish = uninitialized_copy(__x.begin(), __x.end(), _M_start); }
-
- // Check whether it's an integral type. If so, it's not an iterator.
- template <class _InputIterator>
- vector(_InputIterator __first, _InputIterator __last,
- const allocator_type& __a = allocator_type())
+ template<typename _Tp, typename _Alloc = allocator<_Tp> >
+ class vector : protected _Vector_base<_Tp, _Alloc>
+ {
+ // Concept requirements.
+ __glibcpp_class_requires(_Tp, _SGIAssignableConcept)
+
+ typedef _Vector_base<_Tp, _Alloc> _Base;
+ typedef vector<_Tp, _Alloc> vector_type;
+
+ public:
+ typedef _Tp value_type;
+ typedef value_type* pointer;
+ typedef const value_type* const_pointer;
+ typedef __gnu_cxx::__normal_iterator<pointer, vector_type> iterator;
+ typedef __gnu_cxx::__normal_iterator<const_pointer, vector_type>
+ const_iterator;
+ typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
+ typedef std::reverse_iterator<iterator> reverse_iterator;
+ typedef value_type& reference;
+ typedef const value_type& const_reference;
+ typedef size_t size_type;
+ typedef ptrdiff_t difference_type;
+ typedef typename _Base::allocator_type allocator_type;
+
+ protected:
+ /** @if maint
+ * These two functions and three data members are all from the
+ * top-most base class, which varies depending on the type of
+ * %allocator. They should be pretty self-explanatory, as
+ * %vector uses a simple contiguous allocation scheme. @endif
+ */
+ using _Base::_M_allocate;
+ using _Base::_M_deallocate;
+ using _Base::_M_start;
+ using _Base::_M_finish;
+ using _Base::_M_end_of_storage;
+
+ public:
+ // [23.2.4.1] construct/copy/destroy
+ // (assign() and get_allocator() are also listed in this section)
+ /**
+ * @brief Default constructor creates no elements.
+ */
+ explicit
+ vector(const allocator_type& __a = allocator_type())
+ : _Base(__a) { }
+
+ /**
+ * @brief Create a %vector with copies of an exemplar element.
+ * @param n The number of elements to initially create.
+ * @param value An element to copy.
+ *
+ * This constructor fills the %vector with @a n copies of @a value.
+ */
+ vector(size_type __n, const value_type& __value,
+ const allocator_type& __a = allocator_type())
+ : _Base(__n, __a)
+ { _M_finish = uninitialized_fill_n(_M_start, __n, __value); }
+
+ /**
+ * @brief Create a %vector with default elements.
+ * @param n The number of elements to initially create.
+ *
+ * This constructor fills the %vector with @a n copies of a
+ * default-constructed element.
+ */
+ explicit
+ vector(size_type __n)
+ : _Base(__n, allocator_type())
+ { _M_finish = uninitialized_fill_n(_M_start, __n, value_type()); }
+
+ /**
+ * @brief %Vector copy constructor.
+ * @param x A %vector of identical element and allocator types.
+ *
+ * The newly-created %vector uses a copy of the allocation
+ * object used by @a x. All the elements of @a x are copied,
+ * but any extra memory in
+ * @a x (for fast expansion) will not be copied.
+ */
+ vector(const vector& __x)
+ : _Base(__x.size(), __x.get_allocator())
+ { _M_finish = uninitialized_copy(__x.begin(), __x.end(), _M_start); }
+
+ /**
+ * @brief Builds a %vector from a range.
+ * @param first An input iterator.
+ * @param last An input iterator.
+ *
+ * Create a %vector consisting of copies of the elements from
+ * [first,last).
+ *
+ * If the iterators are forward, bidirectional, or random-access, then
+ * this will call the elements' copy constructor N times (where N is
+ * distance(first,last)) and do no memory reallocation. But if only
+ * input iterators are used, then this will do at most 2N calls to the
+ * copy constructor, and logN memory reallocations.
+ */
+ template<typename _InputIterator>
+ vector(_InputIterator __first, _InputIterator __last,
+ const allocator_type& __a = allocator_type())
: _Base(__a)
- {
- typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
- _M_initialize_aux(__first, __last, _Integral());
- }
-
- template <class _Integer>
- void _M_initialize_aux(_Integer __n, _Integer __value, __true_type)
- {
- _M_start = _M_allocate(__n);
- _M_end_of_storage = _M_start + __n;
- _M_finish = uninitialized_fill_n(_M_start, __n, __value);
- }
-
- template<class _InputIterator>
- void
- _M_initialize_aux(_InputIterator __first, _InputIterator __last, __false_type)
- {
- typedef typename iterator_traits<_InputIterator>::iterator_category _IterCategory;
+ {
+ // Check whether it's an integral type. If so, it's not an iterator.
+ typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
+ _M_initialize_dispatch(__first, __last, _Integral());
+ }
+
+ /**
+ * The dtor only erases the elements, and note that if the elements
+ * themselves are pointers, the pointed-to memory is not touched in any
+ * way. Managing the pointer is the user's responsibilty.
+ */
+ ~vector() { _Destroy(_M_start, _M_finish); }
+
+ /**
+ * @brief %Vector assignment operator.
+ * @param x A %vector of identical element and allocator types.
+ *
+ * All the elements of @a x are copied, but any extra memory in
+ * @a x (for fast expansion) will not be copied. Unlike the
+ * copy constructor, the allocator object is not copied.
+ */
+ vector&
+ operator=(const vector& __x);
+
+ /**
+ * @brief Assigns a given value to a %vector.
+ * @param n Number of elements to be assigned.
+ * @param val Value to be assigned.
+ *
+ * This function fills a %vector with @a n copies of the given
+ * value. Note that the assignment completely changes the
+ * %vector and that the resulting %vector's size is the same as
+ * the number of elements assigned. Old data may be lost.
+ */
+ void
+ assign(size_type __n, const value_type& __val)
+ { _M_fill_assign(__n, __val); }
+
+ /**
+ * @brief Assigns a range to a %vector.
+ * @param first An input iterator.
+ * @param last An input iterator.
+ *
+ * This function fills a %vector with copies of the elements in the
+ * range [first,last).
+ *
+ * Note that the assignment completely changes the %vector and
+ * that the resulting %vector's size is the same as the number
+ * of elements assigned. Old data may be lost.
+ */
+ template<typename _InputIterator>
+ void
+ assign(_InputIterator __first, _InputIterator __last)
+ {
+ // Check whether it's an integral type. If so, it's not an iterator.
+ typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
+ _M_assign_dispatch(__first, __last, _Integral());
+ }
+
+ /// Get a copy of the memory allocation object.
+ allocator_type
+ get_allocator() const { return _Base::get_allocator(); }
+
+ // iterators
+ /**
+ * Returns a read/write iterator that points to the first element in the
+ * %vector. Iteration is done in ordinary element order.
+ */
+ iterator
+ begin() { return iterator (_M_start); }
+
+ /**
+ * Returns a read-only (constant) iterator that points to the
+ * first element in the %vector. Iteration is done in ordinary
+ * element order.
+ */
+ const_iterator
+ begin() const { return const_iterator (_M_start); }
+
+ /**
+ * Returns a read/write iterator that points one past the last
+ * element in the %vector. Iteration is done in ordinary
+ * element order.
+ */
+ iterator
+ end() { return iterator (_M_finish); }
+
+ /**
+ * Returns a read-only (constant) iterator that points one past the last
+ * element in the %vector. Iteration is done in ordinary element order.
+ */
+ const_iterator
+ end() const { return const_iterator (_M_finish); }
+
+ /**
+ * Returns a read/write reverse iterator that points to the
+ * last element in the %vector. Iteration is done in reverse
+ * element order.
+ */
+ reverse_iterator
+ rbegin() { return reverse_iterator(end()); }
+
+ /**
+ * Returns a read-only (constant) reverse iterator that points
+ * to the last element in the %vector. Iteration is done in
+ * reverse element order.
+ */
+ const_reverse_iterator
+ rbegin() const { return const_reverse_iterator(end()); }
+
+ /**
+ * Returns a read/write reverse iterator that points to one before the
+ * first element in the %vector. Iteration is done in reverse element
+ * order.
+ */
+ reverse_iterator
+ rend() { return reverse_iterator(begin()); }
+
+ /**
+ * Returns a read-only (constant) reverse iterator that points
+ * to one before the first element in the %vector. Iteration
+ * is done in reverse element order.
+ */
+ const_reverse_iterator
+ rend() const { return const_reverse_iterator(begin()); }
+
+ // [23.2.4.2] capacity
+ /** Returns the number of elements in the %vector. */
+ size_type
+ size() const { return size_type(end() - begin()); }
+
+ /** Returns the size() of the largest possible %vector. */
+ size_type
+ max_size() const { return size_type(-1) / sizeof(value_type); }
+
+ /**
+ * @brief Resizes the %vector to the specified number of elements.
+ * @param new_size Number of elements the %vector should contain.
+ * @param x Data with which new elements should be populated.
+ *
+ * This function will %resize the %vector to the specified
+ * number of elements. If the number is smaller than the
+ * %vector's current size the %vector is truncated, otherwise
+ * the %vector is extended and new elements are populated with
+ * given data.
+ */
+ void
+ resize(size_type __new_size, const value_type& __x)
+ {
+ if (__new_size < size())
+ erase(begin() + __new_size, end());
+ else
+ insert(end(), __new_size - size(), __x);
+ }
+
+ /**
+ * @brief Resizes the %vector to the specified number of elements.
+ * @param new_size Number of elements the %vector should contain.
+ *
+ * This function will resize the %vector to the specified
+ * number of elements. If the number is smaller than the
+ * %vector's current size the %vector is truncated, otherwise
+ * the %vector is extended and new elements are
+ * default-constructed.
+ */
+ void
+ resize(size_type __new_size) { resize(__new_size, value_type()); }
+
+ /**
+ * Returns the total number of elements that the %vector can hold before
+ * needing to allocate more memory.
+ */
+ size_type
+ capacity() const
+ { return size_type(const_iterator(_M_end_of_storage) - begin()); }
+
+ /**
+ * Returns true if the %vector is empty. (Thus begin() would
+ * equal end().)
+ */
+ bool
+ empty() const { return begin() == end(); }
+
+ /**
+ * @brief Attempt to preallocate enough memory for specified number of
+ * elements.
+ * @param n Number of elements required.
+ * @throw std::length_error If @a n exceeds @c max_size().
+ *
+ * This function attempts to reserve enough memory for the
+ * %vector to hold the specified number of elements. If the
+ * number requested is more than max_size(), length_error is
+ * thrown.
+ *
+ * The advantage of this function is that if optimal code is a
+ * necessity and the user can determine the number of elements
+ * that will be required, the user can reserve the memory in
+ * %advance, and thus prevent a possible reallocation of memory
+ * and copying of %vector data.
+ */
+ void
+ reserve(size_type __n);
+
+ // element access
+ /**
+ * @brief Subscript access to the data contained in the %vector.
+ * @param n The index of the element for which data should be accessed.
+ * @return Read/write reference to data.
+ *
+ * This operator allows for easy, array-style, data access.
+ * Note that data access with this operator is unchecked and
+ * out_of_range lookups are not defined. (For checked lookups
+ * see at().)
+ */
+ reference
+ operator[](size_type __n) { return *(begin() + __n); }
+
+ /**
+ * @brief Subscript access to the data contained in the %vector.
+ * @param n The index of the element for which data should be
+ * accessed.
+ * @return Read-only (constant) reference to data.
+ *
+ * This operator allows for easy, array-style, data access.
+ * Note that data access with this operator is unchecked and
+ * out_of_range lookups are not defined. (For checked lookups
+ * see at().)
+ */
+ const_reference
+ operator[](size_type __n) const { return *(begin() + __n); }
+
+ protected:
+ /// @if maint Safety check used only from at(). @endif
+ void
+ _M_range_check(size_type __n) const
+ {
+ if (__n >= this->size())
+ __throw_out_of_range("vector [] access out of range");
+ }
+
+ public:
+ /**
+ * @brief Provides access to the data contained in the %vector.
+ * @param n The index of the element for which data should be
+ * accessed.
+ * @return Read/write reference to data.
+ * @throw std::out_of_range If @a n is an invalid index.
+ *
+ * This function provides for safer data access. The parameter is first
+ * checked that it is in the range of the vector. The function throws
+ * out_of_range if the check fails.
+ */
+ reference
+ at(size_type __n) { _M_range_check(__n); return (*this)[__n]; }
+
+ /**
+ * @brief Provides access to the data contained in the %vector.
+ * @param n The index of the element for which data should be
+ * accessed.
+ * @return Read-only (constant) reference to data.
+ * @throw std::out_of_range If @a n is an invalid index.
+ *
+ * This function provides for safer data access. The parameter
+ * is first checked that it is in the range of the vector. The
+ * function throws out_of_range if the check fails.
+ */
+ const_reference
+ at(size_type __n) const { _M_range_check(__n); return (*this)[__n]; }
+
+ /**
+ * Returns a read/write reference to the data at the first
+ * element of the %vector.
+ */
+ reference
+ front() { return *begin(); }
+
+ /**
+ * Returns a read-only (constant) reference to the data at the first
+ * element of the %vector.
+ */
+ const_reference
+ front() const { return *begin(); }
+
+ /**
+ * Returns a read/write reference to the data at the last element of the
+ * %vector.
+ */
+ reference
+ back() { return *(end() - 1); }
+
+ /**
+ * Returns a read-only (constant) reference to the data at the last
+ * element of the %vector.
+ */
+ const_reference
+ back() const { return *(end() - 1); }
+
+ // [23.2.4.3] modifiers
+ /**
+ * @brief Add data to the end of the %vector.
+ * @param x Data to be added.
+ *
+ * This is a typical stack operation. The function creates an
+ * element at the end of the %vector and assigns the given data
+ * to it. Due to the nature of a %vector this operation can be
+ * done in constant time if the %vector has preallocated space
+ * available.
+ */
+ void
+ push_back(const value_type& __x)
+ {
+ if (_M_finish != _M_end_of_storage)
+ {
+ _Construct(_M_finish, __x);
+ ++_M_finish;
+ }
+ else
+ _M_insert_aux(end(), __x);
+ }
+
+ /**
+ * @brief Removes last element.
+ *
+ * This is a typical stack operation. It shrinks the %vector by one.
+ *
+ * Note that no data is returned, and if the last element's data is
+ * needed, it should be retrieved before pop_back() is called.
+ */
+ void
+ pop_back()
+ {
+ --_M_finish;
+ _Destroy(_M_finish);
+ }
+
+ /**
+ * @brief Inserts given value into %vector before specified iterator.
+ * @param position An iterator into the %vector.
+ * @param x Data to be inserted.
+ * @return An iterator that points to the inserted data.
+ *
+ * This function will insert a copy of the given value before
+ * the specified location. Note that this kind of operation
+ * could be expensive for a %vector and if it is frequently
+ * used the user should consider using std::list.
+ */
+ iterator
+ insert(iterator __position, const value_type& __x);
+
+#ifdef _GLIBCPP_DEPRECATED
+ /**
+ * @brief Inserts an element into the %vector.
+ * @param position An iterator into the %vector.
+ * @return An iterator that points to the inserted element.
+ *
+ * This function will insert a default-constructed element
+ * before the specified location. You should consider using
+ * insert(position,value_type()) instead. Note that this kind
+ * of operation could be expensive for a vector and if it is
+ * frequently used the user should consider using std::list.
+ *
+ * @note This was deprecated in 3.2 and will be removed in 3.4.
+ * You must define @c _GLIBCPP_DEPRECATED to make this visible
+ * in 3.2; see c++config.h.
+ */
+ iterator
+ insert(iterator __position)
+ { return insert(__position, value_type()); }
+#endif
+
+ /**
+ * @brief Inserts a number of copies of given data into the %vector.
+ * @param position An iterator into the %vector.
+ * @param n Number of elements to be inserted.
+ * @param x Data to be inserted.
+ *
+ * This function will insert a specified number of copies of
+ * the given data before the location specified by @a position.
+ *
+ * Note that this kind of operation could be expensive for a
+ * %vector and if it is frequently used the user should
+ * consider using std::list.
+ */
+ void
+ insert(iterator __pos, size_type __n, const value_type& __x)
+ { _M_fill_insert(__pos, __n, __x); }
+
+ /**
+ * @brief Inserts a range into the %vector.
+ * @param pos An iterator into the %vector.
+ * @param first An input iterator.
+ * @param last An input iterator.
+ *
+ * This function will insert copies of the data in the range
+ * [first,last) into the %vector before the location specified
+ * by @a pos.
+ *
+ * Note that this kind of operation could be expensive for a
+ * %vector and if it is frequently used the user should
+ * consider using std::list.
+ */
+ template<typename _InputIterator>
+ void
+ insert(iterator __pos, _InputIterator __first, _InputIterator __last)
+ {
+ // Check whether it's an integral type. If so, it's not an iterator.
+ typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
+ _M_insert_dispatch(__pos, __first, __last, _Integral());
+ }
+
+ /**
+ * @brief Remove element at given position.
+ * @param position Iterator pointing to element to be erased.
+ * @return An iterator pointing to the next element (or end()).
+ *
+ * This function will erase the element at the given position and thus
+ * shorten the %vector by one.
+ *
+ * Note This operation could be expensive and if it is
+ * frequently used the user should consider using std::list.
+ * The user is also cautioned that this function only erases
+ * the element, and that if the element is itself a pointer,
+ * the pointed-to memory is not touched in any way. Managing
+ * the pointer is the user's responsibilty.
+ */
+ iterator
+ erase(iterator __position);
+
+ /**
+ * @brief Remove a range of elements.
+ * @param first Iterator pointing to the first element to be erased.
+ * @param last Iterator pointing to one past the last element to be
+ * erased.
+ * @return An iterator pointing to the element pointed to by @a last
+ * prior to erasing (or end()).
+ *
+ * This function will erase the elements in the range [first,last) and
+ * shorten the %vector accordingly.
+ *
+ * Note This operation could be expensive and if it is
+ * frequently used the user should consider using std::list.
+ * The user is also cautioned that this function only erases
+ * the elements, and that if the elements themselves are
+ * pointers, the pointed-to memory is not touched in any way.
+ * Managing the pointer is the user's responsibilty.
+ */
+ iterator
+ erase(iterator __first, iterator __last);
+
+ /**
+ * @brief Swaps data with another %vector.
+ * @param x A %vector of the same element and allocator types.
+ *
+ * This exchanges the elements between two vectors in constant time.
+ * (Three pointers, so it should be quite fast.)
+ * Note that the global std::swap() function is specialized such that
+ * std::swap(v1,v2) will feed to this function.
+ */
+ void
+ swap(vector& __x)
+ {
+ std::swap(_M_start, __x._M_start);
+ std::swap(_M_finish, __x._M_finish);
+ std::swap(_M_end_of_storage, __x._M_end_of_storage);
+ }
+
+ /**
+ * Erases all the elements. Note that this function only erases the
+ * elements, and that if the elements themselves are pointers, the
+ * pointed-to memory is not touched in any way. Managing the pointer is
+ * the user's responsibilty.
+ */
+ void
+ clear() { erase(begin(), end()); }
+
+ protected:
+ /**
+ * @if maint
+ * Memory expansion handler. Uses the member allocation function to
+ * obtain @a n bytes of memory, and then copies [first,last) into it.
+ * @endif
+ */
+ template<typename _ForwardIterator>
+ pointer
+ _M_allocate_and_copy(size_type __n,
+ _ForwardIterator __first, _ForwardIterator __last)
+ {
+ pointer __result = _M_allocate(__n);
+ try
+ {
+ uninitialized_copy(__first, __last, __result);
+ return __result;
+ }
+ catch(...)
+ {
+ _M_deallocate(__result, __n);
+ __throw_exception_again;
+ }
+ }
+
+
+ // Internal constructor functions follow.
+
+ // Called by the range constructor to implement [23.1.1]/9
+ template<typename _Integer>
+ void
+ _M_initialize_dispatch(_Integer __n, _Integer __value, __true_type)
+ {
+ _M_start = _M_allocate(__n);
+ _M_end_of_storage = _M_start + __n;
+ _M_finish = uninitialized_fill_n(_M_start, __n, __value);
+ }
+
+ // Called by the range constructor to implement [23.1.1]/9
+ template<typename _InputIter>
+ void
+ _M_initialize_dispatch(_InputIter __first, _InputIter __last,
+ __false_type)
+ {
+ typedef typename iterator_traits<_InputIter>::iterator_category
+ _IterCategory;
_M_range_initialize(__first, __last, _IterCategory());
}
-
- ~vector()
- { _Destroy(_M_start, _M_finish); }
-
- vector<_Tp, _Alloc>& operator=(const vector<_Tp, _Alloc>& __x);
-
- /**
- * @brief Attempt to preallocate enough memory for specified number of
- * elements.
- * @param n Number of elements required
- *
- * This function attempts to reserve enough memory for the vector to hold
- * the specified number of elements. If the number requested is more than
- * max_size() length_error is thrown.
- *
- * The advantage of this function is that if optimal code is a necessity
- * and the user can determine the number of elements that will be required
- * the user can reserve the memory and thus prevent a possible
- * reallocation of memory and copy of vector data.
- */
- void reserve(size_type __n) {
- if (__n > this->max_size())
- __throw_length_error("vector::reserve");
- if (this->capacity() < __n) {
- const size_type __old_size = size();
- pointer __tmp = _M_allocate_and_copy(__n, _M_start, _M_finish);
- _Destroy(_M_start, _M_finish);
- _M_deallocate(_M_start, _M_end_of_storage - _M_start);
- _M_start = __tmp;
- _M_finish = __tmp + __old_size;
- _M_end_of_storage = _M_start + __n;
- }
- }
-
- // assign(), a generalized assignment member function. Two
- // versions: one that takes a count, and one that takes a range.
- // The range version is a member template, so we dispatch on whether
- // or not the type is an integer.
-
- /**
- * @brief Assigns a given value or range to a vector.
- * @param n Number of elements to be assigned.
- * @param val Value to be assigned.
- *
- * This function can be used to assign a range to a vector or fill it
- * with a specified number of copies of the given value.
- * Note that the assignment completely changes the vector and that the
- * resulting vector's size is the same as the number of elements assigned.
- * Old data may be lost.
- */
- void assign(size_type __n, const _Tp& __val) { _M_fill_assign(__n, __val); }
- void _M_fill_assign(size_type __n, const _Tp& __val);
-
- template<class _InputIterator>
- void
- assign(_InputIterator __first, _InputIterator __last)
- {
- typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
- _M_assign_dispatch(__first, __last, _Integral());
- }
-
- template<class _Integer>
- void
- _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)
- { _M_fill_assign((size_type) __n, (_Tp) __val); }
-
- template<class _InputIter>
- void
- _M_assign_dispatch(_InputIter __first, _InputIter __last, __false_type)
- {
- typedef typename iterator_traits<_InputIter>::iterator_category _IterCategory;
- _M_assign_aux(__first, __last, _IterCategory());
- }
-
- template <class _InputIterator>
- void
- _M_assign_aux(_InputIterator __first, _InputIterator __last,
- input_iterator_tag);
-
- template <class _ForwardIterator>
- void
- _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,
- forward_iterator_tag);
-
- /**
- * Returns a read/write reference to the data at the first element of the
- * vector.
- */
- reference front() { return *begin(); }
-
- /**
- * Returns a read-only (constant) reference to the data at the first
- * element of the vector.
- */
- const_reference front() const { return *begin(); }
-
- /**
- * Returns a read/write reference to the data at the last element of the
- * vector.
- */
- reference back() { return *(end() - 1); }
-
- /**
- * Returns a read-only (constant) reference to the data at the first
- * element of the vector.
- */
- const_reference back() const { return *(end() - 1); }
-
- /**
- * @brief Add data to the end of the vector.
- * @param x Data to be added.
- *
- * This is a typical stack operation. The function creates an element at
- * the end of the vector and assigns the given data to it.
- * Due to the nature of a vector this operation can be done in constant
- * time if the vector has preallocated space available.
- */
- void
- push_back(const _Tp& __x)
- {
- if (_M_finish != _M_end_of_storage) {
- _Construct(_M_finish, __x);
- ++_M_finish;
- }
- else
- _M_insert_aux(end(), __x);
- }
-
+
+ // Called by the second initialize_dispatch above
+ template<typename _InputIterator>
+ void
+ _M_range_initialize(_InputIterator __first,
+ _InputIterator __last, input_iterator_tag)
+ {
+ for ( ; __first != __last; ++__first)
+ push_back(*__first);
+ }
+
+ // Called by the second initialize_dispatch above
+ template<typename _ForwardIterator>
+ void
+ _M_range_initialize(_ForwardIterator __first,
+ _ForwardIterator __last, forward_iterator_tag)
+ {
+ size_type __n = distance(__first, __last);
+ _M_start = _M_allocate(__n);
+ _M_end_of_storage = _M_start + __n;
+ _M_finish = uninitialized_copy(__first, __last, _M_start);
+ }
+
+
+ // Internal assign functions follow. The *_aux functions do the actual
+ // assignment work for the range versions.
+
+ // Called by the range assign to implement [23.1.1]/9
+ template<typename _Integer>
+ void
+ _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)
+ {
+ _M_fill_assign(static_cast<size_type>(__n),
+ static_cast<value_type>(__val));
+ }
+
+ // Called by the range assign to implement [23.1.1]/9
+ template<typename _InputIter>
+ void
+ _M_assign_dispatch(_InputIter __first, _InputIter __last, __false_type)
+ {
+ typedef typename iterator_traits<_InputIter>::iterator_category
+ _IterCategory;
+ _M_assign_aux(__first, __last, _IterCategory());
+ }
+
+ // Called by the second assign_dispatch above
+ template<typename _InputIterator>
+ void
+ _M_assign_aux(_InputIterator __first, _InputIterator __last,
+ input_iterator_tag);
+
+ // Called by the second assign_dispatch above
+ template<typename _ForwardIterator>
+ void
+ _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,
+ forward_iterator_tag);
+
+ // Called by assign(n,t), and the range assign when it turns out
+ // to be the same thing.
+ void
+ _M_fill_assign(size_type __n, const value_type& __val);
+
+
+ // Internal insert functions follow.
+
+ // Called by the range insert to implement [23.1.1]/9
+ template<typename _Integer>
+ void
+ _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val,
+ __true_type)
+ {
+ _M_fill_insert(__pos, static_cast<size_type>(__n),
+ static_cast<value_type>(__val));
+ }
+
+ // Called by the range insert to implement [23.1.1]/9
+ template<typename _InputIterator>
+ void
+ _M_insert_dispatch(iterator __pos, _InputIterator __first,
+ _InputIterator __last, __false_type)
+ {
+ typedef typename iterator_traits<_InputIterator>::iterator_category
+ _IterCategory;
+ _M_range_insert(__pos, __first, __last, _IterCategory());
+ }
+
+ // Called by the second insert_dispatch above
+ template<typename _InputIterator>
+ void
+ _M_range_insert(iterator __pos, _InputIterator __first,
+ _InputIterator __last, input_iterator_tag);
+
+ // Called by the second insert_dispatch above
+ template<typename _ForwardIterator>
+ void
+ _M_range_insert(iterator __pos, _ForwardIterator __first,
+ _ForwardIterator __last, forward_iterator_tag);
+
+ // Called by insert(p,n,x), and the range insert when it turns out to be
+ // the same thing.
+ void
+ _M_fill_insert(iterator __pos, size_type __n, const value_type& __x);
+
+ // Called by insert(p,x)
+ void
+ _M_insert_aux(iterator __position, const value_type& __x);
+
#ifdef _GLIBCPP_DEPRECATED
- /**
- * Add an element to the end of the vector. The element is
- * default-constructed.
- *
- * @note You must define _GLIBCPP_DEPRECATED to make this visible; see
- * c++config.h.
- */
- void
- push_back()
- {
- if (_M_finish != _M_end_of_storage) {
- _Construct(_M_finish);
- ++_M_finish;
- }
- else
- _M_insert_aux(end());
- }
+ // Unused now (same situation as in deque)
+ void _M_insert_aux(iterator __position);
#endif
-
- void
- swap(vector<_Tp, _Alloc>& __x)
- {
- std::swap(_M_start, __x._M_start);
- std::swap(_M_finish, __x._M_finish);
- std::swap(_M_end_of_storage, __x._M_end_of_storage);
- }
-
+ };
+
+
/**
- * @brief Inserts given value into vector at specified element.
- * @param position An iterator that points to the element where data
- * should be inserted.
- * @param x Data to be inserted.
- * @return An iterator that points to the inserted data.
+ * @brief Vector equality comparison.
+ * @param x A %vector.
+ * @param y A %vector of the same type as @a x.
+ * @return True iff the size and elements of the vectors are equal.
*
- * This function will insert the given value into the specified location.
- * Note that this kind of operation could be expensive for a vector and if
- * it is frequently used the user should consider using std::list.
+ * This is an equivalence relation. It is linear in the size of the
+ * vectors. Vectors are considered equivalent if their sizes are equal,
+ * and if corresponding elements compare equal.
*/
- iterator
- insert(iterator __position, const _Tp& __x)
- {
- size_type __n = __position - begin();
- if (_M_finish != _M_end_of_storage && __position == end()) {
- _Construct(_M_finish, __x);
- ++_M_finish;
- }
- else
- _M_insert_aux(iterator(__position), __x);
- return begin() + __n;
- }
-
- /**
- * @brief Inserts an empty element into the vector.
- * @param position An iterator that points to the element where empty
- * element should be inserted.
- * @param x Data to be inserted.
- * @return An iterator that points to the inserted element.
- *
- * This function will insert an empty element into the specified location.
- * Note that this kind of operation could be expensive for a vector and if
- * it is frequently used the user should consider using std::list.
- */
- iterator
- insert(iterator __position)
- {
- size_type __n = __position - begin();
- if (_M_finish != _M_end_of_storage && __position == end()) {
- _Construct(_M_finish);
- ++_M_finish;
- }
- else
- _M_insert_aux(iterator(__position));
- return begin() + __n;
- }
-
- // Check whether it's an integral type. If so, it's not an iterator.
- template<class _InputIterator>
- void
- insert(iterator __pos, _InputIterator __first, _InputIterator __last)
- {
- typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
- _M_insert_dispatch(__pos, __first, __last, _Integral());
- }
-
- template <class _Integer>
- void
- _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, __true_type)
- { _M_fill_insert(__pos, static_cast<size_type>(__n), static_cast<_Tp>(__val)); }
-
- template<class _InputIterator>
- void
- _M_insert_dispatch(iterator __pos,
- _InputIterator __first, _InputIterator __last,
- __false_type)
- {
- typedef typename iterator_traits<_InputIterator>::iterator_category _IterCategory;
- _M_range_insert(__pos, __first, __last, _IterCategory());
+ template<typename _Tp, typename _Alloc>
+ inline bool
+ operator==(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y)
+ {
+ return __x.size() == __y.size() &&
+ equal(__x.begin(), __x.end(), __y.begin());
}
-
- /**
- * @brief Inserts a number of copies of given data into the vector.
- * @param position An iterator that points to the element where data
- * should be inserted.
- * @param n Amount of elements to be inserted.
- * @param x Data to be inserted.
- *
- * This function will insert a specified number of copies of the given data
- * into the specified location.
- *
- * Note that this kind of operation could be expensive for a vector and if
- * it is frequently used the user should consider using std::list.
- */
- void insert (iterator __pos, size_type __n, const _Tp& __x)
- { _M_fill_insert(__pos, __n, __x); }
-
- void _M_fill_insert (iterator __pos, size_type __n, const _Tp& __x);
-
+
/**
- * @brief Removes last element from vector.
+ * @brief Vector ordering relation.
+ * @param x A %vector.
+ * @param y A %vector of the same type as @a x.
+ * @return True iff @a x is lexographically less than @a y.
*
- * This is a typical stack operation. It allows us to shrink the vector by
- * one.
+ * This is a total ordering relation. It is linear in the size of the
+ * vectors. The elements must be comparable with @c <.
*
- * Note that no data is returned and if last element's data is needed it
- * should be retrieved before pop_back() is called.
+ * See std::lexographical_compare() for how the determination is made.
*/
- void pop_back() {
- --_M_finish;
- _Destroy(_M_finish);
- }
-
- /**
- * @brief Remove element at given position
- * @param position Iterator pointing to element to be erased.
- * @return Doc Me! (Iterator pointing to new element at old location?)
- *
- * This function will erase the element at the given position and thus
- * shorten the vector by one.
- *
- * Note This operation could be expensive and if it is frequently used the
- * user should consider using std::list. The user is also cautioned that
- * this function only erases the element, and that if the element is itself
- * a pointer, the pointed-to memory is not touched in any way. Managing
- * the pointer is the user's responsibilty.
- */
- iterator erase(iterator __position) {
- if (__position + 1 != end())
- copy(__position + 1, end(), __position);
- --_M_finish;
- _Destroy(_M_finish);
- return __position;
- }
-
- /**
- * @brief Remove a range of elements from a vector.
- * @param first Iterator pointing to the first element to be erased.
- * @param last Iterator pointing to the last element to be erased.
- * @return Doc Me! (Iterator pointing to new element at old location?)
- *
- * This function will erase the elements in the given range and shorten the
- * vector accordingly.
- *
- * Note This operation could be expensive and if it is frequently used the
- * user should consider using std::list. The user is also cautioned that
- * this function only erases the elements, and that if the elements
- * themselves are pointers, the pointed-to memory is not touched in any
- * way. Managing the pointer is the user's responsibilty.
- */
- iterator erase(iterator __first, iterator __last) {
- iterator __i(copy(__last, end(), __first));
- _Destroy(__i, end());
- _M_finish = _M_finish - (__last - __first);
- return __first;
- }
-
- /**
- * @brief Resizes the vector to the specified number of elements.
- * @param new_size Number of elements the vector should contain.
- * @param x Data with which new elements should be populated.
- *
- * This function will resize the vector to the specified number of
- * elements. If the number is smaller than the vector's current size the
- * vector is truncated, otherwise the vector is extended and new elements
- * are populated with given data.
- */
- void resize(size_type __new_size, const _Tp& __x) {
- if (__new_size < size())
- erase(begin() + __new_size, end());
- else
- insert(end(), __new_size - size(), __x);
- }
-
- /**
- * @brief Resizes the vector to the specified number of elements.
- * @param new_size Number of elements the vector should contain.
- *
- * This function will resize the vector to the specified number of
- * elements. If the number is smaller than the vector's current size the
- * vector is truncated, otherwise the vector is extended and new elements
- * are left uninitialized.
- */
- void resize(size_type __new_size) { resize(__new_size, _Tp()); }
-
- /**
- * Erases all elements in vector. Note that this function only erases the
- * elements, and that if the elements themselves are pointers, the
- * pointed-to memory is not touched in any way. Managing the pointer is
- * the user's responsibilty.
- */
- void clear() { erase(begin(), end()); }
-
-protected:
-
- template <class _ForwardIterator>
- pointer _M_allocate_and_copy(size_type __n, _ForwardIterator __first,
- _ForwardIterator __last)
- {
- pointer __result = _M_allocate(__n);
- try {
- uninitialized_copy(__first, __last, __result);
- return __result;
- }
- catch(...)
- {
- _M_deallocate(__result, __n);
- __throw_exception_again;
- }
- }
-
- template <class _InputIterator>
- void _M_range_initialize(_InputIterator __first,
- _InputIterator __last, input_iterator_tag)
- {
- for ( ; __first != __last; ++__first)
- push_back(*__first);
- }
-
- // This function is only called by the constructor.
- template <class _ForwardIterator>
- void _M_range_initialize(_ForwardIterator __first,
- _ForwardIterator __last, forward_iterator_tag)
- {
- size_type __n = distance(__first, __last);
- _M_start = _M_allocate(__n);
- _M_end_of_storage = _M_start + __n;
- _M_finish = uninitialized_copy(__first, __last, _M_start);
- }
-
- template <class _InputIterator>
- void _M_range_insert(iterator __pos,
- _InputIterator __first, _InputIterator __last,
- input_iterator_tag);
-
- template <class _ForwardIterator>
- void _M_range_insert(iterator __pos,
- _ForwardIterator __first, _ForwardIterator __last,
- forward_iterator_tag);
-};
-
-template <class _Tp, class _Alloc>
-inline bool
-operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
-{
- return __x.size() == __y.size() &&
- equal(__x.begin(), __x.end(), __y.begin());
-}
-
-template <class _Tp, class _Alloc>
-inline bool
-operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
-{
- return lexicographical_compare(__x.begin(), __x.end(),
- __y.begin(), __y.end());
-}
-
-template <class _Tp, class _Alloc>
-inline void swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y)
-{
- __x.swap(__y);
-}
-
-template <class _Tp, class _Alloc>
-inline bool
-operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) {
- return !(__x == __y);
-}
-
-template <class _Tp, class _Alloc>
-inline bool
-operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) {
- return __y < __x;
-}
-
-template <class _Tp, class _Alloc>
-inline bool
-operator<=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) {
- return !(__y < __x);
-}
-
-template <class _Tp, class _Alloc>
-inline bool
-operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) {
- return !(__x < __y);
-}
-
-template <class _Tp, class _Alloc>
-vector<_Tp,_Alloc>&
-vector<_Tp,_Alloc>::operator=(const vector<_Tp, _Alloc>& __x)
-{
- if (&__x != this) {
- const size_type __xlen = __x.size();
- if (__xlen > capacity()) {
- pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), __x.end());
- _Destroy(_M_start, _M_finish);
- _M_deallocate(_M_start, _M_end_of_storage - _M_start);
- _M_start = __tmp;
- _M_end_of_storage = _M_start + __xlen;
- }
- else if (size() >= __xlen) {
- iterator __i(copy(__x.begin(), __x.end(), begin()));
- _Destroy(__i, end());
- }
- else {
- copy(__x.begin(), __x.begin() + size(), _M_start);
- uninitialized_copy(__x.begin() + size(), __x.end(), _M_finish);
- }
- _M_finish = _M_start + __xlen;
- }
- return *this;
-}
-
-template <class _Tp, class _Alloc>
-void vector<_Tp, _Alloc>::_M_fill_assign(size_t __n, const value_type& __val)
-{
- if (__n > capacity()) {
- vector<_Tp, _Alloc> __tmp(__n, __val, get_allocator());
- __tmp.swap(*this);
- }
- else if (__n > size()) {
- fill(begin(), end(), __val);
- _M_finish = uninitialized_fill_n(_M_finish, __n - size(), __val);
- }
- else
- erase(fill_n(begin(), __n, __val), end());
-}
-
-template <class _Tp, class _Alloc> template <class _InputIter>
-void vector<_Tp, _Alloc>::_M_assign_aux(_InputIter __first, _InputIter __last,
- input_iterator_tag) {
- iterator __cur(begin());
- for ( ; __first != __last && __cur != end(); ++__cur, ++__first)
- *__cur = *__first;
- if (__first == __last)
- erase(__cur, end());
- else
- insert(end(), __first, __last);
-}
-
-template <class _Tp, class _Alloc> template <class _ForwardIter>
-void
-vector<_Tp, _Alloc>::_M_assign_aux(_ForwardIter __first, _ForwardIter __last,
- forward_iterator_tag) {
- size_type __len = distance(__first, __last);
-
- if (__len > capacity()) {
- pointer __tmp(_M_allocate_and_copy(__len, __first, __last));
- _Destroy(_M_start, _M_finish);
- _M_deallocate(_M_start, _M_end_of_storage - _M_start);
- _M_start = __tmp;
- _M_end_of_storage = _M_finish = _M_start + __len;
- }
- else if (size() >= __len) {
- iterator __new_finish(copy(__first, __last, _M_start));
- _Destroy(__new_finish, end());
- _M_finish = __new_finish.base();
- }
- else {
- _ForwardIter __mid = __first;
- advance(__mid, size());
- copy(__first, __mid, _M_start);
- _M_finish = uninitialized_copy(__mid, __last, _M_finish);
- }
-}
-
-template <class _Tp, class _Alloc>
-void
-vector<_Tp, _Alloc>::_M_insert_aux(iterator __position, const _Tp& __x)
-{
- if (_M_finish != _M_end_of_storage) {
- _Construct(_M_finish, *(_M_finish - 1));
- ++_M_finish;
- _Tp __x_copy = __x;
- copy_backward(__position, iterator(_M_finish - 2), iterator(_M_finish- 1));
- *__position = __x_copy;
- }
- else {
- const size_type __old_size = size();
- const size_type __len = __old_size != 0 ? 2 * __old_size : 1;
- iterator __new_start(_M_allocate(__len));
- iterator __new_finish(__new_start);
- try {
- __new_finish = uninitialized_copy(iterator(_M_start), __position,
- __new_start);
- _Construct(__new_finish.base(), __x);
- ++__new_finish;
- __new_finish = uninitialized_copy(__position, iterator(_M_finish),
- __new_finish);
- }
- catch(...)
- {
- _Destroy(__new_start,__new_finish);
- _M_deallocate(__new_start.base(),__len);
- __throw_exception_again;
- }
- _Destroy(begin(), end());
- _M_deallocate(_M_start, _M_end_of_storage - _M_start);
- _M_start = __new_start.base();
- _M_finish = __new_finish.base();
- _M_end_of_storage = __new_start.base() + __len;
- }
-}
-
-template <class _Tp, class _Alloc>
-void
-vector<_Tp, _Alloc>::_M_insert_aux(iterator __position)
-{
- if (_M_finish != _M_end_of_storage) {
- _Construct(_M_finish, *(_M_finish - 1));
- ++_M_finish;
- copy_backward(__position, iterator(_M_finish - 2),
- iterator(_M_finish - 1));
- *__position = _Tp();
- }
- else {
- const size_type __old_size = size();
- const size_type __len = __old_size != 0 ? 2 * __old_size : 1;
- pointer __new_start = _M_allocate(__len);
- pointer __new_finish = __new_start;
- try {
- __new_finish = uninitialized_copy(iterator(_M_start), __position,
- __new_start);
- _Construct(__new_finish);
- ++__new_finish;
- __new_finish = uninitialized_copy(__position, iterator(_M_finish),
- __new_finish);
- }
- catch(...)
- {
- _Destroy(__new_start,__new_finish);
- _M_deallocate(__new_start,__len);
- __throw_exception_again;
- }
- _Destroy(begin(), end());
- _M_deallocate(_M_start, _M_end_of_storage - _M_start);
- _M_start = __new_start;
- _M_finish = __new_finish;
- _M_end_of_storage = __new_start + __len;
- }
-}
-
-template <class _Tp, class _Alloc>
-void vector<_Tp, _Alloc>::_M_fill_insert(iterator __position, size_type __n,
- const _Tp& __x)
-{
- if (__n != 0) {
- if (size_type(_M_end_of_storage - _M_finish) >= __n) {
- _Tp __x_copy = __x;
- const size_type __elems_after = end() - __position;
- iterator __old_finish(_M_finish);
- if (__elems_after > __n) {
- uninitialized_copy(_M_finish - __n, _M_finish, _M_finish);
- _M_finish += __n;
- copy_backward(__position, __old_finish - __n, __old_finish);
- fill(__position, __position + __n, __x_copy);
- }
- else {
- uninitialized_fill_n(_M_finish, __n - __elems_after, __x_copy);
- _M_finish += __n - __elems_after;
- uninitialized_copy(__position, __old_finish, _M_finish);
- _M_finish += __elems_after;
- fill(__position, __old_finish, __x_copy);
- }
- }
- else {
- const size_type __old_size = size();
- const size_type __len = __old_size + max(__old_size, __n);
- iterator __new_start(_M_allocate(__len));
- iterator __new_finish(__new_start);
- try {
- __new_finish = uninitialized_copy(begin(), __position, __new_start);
- __new_finish = uninitialized_fill_n(__new_finish, __n, __x);
- __new_finish
- = uninitialized_copy(__position, end(), __new_finish);
- }
- catch(...)
- {
- _Destroy(__new_start,__new_finish);
- _M_deallocate(__new_start.base(),__len);
- __throw_exception_again;
- }
- _Destroy(_M_start, _M_finish);
- _M_deallocate(_M_start, _M_end_of_storage - _M_start);
- _M_start = __new_start.base();
- _M_finish = __new_finish.base();
- _M_end_of_storage = __new_start.base() + __len;
- }
- }
-}
-
-template <class _Tp, class _Alloc> template <class _InputIterator>
-void
-vector<_Tp, _Alloc>::_M_range_insert(iterator __pos,
- _InputIterator __first,
- _InputIterator __last,
- input_iterator_tag)
-{
- for ( ; __first != __last; ++__first) {
- __pos = insert(__pos, *__first);
- ++__pos;
- }
-}
-
-template <class _Tp, class _Alloc> template <class _ForwardIterator>
-void
-vector<_Tp, _Alloc>::_M_range_insert(iterator __position,
- _ForwardIterator __first,
- _ForwardIterator __last,
- forward_iterator_tag)
-{
- if (__first != __last) {
- size_type __n = distance(__first, __last);
- if (size_type(_M_end_of_storage - _M_finish) >= __n) {
- const size_type __elems_after = end() - __position;
- iterator __old_finish(_M_finish);
- if (__elems_after > __n) {
- uninitialized_copy(_M_finish - __n, _M_finish, _M_finish);
- _M_finish += __n;
- copy_backward(__position, __old_finish - __n, __old_finish);
- copy(__first, __last, __position);
- }
- else {
- _ForwardIterator __mid = __first;
- advance(__mid, __elems_after);
- uninitialized_copy(__mid, __last, _M_finish);
- _M_finish += __n - __elems_after;
- uninitialized_copy(__position, __old_finish, _M_finish);
- _M_finish += __elems_after;
- copy(__first, __mid, __position);
- }
- }
- else {
- const size_type __old_size = size();
- const size_type __len = __old_size + max(__old_size, __n);
- iterator __new_start(_M_allocate(__len));
- iterator __new_finish(__new_start);
- try {
- __new_finish = uninitialized_copy(iterator(_M_start),
- __position, __new_start);
- __new_finish = uninitialized_copy(__first, __last, __new_finish);
- __new_finish
- = uninitialized_copy(__position, iterator(_M_finish), __new_finish);
- }
- catch(...)
- {
- _Destroy(__new_start,__new_finish);
- _M_deallocate(__new_start.base(), __len);
- __throw_exception_again;
- }
- _Destroy(_M_start, _M_finish);
- _M_deallocate(_M_start, _M_end_of_storage - _M_start);
- _M_start = __new_start.base();
- _M_finish = __new_finish.base();
- _M_end_of_storage = __new_start.base() + __len;
+ template<typename _Tp, typename _Alloc>
+ inline bool
+ operator<(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y)
+ {
+ return lexicographical_compare(__x.begin(), __x.end(),
+ __y.begin(), __y.end());
}
- }
-}
-
+
+ /// Based on operator==
+ template<typename _Tp, typename _Alloc>
+ inline bool
+ operator!=(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y)
+ { return !(__x == __y); }
+
+ /// Based on operator<
+ template<typename _Tp, typename _Alloc>
+ inline bool
+ operator>(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y)
+ { return __y < __x; }
+
+ /// Based on operator<
+ template<typename _Tp, typename _Alloc>
+ inline bool
+ operator<=(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y)
+ { return !(__y < __x); }
+
+ /// Based on operator<
+ template<typename _Tp, typename _Alloc>
+ inline bool
+ operator>=(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y)
+ { return !(__x < __y); }
+
+ /// See std::vector::swap().
+ template<typename _Tp, typename _Alloc>
+ inline void
+ swap(vector<_Tp,_Alloc>& __x, vector<_Tp,_Alloc>& __y)
+ { __x.swap(__y); }
} // namespace std
#endif /* __GLIBCPP_INTERNAL_VECTOR_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/contrib/libstdc++/include/bits/streambuf.tcc b/contrib/libstdc++/include/bits/streambuf.tcc
index 5f57df5..be85862 100644
--- a/contrib/libstdc++/include/bits/streambuf.tcc
+++ b/contrib/libstdc++/include/bits/streambuf.tcc
@@ -1,6 +1,6 @@
// Stream buffer classes -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -67,8 +67,7 @@ namespace std
{
int_type __ret;
bool __testpos = _M_in_cur && _M_in_beg < _M_in_cur;
- bool __testne = _M_in_cur && !traits_type::eq(__c, this->gptr()[-1]);
- if (!__testpos || __testne)
+ if (!__testpos || !traits_type::eq(__c, this->gptr()[-1]))
__ret = this->pbackfail(traits_type::to_int_type(__c));
else
{
@@ -199,54 +198,46 @@ namespace std
basic_streambuf<_CharT, _Traits>* __sbin,
basic_streambuf<_CharT, _Traits>* __sbout)
{
- typedef typename _Traits::int_type int_type;
-
- streamsize __ret = 0;
- streamsize __bufsize = __sbin->in_avail();
- streamsize __xtrct;
- bool __testput = __sbout->_M_mode & ios_base::out;
- try
- {
- while (__testput && __bufsize != -1)
- {
- if (__bufsize != 0 && __sbin->gptr() != NULL
- && __sbin->gptr() + __bufsize <= __sbin->egptr())
- {
- __xtrct = __sbout->sputn(__sbin->gptr(), __bufsize);
- __ret += __xtrct;
- __sbin->_M_in_cur_move(__xtrct);
- if (__xtrct != __bufsize)
- break;
- }
- else
- {
- size_t __size =
- __sbin->_M_buf_size_opt > 0 ? __sbin->_M_buf_size_opt : 1;
- _CharT* __buf =
- static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __size));
- streamsize __charsread = __sbin->sgetn(__buf, __size);
- __xtrct = __sbout->sputn(__buf, __charsread);
- __ret += __xtrct;
- if (__xtrct != __charsread)
- break;
- }
- if (_Traits::eq_int_type(__sbin->sgetc(), _Traits::eof()))
- break;
- __bufsize = __sbin->in_avail();
- }
- }
- catch(exception& __fail)
- {
- __ios.setstate(ios_base::failbit);
- if ((__ios.exceptions() & ios_base::failbit) != 0)
- __throw_exception_again;
- }
- return __ret;
- }
+ streamsize __ret = 0;
+ try
+ {
+ typename _Traits::int_type __c = __sbin->sgetc();
+ while (!_Traits::eq_int_type(__c, _Traits::eof()))
+ {
+ const size_t __n = __sbin->_M_in_end - __sbin->_M_in_cur;
+ if (__n > 1)
+ {
+ const size_t __wrote = __sbout->sputn(__sbin->_M_in_cur,
+ __n);
+ __sbin->_M_in_cur_move(__wrote);
+ __ret += __wrote;
+ if (__wrote < __n)
+ break;
+ __c = __sbin->underflow();
+ }
+ else
+ {
+ __c = __sbout->sputc(_Traits::to_char_type(__c));
+ if (_Traits::eq_int_type(__c, _Traits::eof()))
+ break;
+ ++__ret;
+ __c = __sbin->snextc();
+ }
+ }
+ }
+ catch(exception& __fail)
+ {
+ __ios.setstate(ios_base::failbit);
+ if ((__ios.exceptions() & ios_base::failbit) != 0)
+ __throw_exception_again;
+ }
+ return __ret;
+ }
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
+#if _GLIBCPP_EXTERN_TEMPLATE
extern template class basic_streambuf<char>;
extern template
streamsize
@@ -260,6 +251,7 @@ namespace std
__copy_streambufs(basic_ios<wchar_t>&, basic_streambuf<wchar_t>*,
basic_streambuf<wchar_t>*);
#endif
+#endif
} // namespace std
#endif
diff --git a/contrib/libstdc++/include/bits/streambuf_iterator.h b/contrib/libstdc++/include/bits/streambuf_iterator.h
index 152df9c..d482aba 100644
--- a/contrib/libstdc++/include/bits/streambuf_iterator.h
+++ b/contrib/libstdc++/include/bits/streambuf_iterator.h
@@ -1,6 +1,6 @@
// Streambuf iterators
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -28,8 +28,6 @@
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
-// XXX Should specialize copy, find algorithms for streambuf iterators.
-
/** @file streambuf_iterator.h
* This is an internal header file, included by other library headers.
* You should not attempt to use it directly.
@@ -40,6 +38,10 @@
#pragma GCC system_header
+#include <streambuf>
+
+// NB: Should specialize copy, find algorithms for streambuf iterators.
+
namespace std
{
// 24.5.3 Template class istreambuf_iterator
@@ -166,7 +168,6 @@ namespace std
bool _M_failed;
public:
- inline
ostreambuf_iterator(ostream_type& __s) throw ()
: _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { }
@@ -174,7 +175,13 @@ namespace std
: _M_sbuf(__s), _M_failed(!_M_sbuf) { }
ostreambuf_iterator&
- operator=(_CharT __c);
+ operator=(_CharT __c)
+ {
+ if (!_M_failed &&
+ _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof()))
+ _M_failed = true;
+ return *this;
+ }
ostreambuf_iterator&
operator*() throw()
@@ -191,16 +198,15 @@ namespace std
bool
failed() const throw()
{ return _M_failed; }
- };
- template<typename _CharT, typename _Traits>
- inline ostreambuf_iterator<_CharT, _Traits>&
- ostreambuf_iterator<_CharT, _Traits>::operator=(_CharT __c)
- {
- if (!_M_failed &&
- _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof()))
- _M_failed = true;
- return *this;
- }
+ ostreambuf_iterator&
+ _M_put(const _CharT* __ws, streamsize __len)
+ {
+ if (__builtin_expect(!_M_failed, true) &&
+ __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len, false))
+ _M_failed = true;
+ return *this;
+ }
+ };
} // namespace std
#endif
diff --git a/contrib/libstdc++/include/bits/valarray_array.h b/contrib/libstdc++/include/bits/valarray_array.h
index 48dd2aa..c880478 100644
--- a/contrib/libstdc++/include/bits/valarray_array.h
+++ b/contrib/libstdc++/include/bits/valarray_array.h
@@ -603,16 +603,16 @@ _Array_augmented_##_Name (_Array<_Tp> __a, _Array<bool> __m, \
} \
}
- _DEFINE_ARRAY_FUNCTION(+, plus)
- _DEFINE_ARRAY_FUNCTION(-, minus)
- _DEFINE_ARRAY_FUNCTION(*, multiplies)
- _DEFINE_ARRAY_FUNCTION(/, divides)
- _DEFINE_ARRAY_FUNCTION(%, modulus)
- _DEFINE_ARRAY_FUNCTION(^, xor)
- _DEFINE_ARRAY_FUNCTION(|, or)
- _DEFINE_ARRAY_FUNCTION(&, and)
- _DEFINE_ARRAY_FUNCTION(<<, shift_left)
- _DEFINE_ARRAY_FUNCTION(>>, shift_right)
+ _DEFINE_ARRAY_FUNCTION(+, __plus)
+ _DEFINE_ARRAY_FUNCTION(-, __minus)
+ _DEFINE_ARRAY_FUNCTION(*, __multiplies)
+ _DEFINE_ARRAY_FUNCTION(/, __divides)
+ _DEFINE_ARRAY_FUNCTION(%, __modulus)
+ _DEFINE_ARRAY_FUNCTION(^, __bitwise_xor)
+ _DEFINE_ARRAY_FUNCTION(|, __bitwise_or)
+ _DEFINE_ARRAY_FUNCTION(&, __bitwise_and)
+ _DEFINE_ARRAY_FUNCTION(<<, __shift_left)
+ _DEFINE_ARRAY_FUNCTION(>>, __shift_right)
#undef _DEFINE_VALARRAY_FUNCTION
diff --git a/contrib/libstdc++/include/bits/valarray_meta.h b/contrib/libstdc++/include/bits/valarray_meta.h
index f2926c0..29a2dac 100644
--- a/contrib/libstdc++/include/bits/valarray_meta.h
+++ b/contrib/libstdc++/include/bits/valarray_meta.h
@@ -41,469 +41,601 @@
namespace std
{
+ //
+ // Implementing a loosened valarray return value is tricky.
+ // First we need to meet 26.3.1/3: we should not add more than
+ // two levels of template nesting. Therefore we resort to template
+ // template to "flatten" loosened return value types.
+ // At some point we use partial specialization to remove one level
+ // template nesting due to _Expr<>
+ //
+
+ // This class is NOT defined. It doesn't need to.
+ template<typename _Tp1, typename _Tp2> class _Constant;
+
+ // Implementations of unary functions applied to valarray<>s.
+ // I use hard-coded object functions here instead of a generic
+ // approach like pointers to function:
+ // 1) correctness: some functions take references, others values.
+ // we can't deduce the correct type afterwards.
+ // 2) efficiency -- object functions can be easily inlined
+ // 3) be Koenig-lookup-friendly
+
+ struct __abs
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __t) const { return abs(__t); }
+ };
- //
- // Implementing a loosened valarray return value is tricky.
- // First we need to meet 26.3.1/3: we should not add more than
- // two levels of template nesting. Therefore we resort to template
- // template to "flatten" loosened return value types.
- // At some point we use partial specialization to remove one level
- // template nesting due to _Expr<>
- //
-
+ struct __cos
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __t) const { return cos(__t); }
+ };
- // This class is NOT defined. It doesn't need to.
- template<typename _Tp1, typename _Tp2> class _Constant;
+ struct __acos
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __t) const { return acos(__t); }
+ };
- //
- // Unary function application closure.
- //
- template<class _Dom> class _UnFunBase {
- public:
- typedef typename _Dom::value_type value_type;
- typedef value_type _Vt;
-
- _UnFunBase (const _Dom& __e, _Vt __f(_Vt))
- : _M_expr(__e), _M_func(__f) {}
-
- _Vt operator[] (size_t __i) const { return _M_func(_M_expr[__i]); }
- size_t size () const { return _M_expr.size(); }
-
- private:
- const _Dom& _M_expr;
- _Vt (*_M_func)(_Vt);
- };
+ struct __cosh
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __t) const { return cosh(__t); }
+ };
- template<template<class, class> class _Meta, class _Dom>
- class _UnFunClos;
-
- template<class _Dom>
- struct _UnFunClos<_Expr,_Dom> : _UnFunBase<_Dom> {
- typedef _UnFunBase<_Dom> _Base;
- typedef typename _Base::value_type value_type;
-
- _UnFunClos (const _Dom& __e, value_type __f(value_type))
- : _Base (__e, __f) {}
- };
-
+ struct __sin
+ {
template<typename _Tp>
- struct _UnFunClos<_ValArray,_Tp> : _UnFunBase<valarray<_Tp> > {
- typedef _UnFunBase<valarray<_Tp> > _Base;
- typedef typename _Base::value_type value_type;
-
- _UnFunClos (const valarray<_Tp>& __v, _Tp __f(_Tp))
- : _Base (__v, __f) {}
- };
+ _Tp operator()(const _Tp& __t) const { return sin(__t); }
+ };
- //
- // Binary function application closure.
- //
- template<template<class, class> class _Meta1,
- template<class, class> class Meta2,
- class _Dom1, class _Dom2> class _BinFunClos;
-
- template<class _Dom1, class _Dom2> class _BinFunBase {
- public:
- typedef typename _Dom1::value_type value_type;
- typedef value_type _Vt;
+ struct __asin
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __t) const { return asin(__t); }
+ };
- _BinFunBase (const _Dom1& __e1, const _Dom2& __e2,
- _Vt __f (_Vt, _Vt))
- : _M_expr1 (__e1), _M_expr2 (__e2), _M_func (__f) {}
+ struct __sinh
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __t) const { return sinh(__t); }
+ };
- value_type operator[] (size_t __i) const
- { return _M_func (_M_expr1[__i], _M_expr2[__i]); }
- size_t size () const { return _M_expr1.size (); }
+ struct __tan
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __t) const { return tan(__t); }
+ };
- private:
- const _Dom1& _M_expr1;
- const _Dom2& _M_expr2;
- _Vt (*_M_func)(_Vt, _Vt);
- };
+ struct __atan
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __t) const { return atan(__t); }
+ };
- template<class _Dom> class _BinFunBase1 {
- public:
- typedef typename _Dom::value_type value_type ;
- typedef value_type _Vt;
+ struct __tanh
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __t) const { return tanh(__t); }
+ };
- _BinFunBase1 (const _Vt& __c, const _Dom& __e, _Vt __f(_Vt, _Vt))
- : _M_expr1 (__c), _M_expr2 (__e), _M_func (__f) {}
+ struct __exp
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __t) const { return exp(__t); }
+ };
- value_type operator[] (size_t __i) const
- { return _M_func (_M_expr1, _M_expr2[__i]); }
- size_t size () const { return _M_expr2.size (); }
+ struct __log
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __t) const { return log(__t); }
+ };
- private:
- const _Vt& _M_expr1;
- const _Dom& _M_expr2;
- _Vt (*_M_func)(_Vt, _Vt);
- };
+ struct __log10
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __t) const { return log10(__t); }
+ };
- template<class _Dom> class _BinFunBase2 {
- public:
- typedef typename _Dom::value_type value_type;
- typedef value_type _Vt;
+ struct __sqrt
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __t) const { return sqrt(__t); }
+ };
- _BinFunBase2 (const _Dom& __e, const _Vt& __c, _Vt __f(_Vt, _Vt))
- : _M_expr1 (__e), _M_expr2 (__c), _M_func (__f) {}
+ // In the past, we used to tailor operator applications semantics
+ // to the specialization of standard function objects (i.e. plus<>, etc.)
+ // That is incorrect. Therefore we provide our own surrogates.
- value_type operator[] (size_t __i) const
- { return _M_func (_M_expr1[__i], _M_expr2); }
- size_t size () const { return _M_expr1.size (); }
+ struct __unary_plus
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __t) const { return +__t; }
+ };
- private:
- const _Dom& _M_expr1;
- const _Vt& _M_expr2;
- _Vt (*_M_func)(_Vt, _Vt);
- };
+ struct __negate
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __t) const { return -__t; }
+ };
- template<class _Dom1, class _Dom2>
- struct _BinFunClos<_Expr,_Expr,_Dom1,_Dom2> : _BinFunBase<_Dom1,_Dom2> {
- typedef _BinFunBase<_Dom1,_Dom2> _Base;
- typedef typename _Base::value_type value_type;
- typedef value_type _Tp;
+ struct __bitwise_not
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __t) const { return ~__t; }
+ };
- _BinFunClos (const _Dom1& __e1, const _Dom2& __e2,
- _Tp __f(_Tp, _Tp))
- : _Base (__e1, __e2, __f) {}
- };
+ struct __plus
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __x, const _Tp& __y) const
+ { return __x + __y; }
+ };
+ struct __minus
+ {
template<typename _Tp>
- struct _BinFunClos<_ValArray,_ValArray,_Tp,_Tp>
- : _BinFunBase<valarray<_Tp>, valarray<_Tp> > {
- typedef _BinFunBase<valarray<_Tp>, valarray<_Tp> > _Base;
- typedef _Tp value_type;
+ _Tp operator()(const _Tp& __x, const _Tp& __y) const
+ { return __x - __y; }
+ };
- _BinFunClos (const valarray<_Tp>& __v, const valarray<_Tp>& __w,
- _Tp __f(_Tp, _Tp))
- : _Base (__v, __w, __f) {}
- };
-
- template<class _Dom>
- struct _BinFunClos<_Expr,_ValArray,_Dom,typename _Dom::value_type>
- : _BinFunBase<_Dom,valarray<typename _Dom::value_type> > {
- typedef typename _Dom::value_type _Tp;
- typedef _BinFunBase<_Dom,valarray<_Tp> > _Base;
- typedef _Tp value_type;
+ struct __multiplies
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __x, const _Tp& __y) const
+ { return __x * __y; }
+ };
- _BinFunClos (const _Dom& __e, const valarray<_Tp>& __v,
- _Tp __f(_Tp, _Tp))
- : _Base (__e, __v, __f) {}
- };
+ struct __divides
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __x, const _Tp& __y) const
+ { return __x / __y; }
+ };
- template<class _Dom>
- struct _BinFunClos<_ValArray,_Expr,typename _Dom::value_type,_Dom>
- : _BinFunBase<valarray<typename _Dom::value_type>,_Dom> {
- typedef typename _Dom::value_type _Tp;
- typedef _BinFunBase<_Dom,valarray<_Tp> > _Base;
- typedef _Tp value_type;
+ struct __modulus
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __x, const _Tp& __y) const
+ { return __x % __y; }
+ };
+
+ struct __bitwise_xor
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __x, const _Tp& __y) const
+ { return __x ^ __y; }
+ };
+
+ struct __bitwise_and
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __x, const _Tp& __y) const
+ { return __x & __y; }
+ };
+
+ struct __bitwise_or
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __x, const _Tp& __y) const
+ { return __x | __y; }
+ };
+
+ struct __shift_left
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __x, const _Tp& __y) const
+ { return __x << __y; }
+ };
+
+ struct __shift_right
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __x, const _Tp& __y) const
+ { return __x >> __y; }
+ };
+
+ struct __logical_and
+ {
+ template<typename _Tp>
+ bool operator()(const _Tp& __x, const _Tp& __y) const
+ { return __x && __y; }
+ };
+
+ struct __logical_or
+ {
+ template<typename _Tp>
+ bool operator()(const _Tp& __x, const _Tp& __y) const
+ { return __x || __y; }
+ };
+
+ struct __logical_not
+ {
+ template<typename _Tp>
+ bool operator()(const _Tp& __x) const { return !__x; }
+ };
+
+ struct __equal_to
+ {
+ template<typename _Tp>
+ bool operator()(const _Tp& __x, const _Tp& __y) const
+ { return __x == __y; }
+ };
+
+ struct __not_equal_to
+ {
+ template<typename _Tp>
+ bool operator()(const _Tp& __x, const _Tp& __y) const
+ { return __x != __y; }
+ };
- _BinFunClos (const valarray<_Tp>& __v, const _Dom& __e,
- _Tp __f(_Tp, _Tp))
- : _Base (__v, __e, __f) {}
+ struct __less
+ {
+ template<typename _Tp>
+ bool operator()(const _Tp& __x, const _Tp& __y) const
+ { return __x < __y; }
+ };
+
+ struct __greater
+ {
+ template<typename _Tp>
+ bool operator()(const _Tp& __x, const _Tp& __y) const
+ { return __x > __y; }
+ };
+
+ struct __less_equal
+ {
+ template<typename _Tp>
+ bool operator()(const _Tp& __x, const _Tp& __y) const
+ { return __x <= __y; }
+ };
+
+ struct __greater_equal
+ {
+ template<typename _Tp>
+ bool operator()(const _Tp& __x, const _Tp& __y) const
+ { return __x >= __y; }
+ };
+
+ // The few binary functions we miss.
+ struct __atan2
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __x, const _Tp& __y) const
+ { return atan2(__x, __y); }
+ };
+
+ struct __pow
+ {
+ template<typename _Tp>
+ _Tp operator()(const _Tp& __x, const _Tp& __y) const
+ { return pow(__x, __y); }
+ };
+
+
+ // We need these bits in order to recover the return type of
+ // some functions/operators now that we're no longer using
+ // function templates.
+ template<typename, typename _Tp>
+ struct __fun
+ {
+ typedef _Tp result_type;
};
- template<class _Dom>
- struct _BinFunClos<_Expr,_Constant,_Dom,typename _Dom::value_type>
- : _BinFunBase2<_Dom> {
- typedef typename _Dom::value_type _Tp;
- typedef _Tp value_type;
- typedef _BinFunBase2<_Dom> _Base;
+ // several specializations for relational operators.
+ template<typename _Tp>
+ struct __fun<__logical_not, _Tp>
+ {
+ typedef bool result_type;
+ };
- _BinFunClos (const _Dom& __e, const _Tp& __t, _Tp __f (_Tp, _Tp))
- : _Base (__e, __t, __f) {}
+ template<typename _Tp>
+ struct __fun<__logical_and, _Tp>
+ {
+ typedef bool result_type;
};
- template<class _Dom>
- struct _BinFunClos<_Constant,_Expr,_Dom,typename _Dom::value_type>
- : _BinFunBase1<_Dom> {
- typedef typename _Dom::value_type _Tp;
- typedef _Tp value_type;
- typedef _BinFunBase1<_Dom> _Base;
+ template<typename _Tp>
+ struct __fun<__logical_or, _Tp>
+ {
+ typedef bool result_type;
+ };
- _BinFunClos (const _Tp& __t, const _Dom& __e, _Tp __f (_Tp, _Tp))
- : _Base (__t, __e, __f) {}
+ template<typename _Tp>
+ struct __fun<__less, _Tp>
+ {
+ typedef bool result_type;
};
- template<typename _Tp>
- struct _BinFunClos<_ValArray,_Constant,_Tp,_Tp>
- : _BinFunBase2<valarray<_Tp> > {
- typedef _BinFunBase2<valarray<_Tp> > _Base;
- typedef _Tp value_type;
+ template<typename _Tp>
+ struct __fun<__greater, _Tp>
+ {
+ typedef bool result_type;
+ };
- _BinFunClos (const valarray<_Tp>& __v, const _Tp& __t,
- _Tp __f(_Tp, _Tp))
- : _Base (__v, __t, __f) {}
+ template<typename _Tp>
+ struct __fun<__less_equal, _Tp>
+ {
+ typedef bool result_type;
};
- template<typename _Tp>
- struct _BinFunClos<_Constant,_ValArray,_Tp,_Tp>
- : _BinFunBase1<valarray<_Tp> > {
- typedef _BinFunBase1<valarray<_Tp> > _Base;
- typedef _Tp value_type;
+ template<typename _Tp>
+ struct __fun<__greater_equal, _Tp>
+ {
+ typedef bool result_type;
+ };
+
+ template<typename _Tp>
+ struct __fun<__equal_to, _Tp>
+ {
+ typedef bool result_type;
+ };
- _BinFunClos (const _Tp& __t, const valarray<_Tp>& __v,
- _Tp __f (_Tp, _Tp))
- : _Base (__t, __v, __f) {}
+ template<typename _Tp>
+ struct __fun<__not_equal_to, _Tp>
+ {
+ typedef bool result_type;
};
//
// Apply function taking a value/const reference closure
//
- template<typename _Dom, typename _Arg> class _FunBase {
+ template<typename _Dom, typename _Arg>
+ class _FunBase
+ {
public:
- typedef typename _Dom::value_type value_type;
+ typedef typename _Dom::value_type value_type;
+
+ _FunBase(const _Dom& __e, value_type __f(_Arg))
+ : _M_expr(__e), _M_func(__f) {}
- _FunBase (const _Dom& __e, value_type __f(_Arg))
- : _M_expr (__e), _M_func (__f) {}
+ value_type operator[](size_t __i) const
+ { return _M_func (_M_expr[__i]); }
- value_type operator[] (size_t __i) const
- { return _M_func (_M_expr[__i]); }
- size_t size() const { return _M_expr.size ();}
+ size_t size() const { return _M_expr.size ();}
private:
const _Dom& _M_expr;
value_type (*_M_func)(_Arg);
};
- template<class _Dom>
- struct _ValFunClos<_Expr,_Dom>
- : _FunBase<_Dom, typename _Dom::value_type> {
- typedef _FunBase<_Dom, typename _Dom::value_type> _Base;
- typedef typename _Base::value_type value_type;
- typedef value_type _Tp;
+ template<class _Dom>
+ struct _ValFunClos<_Expr,_Dom> : _FunBase<_Dom, typename _Dom::value_type>
+ {
+ typedef _FunBase<_Dom, typename _Dom::value_type> _Base;
+ typedef typename _Base::value_type value_type;
+ typedef value_type _Tp;
- _ValFunClos (const _Dom& __e, _Tp __f (_Tp)) : _Base (__e, __f) {}
+ _ValFunClos(const _Dom& __e, _Tp __f(_Tp)) : _Base(__e, __f) {}
};
- template<typename _Tp>
- struct _ValFunClos<_ValArray,_Tp>
- : _FunBase<valarray<_Tp>, _Tp> {
- typedef _FunBase<valarray<_Tp>, _Tp> _Base;
- typedef _Tp value_type;
-
- _ValFunClos (const valarray<_Tp>& __v, _Tp __f(_Tp))
- : _Base (__v, __f) {}
+ template<typename _Tp>
+ struct _ValFunClos<_ValArray,_Tp> : _FunBase<valarray<_Tp>, _Tp>
+ {
+ typedef _FunBase<valarray<_Tp>, _Tp> _Base;
+ typedef _Tp value_type;
+
+ _ValFunClos(const valarray<_Tp>& __v, _Tp __f(_Tp)) : _Base(__v, __f) {}
};
- template<class _Dom>
+ template<class _Dom>
struct _RefFunClos<_Expr,_Dom> :
- _FunBase<_Dom, const typename _Dom::value_type&> {
- typedef _FunBase<_Dom, const typename _Dom::value_type&> _Base;
- typedef typename _Base::value_type value_type;
- typedef value_type _Tp;
-
- _RefFunClos (const _Dom& __e, _Tp __f (const _Tp&))
- : _Base (__e, __f) {}
+ _FunBase<_Dom, const typename _Dom::value_type&>
+ {
+ typedef _FunBase<_Dom, const typename _Dom::value_type&> _Base;
+ typedef typename _Base::value_type value_type;
+ typedef value_type _Tp;
+
+ _RefFunClos(const _Dom& __e, _Tp __f(const _Tp&))
+ : _Base(__e, __f) {}
};
- template<typename _Tp>
- struct _RefFunClos<_ValArray,_Tp>
- : _FunBase<valarray<_Tp>, const _Tp&> {
- typedef _FunBase<valarray<_Tp>, const _Tp&> _Base;
- typedef _Tp value_type;
-
- _RefFunClos (const valarray<_Tp>& __v, _Tp __f(const _Tp&))
- : _Base (__v, __f) {}
+ template<typename _Tp>
+ struct _RefFunClos<_ValArray,_Tp> : _FunBase<valarray<_Tp>, const _Tp&>
+ {
+ typedef _FunBase<valarray<_Tp>, const _Tp&> _Base;
+ typedef _Tp value_type;
+
+ _RefFunClos(const valarray<_Tp>& __v, _Tp __f(const _Tp&))
+ : _Base(__v, __f) {}
};
- //
- // Unary expression closure.
- //
+ //
+ // Unary expression closure.
+ //
- template<template<class> class _Oper, typename _Arg>
- class _UnBase {
+ template<class _Oper, class _Arg>
+ class _UnBase
+ {
public:
- typedef _Oper<typename _Arg::value_type> _Op;
- typedef typename _Op::result_type value_type;
+ typedef typename _Arg::value_type _Vt;
+ typedef typename __fun<_Oper, _Vt>::result_type value_type;
+
+ _UnBase(const _Arg& __e) : _M_expr(__e) {}
+
+ value_type operator[](size_t __i) const
+ { return _Oper()(_M_expr[__i]); }
- _UnBase (const _Arg& __e) : _M_expr(__e) {}
- value_type operator[] (size_t) const;
- size_t size () const { return _M_expr.size (); }
+ size_t size() const { return _M_expr.size(); }
private:
- const _Arg& _M_expr;
+ const _Arg& _M_expr;
};
- template<template<class> class _Oper, typename _Arg>
- inline typename _UnBase<_Oper, _Arg>::value_type
- _UnBase<_Oper, _Arg>::operator[] (size_t __i) const
- { return _Op() (_M_expr[__i]); }
-
- template<template<class> class _Oper, class _Dom>
- struct _UnClos<_Oper, _Expr, _Dom> : _UnBase<_Oper, _Dom> {
- typedef _Dom _Arg;
- typedef _UnBase<_Oper, _Dom> _Base;
- typedef typename _Base::value_type value_type;
-
- _UnClos (const _Arg& __e) : _Base(__e) {}
+ template<class _Oper, class _Dom>
+ struct _UnClos<_Oper, _Expr, _Dom> : _UnBase<_Oper, _Dom>
+ {
+ typedef _Dom _Arg;
+ typedef _UnBase<_Oper, _Dom> _Base;
+ typedef typename _Base::value_type value_type;
+
+ _UnClos(const _Arg& __e) : _Base(__e) {}
};
- template<template<class> class _Oper, typename _Tp>
- struct _UnClos<_Oper, _ValArray, _Tp> : _UnBase<_Oper, valarray<_Tp> > {
- typedef valarray<_Tp> _Arg;
- typedef _UnBase<_Oper, valarray<_Tp> > _Base;
- typedef typename _Base::value_type value_type;
-
- _UnClos (const _Arg& __e) : _Base(__e) {}
+ template<class _Oper, typename _Tp>
+ struct _UnClos<_Oper, _ValArray, _Tp> : _UnBase<_Oper, valarray<_Tp> >
+ {
+ typedef valarray<_Tp> _Arg;
+ typedef _UnBase<_Oper, valarray<_Tp> > _Base;
+ typedef typename _Base::value_type value_type;
+
+ _UnClos(const _Arg& __e) : _Base(__e) {}
};
- //
- // Binary expression closure.
- //
+ //
+ // Binary expression closure.
+ //
- template<template<class> class _Oper,
- typename _FirstArg, typename _SecondArg>
- class _BinBase {
+ template<class _Oper, class _FirstArg, class _SecondArg>
+ class _BinBase
+ {
public:
- typedef _Oper<typename _FirstArg::value_type> _Op;
- typedef typename _Op::result_type value_type;
+ typedef typename _FirstArg::value_type _Vt;
+ typedef typename __fun<_Oper, _Vt>::result_type value_type;
- _BinBase (const _FirstArg& __e1, const _SecondArg& __e2)
- : _M_expr1 (__e1), _M_expr2 (__e2) {}
- value_type operator[] (size_t) const;
- size_t size () const { return _M_expr1.size (); }
+ _BinBase(const _FirstArg& __e1, const _SecondArg& __e2)
+ : _M_expr1(__e1), _M_expr2(__e2) {}
+
+ value_type operator[](size_t __i) const
+ { return _Oper()(_M_expr1[__i], _M_expr2[__i]); }
+
+ size_t size() const { return _M_expr1.size(); }
private:
- const _FirstArg& _M_expr1;
- const _SecondArg& _M_expr2;
+ const _FirstArg& _M_expr1;
+ const _SecondArg& _M_expr2;
};
- template<template<class> class _Oper,
- typename _FirstArg, typename _SecondArg>
- inline typename _BinBase<_Oper,_FirstArg,_SecondArg>::value_type
- _BinBase<_Oper,_FirstArg,_SecondArg>::operator[] (size_t __i) const
- { return _Op() (_M_expr1[__i], _M_expr2[__i]); }
-
- template<template<class> class _Oper, class _Clos>
- class _BinBase2 {
+ template<class _Oper, class _Clos>
+ class _BinBase2
+ {
public:
- typedef typename _Clos::value_type _Vt;
- typedef _Oper<_Vt> _Op;
- typedef typename _Op::result_type value_type;
+ typedef typename _Clos::value_type _Vt;
+ typedef typename __fun<_Oper, _Vt>::result_type value_type;
- _BinBase2 (const _Clos& __e, const _Vt& __t)
- : _M_expr1 (__e), _M_expr2 (__t) {}
- value_type operator[] (size_t) const;
- size_t size () const { return _M_expr1.size (); }
+ _BinBase2(const _Clos& __e, const _Vt& __t)
+ : _M_expr1(__e), _M_expr2(__t) {}
- private:
- const _Clos& _M_expr1;
- const _Vt& _M_expr2;
- };
+ value_type operator[](size_t __i) const
+ { return _Oper()(_M_expr1[__i], _M_expr2); }
- template<template<class> class _Oper, class _Clos>
- inline typename _BinBase2<_Oper,_Clos>::value_type
- _BinBase2<_Oper,_Clos>::operator[] (size_t __i) const
- { return _Op() (_M_expr1[__i], _M_expr2); }
+ size_t size() const { return _M_expr1.size(); }
+ private:
+ const _Clos& _M_expr1;
+ const _Vt& _M_expr2;
+ };
- template<template<class> class _Oper, class _Clos>
- class _BinBase1 {
+ template<class _Oper, class _Clos>
+ class _BinBase1
+ {
public:
- typedef typename _Clos::value_type _Vt;
- typedef _Oper<_Vt> _Op;
- typedef typename _Op::result_type value_type;
+ typedef typename _Clos::value_type _Vt;
+ typedef typename __fun<_Oper, _Vt>::result_type value_type;
+
+ _BinBase1(const _Vt& __t, const _Clos& __e)
+ : _M_expr1(__t), _M_expr2(__e) {}
- _BinBase1 (const _Vt& __t, const _Clos& __e)
- : _M_expr1 (__t), _M_expr2 (__e) {}
- value_type operator[] (size_t) const;
- size_t size () const { return _M_expr2.size (); }
+ value_type operator[](size_t __i) const
+ { return _Oper()(_M_expr1, _M_expr2[__i]); }
+
+ size_t size() const { return _M_expr2.size(); }
private:
- const _Vt& _M_expr1;
- const _Clos& _M_expr2;
+ const _Vt& _M_expr1;
+ const _Clos& _M_expr2;
};
-
- template<template<class> class _Oper, class _Clos>
- inline typename
- _BinBase1<_Oper,_Clos>::value_type
- _BinBase1<_Oper,_Clos>:: operator[] (size_t __i) const
- { return _Op() (_M_expr1, _M_expr2[__i]); }
-
- template<template<class> class _Oper, class _Dom1, class _Dom2>
- struct _BinClos<_Oper, _Expr, _Expr, _Dom1, _Dom2>
- : _BinBase<_Oper,_Dom1,_Dom2> {
- typedef _BinBase<_Oper,_Dom1,_Dom2> _Base;
- typedef typename _Base::value_type value_type;
+ template<class _Oper, class _Dom1, class _Dom2>
+ struct _BinClos<_Oper, _Expr, _Expr, _Dom1, _Dom2>
+ : _BinBase<_Oper,_Dom1,_Dom2>
+ {
+ typedef _BinBase<_Oper,_Dom1,_Dom2> _Base;
+ typedef typename _Base::value_type value_type;
- _BinClos(const _Dom1& __e1, const _Dom2& __e2) : _Base(__e1, __e2) {}
+ _BinClos(const _Dom1& __e1, const _Dom2& __e2) : _Base(__e1, __e2) {}
};
- template<template<class> class _Oper, typename _Tp>
+ template<class _Oper, typename _Tp>
struct _BinClos<_Oper,_ValArray,_ValArray,_Tp,_Tp>
- : _BinBase<_Oper,valarray<_Tp>,valarray<_Tp> > {
- typedef _BinBase<_Oper,valarray<_Tp>,valarray<_Tp> > _Base;
- typedef _Tp value_type;
+ : _BinBase<_Oper,valarray<_Tp>,valarray<_Tp> >
+ {
+ typedef _BinBase<_Oper,valarray<_Tp>,valarray<_Tp> > _Base;
+ typedef _Tp value_type;
- _BinClos (const valarray<_Tp>& __v, const valarray<_Tp>& __w)
- : _Base (__v, __w) {}
+ _BinClos(const valarray<_Tp>& __v, const valarray<_Tp>& __w)
+ : _Base(__v, __w) {}
};
- template<template<class> class _Oper, class _Dom>
- struct _BinClos<_Oper,_Expr,_ValArray,_Dom,typename _Dom::value_type>
- : _BinBase<_Oper,_Dom,valarray<typename _Dom::value_type> > {
- typedef typename _Dom::value_type _Tp;
- typedef _BinBase<_Oper,_Dom,valarray<_Tp> > _Base;
- typedef typename _Base::value_type value_type;
-
- _BinClos(const _Dom& __e1, const valarray<_Tp>& __e2)
- : _Base (__e1, __e2) {}
+ template<class _Oper, class _Dom>
+ struct _BinClos<_Oper,_Expr,_ValArray,_Dom,typename _Dom::value_type>
+ : _BinBase<_Oper,_Dom,valarray<typename _Dom::value_type> >
+ {
+ typedef typename _Dom::value_type _Tp;
+ typedef _BinBase<_Oper,_Dom,valarray<_Tp> > _Base;
+ typedef typename _Base::value_type value_type;
+
+ _BinClos(const _Dom& __e1, const valarray<_Tp>& __e2)
+ : _Base(__e1, __e2) {}
};
- template<template<class> class _Oper, class _Dom>
+ template<class _Oper, class _Dom>
struct _BinClos<_Oper,_ValArray,_Expr,typename _Dom::value_type,_Dom>
- : _BinBase<_Oper,valarray<typename _Dom::value_type>,_Dom> {
- typedef typename _Dom::value_type _Tp;
- typedef _BinBase<_Oper,valarray<_Tp>,_Dom> _Base;
- typedef typename _Base::value_type value_type;
-
- _BinClos (const valarray<_Tp>& __e1, const _Dom& __e2)
- : _Base (__e1, __e2) {}
+ : _BinBase<_Oper,valarray<typename _Dom::value_type>,_Dom>
+ {
+ typedef typename _Dom::value_type _Tp;
+ typedef _BinBase<_Oper,valarray<_Tp>,_Dom> _Base;
+ typedef typename _Base::value_type value_type;
+
+ _BinClos(const valarray<_Tp>& __e1, const _Dom& __e2)
+ : _Base(__e1, __e2) {}
};
- template<template<class> class _Oper, class _Dom>
+ template<class _Oper, class _Dom>
struct _BinClos<_Oper,_Expr,_Constant,_Dom,typename _Dom::value_type>
- : _BinBase2<_Oper,_Dom> {
- typedef typename _Dom::value_type _Tp;
- typedef _BinBase2<_Oper,_Dom> _Base;
- typedef typename _Base::value_type value_type;
-
- _BinClos (const _Dom& __e1, const _Tp& __e2) : _Base (__e1, __e2) {}
+ : _BinBase2<_Oper,_Dom>
+ {
+ typedef typename _Dom::value_type _Tp;
+ typedef _BinBase2<_Oper,_Dom> _Base;
+ typedef typename _Base::value_type value_type;
+
+ _BinClos(const _Dom& __e1, const _Tp& __e2) : _Base(__e1, __e2) {}
};
- template<template<class> class _Oper, class _Dom>
+ template<class _Oper, class _Dom>
struct _BinClos<_Oper,_Constant,_Expr,typename _Dom::value_type,_Dom>
- : _BinBase1<_Oper,_Dom> {
- typedef typename _Dom::value_type _Tp;
- typedef _BinBase1<_Oper,_Dom> _Base;
- typedef typename _Base::value_type value_type;
-
- _BinClos (const _Tp& __e1, const _Dom& __e2) : _Base (__e1, __e2) {}
+ : _BinBase1<_Oper,_Dom>
+ {
+ typedef typename _Dom::value_type _Tp;
+ typedef _BinBase1<_Oper,_Dom> _Base;
+ typedef typename _Base::value_type value_type;
+
+ _BinClos(const _Tp& __e1, const _Dom& __e2) : _Base(__e1, __e2) {}
};
- template<template<class> class _Oper, typename _Tp>
+ template<class _Oper, typename _Tp>
struct _BinClos<_Oper,_ValArray,_Constant,_Tp,_Tp>
- : _BinBase2<_Oper,valarray<_Tp> > {
- typedef _BinBase2<_Oper,valarray<_Tp> > _Base;
- typedef typename _Base::value_type value_type;
-
- _BinClos (const valarray<_Tp>& __v, const _Tp& __t)
- : _Base (__v, __t) {}
+ : _BinBase2<_Oper,valarray<_Tp> >
+ {
+ typedef _BinBase2<_Oper,valarray<_Tp> > _Base;
+ typedef typename _Base::value_type value_type;
+
+ _BinClos(const valarray<_Tp>& __v, const _Tp& __t) : _Base(__v, __t) {}
};
- template<template<class> class _Oper, typename _Tp>
+ template<class _Oper, typename _Tp>
struct _BinClos<_Oper,_Constant,_ValArray,_Tp,_Tp>
- : _BinBase1<_Oper,valarray<_Tp> > {
- typedef _BinBase1<_Oper,valarray<_Tp> > _Base;
- typedef typename _Base::value_type value_type;
-
- _BinClos (const _Tp& __t, const valarray<_Tp>& __v)
- : _Base (__t, __v) {}
+ : _BinBase1<_Oper,valarray<_Tp> >
+ {
+ typedef _BinBase1<_Oper,valarray<_Tp> > _Base;
+ typedef typename _Base::value_type value_type;
+
+ _BinClos(const _Tp& __t, const valarray<_Tp>& __v) : _Base(__t, __v) {}
};
@@ -643,317 +775,261 @@ namespace std
: _Base (__a, __i) {}
};
- //
- // class _Expr
- //
- template<class _Clos, typename _Tp> class _Expr {
+ //
+ // class _Expr
+ //
+ template<class _Clos, typename _Tp>
+ class _Expr
+ {
public:
- typedef _Tp value_type;
+ typedef _Tp value_type;
+
+ _Expr(const _Clos&);
+
+ const _Clos& operator()() const;
- _Expr (const _Clos&);
-
- const _Clos& operator() () const;
-
- value_type operator[] (size_t) const;
- valarray<value_type> operator[] (slice) const;
- valarray<value_type> operator[] (const gslice&) const;
- valarray<value_type> operator[] (const valarray<bool>&) const;
- valarray<value_type> operator[] (const valarray<size_t>&) const;
+ value_type operator[](size_t) const;
+ valarray<value_type> operator[](slice) const;
+ valarray<value_type> operator[](const gslice&) const;
+ valarray<value_type> operator[](const valarray<bool>&) const;
+ valarray<value_type> operator[](const valarray<size_t>&) const;
- _Expr<_UnClos<_Unary_plus,std::_Expr,_Clos>, value_type>
- operator+ () const;
+ _Expr<_UnClos<__unary_plus,std::_Expr,_Clos>, value_type>
+ operator+() const;
- _Expr<_UnClos<negate,std::_Expr,_Clos>, value_type>
- operator- () const;
+ _Expr<_UnClos<__negate,std::_Expr,_Clos>, value_type>
+ operator-() const;
- _Expr<_UnClos<_Bitwise_not,std::_Expr,_Clos>, value_type>
- operator~ () const;
+ _Expr<_UnClos<__bitwise_not,std::_Expr,_Clos>, value_type>
+ operator~() const;
- _Expr<_UnClos<logical_not,std::_Expr,_Clos>, bool>
- operator! () const;
+ _Expr<_UnClos<__logical_not,std::_Expr,_Clos>, bool>
+ operator!() const;
- size_t size () const;
- value_type sum () const;
+ size_t size() const;
+ value_type sum() const;
- valarray<value_type> shift (int) const;
- valarray<value_type> cshift (int) const;
+ valarray<value_type> shift(int) const;
+ valarray<value_type> cshift(int) const;
value_type min() const;
value_type max() const;
- valarray<value_type> apply(value_type (*) (const value_type&)) const;
- valarray<value_type> apply(value_type (*) (value_type)) const;
+ valarray<value_type> apply(value_type (*)(const value_type&)) const;
+ valarray<value_type> apply(value_type (*)(value_type)) const;
private:
- const _Clos _M_closure;
+ const _Clos _M_closure;
};
- template<class _Clos, typename _Tp>
+ template<class _Clos, typename _Tp>
inline
- _Expr<_Clos,_Tp>::_Expr (const _Clos& __c) : _M_closure(__c) {}
+ _Expr<_Clos,_Tp>::_Expr(const _Clos& __c) : _M_closure(__c) {}
- template<class _Clos, typename _Tp>
+ template<class _Clos, typename _Tp>
inline const _Clos&
- _Expr<_Clos,_Tp>::operator() () const
+ _Expr<_Clos,_Tp>::operator()() const
{ return _M_closure; }
- template<class _Clos, typename _Tp>
+ template<class _Clos, typename _Tp>
inline _Tp
- _Expr<_Clos,_Tp>::operator[] (size_t __i) const
+ _Expr<_Clos,_Tp>::operator[](size_t __i) const
{ return _M_closure[__i]; }
- template<class _Clos, typename _Tp>
+ template<class _Clos, typename _Tp>
inline valarray<_Tp>
- _Expr<_Clos,_Tp>::operator[] (slice __s) const
+ _Expr<_Clos,_Tp>::operator[](slice __s) const
{ return _M_closure[__s]; }
- template<class _Clos, typename _Tp>
+ template<class _Clos, typename _Tp>
inline valarray<_Tp>
- _Expr<_Clos,_Tp>::operator[] (const gslice& __gs) const
+ _Expr<_Clos,_Tp>::operator[](const gslice& __gs) const
{ return _M_closure[__gs]; }
- template<class _Clos, typename _Tp>
+ template<class _Clos, typename _Tp>
inline valarray<_Tp>
- _Expr<_Clos,_Tp>::operator[] (const valarray<bool>& __m) const
+ _Expr<_Clos,_Tp>::operator[](const valarray<bool>& __m) const
{ return _M_closure[__m]; }
- template<class _Clos, typename _Tp>
+ template<class _Clos, typename _Tp>
inline valarray<_Tp>
- _Expr<_Clos,_Tp>::operator[] (const valarray<size_t>& __i) const
+ _Expr<_Clos,_Tp>::operator[](const valarray<size_t>& __i) const
{ return _M_closure[__i]; }
- template<class _Clos, typename _Tp>
+ template<class _Clos, typename _Tp>
inline size_t
- _Expr<_Clos,_Tp>::size () const { return _M_closure.size (); }
+ _Expr<_Clos,_Tp>::size() const { return _M_closure.size (); }
template<class _Clos, typename _Tp>
- inline valarray<_Tp>
- _Expr<_Clos, _Tp>::shift(int __n) const
- { return valarray<_Tp>(_M_closure).shift(__n); }
+ inline valarray<_Tp>
+ _Expr<_Clos, _Tp>::shift(int __n) const
+ { return valarray<_Tp>(_M_closure).shift(__n); }
template<class _Clos, typename _Tp>
- inline valarray<_Tp>
- _Expr<_Clos, _Tp>::cshift(int __n) const
- { return valarray<_Tp>(_M_closure).cshift(__n); }
+ inline valarray<_Tp>
+ _Expr<_Clos, _Tp>::cshift(int __n) const
+ { return valarray<_Tp>(_M_closure).cshift(__n); }
template<class _Clos, typename _Tp>
- inline valarray<_Tp>
- _Expr<_Clos, _Tp>::apply(_Tp __f(const _Tp&)) const
- { return valarray<_Tp>(_M_closure).apply(__f); }
+ inline valarray<_Tp>
+ _Expr<_Clos, _Tp>::apply(_Tp __f(const _Tp&)) const
+ { return valarray<_Tp>(_M_closure).apply(__f); }
template<class _Clos, typename _Tp>
- inline valarray<_Tp>
- _Expr<_Clos, _Tp>::apply(_Tp __f(_Tp)) const
- { return valarray<_Tp>(_M_closure).apply(__f); }
+ inline valarray<_Tp>
+ _Expr<_Clos, _Tp>::apply(_Tp __f(_Tp)) const
+ { return valarray<_Tp>(_M_closure).apply(__f); }
- // XXX: replace this with a more robust summation algorithm.
- template<class _Clos, typename _Tp>
+ // XXX: replace this with a more robust summation algorithm.
+ template<class _Clos, typename _Tp>
inline _Tp
- _Expr<_Clos,_Tp>::sum () const
+ _Expr<_Clos,_Tp>::sum() const
{
- size_t __n = _M_closure.size();
- if (__n == 0) return _Tp();
- else {
- _Tp __s = _M_closure[--__n];
- while (__n != 0) __s += _M_closure[--__n];
- return __s;
+ size_t __n = _M_closure.size();
+ if (__n == 0)
+ return _Tp();
+ else
+ {
+ _Tp __s = _M_closure[--__n];
+ while (__n != 0)
+ __s += _M_closure[--__n];
+ return __s;
}
}
template<class _Clos, typename _Tp>
- inline _Tp
- _Expr<_Clos, _Tp>::min() const
- { return __valarray_min(_M_closure); }
+ inline _Tp
+ _Expr<_Clos, _Tp>::min() const
+ { return __valarray_min(_M_closure); }
template<class _Clos, typename _Tp>
- inline _Tp
- _Expr<_Clos, _Tp>::max() const
- { return __valarray_max(_M_closure); }
+ inline _Tp
+ _Expr<_Clos, _Tp>::max() const
+ { return __valarray_max(_M_closure); }
- template<class _Dom, typename _Tp>
- inline _Expr<_UnClos<logical_not,_Expr,_Dom>, bool>
- _Expr<_Dom,_Tp>::operator! () const
+ template<class _Dom, typename _Tp>
+ inline _Expr<_UnClos<__logical_not,_Expr,_Dom>, bool>
+ _Expr<_Dom,_Tp>::operator!() const
{
- typedef _UnClos<logical_not,std::_Expr,_Dom> _Closure;
- return _Expr<_Closure,_Tp> (_Closure(this->_M_closure));
+ typedef _UnClos<__logical_not,std::_Expr,_Dom> _Closure;
+ return _Expr<_Closure,_Tp>(_Closure(this->_M_closure));
}
-#define _DEFINE_EXPR_UNARY_OPERATOR(_Op, _Name) \
-template<class _Dom, typename _Tp> \
-inline _Expr<_UnClos<_Name,std::_Expr,_Dom>,_Tp> \
-_Expr<_Dom,_Tp>::operator _Op () const \
-{ \
- typedef _UnClos<_Name,std::_Expr,_Dom> _Closure; \
- return _Expr<_Closure,_Tp> (_Closure (this->_M_closure)); \
-}
+#define _DEFINE_EXPR_UNARY_OPERATOR(_Op, _Name) \
+ template<class _Dom, typename _Tp> \
+ inline _Expr<_UnClos<_Name,std::_Expr,_Dom>,_Tp> \
+ _Expr<_Dom,_Tp>::operator _Op() const \
+ { \
+ typedef _UnClos<_Name,std::_Expr,_Dom> _Closure; \
+ return _Expr<_Closure,_Tp>(_Closure(this->_M_closure)); \
+ }
- _DEFINE_EXPR_UNARY_OPERATOR(+, _Unary_plus)
- _DEFINE_EXPR_UNARY_OPERATOR(-, negate)
- _DEFINE_EXPR_UNARY_OPERATOR(~, _Bitwise_not)
+ _DEFINE_EXPR_UNARY_OPERATOR(+, __unary_plus)
+ _DEFINE_EXPR_UNARY_OPERATOR(-, __negate)
+ _DEFINE_EXPR_UNARY_OPERATOR(~, __bitwise_not)
#undef _DEFINE_EXPR_UNARY_OPERATOR
#define _DEFINE_EXPR_BINARY_OPERATOR(_Op, _Name) \
-template<class _Dom1, class _Dom2> \
-inline _Expr<_BinClos<_Name,_Expr,_Expr,_Dom1,_Dom2>, \
- typename _Name<typename _Dom1::value_type>::result_type> \
-operator _Op (const _Expr<_Dom1,typename _Dom1::value_type>& __v, \
- const _Expr<_Dom2,typename _Dom2::value_type>& __w) \
-{ \
+ template<class _Dom1, class _Dom2> \
+ inline _Expr<_BinClos<_Name,_Expr,_Expr,_Dom1,_Dom2>, \
+ typename __fun<_Name, typename _Dom1::value_type>::result_type>\
+ operator _Op(const _Expr<_Dom1,typename _Dom1::value_type>& __v, \
+ const _Expr<_Dom2,typename _Dom2::value_type>& __w) \
+ { \
typedef typename _Dom1::value_type _Arg; \
- typedef typename _Name<_Arg>::result_type _Value; \
+ typedef typename __fun<_Name, _Arg>::result_type _Value; \
typedef _BinClos<_Name,_Expr,_Expr,_Dom1,_Dom2> _Closure; \
- return _Expr<_Closure,_Value> (_Closure (__v (), __w ())); \
-} \
+ return _Expr<_Closure,_Value>(_Closure(__v(), __w())); \
+ } \
\
template<class _Dom> \
-inline _Expr<_BinClos<_Name,_Expr,_Constant,_Dom,typename _Dom::value_type>, \
- typename _Name<typename _Dom::value_type>::result_type> \
-operator _Op (const _Expr<_Dom,typename _Dom::value_type>& __v, \
- const typename _Dom::value_type& __t) \
+inline _Expr<_BinClos<_Name,_Expr,_Constant,_Dom,typename _Dom::value_type>,\
+ typename __fun<_Name, typename _Dom::value_type>::result_type>\
+operator _Op(const _Expr<_Dom,typename _Dom::value_type>& __v, \
+ const typename _Dom::value_type& __t) \
{ \
- typedef typename _Dom::value_type _Arg; \
- typedef typename _Name<_Arg>::result_type _Value; \
- typedef _BinClos<_Name,_Expr,_Constant,_Dom,_Arg> _Closure; \
- return _Expr<_Closure,_Value> (_Closure (__v (), __t)); \
+ typedef typename _Dom::value_type _Arg; \
+ typedef typename __fun<_Name, _Arg>::result_type _Value; \
+ typedef _BinClos<_Name,_Expr,_Constant,_Dom,_Arg> _Closure; \
+ return _Expr<_Closure,_Value>(_Closure(__v(), __t)); \
} \
\
template<class _Dom> \
-inline _Expr<_BinClos<_Name,_Constant,_Expr,typename _Dom::value_type,_Dom>, \
- typename _Name<typename _Dom::value_type>::result_type> \
-operator _Op (const typename _Dom::value_type& __t, \
- const _Expr<_Dom,typename _Dom::value_type>& __v) \
+inline _Expr<_BinClos<_Name,_Constant,_Expr,typename _Dom::value_type,_Dom>,\
+ typename __fun<_Name, typename _Dom::value_type>::result_type>\
+operator _Op(const typename _Dom::value_type& __t, \
+ const _Expr<_Dom,typename _Dom::value_type>& __v) \
{ \
- typedef typename _Dom::value_type _Arg; \
- typedef typename _Name<_Arg>::result_type _Value; \
- typedef _BinClos<_Name,_Constant,_Expr,_Arg,_Dom> _Closure; \
- return _Expr<_Closure,_Value> (_Closure (__t, __v ())); \
+ typedef typename _Dom::value_type _Arg; \
+ typedef typename __fun<_Name, _Arg>::result_type _Value; \
+ typedef _BinClos<_Name,_Constant,_Expr,_Arg,_Dom> _Closure; \
+ return _Expr<_Closure,_Value>(_Closure(__t, __v())); \
} \
\
template<class _Dom> \
-inline _Expr<_BinClos<_Name,_Expr,_ValArray,_Dom,typename _Dom::value_type>, \
- typename _Name<typename _Dom::value_type>::result_type> \
-operator _Op (const _Expr<_Dom,typename _Dom::value_type>& __e, \
- const valarray<typename _Dom::value_type>& __v) \
+inline _Expr<_BinClos<_Name,_Expr,_ValArray,_Dom,typename _Dom::value_type>,\
+ typename __fun<_Name, typename _Dom::value_type>::result_type>\
+operator _Op(const _Expr<_Dom,typename _Dom::value_type>& __e, \
+ const valarray<typename _Dom::value_type>& __v) \
{ \
- typedef typename _Dom::value_type _Arg; \
- typedef typename _Name<_Arg>::result_type _Value; \
- typedef _BinClos<_Name,_Expr,_ValArray,_Dom,_Arg> _Closure; \
- return _Expr<_Closure,_Value> (_Closure (__e (), __v)); \
+ typedef typename _Dom::value_type _Arg; \
+ typedef typename __fun<_Name, _Arg>::result_type _Value; \
+ typedef _BinClos<_Name,_Expr,_ValArray,_Dom,_Arg> _Closure; \
+ return _Expr<_Closure,_Value>(_Closure(__e(), __v)); \
} \
\
template<class _Dom> \
-inline _Expr<_BinClos<_Name,_ValArray,_Expr,typename _Dom::value_type,_Dom>, \
- typename _Name<typename _Dom::value_type>::result_type> \
-operator _Op (const valarray<typename _Dom::value_type>& __v, \
- const _Expr<_Dom,typename _Dom::value_type>& __e) \
+inline _Expr<_BinClos<_Name,_ValArray,_Expr,typename _Dom::value_type,_Dom>,\
+ typename __fun<_Name, typename _Dom::value_type>::result_type>\
+operator _Op(const valarray<typename _Dom::value_type>& __v, \
+ const _Expr<_Dom,typename _Dom::value_type>& __e) \
{ \
- typedef typename _Dom::value_type _Tp; \
- typedef typename _Name<_Tp>::result_type _Value; \
- typedef _BinClos<_Name,_ValArray,_Expr,_Tp,_Dom> _Closure; \
- return _Expr<_Closure,_Value> (_Closure (__v, __e ())); \
+ typedef typename _Dom::value_type _Tp; \
+ typedef typename __fun<_Name, _Tp>::result_type _Value; \
+ typedef _BinClos<_Name,_ValArray,_Expr,_Tp,_Dom> _Closure; \
+ return _Expr<_Closure,_Value> (_Closure (__v, __e ())); \
}
- _DEFINE_EXPR_BINARY_OPERATOR(+, plus)
- _DEFINE_EXPR_BINARY_OPERATOR(-, minus)
- _DEFINE_EXPR_BINARY_OPERATOR(*, multiplies)
- _DEFINE_EXPR_BINARY_OPERATOR(/, divides)
- _DEFINE_EXPR_BINARY_OPERATOR(%, modulus)
- _DEFINE_EXPR_BINARY_OPERATOR(^, _Bitwise_xor)
- _DEFINE_EXPR_BINARY_OPERATOR(&, _Bitwise_and)
- _DEFINE_EXPR_BINARY_OPERATOR(|, _Bitwise_or)
- _DEFINE_EXPR_BINARY_OPERATOR(<<, _Shift_left)
- _DEFINE_EXPR_BINARY_OPERATOR(>>, _Shift_right)
+ _DEFINE_EXPR_BINARY_OPERATOR(+, __plus)
+ _DEFINE_EXPR_BINARY_OPERATOR(-, __minus)
+ _DEFINE_EXPR_BINARY_OPERATOR(*, __multiplies)
+ _DEFINE_EXPR_BINARY_OPERATOR(/, __divides)
+ _DEFINE_EXPR_BINARY_OPERATOR(%, __modulus)
+ _DEFINE_EXPR_BINARY_OPERATOR(^, __bitwise_xor)
+ _DEFINE_EXPR_BINARY_OPERATOR(&, __bitwise_and)
+ _DEFINE_EXPR_BINARY_OPERATOR(|, __bitwise_or)
+ _DEFINE_EXPR_BINARY_OPERATOR(<<, __shift_left)
+ _DEFINE_EXPR_BINARY_OPERATOR(>>, __shift_right)
+ _DEFINE_EXPR_BINARY_OPERATOR(&&, __logical_and)
+ _DEFINE_EXPR_BINARY_OPERATOR(||, __logical_or)
+ _DEFINE_EXPR_BINARY_OPERATOR(==, __equal_to)
+ _DEFINE_EXPR_BINARY_OPERATOR(!=, __not_equal_to)
+ _DEFINE_EXPR_BINARY_OPERATOR(<, __less)
+ _DEFINE_EXPR_BINARY_OPERATOR(>, __greater)
+ _DEFINE_EXPR_BINARY_OPERATOR(<=, __less_equal)
+ _DEFINE_EXPR_BINARY_OPERATOR(>=, __greater_equal)
#undef _DEFINE_EXPR_BINARY_OPERATOR
-
-#define _DEFINE_EXPR_RELATIONAL_OPERATOR(_Op, _Name) \
-template<class _Dom1, class _Dom2> \
-inline _Expr<_BinClos<_Name,_Expr,_Expr,_Dom1,_Dom2>, bool> \
-operator _Op (const _Expr<_Dom1,typename _Dom1::value_type>& __v, \
- const _Expr<_Dom2,typename _Dom2::value_type>& __w) \
-{ \
- typedef typename _Dom1::value_type _Arg; \
- typedef _BinClos<_Name,_Expr,_Expr,_Dom1,_Dom2> _Closure; \
- return _Expr<_Closure,bool> (_Closure (__v (), __w ())); \
-} \
- \
-template<class _Dom> \
-inline _Expr<_BinClos<_Name,_Expr,_Constant,_Dom,typename _Dom::value_type>, \
- bool> \
-operator _Op (const _Expr<_Dom,typename _Dom::value_type>& __v, \
- const typename _Dom::value_type& __t) \
-{ \
- typedef typename _Dom::value_type _Arg; \
- typedef _BinClos<_Name,_Expr,_Constant,_Dom,_Arg> _Closure; \
- return _Expr<_Closure,bool> (_Closure (__v (), __t)); \
-} \
- \
-template<class _Dom> \
-inline _Expr<_BinClos<_Name,_Constant,_Expr,typename _Dom::value_type,_Dom>, \
- bool> \
-operator _Op (const typename _Dom::value_type& __t, \
- const _Expr<_Dom,typename _Dom::value_type>& __v) \
-{ \
- typedef typename _Dom::value_type _Arg; \
- typedef _BinClos<_Name,_Constant,_Expr,_Arg,_Dom> _Closure; \
- return _Expr<_Closure,bool> (_Closure (__t, __v ())); \
-} \
- \
-template<class _Dom> \
-inline _Expr<_BinClos<_Name,_Expr,_ValArray,_Dom,typename _Dom::value_type>, \
- bool> \
-operator _Op (const _Expr<_Dom,typename _Dom::value_type>& __e, \
- const valarray<typename _Dom::value_type>& __v) \
-{ \
- typedef typename _Dom::value_type _Tp; \
- typedef _BinClos<_Name,_Expr,_ValArray,_Dom,_Tp> _Closure; \
- return _Expr<_Closure,bool> (_Closure (__e (), __v)); \
-} \
- \
-template<class _Dom> \
-inline _Expr<_BinClos<_Name,_ValArray,_Expr,typename _Dom::value_type,_Dom>, \
- bool> \
-operator _Op (const valarray<typename _Dom::value_type>& __v, \
- const _Expr<_Dom,typename _Dom::value_type>& __e) \
-{ \
- typedef typename _Dom::value_type _Tp; \
- typedef _BinClos<_Name,_ValArray,_Expr,_Tp,_Dom> _Closure; \
- return _Expr<_Closure,bool> (_Closure (__v, __e ())); \
-}
-
- _DEFINE_EXPR_RELATIONAL_OPERATOR(&&, logical_and)
- _DEFINE_EXPR_RELATIONAL_OPERATOR(||, logical_or)
- _DEFINE_EXPR_RELATIONAL_OPERATOR(==, equal_to)
- _DEFINE_EXPR_RELATIONAL_OPERATOR(!=, not_equal_to)
- _DEFINE_EXPR_RELATIONAL_OPERATOR(<, less)
- _DEFINE_EXPR_RELATIONAL_OPERATOR(>, greater)
- _DEFINE_EXPR_RELATIONAL_OPERATOR(<=, less_equal)
- _DEFINE_EXPR_RELATIONAL_OPERATOR(>=, greater_equal)
-
-#undef _DEFINE_EXPR_RELATIONAL_OPERATOR
-
-
-
-#define _DEFINE_EXPR_UNARY_FUNCTION(_Name) \
-template<class _Dom> \
-inline _Expr<_UnFunClos<_Expr,_Dom>,typename _Dom::value_type> \
-_Name(const _Expr<_Dom,typename _Dom::value_type>& __e) \
-{ \
- typedef typename _Dom::value_type _Tp; \
- typedef _UnFunClos<_Expr,_Dom> _Closure; \
- return _Expr<_Closure,_Tp>(_Closure(__e(), (_Tp(*)(_Tp))(&_Name))); \
-} \
- \
-template<typename _Tp> \
-inline _Expr<_UnFunClos<_ValArray,_Tp>,_Tp> \
-_Name(const valarray<_Tp>& __v) \
-{ \
- typedef _UnFunClos<_ValArray,_Tp> _Closure; \
- return _Expr<_Closure,_Tp> (_Closure (__v, (_Tp(*)(_Tp))(&_Name))); \
-}
+#define _DEFINE_EXPR_UNARY_FUNCTION(_Name) \
+ template<class _Dom> \
+ inline _Expr<_UnClos<__##_Name,_Expr,_Dom>,typename _Dom::value_type>\
+ _Name(const _Expr<_Dom,typename _Dom::value_type>& __e) \
+ { \
+ typedef typename _Dom::value_type _Tp; \
+ typedef _UnClos<__##_Name,_Expr,_Dom> _Closure; \
+ return _Expr<_Closure,_Tp>(_Closure(__e())); \
+ } \
+ \
+ template<typename _Tp> \
+ inline _Expr<_UnClos<__##_Name,_ValArray,_Tp>,_Tp> \
+ _Name(const valarray<_Tp>& __v) \
+ { \
+ typedef _UnClos<__##_Name,_ValArray,_Tp> _Closure; \
+ return _Expr<_Closure,_Tp>(_Closure(__v)); \
+ }
_DEFINE_EXPR_UNARY_FUNCTION(abs)
_DEFINE_EXPR_UNARY_FUNCTION(cos)
@@ -972,93 +1048,89 @@ _Name(const valarray<_Tp>& __v) \
#undef _DEFINE_EXPR_UNARY_FUNCTION
-
-#define _DEFINE_EXPR_BINARY_FUNCTION(_Name) \
-template<class _Dom1, class _Dom2> \
-inline _Expr<_BinFunClos<_Expr,_Expr,_Dom1,_Dom2>,typename _Dom1::value_type>\
-_Name (const _Expr<_Dom1,typename _Dom1::value_type>& __e1, \
- const _Expr<_Dom2,typename _Dom2::value_type>& __e2) \
-{ \
- typedef typename _Dom1::value_type _Tp; \
- typedef _BinFunClos<_Expr,_Expr,_Dom1,_Dom2> _Closure; \
- return _Expr<_Closure,_Tp> \
- (_Closure (__e1 (), __e2 (), (_Tp(*)(_Tp, _Tp))(&_Name))); \
-} \
- \
-template<class _Dom> \
-inline _Expr<_BinFunClos<_Expr,_ValArray,_Dom,typename _Dom::value_type>, \
- typename _Dom::value_type> \
-_Name (const _Expr<_Dom,typename _Dom::value_type>& __e, \
- const valarray<typename _Dom::value_type>& __v) \
-{ \
- typedef typename _Dom::value_type _Tp; \
- typedef _BinFunClos<_Expr,_ValArray,_Dom,_Tp> _Closure; \
- return _Expr<_Closure,_Tp> \
- (_Closure (__e (), __v, (_Tp(*)(_Tp, _Tp))(&_Name))); \
-} \
- \
-template<class _Dom> \
-inline _Expr<_BinFunClos<_ValArray,_Expr,typename _Dom::value_type,_Dom>, \
- typename _Dom::value_type> \
-_Name (const valarray<typename _Dom::valarray>& __v, \
- const _Expr<_Dom,typename _Dom::value_type>& __e) \
-{ \
- typedef typename _Dom::value_type _Tp; \
- typedef _BinFunClos<_ValArray,_Expr,_Tp,_Dom> _Closure; \
- return _Expr<_Closure,_Tp> \
- (_Closure (__v, __e (), (_Tp(*)(_Tp, _Tp))(&_Name))); \
-} \
- \
-template<class _Dom> \
-inline _Expr<_BinFunClos<_Expr,_Constant,_Dom,typename _Dom::value_type>, \
- typename _Dom::value_type> \
-_Name (const _Expr<_Dom, typename _Dom::value_type>& __e, \
- const typename _Dom::value_type& __t) \
-{ \
- typedef typename _Dom::value_type _Tp; \
- typedef _BinFunClos<_Expr,_Constant,_Dom,_Tp> _Closure; \
- return _Expr<_Closure,_Tp> \
- (_Closure (__e (), __t, (_Tp(*)(_Tp, _Tp))(&_Name))); \
-} \
- \
-template<class _Dom> \
-inline _Expr<_BinFunClos<_Constant,_Expr,typename _Dom::value_type,_Dom>, \
- typename _Dom::value_type> \
-_Name (const typename _Dom::value_type& __t, \
- const _Expr<_Dom,typename _Dom::value_type>& __e) \
-{ \
- typedef typename _Dom::value_type _Tp; \
- typedef _BinFunClos<_Constant,_Expr,_Tp,_Dom> _Closure; \
- return _Expr<_Closure,_Tp> \
- (_Closure (__t, __e (), (_Tp(*)(_Tp, _Tp))(&_Name))); \
-} \
- \
-template<typename _Tp> \
-inline _Expr<_BinFunClos<_ValArray,_ValArray,_Tp,_Tp>, _Tp> \
-_Name (const valarray<_Tp>& __v, const valarray<_Tp>& __w) \
-{ \
- typedef _BinFunClos<_ValArray,_ValArray,_Tp,_Tp> _Closure; \
- return _Expr<_Closure,_Tp> \
- (_Closure (__v, __w, (_Tp(*)(_Tp,_Tp))(&_Name))); \
-} \
- \
-template<typename _Tp> \
-inline _Expr<_BinFunClos<_ValArray,_Constant,_Tp,_Tp>,_Tp> \
-_Name (const valarray<_Tp>& __v, const _Tp& __t) \
-{ \
- typedef _BinFunClos<_ValArray,_Constant,_Tp,_Tp> _Closure; \
- return _Expr<_Closure,_Tp> \
- (_Closure (__v, __t, (_Tp(*)(_Tp,_Tp))(&_Name))); \
-} \
- \
-template<typename _Tp> \
-inline _Expr<_BinFunClos<_Constant,_ValArray,_Tp,_Tp>,_Tp> \
-_Name (const _Tp& __t, const valarray<_Tp>& __v) \
-{ \
- typedef _BinFunClos<_Constant,_ValArray,_Tp,_Tp> _Closure; \
- return _Expr<_Closure,_Tp> \
- (_Closure (__t, __v, (_Tp(*)(_Tp,_Tp))(&_Name))); \
-}
+#define _DEFINE_EXPR_BINARY_FUNCTION(_Fun) \
+ template<class _Dom1, class _Dom2> \
+ inline _Expr<_BinClos<__##_Fun,_Expr,_Expr,_Dom1,_Dom2>, \
+ typename _Dom1::value_type> \
+ _Fun(const _Expr<_Dom1,typename _Dom1::value_type>& __e1, \
+ const _Expr<_Dom2,typename _Dom2::value_type>& __e2) \
+ { \
+ typedef typename _Dom1::value_type _Tp; \
+ typedef _BinClos<__##_Fun,_Expr,_Expr,_Dom1,_Dom2> _Closure; \
+ return _Expr<_Closure,_Tp>(_Closure(__e1(), __e2())); \
+ } \
+ \
+ template<class _Dom> \
+ inline _Expr<_BinClos<__##_Fun, _Expr, _ValArray, _Dom, \
+ typename _Dom::value_type>, \
+ typename _Dom::value_type> \
+ _Fun(const _Expr<_Dom,typename _Dom::value_type>& __e, \
+ const valarray<typename _Dom::value_type>& __v) \
+ { \
+ typedef typename _Dom::value_type _Tp; \
+ typedef _BinClos<__##_Fun, _Expr, _ValArray, _Dom, _Tp> _Closure;\
+ return _Expr<_Closure,_Tp>(_Closure(__e(), __v)); \
+ } \
+ \
+ template<class _Dom> \
+ inline _Expr<_BinClos<__##_Fun, _ValArray, _Expr, \
+ typename _Dom::value_type,_Dom>, \
+ typename _Dom::value_type> \
+ _Fun(const valarray<typename _Dom::valarray>& __v, \
+ const _Expr<_Dom,typename _Dom::value_type>& __e) \
+ { \
+ typedef typename _Dom::value_type _Tp; \
+ typedef _BinClos<__##_Fun,_ValArray,_Expr,_Tp,_Dom> _Closure; \
+ return _Expr<_Closure,_Tp>(_Closure(__v, __e())); \
+ } \
+ \
+ template<class _Dom> \
+ inline _Expr<_BinClos<__##_Fun,_Expr,_Constant,_Dom, \
+ typename _Dom::value_type>, \
+ typename _Dom::value_type> \
+ _Fun(const _Expr<_Dom, typename _Dom::value_type>& __e, \
+ const typename _Dom::value_type& __t) \
+ { \
+ typedef typename _Dom::value_type _Tp; \
+ typedef _BinClos<__##_Fun,_Expr,_Constant,_Dom,_Tp> _Closure; \
+ return _Expr<_Closure,_Tp>(_Closure(__e(), __t)); \
+ } \
+ \
+ template<class _Dom> \
+ inline _Expr<_BinClos<__##_Fun,_Constant,_Expr, \
+ typename _Dom::value_type,_Dom>, \
+ typename _Dom::value_type> \
+ _Fun(const typename _Dom::value_type& __t, \
+ const _Expr<_Dom,typename _Dom::value_type>& __e) \
+ { \
+ typedef typename _Dom::value_type _Tp; \
+ typedef _BinClos<__##_Fun, _Constant,_Expr,_Tp,_Dom> _Closure; \
+ return _Expr<_Closure,_Tp>(_Closure(__t, __e())); \
+ } \
+ \
+ template<typename _Tp> \
+ inline _Expr<_BinClos<__##_Fun,_ValArray,_ValArray,_Tp,_Tp>, _Tp> \
+ _Fun(const valarray<_Tp>& __v, const valarray<_Tp>& __w) \
+ { \
+ typedef _BinClos<__##_Fun,_ValArray,_ValArray,_Tp,_Tp> _Closure; \
+ return _Expr<_Closure,_Tp>(_Closure(__v, __w)); \
+ } \
+ \
+ template<typename _Tp> \
+ inline _Expr<_BinClos<__##_Fun,_ValArray,_Constant,_Tp,_Tp>,_Tp> \
+ _Fun(const valarray<_Tp>& __v, const _Tp& __t) \
+ { \
+ typedef _BinClos<__##_Fun,_ValArray,_Constant,_Tp,_Tp> _Closure; \
+ return _Expr<_Closure,_Tp>(_Closure(__v, __t)); \
+ } \
+ \
+ template<typename _Tp> \
+ inline _Expr<_BinClos<__##_Fun,_Constant,_ValArray,_Tp,_Tp>,_Tp> \
+ _Fun(const _Tp& __t, const valarray<_Tp>& __v) \
+ { \
+ typedef _BinClos<__##_Fun,_Constant,_ValArray,_Tp,_Tp> _Closure; \
+ return _Expr<_Closure,_Tp>(_Closure(__t, __v)); \
+ }
_DEFINE_EXPR_BINARY_FUNCTION(atan2)
_DEFINE_EXPR_BINARY_FUNCTION(pow)
diff --git a/contrib/libstdc++/include/bits/vector.tcc b/contrib/libstdc++/include/bits/vector.tcc
new file mode 100644
index 0000000..da5cf7e
--- /dev/null
+++ b/contrib/libstdc++/include/bits/vector.tcc
@@ -0,0 +1,437 @@
+// Vector implementation (out of line) -*- C++ -*-
+
+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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 library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+/*
+ *
+ * Copyright (c) 1994
+ * Hewlett-Packard Company
+ *
+ * Permission to use, copy, modify, distribute and sell this software
+ * and its documentation for any purpose is hereby granted without fee,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation. Hewlett-Packard Company makes no
+ * representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ *
+ * Copyright (c) 1996
+ * Silicon Graphics Computer Systems, Inc.
+ *
+ * Permission to use, copy, modify, distribute and sell this software
+ * and its documentation for any purpose is hereby granted without fee,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation. Silicon Graphics makes no
+ * representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ */
+
+/** @file vector.tcc
+ * This is an internal header file, included by other library headers.
+ * You should not attempt to use it directly.
+ */
+
+#ifndef __GLIBCPP_INTERNAL_VECTOR_TCC
+#define __GLIBCPP_INTERNAL_VECTOR_TCC
+
+namespace std
+{
+ template<typename _Tp, typename _Alloc>
+ void
+ vector<_Tp,_Alloc>::
+ reserve(size_type __n)
+ {
+ if (__n > this->max_size())
+ __throw_length_error("vector::reserve");
+ if (this->capacity() < __n)
+ {
+ const size_type __old_size = size();
+ pointer __tmp = _M_allocate_and_copy(__n, _M_start, _M_finish);
+ _Destroy(_M_start, _M_finish);
+ _M_deallocate(_M_start, _M_end_of_storage - _M_start);
+ _M_start = __tmp;
+ _M_finish = __tmp + __old_size;
+ _M_end_of_storage = _M_start + __n;
+ }
+ }
+
+ template<typename _Tp, typename _Alloc>
+ typename vector<_Tp,_Alloc>::iterator
+ vector<_Tp,_Alloc>::
+ insert(iterator __position, const value_type& __x)
+ {
+ size_type __n = __position - begin();
+ if (_M_finish != _M_end_of_storage && __position == end())
+ {
+ _Construct(_M_finish, __x);
+ ++_M_finish;
+ }
+ else
+ _M_insert_aux(__position, __x);
+ return begin() + __n;
+ }
+
+ template<typename _Tp, typename _Alloc>
+ typename vector<_Tp,_Alloc>::iterator
+ vector<_Tp,_Alloc>::
+ erase(iterator __position)
+ {
+ if (__position + 1 != end())
+ copy(__position + 1, end(), __position);
+ --_M_finish;
+ _Destroy(_M_finish);
+ return __position;
+ }
+
+ template<typename _Tp, typename _Alloc>
+ typename vector<_Tp,_Alloc>::iterator
+ vector<_Tp,_Alloc>::
+ erase(iterator __first, iterator __last)
+ {
+ iterator __i(copy(__last, end(), __first));
+ _Destroy(__i, end());
+ _M_finish = _M_finish - (__last - __first);
+ return __first;
+ }
+
+ template<typename _Tp, typename _Alloc>
+ vector<_Tp,_Alloc>&
+ vector<_Tp,_Alloc>::
+ operator=(const vector<_Tp,_Alloc>& __x)
+ {
+ if (&__x != this)
+ {
+ const size_type __xlen = __x.size();
+ if (__xlen > capacity())
+ {
+ pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), __x.end());
+ _Destroy(_M_start, _M_finish);
+ _M_deallocate(_M_start, _M_end_of_storage - _M_start);
+ _M_start = __tmp;
+ _M_end_of_storage = _M_start + __xlen;
+ }
+ else if (size() >= __xlen)
+ {
+ iterator __i(copy(__x.begin(), __x.end(), begin()));
+ _Destroy(__i, end());
+ }
+ else
+ {
+ copy(__x.begin(), __x.begin() + size(), _M_start);
+ uninitialized_copy(__x.begin() + size(), __x.end(), _M_finish);
+ }
+ _M_finish = _M_start + __xlen;
+ }
+ return *this;
+ }
+
+ template<typename _Tp, typename _Alloc>
+ void
+ vector<_Tp,_Alloc>::
+ _M_fill_assign(size_t __n, const value_type& __val)
+ {
+ if (__n > capacity())
+ {
+ vector __tmp(__n, __val, get_allocator());
+ __tmp.swap(*this);
+ }
+ else if (__n > size())
+ {
+ fill(begin(), end(), __val);
+ _M_finish = uninitialized_fill_n(_M_finish, __n - size(), __val);
+ }
+ else
+ erase(fill_n(begin(), __n, __val), end());
+ }
+
+ template<typename _Tp, typename _Alloc> template<typename _InputIter>
+ void
+ vector<_Tp,_Alloc>::
+ _M_assign_aux(_InputIter __first, _InputIter __last, input_iterator_tag)
+ {
+ iterator __cur(begin());
+ for ( ; __first != __last && __cur != end(); ++__cur, ++__first)
+ *__cur = *__first;
+ if (__first == __last)
+ erase(__cur, end());
+ else
+ insert(end(), __first, __last);
+ }
+
+ template<typename _Tp, typename _Alloc> template<typename _ForwardIter>
+ void
+ vector<_Tp,_Alloc>::
+ _M_assign_aux(_ForwardIter __first, _ForwardIter __last,
+ forward_iterator_tag)
+ {
+ size_type __len = distance(__first, __last);
+
+ if (__len > capacity())
+ {
+ pointer __tmp(_M_allocate_and_copy(__len, __first, __last));
+ _Destroy(_M_start, _M_finish);
+ _M_deallocate(_M_start, _M_end_of_storage - _M_start);
+ _M_start = __tmp;
+ _M_end_of_storage = _M_finish = _M_start + __len;
+ }
+ else if (size() >= __len)
+ {
+ iterator __new_finish(copy(__first, __last, _M_start));
+ _Destroy(__new_finish, end());
+ _M_finish = __new_finish.base();
+ }
+ else
+ {
+ _ForwardIter __mid = __first;
+ advance(__mid, size());
+ copy(__first, __mid, _M_start);
+ _M_finish = uninitialized_copy(__mid, __last, _M_finish);
+ }
+ }
+
+ template<typename _Tp, typename _Alloc>
+ void
+ vector<_Tp,_Alloc>::
+ _M_insert_aux(iterator __position, const _Tp& __x)
+ {
+ if (_M_finish != _M_end_of_storage)
+ {
+ _Construct(_M_finish, *(_M_finish - 1));
+ ++_M_finish;
+ _Tp __x_copy = __x;
+ copy_backward(__position, iterator(_M_finish-2), iterator(_M_finish-1));
+ *__position = __x_copy;
+ }
+ else
+ {
+ const size_type __old_size = size();
+ const size_type __len = __old_size != 0 ? 2 * __old_size : 1;
+ iterator __new_start(_M_allocate(__len));
+ iterator __new_finish(__new_start);
+ try
+ {
+ __new_finish = uninitialized_copy(iterator(_M_start), __position,
+ __new_start);
+ _Construct(__new_finish.base(), __x);
+ ++__new_finish;
+ __new_finish = uninitialized_copy(__position, iterator(_M_finish),
+ __new_finish);
+ }
+ catch(...)
+ {
+ _Destroy(__new_start,__new_finish);
+ _M_deallocate(__new_start.base(),__len);
+ __throw_exception_again;
+ }
+ _Destroy(begin(), end());
+ _M_deallocate(_M_start, _M_end_of_storage - _M_start);
+ _M_start = __new_start.base();
+ _M_finish = __new_finish.base();
+ _M_end_of_storage = __new_start.base() + __len;
+ }
+ }
+
+ #ifdef _GLIBCPP_DEPRECATED
+ template<typename _Tp, typename _Alloc>
+ void
+ vector<_Tp,_Alloc>::
+ _M_insert_aux(iterator __position)
+ {
+ if (_M_finish != _M_end_of_storage)
+ {
+ _Construct(_M_finish, *(_M_finish - 1));
+ ++_M_finish;
+ copy_backward(__position, iterator(_M_finish - 2),
+ iterator(_M_finish - 1));
+ *__position = value_type();
+ }
+ else
+ {
+ const size_type __old_size = size();
+ const size_type __len = __old_size != 0 ? 2 * __old_size : 1;
+ pointer __new_start = _M_allocate(__len);
+ pointer __new_finish = __new_start;
+ try
+ {
+ __new_finish = uninitialized_copy(iterator(_M_start), __position,
+ __new_start);
+ _Construct(__new_finish);
+ ++__new_finish;
+ __new_finish = uninitialized_copy(__position, iterator(_M_finish),
+ __new_finish);
+ }
+ catch(...)
+ {
+ _Destroy(__new_start,__new_finish);
+ _M_deallocate(__new_start,__len);
+ __throw_exception_again;
+ }
+ _Destroy(begin(), end());
+ _M_deallocate(_M_start, _M_end_of_storage - _M_start);
+ _M_start = __new_start;
+ _M_finish = __new_finish;
+ _M_end_of_storage = __new_start + __len;
+ }
+ }
+ #endif
+
+ template<typename _Tp, typename _Alloc>
+ void
+ vector<_Tp,_Alloc>::
+ _M_fill_insert(iterator __position, size_type __n, const value_type& __x)
+ {
+ if (__n != 0)
+ {
+ if (size_type(_M_end_of_storage - _M_finish) >= __n)
+ {
+ value_type __x_copy = __x;
+ const size_type __elems_after = end() - __position;
+ iterator __old_finish(_M_finish);
+ if (__elems_after > __n)
+ {
+ uninitialized_copy(_M_finish - __n, _M_finish, _M_finish);
+ _M_finish += __n;
+ copy_backward(__position, __old_finish - __n, __old_finish);
+ fill(__position, __position + __n, __x_copy);
+ }
+ else
+ {
+ uninitialized_fill_n(_M_finish, __n - __elems_after, __x_copy);
+ _M_finish += __n - __elems_after;
+ uninitialized_copy(__position, __old_finish, _M_finish);
+ _M_finish += __elems_after;
+ fill(__position, __old_finish, __x_copy);
+ }
+ }
+ else
+ {
+ const size_type __old_size = size();
+ const size_type __len = __old_size + max(__old_size, __n);
+ iterator __new_start(_M_allocate(__len));
+ iterator __new_finish(__new_start);
+ try
+ {
+ __new_finish = uninitialized_copy(begin(), __position,
+ __new_start);
+ __new_finish = uninitialized_fill_n(__new_finish, __n, __x);
+ __new_finish = uninitialized_copy(__position, end(),
+ __new_finish);
+ }
+ catch(...)
+ {
+ _Destroy(__new_start,__new_finish);
+ _M_deallocate(__new_start.base(),__len);
+ __throw_exception_again;
+ }
+ _Destroy(_M_start, _M_finish);
+ _M_deallocate(_M_start, _M_end_of_storage - _M_start);
+ _M_start = __new_start.base();
+ _M_finish = __new_finish.base();
+ _M_end_of_storage = __new_start.base() + __len;
+ }
+ }
+ }
+
+ template<typename _Tp, typename _Alloc> template<typename _InputIterator>
+ void
+ vector<_Tp,_Alloc>::
+ _M_range_insert(iterator __pos,
+ _InputIterator __first, _InputIterator __last,
+ input_iterator_tag)
+ {
+ for ( ; __first != __last; ++__first)
+ {
+ __pos = insert(__pos, *__first);
+ ++__pos;
+ }
+ }
+
+ template<typename _Tp, typename _Alloc> template<typename _ForwardIterator>
+ void
+ vector<_Tp,_Alloc>::
+ _M_range_insert(iterator __position,_ForwardIterator __first,
+ _ForwardIterator __last, forward_iterator_tag)
+ {
+ if (__first != __last)
+ {
+ size_type __n = distance(__first, __last);
+ if (size_type(_M_end_of_storage - _M_finish) >= __n)
+ {
+ const size_type __elems_after = end() - __position;
+ iterator __old_finish(_M_finish);
+ if (__elems_after > __n)
+ {
+ uninitialized_copy(_M_finish - __n, _M_finish, _M_finish);
+ _M_finish += __n;
+ copy_backward(__position, __old_finish - __n, __old_finish);
+ copy(__first, __last, __position);
+ }
+ else
+ {
+ _ForwardIterator __mid = __first;
+ advance(__mid, __elems_after);
+ uninitialized_copy(__mid, __last, _M_finish);
+ _M_finish += __n - __elems_after;
+ uninitialized_copy(__position, __old_finish, _M_finish);
+ _M_finish += __elems_after;
+ copy(__first, __mid, __position);
+ }
+ }
+ else
+ {
+ const size_type __old_size = size();
+ const size_type __len = __old_size + max(__old_size, __n);
+ iterator __new_start(_M_allocate(__len));
+ iterator __new_finish(__new_start);
+ try
+ {
+ __new_finish = uninitialized_copy(iterator(_M_start),
+ __position, __new_start);
+ __new_finish = uninitialized_copy(__first, __last, __new_finish);
+ __new_finish = uninitialized_copy(__position, iterator(_M_finish),
+ __new_finish);
+ }
+ catch(...)
+ {
+ _Destroy(__new_start,__new_finish);
+ _M_deallocate(__new_start.base(), __len);
+ __throw_exception_again;
+ }
+ _Destroy(_M_start, _M_finish);
+ _M_deallocate(_M_start, _M_end_of_storage - _M_start);
+ _M_start = __new_start.base();
+ _M_finish = __new_finish.base();
+ _M_end_of_storage = __new_start.base() + __len;
+ }
+ }
+ }
+} // namespace std
+
+#endif /* __GLIBCPP_INTERNAL_VECTOR_TCC */
diff --git a/contrib/libstdc++/include/c_std/std_cmath.h b/contrib/libstdc++/include/c_std/std_cmath.h
index b2f65c8..1264c4d 100644
--- a/contrib/libstdc++/include/c_std/std_cmath.h
+++ b/contrib/libstdc++/include/c_std/std_cmath.h
@@ -1,6 +1,6 @@
// -*- C++ -*- C forwarding header.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -76,6 +76,91 @@
#undef tan
#undef tanh
+// ...and in the darkness bind them...
+namespace __gnu_cxx
+{
+ namespace __c99_binding
+ {
+#if _GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_CHECK || \
+ _GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC
+ extern "C" float (acosf)(float);
+ extern "C" float (asinf)(float);
+ extern "C" float (atanf)(float);
+ extern "C" float (atan2f)(float, float);
+ extern "C" float (ceilf)(float);
+ extern "C" float (coshf)(float);
+ extern "C" float (expf)(float);
+ extern "C" float (floorf)(float);
+ extern "C" float (fmodf)(float, float);
+ extern "C" float (frexpf)(float, int*);
+ extern "C" float (ldexpf)(float, int);
+ extern "C" float (logf)(float);
+ extern "C" float (log10f)(float);
+ extern "C" float (modff)(float, float*);
+ extern "C" float (powf)(float, float);
+ extern "C" float (sinhf)(float);
+ extern "C" float (tanf)(float);
+ extern "C" float (tanhf)(float);
+#endif
+#if !_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC
+#if _GLIBCPP_HAVE_ACOSF
+ using ::acosf;
+#endif
+#if _GLIBCPP_HAVE_ASINF
+ using ::asinf;
+#endif
+#if _GLIBCPP_HAVE_ATANF
+ using ::atanf;
+#endif
+#if _GLIBCPP_HAVE_ATAN2F
+ using ::atan2f;
+#endif
+#if _GLIBCPP_HAVE_CEILF
+ using ::ceilf;
+#endif
+#if _GLIBCPP_HAVE_COSHF
+ using ::coshf;
+#endif
+#if _GLIBCPP_HAVE_EXPF
+ using ::expf;
+#endif
+#if _GLIBCPP_HAVE_FLOORF
+ using ::floorf;
+#endif
+#if _GLIBCPP_HAVE_FMODF
+ using ::fmodf;
+#endif
+#if _GLIBCPP_HAVE_FREXPF
+ using ::frexpf;
+#endif
+#if _GLIBCPP_HAVE_LDEXPF
+ using ::ldexpf;
+#endif
+#if _GLIBCPP_HAVE_LOGF
+ using ::logf;
+#endif
+#if _GLIBCPP_HAVE_LOG10F
+ using ::log10f;
+#endif
+#if _GLIBCPP_HAVE_MODFF
+ using ::modff;
+#endif
+#if _GLIBCPP_HAVE_POWF
+ using ::powf;
+#endif
+#if _GLIBCPP_HAVE_SINHF
+ using ::sinhf;
+#endif
+#if _GLIBCPP_HAVE_TANF
+ using ::tanf;
+#endif
+#if _GLIBCPP_HAVE_TANHF
+ using ::tanhf;
+#endif
+#endif /* _GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC */
+ }
+}
+
namespace std
{
// Forward declaration of a helper function. This really should be
@@ -96,7 +181,7 @@ namespace std
#if _GLIBCPP_HAVE_ACOSF
inline float
- acos(float __x) { return ::acosf(__x); }
+ acos(float __x) { return __gnu_cxx::__c99_binding::acosf(__x); }
#else
inline float
acos(float __x) { return ::acos(static_cast<double>(__x)); }
@@ -116,7 +201,7 @@ namespace std
#if _GLIBCPP_HAVE_ASINF
inline float
- asin(float __x) { return ::asinf(__x); }
+ asin(float __x) { return __gnu_cxx::__c99_binding::asinf(__x); }
#else
inline float
asin(float __x) { return ::asin(static_cast<double>(__x)); }
@@ -134,7 +219,7 @@ namespace std
#if _GLIBCPP_HAVE_ATANF
inline float
- atan(float __x) { return ::atanf(__x); }
+ atan(float __x) { return __gnu_cxx::__c99_binding::atanf(__x); }
#else
inline float
atan(float __x) { return ::atan(static_cast<double>(__x)); }
@@ -152,7 +237,7 @@ namespace std
#if _GLIBCPP_HAVE_ATAN2F
inline float
- atan2(float __y, float __x) { return ::atan2f(__y, __x); }
+ atan2(float __y, float __x) { return __gnu_cxx::__c99_binding::atan2f(__y, __x); }
#else
inline float
atan2(float __y, float __x)
@@ -172,7 +257,7 @@ namespace std
#if _GLIBCPP_HAVE_CEILF
inline float
- ceil(float __x) { return ::ceilf(__x); }
+ ceil(float __x) { return __gnu_cxx::__c99_binding::ceilf(__x); }
#else
inline float
ceil(float __x) { return ::ceil(static_cast<double>(__x)); }
@@ -200,7 +285,7 @@ namespace std
#if _GLIBCPP_HAVE_COSHF
inline float
- cosh(float __x) { return ::coshf(__x); }
+ cosh(float __x) { return __gnu_cxx::__c99_binding::coshf(__x); }
#else
inline float
cosh(float __x) { return ::cosh(static_cast<double>(__x)); }
@@ -218,7 +303,7 @@ namespace std
#if _GLIBCPP_HAVE_EXPF
inline float
- exp(float __x) { return ::expf(__x); }
+ exp(float __x) { return __gnu_cxx::__c99_binding::expf(__x); }
#else
inline float
exp(float __x) { return ::exp(static_cast<double>(__x)); }
@@ -246,7 +331,7 @@ namespace std
#if _GLIBCPP_HAVE_FLOORF
inline float
- floor(float __x) { return ::floorf(__x); }
+ floor(float __x) { return __gnu_cxx::__c99_binding::floorf(__x); }
#else
inline float
floor(float __x) { return ::floor(static_cast<double>(__x)); }
@@ -264,7 +349,7 @@ namespace std
#if _GLIBCPP_HAVE_FMODF
inline float
- fmod(float __x, float __y) { return ::fmodf(__x, __y); }
+ fmod(float __x, float __y) { return __gnu_cxx::__c99_binding::fmodf(__x, __y); }
#else
inline float
fmod(float __x, float __y)
@@ -284,7 +369,7 @@ namespace std
#if _GLIBCPP_HAVE_FREXPF
inline float
- frexp(float __x, int* __exp) { return ::frexpf(__x, __exp); }
+ frexp(float __x, int* __exp) { return __gnu_cxx::__c99_binding::frexpf(__x, __exp); }
#else
inline float
frexp(float __x, int* __exp) { return ::frexp(__x, __exp); }
@@ -303,7 +388,7 @@ namespace std
#if _GLIBCPP_HAVE_LDEXPF
inline float
- ldexp(float __x, int __exp) { return ::ldexpf(__x, __exp); }
+ ldexp(float __x, int __exp) { return __gnu_cxx::__c99_binding::ldexpf(__x, __exp); }
#else
inline float
ldexp(float __x, int __exp)
@@ -323,7 +408,7 @@ namespace std
#if _GLIBCPP_HAVE_LOGF
inline float
- log(float __x) { return ::logf(__x); }
+ log(float __x) { return __gnu_cxx::__c99_binding::logf(__x); }
#else
inline float log(float __x)
{ return ::log(static_cast<double>(__x)); }
@@ -341,7 +426,7 @@ namespace std
#if _GLIBCPP_HAVE_LOG10F
inline float
- log10(float __x) { return ::log10f(__x); }
+ log10(float __x) { return __gnu_cxx::__c99_binding::log10f(__x); }
#else
inline float
log10(float __x) { return ::log10(static_cast<double>(__x)); }
@@ -359,7 +444,7 @@ namespace std
#if _GLIBCPP_HAVE_MODFF
inline float
- modf(float __x, float* __iptr) { return ::modff(__x, __iptr); }
+ modf(float __x, float* __iptr) { return __gnu_cxx::__c99_binding::modff(__x, __iptr); }
#else
inline float
modf(float __x, float* __iptr)
@@ -398,7 +483,7 @@ namespace std
#if _GLIBCPP_HAVE_POWF
inline float
- pow(float __x, float __y) { return ::powf(__x, __y); }
+ pow(float __x, float __y) { return __gnu_cxx::__c99_binding::powf(__x, __y); }
#else
inline float
pow(float __x, float __y)
@@ -440,7 +525,7 @@ namespace std
#if _GLIBCPP_HAVE_SINHF
inline float
- sinh(float __x) { return ::sinhf(__x); }
+ sinh(float __x) { return __gnu_cxx::__c99_binding::sinhf(__x); }
#else
inline float
sinh(float __x) { return ::sinh(static_cast<double>(__x)); }
@@ -468,7 +553,7 @@ namespace std
#if _GLIBCPP_HAVE_TANF
inline float
- tan(float __x) { return ::tanf(__x); }
+ tan(float __x) { return __gnu_cxx::__c99_binding::tanf(__x); }
#else
inline float
tan(float __x) { return ::tan(static_cast<double>(__x)); }
@@ -486,7 +571,7 @@ namespace std
#if _GLIBCPP_HAVE_TANHF
inline float
- tanh(float __x) { return ::tanhf(__x); }
+ tanh(float __x) { return __gnu_cxx::__c99_binding::tanhf(__x); }
#else
inline float
tanh(float __x) { return ::tanh(static_cast<double>(__x)); }
@@ -503,6 +588,7 @@ namespace std
#if _GLIBCPP_USE_C99
+#if !_GLIBCPP_USE_C99_FP_MACROS_DYNAMIC
// These are possible macros imported from C99-land. For strict
// conformance, remove possible C99-injected names from the global
// namespace, and sequester them in the __gnu_cxx extension namespace.
@@ -561,6 +647,7 @@ namespace __gnu_cxx
__capture_isunordered(_Tp __f1, _Tp __f2)
{ return isunordered(__f1, __f2); }
}
+#endif /* _GLIBCPP_USE_C99_FP_MACROS_DYNAMIC */
#endif
#undef fpclassify
@@ -577,6 +664,7 @@ namespace __gnu_cxx
#undef isunordered
#if _GLIBCPP_USE_C99
+#if !_GLIBCPP_USE_C99_FP_MACROS_DYNAMIC
namespace __gnu_cxx
{
template<typename _Tp>
@@ -647,6 +735,7 @@ namespace std
using __gnu_cxx::islessgreater;
using __gnu_cxx::isunordered;
}
+#endif /* _GLIBCPP_USE_C99_FP_MACROS_DYNAMIC */
#endif
#ifdef _GLIBCPP_NO_TEMPLATE_EXPORT
diff --git a/contrib/libstdc++/include/c_std/std_cstdio.h b/contrib/libstdc++/include/c_std/std_cstdio.h
index 6fb8c79..3b4a685 100644
--- a/contrib/libstdc++/include/c_std/std_cstdio.h
+++ b/contrib/libstdc++/include/c_std/std_cstdio.h
@@ -1,6 +1,6 @@
// -*- C++ -*- forwarding header.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -152,11 +152,24 @@ namespace std
namespace __gnu_cxx
{
+#if _GLIBCPP_USE_C99_CHECK || _GLIBCPP_USE_C99_DYNAMIC
+ extern "C" int
+ (snprintf)(char * restrict, size_t, const char * restrict, ...);
+ extern "C" int
+ (vfscanf)(FILE * restrict, const char * restrict, __gnuc_va_list);
+ extern "C" int (vscanf)(const char * restrict, __gnuc_va_list);
+ extern "C" int
+ (vsnprintf)(char * restrict, size_t, const char * restrict, __gnuc_va_list);
+ extern "C" int
+ (vsscanf)(const char * restrict, const char * restrict, __gnuc_va_list);
+#endif
+#if !_GLIBCPP_USE_C99_DYNAMIC
using ::snprintf;
using ::vfscanf;
using ::vscanf;
using ::vsnprintf;
using ::vsscanf;
+#endif
}
namespace std
diff --git a/contrib/libstdc++/include/c_std/std_cstdlib.h b/contrib/libstdc++/include/c_std/std_cstdlib.h
index 70fc8d3..e1436be 100644
--- a/contrib/libstdc++/include/c_std/std_cstdlib.h
+++ b/contrib/libstdc++/include/c_std/std_cstdlib.h
@@ -1,6 +1,6 @@
// -*- C++ -*- forwarding header.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -135,8 +135,15 @@ namespace std
namespace __gnu_cxx
{
+#if !_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
using ::lldiv_t;
+#endif
+#if _GLIBCPP_USE_C99_CHECK || _GLIBCPP_USE_C99_DYNAMIC
+ extern "C" void (_Exit)(int);
+#endif
+#if !_GLIBCPP_USE_C99_DYNAMIC
using ::_Exit;
+#endif
inline long long
abs(long long __x) { return __x >= 0 ? __x : -__x; }
@@ -144,6 +151,7 @@ namespace __gnu_cxx
inline long long
llabs(long long __x) { return __x >= 0 ? __x : -__x; }
+#if !_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
inline lldiv_t
div(long long __n, long long __d)
{ lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
@@ -151,22 +159,36 @@ namespace __gnu_cxx
inline lldiv_t
lldiv(long long __n, long long __d)
{ lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
+#endif
+#if _GLIBCPP_USE_C99_LONG_LONG_CHECK || _GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
+ extern "C" long long int (atoll)(const char *);
+ extern "C" long long int
+ (strtoll)(const char * restrict, char ** restrict, int);
+ extern "C" unsigned long long int
+ (strtoull)(const char * restrict, char ** restrict, int);
+#endif
+#if !_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
using ::atoll;
- using ::strtof;
using ::strtoll;
using ::strtoull;
+#endif
+ using ::strtof;
using ::strtold;
}
namespace std
{
+#if !_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
using __gnu_cxx::lldiv_t;
+#endif
using __gnu_cxx::_Exit;
using __gnu_cxx::abs;
using __gnu_cxx::llabs;
+#if !_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
using __gnu_cxx::div;
using __gnu_cxx::lldiv;
+#endif
using __gnu_cxx::atoll;
using __gnu_cxx::strtof;
using __gnu_cxx::strtoll;
diff --git a/contrib/libstdc++/include/c_std/std_cwchar.h b/contrib/libstdc++/include/c_std/std_cwchar.h
index f67f006..8b33c52 100644
--- a/contrib/libstdc++/include/c_std/std_cwchar.h
+++ b/contrib/libstdc++/include/c_std/std_cwchar.h
@@ -1,6 +1,6 @@
// -*- C++ -*- forwarding header.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -225,9 +225,23 @@ namespace std
namespace __gnu_cxx
{
+#if _GLIBCPP_USE_C99_CHECK || _GLIBCPP_USE_C99_DYNAMIC
+ extern "C" long double
+ (wcstold)(const wchar_t * restrict, wchar_t ** restrict);
+#endif
+#if !_GLIBCPP_USE_C99_DYNAMIC
using ::wcstold;
+#endif
+#if _GLIBCPP_USE_C99_LONG_LONG_CHECK || _GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
+ extern "C" long long int
+ (wcstoll)(const wchar_t * restrict, wchar_t ** restrict, int);
+ extern "C" unsigned long long int
+ (wcstoull)(const wchar_t * restrict, wchar_t ** restrict, int);
+#endif
+#if !_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
using ::wcstoll;
using ::wcstoull;
+#endif
}
namespace std
diff --git a/contrib/libstdc++/include/ext/stdio_filebuf.h b/contrib/libstdc++/include/ext/stdio_filebuf.h
index 59ab41a..4c6bf90 100644
--- a/contrib/libstdc++/include/ext/stdio_filebuf.h
+++ b/contrib/libstdc++/include/ext/stdio_filebuf.h
@@ -58,6 +58,7 @@ namespace __gnu_cxx
typedef typename traits_type::int_type int_type;
typedef typename traits_type::pos_type pos_type;
typedef typename traits_type::off_type off_type;
+ typedef std::size_t size_t;
protected:
// Stack-based buffer for unbuffered input.
@@ -75,7 +76,7 @@ namespace __gnu_cxx
* file will be closed when the stdio_filebuf is closed/destroyed.
*/
stdio_filebuf(int __fd, std::ios_base::openmode __mode, bool __del,
- int_type __size);
+ size_t __size);
/**
* @param f An open @c FILE*.
@@ -88,7 +89,7 @@ namespace __gnu_cxx
* stdio_filebuf is closed/destroyed.
*/
stdio_filebuf(std::__c_file* __f, std::ios_base::openmode __mode,
- int_type __size = static_cast<int_type>(BUFSIZ));
+ size_t __size = static_cast<size_t>(BUFSIZ));
/**
* Possibly closes the external data stream, in the case of the file
@@ -117,7 +118,7 @@ namespace __gnu_cxx
template<typename _CharT, typename _Traits>
stdio_filebuf<_CharT, _Traits>::
stdio_filebuf(int __fd, std::ios_base::openmode __mode, bool __del,
- int_type __size)
+ size_t __size)
{
_M_file.sys_open(__fd, __mode, __del);
if (this->is_open())
@@ -125,7 +126,7 @@ namespace __gnu_cxx
_M_mode = __mode;
if (__size > 0 && __size < 4)
{
- // Specify unbuffered.
+ // Specify not to use an allocated buffer.
_M_buf = _M_unbuf;
_M_buf_size = __size;
_M_buf_size_opt = 0;
@@ -142,7 +143,7 @@ namespace __gnu_cxx
template<typename _CharT, typename _Traits>
stdio_filebuf<_CharT, _Traits>::
stdio_filebuf(std::__c_file* __f, std::ios_base::openmode __mode,
- int_type __size)
+ size_t __size)
{
_M_file.sys_open(__f, __mode);
if (this->is_open())
@@ -150,7 +151,7 @@ namespace __gnu_cxx
_M_mode = __mode;
if (__size > 0 && __size < 4)
{
- // Specify unbuffered.
+ // Specify not to use an allocated buffer.
_M_buf = _M_unbuf;
_M_buf_size = __size;
_M_buf_size_opt = 0;
diff --git a/contrib/libstdc++/include/ext/stl_hashtable.h b/contrib/libstdc++/include/ext/stl_hashtable.h
index 2bc8a2f..b41c821 100644
--- a/contrib/libstdc++/include/ext/stl_hashtable.h
+++ b/contrib/libstdc++/include/ext/stl_hashtable.h
@@ -65,13 +65,10 @@
// Hashtable class, used to implement the hashed associative containers
// hash_set, hash_map, hash_multiset, and hash_multimap.
-#include <bits/stl_algobase.h>
-#include <bits/stl_alloc.h>
-#include <bits/stl_construct.h>
+#include <vector>
+#include <iterator>
#include <bits/stl_algo.h>
-#include <bits/stl_uninitialized.h>
#include <bits/stl_function.h>
-#include <bits/stl_vector.h>
#include <ext/stl_hash_fun.h>
namespace __gnu_cxx
diff --git a/contrib/libstdc++/include/std/std_bitset.h b/contrib/libstdc++/include/std/std_bitset.h
index fe60b01..ebe1650 100644
--- a/contrib/libstdc++/include/std/std_bitset.h
+++ b/contrib/libstdc++/include/std/std_bitset.h
@@ -219,7 +219,7 @@ namespace std
void
_Base_bitset<_Nw>::_M_do_left_shift(size_t __shift)
{
- if (__shift != 0)
+ if (__builtin_expect(__shift != 0, 1))
{
const size_t __wshift = __shift / _GLIBCPP_BITSET_BITS_PER_WORD;
const size_t __offset = __shift % _GLIBCPP_BITSET_BITS_PER_WORD;
@@ -244,7 +244,7 @@ namespace std
void
_Base_bitset<_Nw>::_M_do_right_shift(size_t __shift)
{
- if (__shift != 0)
+ if (__builtin_expect(__shift != 0, 1))
{
const size_t __wshift = __shift / _GLIBCPP_BITSET_BITS_PER_WORD;
const size_t __offset = __shift % _GLIBCPP_BITSET_BITS_PER_WORD;
@@ -570,6 +570,7 @@ namespace std
struct _Sanitize<0>
{ static void _S_do_sanitize(unsigned long) { } };
+
/**
* @brief The %bitset class represents a @e fixed-size sequence of bits.
*
@@ -578,17 +579,19 @@ namespace std
* (Note that %bitset does @e not meet the formal requirements of a
* <a href="tables.html#65">container</a>. Mainly, it lacks iterators.)
*
- * The template argument, @a _Nb, may be any nonzero number of type
- * size_t.
+ * The template argument, @a Nb, may be any non-negative number,
+ * specifying the number of bits (e.g., "0", "12", "1024*1024").
*
- * A %bitset of size N has N % (sizeof(unsigned long) * CHAR_BIT) unused
- * bits. (They are the high-order bits in the highest word.) It is
- * a class invariant that those unused bits are always zero.
+ * In the general unoptimized case, storage is allocated in word-sized
+ * blocks. Let B be the number of bits in a word, then (Nb+(B-1))/B
+ * words will be used for storage. B - Nb%B bits are unused. (They are
+ * the high-order bits in the highest word.) It is a class invariant
+ * that those unused bits are always zero.
*
* If you think of %bitset as "a simple array of bits," be aware that
* your mental picture is reversed: a %bitset behaves the same way as
* bits in integers do, with the bit at index 0 in the "least significant
- * / right-hand" position, and the bit at index N-1 in the "most
+ * / right-hand" position, and the bit at index Nb-1 in the "most
* significant / left-hand" position. Thus, unlike other containers, a
* %bitset's index "counts from right to left," to put it very loosely.
*
@@ -619,6 +622,7 @@ namespace std
* @endcode
*
* Also see http://gcc.gnu.org/onlinedocs/libstdc++/ext/sgiexts.html#ch23
+ * for a description of extensions.
*
* @if maint
* Most of the actual code isn't contained in %bitset<> itself, but in the
@@ -805,16 +809,26 @@ namespace std
bitset<_Nb>&
operator<<=(size_t __pos)
{
- this->_M_do_left_shift(__pos);
- this->_M_do_sanitize();
+ if (__builtin_expect(__pos < _Nb, 1))
+ {
+ this->_M_do_left_shift(__pos);
+ this->_M_do_sanitize();
+ }
+ else
+ this->_M_do_reset();
return *this;
}
bitset<_Nb>&
operator>>=(size_t __pos)
{
- this->_M_do_right_shift(__pos);
- this->_M_do_sanitize();
+ if (__builtin_expect(__pos < _Nb, 1))
+ {
+ this->_M_do_right_shift(__pos);
+ this->_M_do_sanitize();
+ }
+ else
+ this->_M_do_reset();
return *this;
}
//@}
@@ -1183,6 +1197,7 @@ namespace std
typename basic_istream<_CharT, _Traits>::sentry __sentry(__is);
if (__sentry)
{
+ ios_base::iostate __state = ios_base::goodbit;
basic_streambuf<_CharT, _Traits>* __buf = __is.rdbuf();
for (size_t __i = 0; __i < _Nb; ++__i)
{
@@ -1191,7 +1206,7 @@ namespace std
typename _Traits::int_type __c1 = __buf->sbumpc();
if (_Traits::eq_int_type(__c1, __eof))
{
- __is.setstate(ios_base::eofbit);
+ __state |= ios_base::eofbit;
break;
}
else
@@ -1201,19 +1216,21 @@ namespace std
if (__c == '0' || __c == '1')
__tmp.push_back(__c);
- else if (_Traits::eq_int_type(__buf->sputbackc(__c2),
- __eof))
+ else if (_Traits::eq_int_type(__buf->sputbackc(__c2), __eof))
{
- __is.setstate(ios_base::failbit);
+ __state |= ios_base::failbit;
break;
}
}
}
if (__tmp.empty() && !_Nb)
- __is.setstate(ios_base::failbit);
+ __state |= ios_base::failbit;
else
__x._M_copy_from_string(__tmp, static_cast<size_t>(0), _Nb);
+
+ if (__state != ios_base::goodbit)
+ __is.setstate(__state); // may throw an exception
}
return __is;
diff --git a/contrib/libstdc++/include/std/std_complex.h b/contrib/libstdc++/include/std/std_complex.h
index bcfcedd..252070b 100644
--- a/contrib/libstdc++/include/std/std_complex.h
+++ b/contrib/libstdc++/include/std/std_complex.h
@@ -390,7 +390,7 @@ namespace std
__s.flags(__os.flags());
__s.imbue(__os.getloc());
__s.precision(__os.precision());
- __s << '(' << __x.real() << "," << __x.imag() << ')';
+ __s << '(' << __x.real() << ',' << __x.imag() << ')';
return __os << __s.str();
}
@@ -456,7 +456,7 @@ namespace std
inline _Tp
norm(const complex<_Tp>& __z)
{
- return _Norm_helper<__is_floating<_Tp>::_M_type>::_S_do_it(__z);
+ return _Norm_helper<__is_floating<_Tp>::_M_type && !_GLIBCPP_FAST_MATH>::_S_do_it(__z);
}
template<typename _Tp>
@@ -565,24 +565,30 @@ namespace std
}
template<typename _Tp>
- inline complex<_Tp>
+ complex<_Tp>
pow(const complex<_Tp>& __x, const _Tp& __y)
{
- return exp(__y * log(__x));
+ if (__x.imag() == _Tp())
+ return pow(__x.real(), __y);
+
+ complex<_Tp> __t = log(__x);
+ return polar(exp(__y * __t.real()), __y * __t.imag());
}
template<typename _Tp>
inline complex<_Tp>
pow(const complex<_Tp>& __x, const complex<_Tp>& __y)
{
- return exp(__y * log(__x));
+ return __x == _Tp() ? _Tp() : exp(__y * log(__x));
}
template<typename _Tp>
inline complex<_Tp>
pow(const _Tp& __x, const complex<_Tp>& __y)
{
- return exp(__y * log(__x));
+ return __x == _Tp()
+ ? _Tp()
+ : polar(pow(__x, __y.real()), __y.imag() * log(__x));
}
// 26.2.3 complex specializations
diff --git a/contrib/libstdc++/include/std/std_deque.h b/contrib/libstdc++/include/std/std_deque.h
index 0fca0d1..921c25f 100644
--- a/contrib/libstdc++/include/std/std_deque.h
+++ b/contrib/libstdc++/include/std/std_deque.h
@@ -70,8 +70,9 @@
#include <bits/stl_uninitialized.h>
#include <bits/stl_deque.h>
+#ifdef _GLIBCPP_NO_TEMPLATE_EXPORT
+# include <bits/deque.tcc>
+#endif
+
#endif /* _CPP_DEQUE */
-// Local Variables:
-// mode:C++
-// End:
diff --git a/contrib/libstdc++/include/std/std_fstream.h b/contrib/libstdc++/include/std/std_fstream.h
index 838b99d..bcbbb97 100644
--- a/contrib/libstdc++/include/std/std_fstream.h
+++ b/contrib/libstdc++/include/std/std_fstream.h
@@ -50,6 +50,15 @@
namespace std
{
+ // [27.8.1.1] template class basic_filebuf
+ /**
+ * @brief The actual work of input and output (for files).
+ *
+ * This class associates both its input and output sequence with an
+ * external disk file, and maintains a joint file position for both
+ * sequences. Many of its sematics are described in terms of similar
+ * behavior in the Standard C Library's @c FILE streams.
+ */
template<typename _CharT, typename _Traits>
class basic_filebuf : public basic_streambuf<_CharT, _Traits>
{
@@ -61,30 +70,55 @@ namespace std
typedef typename traits_type::pos_type pos_type;
typedef typename traits_type::off_type off_type;
- // Non-standard Types:
+ //@{
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
typedef basic_streambuf<char_type, traits_type> __streambuf_type;
typedef basic_filebuf<char_type, traits_type> __filebuf_type;
typedef __basic_file<char> __file_type;
typedef typename traits_type::state_type __state_type;
typedef codecvt<char_type, char, __state_type> __codecvt_type;
- typedef typename __codecvt_type::result __res_type;
typedef ctype<char_type> __ctype_type;
+ //@}
friend class ios_base; // For sync_with_stdio.
protected:
// Data Members:
// MT lock inherited from libio or other low-level io library.
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
__c_lock _M_lock;
// External buffer.
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
__file_type _M_file;
// Current and beginning state type for codecvt.
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
__state_type _M_state_cur;
__state_type _M_state_beg;
// Set iff _M_buf is allocated memory from _M_allocate_internal_buffer.
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
bool _M_buf_allocated;
// XXX Needed?
@@ -92,12 +126,26 @@ namespace std
// The position in the buffer corresponding to the external file
// pointer.
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
char_type* _M_filepos;
public:
// Constructors/destructor:
+ /**
+ * @brief Does not open any files.
+ *
+ * The default constructor initializes the parent class using its
+ * own default ctor.
+ */
basic_filebuf();
+ /**
+ * @brief The destructor closes the file first.
+ */
virtual
~basic_filebuf()
{
@@ -106,23 +154,61 @@ namespace std
}
// Members:
+ /**
+ * @brief Returns true if the external file is open.
+ */
bool
- is_open() const { return _M_file.is_open(); }
+ is_open() const throw() { return _M_file.is_open(); }
+ /**
+ * @brief Opens an external file.
+ * @param s The name of the file.
+ * @param mode The open mode flags.
+ * @return @c this on success, NULL on failure
+ *
+ * If a file is already open, this function immediately fails.
+ * Otherwise it tries to open the file named @a s using the flags
+ * given in @a mode.
+ *
+ * [Table 92 gives the relation between openmode combinations and the
+ * equivalent fopen() flags, but the table has not been copied yet.]
+ */
__filebuf_type*
open(const char* __s, ios_base::openmode __mode);
+ /**
+ * @brief Closes the currently associated file.
+ * @return @c this on success, NULL on failure
+ *
+ * If no file is currently open, this function immediately fails.
+ *
+ * If a "put buffer area" exists, @c overflow(eof) is called to flush
+ * all the characters. The file is then closed.
+ *
+ * If any operations fail, this function also fails.
+ */
__filebuf_type*
- close();
+ close() throw();
protected:
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
void
_M_allocate_internal_buffer();
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
void
- _M_destroy_internal_buffer();
+ _M_destroy_internal_buffer() throw();
- // Overridden virtual functions:
+ // [27.8.1.4] overridden virtual functions
+ // [documentation is inherited]
virtual streamsize
showmanyc();
@@ -137,15 +223,23 @@ namespace std
// the underflow() case in order to maintain synchronization. So
// instead of calling underflow() from uflow(), we create a common
// subroutine to do the real work.
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
int_type
_M_underflow_common(bool __bump);
+ // [documentation is inherited]
virtual int_type
underflow();
+ // [documentation is inherited]
virtual int_type
uflow();
+ // [documentation is inherited]
virtual int_type
pbackfail(int_type __c = _Traits::eof());
@@ -157,6 +251,8 @@ namespace std
// this in actuality be a helper function that checks for the
// eccentricities of this implementation, and then call
// overflow() if indeed the buffer is full.
+
+ // [documentation is inherited]
virtual int_type
overflow(int_type __c = _Traits::eof());
@@ -167,28 +263,54 @@ namespace std
// character c.
// 27.5.2.4.5
// Consume some sequence of the characters in the pending sequence.
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
int_type
_M_really_overflow(int_type __c = _Traits::eof());
// Convert internal byte sequence to external, char-based
// sequence via codecvt.
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
void
_M_convert_to_external(char_type*, streamsize, streamsize&, streamsize&);
+ /**
+ * @brief Manipulates the buffer.
+ * @param s Pointer to a buffer area.
+ * @param n Size of @a s.
+ * @return @c this
+ *
+ * If no file has been opened, and both @a s and @a n are zero, then
+ * the stream becomes unbuffered. Otherwise, @c s is used as a
+ * buffer; see
+ * http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#2
+ * for more.
+ */
virtual __streambuf_type*
setbuf(char_type* __s, streamsize __n);
+ // [documentation is inherited]
virtual pos_type
seekoff(off_type __off, ios_base::seekdir __way,
ios_base::openmode __mode = ios_base::in | ios_base::out);
+ // [documentation is inherited]
virtual pos_type
seekpos(pos_type __pos,
ios_base::openmode __mode = ios_base::in | ios_base::out);
+ // [documentation is inherited]
virtual int
sync()
{
+ int __ret = 0;
bool __testput = _M_out_cur && _M_out_beg < _M_out_end;
// Make sure that the internal buffer resyncs its idea of
@@ -197,19 +319,26 @@ namespace std
{
// Need to restore current position after the write.
off_type __off = _M_out_cur - _M_out_end;
- _M_really_overflow(); // _M_file.sync() will be called within
- if (__off)
+
+ // _M_file.sync() will be called within
+ if (traits_type::eq_int_type(_M_really_overflow(),
+ traits_type::eof()))
+ __ret = -1;
+ else if (__off)
_M_file.seekoff(__off, ios_base::cur);
}
else
_M_file.sync();
+
_M_last_overflowed = false;
- return 0;
+ return __ret;
}
+ // [documentation is inherited]
virtual void
imbue(const locale& __loc);
+ // [documentation is inherited]
virtual streamsize
xsgetn(char_type* __s, streamsize __n)
{
@@ -231,6 +360,7 @@ namespace std
return __ret;
}
+ // [documentation is inherited]
virtual streamsize
xsputn(const char_type* __s, streamsize __n)
{
@@ -238,6 +368,11 @@ namespace std
return __streambuf_type::xsputn(__s, __n);
}
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
void
_M_output_unshift();
@@ -248,6 +383,11 @@ namespace std
// internal buffer does not truly reflect the contents of the
// external buffer. At this point, for whatever reason, it is in
// an indeterminate state.
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
void
_M_set_indeterminate(void)
{
@@ -258,6 +398,11 @@ namespace std
_M_filepos = _M_buf;
}
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
void
_M_set_determinate(off_type __off)
{
@@ -270,6 +415,11 @@ namespace std
_M_filepos = _M_buf + __off;
}
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
bool
_M_is_indeterminate(void)
{
@@ -286,7 +436,7 @@ namespace std
}
};
- // Explicit specializations.
+ // Explicit specialization declarations, defined in src/fstream.cc.
template<>
basic_filebuf<char>::int_type
basic_filebuf<char>::_M_underflow_common(bool __bump);
@@ -299,19 +449,24 @@ namespace std
// Generic definitions.
template <typename _CharT, typename _Traits>
- basic_filebuf<_CharT, _Traits>::int_type
+ typename basic_filebuf<_CharT, _Traits>::int_type
basic_filebuf<_CharT, _Traits>::underflow()
{ return _M_underflow_common(false); }
template <typename _CharT, typename _Traits>
- basic_filebuf<_CharT, _Traits>::int_type
+ typename basic_filebuf<_CharT, _Traits>::int_type
basic_filebuf<_CharT, _Traits>::uflow()
{ return _M_underflow_common(true); }
- // 27.8.1.5 Template class basic_ifstream
+ // [27.8.1.5] Template class basic_ifstream
/**
- * Derivation of general input streams, specific to files.
+ * @brief Controlling input for files.
+ *
+ * This class supports reading from named files, using the inherited
+ * functions from std::basic_istream. To control the associated
+ * sequence, an instance of std::basic_filebuf is used, which this page
+ * refers to as @c sb.
*/
template<typename _CharT, typename _Traits>
class basic_ifstream : public basic_istream<_CharT, _Traits>
@@ -329,20 +484,33 @@ namespace std
typedef basic_istream<char_type, traits_type> __istream_type;
private:
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
__filebuf_type _M_filebuf;
public:
- // Constructors/Destructors:
- /** Default constructor. Create an input file stream. */
+ // Constructors/Destructors:
+ /**
+ * @brief Default constructor.
+ *
+ * Initializes @c sb using its default constructor, and passes
+ * @c &sb to the base class initializer. Does not open any files
+ * (you haven't given it a filename to open).
+ */
basic_ifstream()
: __istream_type(NULL), _M_filebuf()
{ this->init(&_M_filebuf); }
/**
- * @brief Create an input file stream.
- * @param s Null terminated string specifying filename.
+ * @brief Create an input file stream.
+ * @param s Null terminated string specifying the filename.
* @param mode Open file in specified mode (see std::ios_base).
*
+ * @c ios_base::in is automatically included in @a mode.
+ *
* Tip: When using std::string to hold the filename, you must use
* .c_str() before passing it to this constructor.
*/
@@ -354,21 +522,44 @@ namespace std
this->open(__s, __mode);
}
+ /**
+ * @brief The destructor does nothing.
+ *
+ * The file is closed by the filebuf object, not the formatting
+ * stream.
+ */
~basic_ifstream()
{ }
// Members:
/**
- * @brief Get a pointer to the file stream's buffer.
- * @return Pointer to basic_filebuf.
+ * @brief Accessing the underlying buffer.
+ * @return The current basic_filebuf buffer.
+ *
+ * This hides both signatures of std::basic_ios::rdbuf().
*/
__filebuf_type*
rdbuf() const
{ return const_cast<__filebuf_type*>(&_M_filebuf); }
+ /**
+ * @brief Wrapper to test for an open file.
+ * @return @c rdbuf()->is_open()
+ */
bool
is_open() { return _M_filebuf.is_open(); }
+ /**
+ * @brief Opens an external file.
+ * @param s The name of the file.
+ * @param mode The open mode flags.
+ *
+ * Calls @c std::basic_filebuf::open(s,mode|in). If that function
+ * fails, @c failbit is set in the stream's error state.
+ *
+ * Tip: When using std::string to hold the filename, you must use
+ * .c_str() before passing it to this constructor.
+ */
void
open(const char* __s, ios_base::openmode __mode = ios_base::in)
{
@@ -376,7 +567,12 @@ namespace std
this->setstate(ios_base::failbit);
}
- /** Close the file. */
+ /**
+ * @brief Close the file.
+ *
+ * Calls @c std::basic_filebuf::close(). If that function
+ * fails, @c failbit is set in the stream's error state.
+ */
void
close()
{
@@ -386,9 +582,14 @@ namespace std
};
- // 27.8.1.8 Template class basic_ofstream
+ // [27.8.1.8] Template class basic_ofstream
/**
- * Derivation of general output streams, specific to files.
+ * @brief Controlling output for files.
+ *
+ * This class supports reading from named files, using the inherited
+ * functions from std::basic_ostream. To control the associated
+ * sequence, an instance of std::basic_filebuf is used, which this page
+ * refers to as @c sb.
*/
template<typename _CharT, typename _Traits>
class basic_ofstream : public basic_ostream<_CharT,_Traits>
@@ -406,20 +607,34 @@ namespace std
typedef basic_ostream<char_type, traits_type> __ostream_type;
private:
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
__filebuf_type _M_filebuf;
public:
// Constructors:
- /** Default constructor for output file_stream. */
+ /**
+ * @brief Default constructor.
+ *
+ * Initializes @c sb using its default constructor, and passes
+ * @c &sb to the base class initializer. Does not open any files
+ * (you haven't given it a filename to open).
+ */
basic_ofstream()
: __ostream_type(NULL), _M_filebuf()
{ this->init(&_M_filebuf); }
/**
- * @brief Create an output stream.
- * @param s Null terminated string specifying filename.
+ * @brief Create an output file stream.
+ * @param s Null terminated string specifying the filename.
* @param mode Open file in specified mode (see std::ios_base).
*
+ * @c ios_base::out|ios_base::trunc is automatically included in
+ * @a mode.
+ *
* Tip: When using std::string to hold the filename, you must use
* .c_str() before passing it to this constructor.
*/
@@ -432,29 +647,40 @@ namespace std
this->open(__s, __mode);
}
+ /**
+ * @brief The destructor does nothing.
+ *
+ * The file is closed by the filebuf object, not the formatting
+ * stream.
+ */
~basic_ofstream()
{ }
// Members:
/**
- * @brief Get a pointer to the file stream's buffer.
- * @return Pointer to basic_filebuf.
+ * @brief Accessing the underlying buffer.
+ * @return The current basic_filebuf buffer.
+ *
+ * This hides both signatures of std::basic_ios::rdbuf().
*/
__filebuf_type*
rdbuf() const
{ return const_cast<__filebuf_type*>(&_M_filebuf); }
/**
- * @brief Query to see if file stream is open.
- * @return True if stream is open.
+ * @brief Wrapper to test for an open file.
+ * @return @c rdbuf()->is_open()
*/
bool
is_open() { return _M_filebuf.is_open(); }
/**
- * @brief Specify a file to open for output.
- * @param s Null terminated string specifying filename.
- * @param mode Mode in which to open file (see std::ios_base).
+ * @brief Opens an external file.
+ * @param s The name of the file.
+ * @param mode The open mode flags.
+ *
+ * Calls @c std::basic_filebuf::open(s,mode|out|trunc). If that
+ * function fails, @c failbit is set in the stream's error state.
*
* Tip: When using std::string to hold the filename, you must use
* .c_str() before passing it to this constructor.
@@ -467,7 +693,12 @@ namespace std
this->setstate(ios_base::failbit);
}
- /** Close the file stream. */
+ /**
+ * @brief Close the file.
+ *
+ * Calls @c std::basic_filebuf::close(). If that function
+ * fails, @c failbit is set in the stream's error state.
+ */
void
close()
{
@@ -477,9 +708,14 @@ namespace std
};
- // 27.8.1.11 Template class basic_fstream
+ // [27.8.1.11] Template class basic_fstream
/**
- * Derivation of general input/output streams, specific to files.
+ * @brief Controlling intput and output for files.
+ *
+ * This class supports reading from and writing to named files, using
+ * the inherited functions from std::basic_iostream. To control the
+ * associated sequence, an instance of std::basic_filebuf is used, which
+ * this page refers to as @c sb.
*/
template<typename _CharT, typename _Traits>
class basic_fstream : public basic_iostream<_CharT, _Traits>
@@ -498,18 +734,29 @@ namespace std
typedef basic_iostream<char_type, traits_type> __iostream_type;
private:
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
__filebuf_type _M_filebuf;
public:
// Constructors/destructor:
- /** Default constructor. Create a file stream. */
+ /**
+ * @brief Default constructor.
+ *
+ * Initializes @c sb using its default constructor, and passes
+ * @c &sb to the base class initializer. Does not open any files
+ * (you haven't given it a filename to open).
+ */
basic_fstream()
: __iostream_type(NULL), _M_filebuf()
{ this->init(&_M_filebuf); }
/**
- * @brief Create an input/output stream.
- * @param s Null terminated string specifying filename.
+ * @brief Create an input/output file stream.
+ * @param s Null terminated string specifying the filename.
* @param mode Open file in specified mode (see std::ios_base).
*
* Tip: When using std::string to hold the filename, you must use
@@ -524,29 +771,40 @@ namespace std
this->open(__s, __mode);
}
+ /**
+ * @brief The destructor does nothing.
+ *
+ * The file is closed by the filebuf object, not the formatting
+ * stream.
+ */
~basic_fstream()
{ }
// Members:
/**
- * @brief Get a pointer to the file stream's buffer.
- * @return Pointer to basic_filebuf.
+ * @brief Accessing the underlying buffer.
+ * @return The current basic_filebuf buffer.
+ *
+ * This hides both signatures of std::basic_ios::rdbuf().
*/
__filebuf_type*
rdbuf() const
{ return const_cast<__filebuf_type*>(&_M_filebuf); }
/**
- * @brief Query to see if file stream is open.
- * @return True if stream is open.
+ * @brief Wrapper to test for an open file.
+ * @return @c rdbuf()->is_open()
*/
bool
is_open() { return _M_filebuf.is_open(); }
/**
- * @brief Specify a file to open for input and/or output.
- * @param s Null terminated string specifying filename.
- * @param mode Mode in which to open file (see std::ios_base).
+ * @brief Opens an external file.
+ * @param s The name of the file.
+ * @param mode The open mode flags.
+ *
+ * Calls @c std::basic_filebuf::open(s,mode). If that
+ * function fails, @c failbit is set in the stream's error state.
*
* Tip: When using std::string to hold the filename, you must use
* .c_str() before passing it to this constructor.
@@ -559,7 +817,12 @@ namespace std
setstate(ios_base::failbit);
}
- /** Close the file stream. */
+ /**
+ * @brief Close the file.
+ *
+ * Calls @c std::basic_filebuf::close(). If that function
+ * fails, @c failbit is set in the stream's error state.
+ */
void
close()
{
diff --git a/contrib/libstdc++/include/std/std_iomanip.h b/contrib/libstdc++/include/std/std_iomanip.h
index 23237ce..490d5ac 100644
--- a/contrib/libstdc++/include/std/std_iomanip.h
+++ b/contrib/libstdc++/include/std/std_iomanip.h
@@ -1,6 +1,7 @@
// Standard stream manipulators -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -47,8 +48,18 @@
namespace std
{
+ // [27.6.3] standard manipulators
+ // Also see DR 183.
+
struct _Resetiosflags { ios_base::fmtflags _M_mask; };
+ /**
+ * @brief Manipulator for @c setf.
+ * @param mask A format flags mask.
+ *
+ * Sent to a stream object, this manipulator resets the specified flags,
+ * via @e stream.setf(0,mask).
+ */
inline _Resetiosflags
resetiosflags(ios_base::fmtflags __mask)
{
@@ -76,6 +87,13 @@ namespace std
struct _Setiosflags { ios_base::fmtflags _M_mask; };
+ /**
+ * @brief Manipulator for @c setf.
+ * @param mask A format flags mask.
+ *
+ * Sent to a stream object, this manipulator sets the format flags
+ * to @a mask.
+ */
inline _Setiosflags
setiosflags(ios_base::fmtflags __mask)
{
@@ -103,6 +121,14 @@ namespace std
struct _Setbase { int _M_base; };
+ /**
+ * @brief Manipulator for @c setf.
+ * @param base A numeric base.
+ *
+ * Sent to a stream object, this manipulator changes the
+ * @c ios_base::basefield flags to @c oct, @c dec, or @c hex when @a base
+ * is 8, 10, or 16, accordingly, and to 0 if @a base is any other value.
+ */
inline _Setbase
setbase(int __base)
{
@@ -137,6 +163,13 @@ namespace std
template<typename _CharT>
struct _Setfill { _CharT _M_c; };
+ /**
+ * @brief Manipulator for @c fill.
+ * @param c The new fill character.
+ *
+ * Sent to a stream object, this manipulator calls @c fill(c) for that
+ * object.
+ */
template<typename _CharT>
inline _Setfill<_CharT>
setfill(_CharT __c)
@@ -165,6 +198,13 @@ namespace std
struct _Setprecision { int _M_n; };
+ /**
+ * @brief Manipulator for @c precision.
+ * @param n The new precision.
+ *
+ * Sent to a stream object, this manipulator calls @c precision(n) for
+ * that object.
+ */
inline _Setprecision
setprecision(int __n)
{
@@ -192,6 +232,13 @@ namespace std
struct _Setw { int _M_n; };
+ /**
+ * @brief Manipulator for @c width.
+ * @param n The new width.
+ *
+ * Sent to a stream object, this manipulator calls @c width(n) for
+ * that object.
+ */
inline _Setw
setw(int __n)
{
@@ -219,6 +266,7 @@ namespace std
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
+#if _GLIBCPP_EXTERN_TEMPLATE
extern template ostream& operator<<(ostream&, _Setfill<char>);
extern template ostream& operator<<(ostream&, _Setiosflags);
extern template ostream& operator<<(ostream&, _Resetiosflags);
@@ -246,6 +294,7 @@ namespace std
extern template wistream& operator>>(wistream&, _Setprecision);
extern template wistream& operator>>(wistream&, _Setw);
#endif
+#endif
} // namespace std
#endif
diff --git a/contrib/libstdc++/include/std/std_iosfwd.h b/contrib/libstdc++/include/std/std_iosfwd.h
index 797f493..55b0e0b 100644
--- a/contrib/libstdc++/include/std/std_iosfwd.h
+++ b/contrib/libstdc++/include/std/std_iosfwd.h
@@ -1,6 +1,7 @@
// Forwarding declarations -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -42,7 +43,9 @@
#pragma GCC system_header
#include <bits/c++config.h>
-#include <bits/stringfwd.h> // For string forward declarations.
+#include <bits/c++locale.h>
+#include <cctype> // For isspace, etc.
+#include <bits/stringfwd.h> // For string forward declarations.
#include <bits/fpos.h>
#include <bits/functexcept.h>
@@ -102,35 +105,64 @@ namespace std
class ios_base;
#endif
- typedef basic_ios<char> ios;
- typedef basic_streambuf<char> streambuf;
- typedef basic_istream<char> istream;
- typedef basic_ostream<char> ostream;
- typedef basic_iostream<char> iostream;
- typedef basic_stringbuf<char> stringbuf;
- typedef basic_istringstream<char> istringstream;
- typedef basic_ostringstream<char> ostringstream;
- typedef basic_stringstream<char> stringstream;
- typedef basic_filebuf<char> filebuf;
- typedef basic_ifstream<char> ifstream;
- typedef basic_ofstream<char> ofstream;
- typedef basic_fstream<char> fstream;
+ /**
+ * @defgroup s27_2_iosfwd I/O Forward Declarations
+ *
+ * Nearly all of the I/O classes are parameterized on the type of
+ * characters they read and write. (The major exception is ios_base at
+ * the top of the hierarchy.) This is a change from pre-Standard
+ * streams, which were not templates.
+ *
+ * For ease of use and compatibility, all of the basic_* I/O-related
+ * classes are given typedef names for both of the builtin character
+ * widths (wide and narrow). The typedefs are the same as the
+ * pre-Standard names, for example:
+ *
+ * @code
+ * typedef basic_ifstream<char> ifstream;
+ * @endcode
+ *
+ * Because properly forward-declaring these classes can be difficult, you
+ * should not do it yourself. Instead, include the &lt;iosfwd&gt;
+ * header, which contains only declarations of all the I/O classes as
+ * well as the typedefs. Trying to forward-declare the typedefs
+ * themselves (e.g., "class ostream;") is not valid ISO C++.
+ *
+ * For more specific declarations, see
+ * http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#10
+ *
+ * @{
+ */
+ typedef basic_ios<char> ios; ///< @isiosfwd
+ typedef basic_streambuf<char> streambuf; ///< @isiosfwd
+ typedef basic_istream<char> istream; ///< @isiosfwd
+ typedef basic_ostream<char> ostream; ///< @isiosfwd
+ typedef basic_iostream<char> iostream; ///< @isiosfwd
+ typedef basic_stringbuf<char> stringbuf; ///< @isiosfwd
+ typedef basic_istringstream<char> istringstream; ///< @isiosfwd
+ typedef basic_ostringstream<char> ostringstream; ///< @isiosfwd
+ typedef basic_stringstream<char> stringstream; ///< @isiosfwd
+ typedef basic_filebuf<char> filebuf; ///< @isiosfwd
+ typedef basic_ifstream<char> ifstream; ///< @isiosfwd
+ typedef basic_ofstream<char> ofstream; ///< @isiosfwd
+ typedef basic_fstream<char> fstream; ///< @isiosfwd
#ifdef _GLIBCPP_USE_WCHAR_T
- typedef basic_ios<wchar_t> wios;
- typedef basic_streambuf<wchar_t> wstreambuf;
- typedef basic_istream<wchar_t> wistream;
- typedef basic_ostream<wchar_t> wostream;
- typedef basic_iostream<wchar_t> wiostream;
- typedef basic_stringbuf<wchar_t> wstringbuf;
- typedef basic_istringstream<wchar_t> wistringstream;
- typedef basic_ostringstream<wchar_t> wostringstream;
- typedef basic_stringstream<wchar_t> wstringstream;
- typedef basic_filebuf<wchar_t> wfilebuf;
- typedef basic_ifstream<wchar_t> wifstream;
- typedef basic_ofstream<wchar_t> wofstream;
- typedef basic_fstream<wchar_t> wfstream;
+ typedef basic_ios<wchar_t> wios; ///< @isiosfwd
+ typedef basic_streambuf<wchar_t> wstreambuf; ///< @isiosfwd
+ typedef basic_istream<wchar_t> wistream; ///< @isiosfwd
+ typedef basic_ostream<wchar_t> wostream; ///< @isiosfwd
+ typedef basic_iostream<wchar_t> wiostream; ///< @isiosfwd
+ typedef basic_stringbuf<wchar_t> wstringbuf; ///< @isiosfwd
+ typedef basic_istringstream<wchar_t> wistringstream; ///< @isiosfwd
+ typedef basic_ostringstream<wchar_t> wostringstream; ///< @isiosfwd
+ typedef basic_stringstream<wchar_t> wstringstream; ///< @isiosfwd
+ typedef basic_filebuf<wchar_t> wfilebuf; ///< @isiosfwd
+ typedef basic_ifstream<wchar_t> wifstream; ///< @isiosfwd
+ typedef basic_ofstream<wchar_t> wofstream; ///< @isiosfwd
+ typedef basic_fstream<wchar_t> wfstream; ///< @isiosfwd
#endif
+ /** @} */
} // namespace std
#endif
diff --git a/contrib/libstdc++/include/std/std_iostream.h b/contrib/libstdc++/include/std/std_iostream.h
index d0736b8..d709493 100644
--- a/contrib/libstdc++/include/std/std_iostream.h
+++ b/contrib/libstdc++/include/std/std_iostream.h
@@ -47,17 +47,31 @@
namespace std
{
- extern istream cin;
- extern ostream cout;
- extern ostream cerr;
- extern ostream clog;
+ /**
+ * @name Standard Stream Objects
+ *
+ * The &lt;iostream&gt; header declares the eight <em>standard stream
+ * objects</em>. For other declarations, see
+ * http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#10 and the
+ * @link s27_2_iosfwd I/O forward declarations @endlink
+ *
+ * They are required by default to cooperate with the global C library's
+ * @c FILE streams, and to be available during program startup and
+ * termination. For more information, see the HOWTO linked to above.
+ */
+ //@{
+ extern istream cin; ///< Linked to standard input
+ extern ostream cout; ///< Linked to standard output
+ extern ostream cerr; ///< Linked to standard error (unbuffered)
+ extern ostream clog; ///< Linked to standard error (buffered)
#ifdef _GLIBCPP_USE_WCHAR_T
- extern wistream wcin;
- extern wostream wcout;
- extern wostream wcerr;
- extern wostream wclog;
+ extern wistream wcin; ///< Linked to standard input
+ extern wostream wcout; ///< Linked to standard output
+ extern wostream wcerr; ///< Linked to standard error (unbuffered)
+ extern wostream wclog; ///< Linked to standard error (buffered)
#endif
+ //@}
// For construction of filebuffers for cout, cin, cerr, clog et. al.
static ios_base::Init __ioinit;
diff --git a/contrib/libstdc++/include/std/std_istream.h b/contrib/libstdc++/include/std/std_istream.h
index 8aa9123..da9c7db 100644
--- a/contrib/libstdc++/include/std/std_istream.h
+++ b/contrib/libstdc++/include/std/std_istream.h
@@ -46,7 +46,14 @@
namespace std
{
- // 27.6.1.1 Template class basic_istream
+ // [27.6.1.1] Template class basic_istream
+ /**
+ * @brief Controlling input.
+ *
+ * This is the base class for all input streams. It provides text
+ * formatting of all builtin types, and communicates with any class
+ * derived from basic_streambuf to do the actual input.
+ */
template<typename _CharT, typename _Traits>
class basic_istream : virtual public basic_ios<_CharT, _Traits>
{
@@ -66,12 +73,33 @@ namespace std
typedef num_get<_CharT, __istreambuf_iter> __numget_type;
typedef ctype<_CharT> __ctype_type;
+ template<typename _CharT2, typename _Traits2>
+ friend basic_istream<_CharT2, _Traits2>&
+ operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2&);
+
+ template<typename _CharT2, typename _Traits2>
+ friend basic_istream<_CharT2, _Traits2>&
+ operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*);
+
protected:
// Data Members:
+ /**
+ * @if maint
+ * The number of characters extracted in the previous unformatted
+ * function; see gcount().
+ * @endif
+ */
streamsize _M_gcount;
public:
- // 27.6.1.1.1 Constructor/destructor:
+ // [27.6.1.1.1] constructor/destructor
+ /**
+ * @brief Base constructor.
+ *
+ * This ctor is almost never called by the user directly, rather from
+ * derived classes' initialization lists, which pass a pointer to
+ * their own stream buffer.
+ */
explicit
basic_istream(__streambuf_type* __sb)
{
@@ -79,16 +107,29 @@ namespace std
_M_gcount = streamsize(0);
}
+ /**
+ * @brief Base destructor.
+ *
+ * This does very little apart from providing a virtual base dtor.
+ */
virtual
~basic_istream()
{ _M_gcount = streamsize(0); }
- // 27.6.1.1.2 Prefix/suffix:
+ // [27.6.1.1.2] prefix/suffix
class sentry;
friend class sentry;
- // 27.6.1.2 Formatted input:
- // 27.6.1.2.3 basic_istream::operator>>
+ // [27.6.1.2] formatted input
+ // [27.6.1.2.3] basic_istream::operator>>
+ //@{
+ /**
+ * @brief Interface for manipulators.
+ *
+ * Manuipulators such as @c std::ws and @c std::dec use these
+ * functions in constructs like "std::cin >> std::ws". For more
+ * information, see the iomanip header.
+ */
__istream_type&
operator>>(__istream_type& (*__pf)(__istream_type&));
@@ -97,8 +138,36 @@ namespace std
__istream_type&
operator>>(ios_base& (*__pf)(ios_base&));
+ //@}
- // 27.6.1.2.2 Arithmetic Extractors
+ // [27.6.1.2.2] arithmetic extractors
+ /**
+ * @name Arithmetic Extractors
+ *
+ * All the @c operator>> functions (aka <em>formatted input
+ * functions</em>) have some common behavior. Each starts by
+ * constructing a temporary object of type std::basic_istream::sentry
+ * with the second argument (noskipws) set to false. This has several
+ * effects, concluding with the setting of a status flag; see the
+ * sentry documentation for more.
+ *
+ * If the sentry status is good, the function tries to extract
+ * whatever data is appropriate for the type of the argument.
+ *
+ * If an exception is thrown during extraction, ios_base::badbit
+ * will be turned on in the stream's error state without causing an
+ * ios_base::failure to be thrown. The original exception will then
+ * be rethrown.
+ */
+ //@{
+ /**
+ * @brief Basic arithmetic extractors
+ * @param A variable of builtin type.
+ * @return @c *this if successful
+ *
+ * These functions use the stream's current locale (specifically, the
+ * @c num_get facet) to parse the input data.
+ */
__istream_type&
operator>>(bool& __n);
@@ -140,92 +209,431 @@ namespace std
__istream_type&
operator>>(void*& __p);
+ /**
+ * @brief Extracting into another streambuf.
+ * @param sb A pointer to a streambuf
+ *
+ * This function behaves like one of the basic arithmetic extractors,
+ * in that it also constructs a sentry onject and has the same error
+ * handling behavior.
+ *
+ * If @a sb is NULL, the stream will set failbit in its error state.
+ *
+ * Characters are extracted from this stream and inserted into the
+ * @a sb streambuf until one of the following occurs:
+ *
+ * - the input stream reaches end-of-file,
+ * - insertion into the output buffer fails (in this case, the
+ * character that would have been inserted is not extracted), or
+ * - an exception occurs (and in this case is caught)
+ *
+ * If the function inserts no characters, failbit is set.
+ */
__istream_type&
operator>>(__streambuf_type* __sb);
+ //@}
- // 27.6.1.3 Unformatted input:
+ // [27.6.1.3] unformatted input
+ /**
+ * @brief Character counting
+ * @return The number of characters extracted by the previous
+ * unformatted input function dispatched for this stream.
+ */
inline streamsize
- gcount(void) const
+ gcount() const
{ return _M_gcount; }
+ /**
+ * @name Unformatted Input Functions
+ *
+ * All the unformatted input functions have some common behavior.
+ * Each starts by constructing a temporary object of type
+ * std::basic_istream::sentry with the second argument (noskipws)
+ * set to true. This has several effects, concluding with the
+ * setting of a status flag; see the sentry documentation for more.
+ *
+ * If the sentry status is good, the function tries to extract
+ * whatever data is appropriate for the type of the argument.
+ *
+ * The number of characters extracted is stored for later retrieval
+ * by gcount().
+ *
+ * If an exception is thrown during extraction, ios_base::badbit
+ * will be turned on in the stream's error state without causing an
+ * ios_base::failure to be thrown. The original exception will then
+ * be rethrown.
+ */
+ //@{
+ /**
+ * @brief Simple extraction.
+ * @return A character, or eof().
+ *
+ * Tries to extract a character. If none are available, sets failbit
+ * and returns traits::eof().
+ */
int_type
- get(void);
-
+ get();
+
+ /**
+ * @brief Simple extraction.
+ * @param c The character in which to store data.
+ * @return *this
+ *
+ * Tries to extract a character and store it in @a c. If none are
+ * available, sets failbit and returns traits::eof().
+ *
+ * @note This function is not overloaded on signed char and
+ * unsigned char.
+ */
__istream_type&
get(char_type& __c);
+ /**
+ * @brief Simple multiple-character extraction.
+ * @param s Pointer to an array.
+ * @param n Maximum number of characters to store in @a s.
+ * @param delim A "stop" character.
+ * @return *this
+ *
+ * Characters are extracted and stored into @a s until one of the
+ * following happens:
+ *
+ * - @c n-1 characters are stored
+ * - the input sequence reaches EOF
+ * - the next character equals @a delim, in which case the character
+ * is not extracted
+ *
+ * If no characters are stored, failbit is set in the stream's error
+ * state.
+ *
+ * In any case, a null character is stored into the next location in
+ * the array.
+ *
+ * @note This function is not overloaded on signed char and
+ * unsigned char.
+ */
__istream_type&
get(char_type* __s, streamsize __n, char_type __delim);
+ /**
+ * @brief Simple multiple-character extraction.
+ * @param s Pointer to an array.
+ * @param n Maximum number of characters to store in @a s.
+ * @return *this
+ *
+ * Returns @c get(s,n,widen('\n')).
+ */
inline __istream_type&
get(char_type* __s, streamsize __n)
{ return this->get(__s, __n, this->widen('\n')); }
+ /**
+ * @brief Extraction into another streambuf.
+ * @param sb A streambuf in which to store data.
+ * @param delim A "stop" character.
+ * @return *this
+ *
+ * Characters are extracted and inserted into @a sb until one of the
+ * following happens:
+ *
+ * - the input sequence reaches EOF
+ * - insertion into the output buffer fails (in this case, the
+ * character that would have been inserted is not extracted)
+ * - the next character equals @a delim (in this case, the character
+ * is not extracted)
+ * - an exception occurs (and in this case is caught)
+ *
+ * If no characters are stored, failbit is set in the stream's error
+ * state.
+ */
__istream_type&
get(__streambuf_type& __sb, char_type __delim);
+ /**
+ * @brief Extraction into another streambuf.
+ * @param sb A streambuf in which to store data.
+ * @return *this
+ *
+ * Returns @c get(sb,widen('\n')).
+ */
inline __istream_type&
get(__streambuf_type& __sb)
{ return this->get(__sb, this->widen('\n')); }
+ /**
+ * @brief String extraction.
+ * @param s A character array in which to store the data.
+ * @param n Maximum number of characters to extract.
+ * @param delim A "stop" character.
+ * @return *this
+ *
+ * Extracts and stores characters into @a s until one of the
+ * following happens. Note that these criteria are required to be
+ * tested in the order listed here, to allow an input line to exactly
+ * fill the @a s array without setting failbit.
+ *
+ * -# the input sequence reaches end-of-file, in which case eofbit
+ * is set in the stream error state
+ * -# the next character equals @c delim, in which case the character
+ * is extracted (and therefore counted in @c gcount()) but not stored
+ * -# @c n-1 characters are stored, in which case failbit is set
+ * in the stream error state
+ *
+ * If no characters are extracted, failbit is set. (An empty line of
+ * input should therefore not cause failbit to be set.)
+ *
+ * In any case, a null character is stored in the next location in
+ * the array.
+ */
__istream_type&
getline(char_type* __s, streamsize __n, char_type __delim);
+ /**
+ * @brief String extraction.
+ * @param s A character array in which to store the data.
+ * @param n Maximum number of characters to extract.
+ * @return *this
+ *
+ * Returns @c getline(s,n,widen('\n')).
+ */
inline __istream_type&
getline(char_type* __s, streamsize __n)
{ return this->getline(__s, __n, this->widen('\n')); }
+ /**
+ * @brief Discarding characters
+ * @param n Number of characters to discard.
+ * @param delim A "stop" character.
+ * @return *this
+ *
+ * Extracts characters and throws them away until one of the
+ * following happens:
+ * - if @a n @c != @c std::numeric_limits<int>::max(), @a n
+ * characters are extracted
+ * - the input sequence reaches end-of-file
+ * - the next character equals @a delim (in this case, the character
+ * is extracted); note that this condition will never occur if
+ * @a delim equals @c traits::eof().
+ */
__istream_type&
ignore(streamsize __n = 1, int_type __delim = traits_type::eof());
+ /**
+ * @brief Looking ahead in the stream
+ * @return The next character, or eof().
+ *
+ * If, after constructing the sentry object, @c good() is false,
+ * returns @c traits::eof(). Otherwise reads but does not extract
+ * the next input character.
+ */
int_type
- peek(void);
+ peek();
+ /**
+ * @brief Extraction without delimiters.
+ * @param s A character array.
+ * @param n Maximum number of characters to store.
+ * @return *this
+ *
+ * If the stream state is @c good(), extracts characters and stores
+ * them into @a s until one of the following happens:
+ * - @a n characters are stored
+ * - the input sequence reaches end-of-file, in which case the error
+ * state is set to @c failbit|eofbit.
+ *
+ * @note This function is not overloaded on signed char and
+ * unsigned char.
+ */
__istream_type&
read(char_type* __s, streamsize __n);
+ /**
+ * @brief Extraction until the buffer is exhausted, but no more.
+ * @param s A character array.
+ * @param n Maximum number of characters to store.
+ * @return The number of characters extracted.
+ *
+ * Extracts characters and stores them into @a s depending on the
+ * number of characters remaining in the streambuf's buffer,
+ * @c rdbuf()->in_avail(), called @c A here:
+ * - if @c A @c == @c -1, sets eofbit and extracts no characters
+ * - if @c A @c == @c 0, extracts no characters
+ * - if @c A @c > @c 0, extracts @c min(A,n)
+ *
+ * The goal is to empty the current buffer, and to not request any
+ * more from the external input sequence controlled by the streambuf.
+ */
streamsize
readsome(char_type* __s, streamsize __n);
+ /**
+ * @brief Unextracting a single character.
+ * @param c The character to push back into the input stream.
+ * @return *this
+ *
+ * If @c rdbuf() is not null, calls @c rdbuf()->sputbackc(c).
+ *
+ * If @c rdbuf() is null or if @c sputbackc() fails, sets badbit in
+ * the error state.
+ *
+ * @note Since no characters are extracted, the next call to
+ * @c gcount() will return 0, as required by DR 60.
+ */
__istream_type&
putback(char_type __c);
+ /**
+ * @brief Unextracting the previous character.
+ * @return *this
+ *
+ * If @c rdbuf() is not null, calls @c rdbuf()->sungetc(c).
+ *
+ * If @c rdbuf() is null or if @c sungetc() fails, sets badbit in
+ * the error state.
+ *
+ * @note Since no characters are extracted, the next call to
+ * @c gcount() will return 0, as required by DR 60.
+ */
__istream_type&
- unget(void);
-
+ unget();
+
+ /**
+ * @brief Synchronizing the stream buffer.
+ * @return 0 on success, -1 on failure
+ *
+ * If @c rdbuf() is a null pointer, returns -1.
+ *
+ * Otherwise, calls @c rdbuf()->pubsync(), and if that returns -1,
+ * sets badbit and returns -1.
+ *
+ * Otherwise, returns 0.
+ *
+ * @note This function does not count the number of characters
+ * extracted, if any, and therefore does not affect the next
+ * call to @c gcount().
+ */
int
- sync(void);
-
+ sync();
+
+ /**
+ * @brief Getting the current read position.
+ * @return A file position object.
+ *
+ * If @c fail() is not false, returns @c pos_type(-1) to indicate
+ * failure. Otherwise returns @c rdbuf()->pubseekoff(0,cur,in).
+ *
+ * @note This function does not count the number of characters
+ * extracted, if any, and therefore does not affect the next
+ * call to @c gcount().
+ */
pos_type
- tellg(void);
-
+ tellg();
+
+ /**
+ * @brief Changing the current read position.
+ * @param pos A file position object.
+ * @return *this
+ *
+ * If @c fail() is not true, calls @c rdbuf()->pubseekpos(pos). If
+ * that function fails, sets failbit.
+ *
+ * @note This function does not count the number of characters
+ * extracted, if any, and therefore does not affect the next
+ * call to @c gcount().
+ */
__istream_type&
seekg(pos_type);
+ /**
+ * @brief Changing the current read position.
+ * @param off A file offset object.
+ * @param dir The direction in which to seek.
+ * @return *this
+ *
+ * If @c fail() is not true, calls @c rdbuf()->pubseekoff(off,dir).
+ * If that function fails, sets failbit.
+ *
+ * @note This function does not count the number of characters
+ * extracted, if any, and therefore does not affect the next
+ * call to @c gcount().
+ */
__istream_type&
seekg(off_type, ios_base::seekdir);
+ //@}
};
+ /**
+ * @brief Performs setup work for input streams.
+ *
+ * Objects of this class are created before all of the standard
+ * extractors are run. It is responsible for "exception-safe prefix and
+ * suffix operations," although only prefix actions are currently required
+ * by the standard. Additional actions may be added by the
+ * implementation, and we list them in
+ * http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/howto.html#5
+ * under [27.6] notes.
+ */
template<typename _CharT, typename _Traits>
class basic_istream<_CharT, _Traits>::sentry
{
public:
+ /// Easy access to dependant types.
typedef _Traits traits_type;
typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
typedef basic_istream<_CharT, _Traits> __istream_type;
typedef typename __istream_type::__ctype_type __ctype_type;
typedef typename _Traits::int_type __int_type;
+ /**
+ * @brief The constructor performs all the work.
+ * @param is The input stream to guard.
+ * @param noskipws Whether to consume whitespace or not.
+ *
+ * If the stream state is good (@a is.good() is true), then the
+ * following actions are performed, otherwise the sentry state is
+ * false ("not okay") and failbit is set in the stream state.
+ *
+ * The sentry's preparatory actions are:
+ *
+ * -# if the stream is tied to an output stream, @c is.tie()->flush()
+ * is called to synchronize the output sequence
+ * -# if @a noskipws is false, and @c ios_base::skipws is set in
+ * @c is.flags(), the sentry extracts and discards whitespace
+ * characters from the stream. The currently imbued locale is
+ * used to determine whether each character is whitespace.
+ *
+ * If the stream state is still good, then the sentry state becomes
+ * true ("okay").
+ */
explicit
sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false);
+ /**
+ * @brief Quick status checking.
+ * @return The sentry state.
+ *
+ * For ease of use, sentries may be converted to booleans. The
+ * return value is that of the sentry state (true == okay).
+ */
operator bool() { return _M_ok; }
private:
bool _M_ok;
};
- // 27.6.1.2.3 Character extraction templates
+ // [27.6.1.2.3] character extraction templates
+ //@{
+ /**
+ * @brief Character extractors
+ * @param in An input stream.
+ * @param c A character reference.
+ * @return in
+ *
+ * Behaves like one of the formatted arithmetic extractors described in
+ * std::basic_istream. After constructing a sentry object with good
+ * status, this function extracts a character (if one is available) and
+ * stores it in @a c. Otherwise, sets failbit in the input stream.
+ */
template<typename _CharT, typename _Traits>
basic_istream<_CharT, _Traits>&
operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c);
@@ -239,7 +647,34 @@ namespace std
basic_istream<char, _Traits>&
operator>>(basic_istream<char, _Traits>& __in, signed char& __c)
{ return (__in >> reinterpret_cast<char&>(__c)); }
-
+ //@}
+
+ //@{
+ /**
+ * @brief Character string extractors
+ * @param in An input stream.
+ * @param s A pointer to a character array.
+ * @return in
+ *
+ * Behaves like one of the formatted arithmetic extractors described in
+ * std::basic_istream. After constructing a sentry object with good
+ * status, this function extracts up to @c n characters and stores them
+ * into the array starting at @a s. @c n is defined as:
+ *
+ * - if @c width() is greater than zero, @c n is width()
+ * - otherwise @c n is "the number of elements of the largest array of
+ * @c char_type that can store a terminating @c eos." [27.6.1.2.3]/6
+ *
+ * Characters are extracted and stored until one of the following happens:
+ * - @c n-1 characters are stored
+ * - EOF is reached
+ * - the next character is whitespace according to the current locale
+ * - the next character is a null byte (i.e., @c charT() )
+ *
+ * @c width(0) is then called for the input stream.
+ *
+ * If no characters are extracted, sets failbit.
+ */
template<typename _CharT, typename _Traits>
basic_istream<_CharT, _Traits>&
operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s);
@@ -253,8 +688,15 @@ namespace std
basic_istream<char,_Traits>&
operator>>(basic_istream<char,_Traits>& __in, signed char* __s)
{ return (__in >> reinterpret_cast<char*>(__s)); }
+ //@}
// 27.6.1.5 Template class basic_iostream
+ /**
+ * @brief Merging istream and ostream capabilities.
+ *
+ * This class multiply inherits from the input and output stream classes
+ * simply to provide a single interface.
+ */
template<typename _CharT, typename _Traits>
class basic_iostream
: public basic_istream<_CharT, _Traits>,
@@ -275,16 +717,45 @@ namespace std
typedef basic_istream<_CharT, _Traits> __istream_type;
typedef basic_ostream<_CharT, _Traits> __ostream_type;
+ /**
+ * @brief Constructor does nothing.
+ *
+ * Both of the parent classes are initialized with the same
+ * streambuf pointer passed to this constructor.
+ */
explicit
basic_iostream(basic_streambuf<_CharT, _Traits>* __sb)
: __istream_type(__sb), __ostream_type(__sb)
{ }
+ /**
+ * @brief Destructor does nothing.
+ */
virtual
~basic_iostream() { }
};
- // 27.6.1.4 Standard basic_istream manipulators
+ // [27.6.1.4] standard basic_istream manipulators
+ /**
+ * @brief Quick and easy way to eat whitespace
+ *
+ * This manipulator extracts whitespace characters, stopping when the
+ * next character is non-whitespace, or when the input sequence is empty.
+ * If the sequence is empty, @c eofbit is set in the stream, but not
+ * @c failbit.
+ *
+ * The current locale is used to distinguish whitespace characters.
+ *
+ * Example:
+ * @code
+ * MyClass mc;
+ *
+ * std::cin >> std::ws >> mc;
+ * @endcode
+ * will skip leading whitespace before calling operator>> on cin and your
+ * object. Note that the same effect can be achieved by creating a
+ * std::basic_istream::sentry inside your definition of operator>>.
+ */
template<typename _CharT, typename _Traits>
basic_istream<_CharT, _Traits>&
ws(basic_istream<_CharT, _Traits>& __is);
diff --git a/contrib/libstdc++/include/std/std_limits.h b/contrib/libstdc++/include/std/std_limits.h
index 5f70dda..9be6947 100644
--- a/contrib/libstdc++/include/std/std_limits.h
+++ b/contrib/libstdc++/include/std/std_limits.h
@@ -45,7 +45,6 @@
#pragma GCC system_header
-#include <bits/cpu_limits.h>
#include <bits/c++config.h>
//
@@ -64,13 +63,13 @@
// double (1)
// long double (1)
//
-// GNU C++ undertstands (where supported by the host C-library)
+// GNU C++ undertstands (where supported by the host C-library)
// * integer
// long long, unsigned long long (2)
//
// which brings us to 15 fundamental arithmetic data types in GNU C++.
//
-//
+//
// Since a numeric_limits<> is a bit tricky to get right, we rely on
// an interface composed of macros which should be defined in config/os
// or config/cpu when they differ from the generic (read arbitrary)
@@ -80,813 +79,77 @@
// These values can be overridden in the target configuration file.
// The default values are appropriate for many 32-bit targets.
-#ifndef __glibcpp_char_bits
-#define __glibcpp_char_bits 8
-#endif
-#ifdef __CHAR_UNSIGNED__
-#define __glibcpp_plain_char_is_signed false
-#else
-#define __glibcpp_plain_char_is_signed true
-#endif
-#ifndef __glibcpp_short_bits
-#define __glibcpp_short_bits 16
-#endif
-#ifndef __glibcpp_int_bits
-#define __glibcpp_int_bits 32
-#endif
-#ifndef __glibcpp_long_bits
-#define __glibcpp_long_bits 32
-#endif
-#ifndef __glibcpp_wchar_t_bits
-#define __glibcpp_wchar_t_bits 32
-#endif
-#ifndef __glibcpp_wchar_t_is_signed
-#define __glibcpp_wchar_t_is_signed true
-#endif
-#ifndef __glibcpp_long_long_bits
-#define __glibcpp_long_long_bits 64
-#endif
-#ifndef __glibcpp_float_bits
-#define __glibcpp_float_bits 32
-#endif
-#ifndef __glibcpp_double_bits
-#define __glibcpp_double_bits 64
-#endif
-#ifndef __glibcpp_long_double_bits
-#define __glibcpp_long_double_bits 128
-#endif
-
-#ifndef __glibcpp_char_traps
-#define __glibcpp_char_traps true
-#endif
-#ifndef __glibcpp_short_traps
-#define __glibcpp_short_traps true
-#endif
-#ifndef __glibcpp_int_traps
-#define __glibcpp_int_traps true
-#endif
-#ifndef __glibcpp_long_traps
-#define __glibcpp_long_traps true
-#endif
-#ifndef __glibcpp_wchar_t_traps
-#define __glibcpp_wchar_t_traps true
-#endif
-#ifndef __glibcpp_long_long_traps
-#define __glibcpp_long_long_traps true
-#endif
-
-// You should not need to define any macros below this point, unless
-// you have a machine with non-standard bit-widths.
-
-// These values are the minimums and maximums for standard data types
-// of common widths.
-
-#define __glibcpp_s8_max 127
-#define __glibcpp_s8_min (-__glibcpp_s8_max - 1)
-#define __glibcpp_s8_digits 7
-#define __glibcpp_s8_digits10 2
-#define __glibcpp_u8_min 0U
-#define __glibcpp_u8_max (__glibcpp_s8_max * 2 + 1)
-#define __glibcpp_u8_digits 8
-#define __glibcpp_u8_digits10 2
-#define __glibcpp_s16_max 32767
-#define __glibcpp_s16_min (-__glibcpp_s16_max - 1)
-#define __glibcpp_s16_digits 15
-#define __glibcpp_s16_digits10 4
-#define __glibcpp_u16_min 0U
-#define __glibcpp_u16_max (__glibcpp_s16_max * 2 + 1)
-#define __glibcpp_u16_digits 16
-#define __glibcpp_u16_digits10 4
-#define __glibcpp_s32_max 2147483647L
-#define __glibcpp_s32_min (-__glibcpp_s32_max - 1)
-#define __glibcpp_s32_digits 31
-#define __glibcpp_s32_digits10 9
-#define __glibcpp_u32_min 0UL
-#define __glibcpp_u32_max (__glibcpp_s32_max * 2U + 1)
-#define __glibcpp_u32_digits 32
-#define __glibcpp_u32_digits10 9
-#define __glibcpp_s64_max 9223372036854775807LL
-#define __glibcpp_s64_min (-__glibcpp_s64_max - 1)
-#define __glibcpp_s64_digits 63
-#define __glibcpp_s64_digits10 18
-#define __glibcpp_u64_min 0ULL
-#define __glibcpp_u64_max (__glibcpp_s64_max * 2ULL + 1)
-#define __glibcpp_u64_digits 64
-#define __glibcpp_u64_digits10 19
-
-#define __glibcpp_f32_min 1.17549435e-38F
-#define __glibcpp_f32_max 3.40282347e+38F
-#define __glibcpp_f32_digits 24
-#define __glibcpp_f32_digits10 6
-#define __glibcpp_f32_radix 2
-#define __glibcpp_f32_epsilon 1.19209290e-07F
-#define __glibcpp_f32_round_error 1.0F
-#define __glibcpp_f32_min_exponent -125
-#define __glibcpp_f32_min_exponent10 -37
-#define __glibcpp_f32_max_exponent 128
-#define __glibcpp_f32_max_exponent10 38
-#define __glibcpp_f64_min 2.2250738585072014e-308
-#define __glibcpp_f64_max 1.7976931348623157e+308
-#define __glibcpp_f64_digits 53
-#define __glibcpp_f64_digits10 15
-#define __glibcpp_f64_radix 2
-#define __glibcpp_f64_epsilon 2.2204460492503131e-16
-#define __glibcpp_f64_round_error 1.0
-#define __glibcpp_f64_min_exponent -1021
-#define __glibcpp_f64_min_exponent10 -307
-#define __glibcpp_f64_max_exponent 1024
-#define __glibcpp_f64_max_exponent10 308
-#define __glibcpp_f80_min 3.36210314311209350626e-4932L
-#define __glibcpp_f80_max 1.18973149535723176502e+4932L
-#define __glibcpp_f80_digits 64
-#define __glibcpp_f80_digits10 18
-#define __glibcpp_f80_radix 2
-#define __glibcpp_f80_epsilon 1.08420217248550443401e-19L
-#define __glibcpp_f80_round_error 1.0L
-#define __glibcpp_f80_min_exponent -16381
-#define __glibcpp_f80_min_exponent10 -4931
-#define __glibcpp_f80_max_exponent 16384
-#define __glibcpp_f80_max_exponent10 4932
-#define __glibcpp_f96_min 1.68105157155604675313e-4932L
-#define __glibcpp_f96_max 1.18973149535723176502e+4932L
-#define __glibcpp_f96_digits 64
-#define __glibcpp_f96_digits10 18
-#define __glibcpp_f96_radix 2
-#define __glibcpp_f96_epsilon 1.08420217248550443401e-19L
-#define __glibcpp_f96_round_error 1.0L
-#define __glibcpp_f96_min_exponent -16382
-#define __glibcpp_f96_min_exponent10 -4931
-#define __glibcpp_f96_max_exponent 16384
-#define __glibcpp_f96_max_exponent10 4932
-#define __glibcpp_f128_min 3.362103143112093506262677817321752603E-4932L
-#define __glibcpp_f128_max 1.189731495357231765085759326628007016E+4932L
-#define __glibcpp_f128_digits 113
-#define __glibcpp_f128_digits10 33
-#define __glibcpp_f128_radix 2
-#define __glibcpp_f128_epsilon 1.925929944387235853055977942584927319E-34L
-#define __glibcpp_f128_round_error 1.0L
-#define __glibcpp_f128_min_exponent -16381
-#define __glibcpp_f128_min_exponent10 -4931
-#define __glibcpp_f128_max_exponent 16384
-#define __glibcpp_f128_max_exponent10 4932
-
-// bool-specific hooks:
-// __glibcpp_bool_digits __glibcpp_int_traps __glibcpp_long_traps
-
-#ifndef __glibcpp_bool_digits
-#define __glibcpp_bool_digits 1
-#endif
-
-// char.
-
-#define __glibcpp_plain_char_traps true
-#define __glibcpp_signed_char_traps true
-#define __glibcpp_unsigned_char_traps true
-#ifndef __glibcpp_char_is_modulo
-#define __glibcpp_char_is_modulo true
-#endif
-#ifndef __glibcpp_signed_char_is_modulo
-#define __glibcpp_signed_char_is_modulo true
-#endif
-#if __glibcpp_char_bits == 8
-#define __glibcpp_signed_char_min __glibcpp_s8_min
-#define __glibcpp_signed_char_max __glibcpp_s8_max
-#define __glibcpp_signed_char_digits __glibcpp_s8_digits
-#define __glibcpp_signed_char_digits10 __glibcpp_s8_digits10
-#define __glibcpp_unsigned_char_min __glibcpp_u8_min
-#define __glibcpp_unsigned_char_max __glibcpp_u8_max
-#define __glibcpp_unsigned_char_digits __glibcpp_u8_digits
-#define __glibcpp_unsigned_char_digits10 __glibcpp_u8_digits10
-#elif __glibcpp_char_bits == 16
-#define __glibcpp_signed_char_min __glibcpp_s16_min
-#define __glibcpp_signed_char_max __glibcpp_s16_max
-#define __glibcpp_signed_char_digits __glibcpp_s16_digits
-#define __glibcpp_signed_char_digits10 __glibcpp_s16_digits10
-#define __glibcpp_unsigned_char_min __glibcpp_u16_min
-#define __glibcpp_unsigned_char_max __glibcpp_u16_max
-#define __glibcpp_unsigned_char_digits __glibcpp_u16_digits
-#define __glibcpp_unsigned_char_digits10 __glibcpp_u16_digits10
-#elif __glibcpp_char_bits == 32
-#define __glibcpp_signed_char_min (signed char)__glibcpp_s32_min
-#define __glibcpp_signed_char_max (signed char)__glibcpp_s32_max
-#define __glibcpp_signed_char_digits __glibcpp_s32_digits
-#define __glibcpp_signed_char_digits10 __glibcpp_s32_digits10
-#define __glibcpp_unsigned_char_min (unsigned char)__glibcpp_u32_min
-#define __glibcpp_unsigned_char_max (unsigned char)__glibcpp_u32_max
-#define __glibcpp_unsigned_char_digits __glibcpp_u32_digits
-#define __glibcpp_unsigned_char_digits10 __glibcpp_u32_digits10
-#elif __glibcpp_char_bits == 64
-#define __glibcpp_signed_char_min (signed char)__glibcpp_s64_min
-#define __glibcpp_signed_char_max (signed char)__glibcpp_s64_max
-#define __glibcpp_signed_char_digits __glibcpp_s64_digits
-#define __glibcpp_signed_char_digits10 __glibcpp_s64_digits10
-#define __glibcpp_unsigned_char_min (unsigned char)__glibcpp_u64_min
-#define __glibcpp_unsigned_char_max (unsigned char)__glibcpp_u64_max
-#define __glibcpp_unsigned_char_digits __glibcpp_u64_digits
-#define __glibcpp_unsigned_char_digits10 __glibcpp_u64_digits10
-#else
-// You must define these macros in the configuration file.
-#endif
-
-#if __glibcpp_plain_char_is_signed
-#define __glibcpp_char_min (char)__glibcpp_signed_char_min
-#define __glibcpp_char_max (char)__glibcpp_signed_char_max
-#define __glibcpp_char_digits __glibcpp_signed_char_digits
-#define __glibcpp_char_digits10 __glibcpp_signed_char_digits10
-#else
-#define __glibcpp_char_min (char)__glibcpp_unsigned_char_min
-#define __glibcpp_char_max (char)__glibcpp_unsigned_char_max
-#define __glibcpp_char_digits __glibcpp_unsigned_char_digits
-#define __glibcpp_char_digits10 __glibcpp_unsigned_char_digits10
-#endif
-
-// short
-
-#define __glibcpp_signed_short_traps true
-#define __glibcpp_unsigned_short_traps true
-#ifndef __glibcpp_signed_short_is_modulo
-#define __glibcpp_signed_short_is_modulo true
-#endif
-#if __glibcpp_short_bits == 8
-#define __glibcpp_signed_short_min __glibcpp_s8_min
-#define __glibcpp_signed_short_max __glibcpp_s8_max
-#define __glibcpp_signed_short_digits __glibcpp_s8_digits
-#define __glibcpp_signed_short_digits10 __glibcpp_s8_digits10
-#define __glibcpp_unsigned_short_min __glibcpp_u8_min
-#define __glibcpp_unsigned_short_max __glibcpp_u8_max
-#define __glibcpp_unsigned_short_digits __glibcpp_u8_digits
-#define __glibcpp_unsigned_short_digits10 __glibcpp_u8_digits10
-#elif __glibcpp_short_bits == 16
-#define __glibcpp_signed_short_min __glibcpp_s16_min
-#define __glibcpp_signed_short_max __glibcpp_s16_max
-#define __glibcpp_signed_short_digits __glibcpp_s16_digits
-#define __glibcpp_signed_short_digits10 __glibcpp_s16_digits10
-#define __glibcpp_unsigned_short_min __glibcpp_u16_min
-#define __glibcpp_unsigned_short_max __glibcpp_u16_max
-#define __glibcpp_unsigned_short_digits __glibcpp_u16_digits
-#define __glibcpp_unsigned_short_digits10 __glibcpp_u16_digits10
-#elif __glibcpp_short_bits == 32
-#define __glibcpp_signed_short_min (short)__glibcpp_s32_min
-#define __glibcpp_signed_short_max (short)__glibcpp_s32_max
-#define __glibcpp_signed_short_digits __glibcpp_s32_digits
-#define __glibcpp_signed_short_digits10 __glibcpp_s32_digits10
-#define __glibcpp_unsigned_short_min (unsigned short)__glibcpp_u32_min
-#define __glibcpp_unsigned_short_max (unsigned short)__glibcpp_u32_max
-#define __glibcpp_unsigned_short_digits __glibcpp_u32_digits
-#define __glibcpp_unsigned_short_digits10 __glibcpp_u32_digits10
-#elif __glibcpp_short_bits == 64
-#define __glibcpp_signed_short_min (short)__glibcpp_s64_min
-#define __glibcpp_signed_short_max (short)__glibcpp_s64_max
-#define __glibcpp_signed_short_digits __glibcpp_s64_digits
-#define __glibcpp_signed_short_digits10 __glibcpp_s64_digits10
-#define __glibcpp_unsigned_short_min (unsigned short)__glibcpp_u64_min
-#define __glibcpp_unsigned_short_max (unsigned short)__glibcpp_u64_max
-#define __glibcpp_unsigned_short_digits __glibcpp_u64_digits
-#define __glibcpp_unsigned_short_digits10 __glibcpp_u64_digits10
-#else
-// You must define these macros in the configuration file.
-#endif
-
-// int
-
-#define __glibcpp_signed_int_traps true
-#define __glibcpp_unsigned_int_traps true
-#ifndef __glibcpp_signed_int_is_modulo
-#define __glibcpp_signed_int_is_modulo true
-#endif
-#if __glibcpp_int_bits == 8
-#define __glibcpp_signed_int_min __glibcpp_s8_min
-#define __glibcpp_signed_int_max __glibcpp_s8_max
-#define __glibcpp_signed_int_digits __glibcpp_s8_digits
-#define __glibcpp_signed_int_digits10 __glibcpp_s8_digits10
-#define __glibcpp_unsigned_int_min __glibcpp_u8_min
-#define __glibcpp_unsigned_int_max __glibcpp_u8_max
-#define __glibcpp_unsigned_int_digits __glibcpp_u8_digits
-#define __glibcpp_unsigned_int_digits10 __glibcpp_u8_digits10
-#elif __glibcpp_int_bits == 16
-#define __glibcpp_signed_int_min __glibcpp_s16_min
-#define __glibcpp_signed_int_max __glibcpp_s16_max
-#define __glibcpp_signed_int_digits __glibcpp_s16_digits
-#define __glibcpp_signed_int_digits10 __glibcpp_s16_digits10
-#define __glibcpp_unsigned_int_min __glibcpp_u16_min
-#define __glibcpp_unsigned_int_max __glibcpp_u16_max
-#define __glibcpp_unsigned_int_digits __glibcpp_u16_digits
-#define __glibcpp_unsigned_int_digits10 __glibcpp_u16_digits10
-#elif __glibcpp_int_bits == 32
-#define __glibcpp_signed_int_min (int)__glibcpp_s32_min
-#define __glibcpp_signed_int_max (int)__glibcpp_s32_max
-#define __glibcpp_signed_int_digits __glibcpp_s32_digits
-#define __glibcpp_signed_int_digits10 __glibcpp_s32_digits10
-#define __glibcpp_unsigned_int_min (unsigned)__glibcpp_u32_min
-#define __glibcpp_unsigned_int_max (unsigned)__glibcpp_u32_max
-#define __glibcpp_unsigned_int_digits __glibcpp_u32_digits
-#define __glibcpp_unsigned_int_digits10 __glibcpp_u32_digits10
-#elif __glibcpp_int_bits == 64
-#define __glibcpp_signed_int_min (int)__glibcpp_s64_min
-#define __glibcpp_signed_int_max (int)__glibcpp_s64_max
-#define __glibcpp_signed_int_digits __glibcpp_s64_digits
-#define __glibcpp_signed_int_digits10 __glibcpp_s64_digits10
-#define __glibcpp_unsigned_int_min (unsigned)__glibcpp_u64_min
-#define __glibcpp_unsigned_int_max (unsigned)__glibcpp_u64_max
-#define __glibcpp_unsigned_int_digits __glibcpp_u64_digits
-#define __glibcpp_unsigned_int_digits10 __glibcpp_u64_digits10
-#else
-// You must define these macros in the configuration file.
-#endif
-
-// long
-
-#define __glibcpp_signed_long_traps true
-#define __glibcpp_unsigned_long_traps true
-#ifndef __glibcpp_signed_long_is_modulo
-#define __glibcpp_signed_long_is_modulo true
-#endif
-#if __glibcpp_long_bits == 8
-#define __glibcpp_signed_long_min __glibcpp_s8_min
-#define __glibcpp_signed_long_max __glibcpp_s8_max
-#define __glibcpp_signed_long_digits __glibcpp_s8_digits
-#define __glibcpp_signed_long_digits10 __glibcpp_s8_digits10
-#define __glibcpp_unsigned_long_min __glibcpp_u8_min
-#define __glibcpp_unsigned_long_max __glibcpp_u8_max
-#define __glibcpp_unsigned_long_digits __glibcpp_u8_digits
-#define __glibcpp_unsigned_long_digits10 __glibcpp_u8_digits10
-#elif __glibcpp_long_bits == 16
-#define __glibcpp_signed_long_min __glibcpp_s16_min
-#define __glibcpp_signed_long_max __glibcpp_s16_max
-#define __glibcpp_signed_long_digits __glibcpp_s16_digits
-#define __glibcpp_signed_long_digits10 __glibcpp_s16_digits10
-#define __glibcpp_unsigned_long_min __glibcpp_u16_min
-#define __glibcpp_unsigned_long_max __glibcpp_u16_max
-#define __glibcpp_unsigned_long_digits __glibcpp_u16_digits
-#define __glibcpp_unsigned_long_digits10 __glibcpp_u16_digits10
-#elif __glibcpp_long_bits == 32
-#define __glibcpp_signed_long_min __glibcpp_s32_min
-#define __glibcpp_signed_long_max __glibcpp_s32_max
-#define __glibcpp_signed_long_digits __glibcpp_s32_digits
-#define __glibcpp_signed_long_digits10 __glibcpp_s32_digits10
-#define __glibcpp_unsigned_long_min __glibcpp_u32_min
-#define __glibcpp_unsigned_long_max __glibcpp_u32_max
-#define __glibcpp_unsigned_long_digits __glibcpp_u32_digits
-#define __glibcpp_unsigned_long_digits10 __glibcpp_u32_digits10
-#elif __glibcpp_long_bits == 64
-#define __glibcpp_signed_long_min (long)__glibcpp_s64_min
-#define __glibcpp_signed_long_max (long)__glibcpp_s64_max
-#define __glibcpp_signed_long_digits __glibcpp_s64_digits
-#define __glibcpp_signed_long_digits10 __glibcpp_s64_digits10
-#define __glibcpp_unsigned_long_min (unsigned long)__glibcpp_u64_min
-#define __glibcpp_unsigned_long_max (unsigned long)__glibcpp_u64_max
-#define __glibcpp_unsigned_long_digits __glibcpp_u64_digits
-#define __glibcpp_unsigned_long_digits10 __glibcpp_u64_digits10
-#else
-// You must define these macros in the configuration file.
-#endif
-
-// long long
-
-#define __glibcpp_signed_long_long_traps true
-#define __glibcpp_signed_long_long_traps true
-#ifndef __glibcpp_signed_long_long_is_modulo
-#define __glibcpp_signed_long_long_is_modulo true
-#endif
-#if __glibcpp_long_long_bits == 8
-#define __glibcpp_signed_long_long_min __glibcpp_s8_min
-#define __glibcpp_signed_long_long_max __glibcpp_s8_max
-#define __glibcpp_signed_long_long_digits __glibcpp_s8_digits
-#define __glibcpp_signed_long_long_digits10 __glibcpp_s8_digits10
-#define __glibcpp_unsigned_long_long_min __glibcpp_u8_min
-#define __glibcpp_unsigned_long_long_max __glibcpp_u8_max
-#define __glibcpp_unsigned_long_long_digits __glibcpp_u8_digits
-#define __glibcpp_unsigned_long_long_digits10 __glibcpp_u8_digits10
-#elif __glibcpp_long_long_bits == 16
-#define __glibcpp_signed_long_long_min __glibcpp_s16_min
-#define __glibcpp_signed_long_long_max __glibcpp_s16_max
-#define __glibcpp_signed_long_long_digits __glibcpp_s16_digits
-#define __glibcpp_signed_long_long_digits10 __glibcpp_s16_digits10
-#define __glibcpp_unsigned_long_long_min __glibcpp_u16_min
-#define __glibcpp_unsigned_long_long_max __glibcpp_u16_max
-#define __glibcpp_unsigned_long_long_digits __glibcpp_u16_digits
-#define __glibcpp_unsigned_long_long_digits10 __glibcpp_u16_digits10
-#elif __glibcpp_long_long_bits == 32
-#define __glibcpp_signed_long_long_min __glibcpp_s32_min
-#define __glibcpp_signed_long_long_max __glibcpp_s32_max
-#define __glibcpp_signed_long_long_digits __glibcpp_s32_digits
-#define __glibcpp_signed_long_long_digits10 __glibcpp_s32_digits10
-#define __glibcpp_unsigned_long_long_min __glibcpp_u32_min
-#define __glibcpp_unsigned_long_long_max __glibcpp_u32_max
-#define __glibcpp_unsigned_long_long_digits __glibcpp_u32_digits
-#define __glibcpp_unsigned_long_long_digits10 __glibcpp_u32_digits10
-#elif __glibcpp_long_long_bits == 64
-#define __glibcpp_signed_long_long_min __glibcpp_s64_min
-#define __glibcpp_signed_long_long_max __glibcpp_s64_max
-#define __glibcpp_signed_long_long_digits __glibcpp_s64_digits
-#define __glibcpp_signed_long_long_digits10 __glibcpp_s64_digits10
-#define __glibcpp_signed_long_long_traps true
-#define __glibcpp_unsigned_long_long_min __glibcpp_u64_min
-#define __glibcpp_unsigned_long_long_max __glibcpp_u64_max
-#define __glibcpp_unsigned_long_long_digits __glibcpp_u64_digits
-#define __glibcpp_unsigned_long_long_digits10 __glibcpp_u64_digits10
-#define __glibcpp_unsigned_long_long_traps true
-#else
-// You must define these macros in the configuration file.
-#endif
-
-// wchar_t
-
-#define __glibcpp_wchar_t_traps true
-#ifndef __glibcpp_wchar_t_is_modulo
-#define __glibcpp_wchar_t_is_modulo true
-#endif
-#if __glibcpp_wchar_t_is_signed
-#if __glibcpp_wchar_t_bits == 8
-#define __glibcpp_wchar_t_min __glibcpp_s8_min
-#define __glibcpp_wchar_t_max __glibcpp_s8_max
-#define __glibcpp_wchar_t_digits __glibcpp_s8_digits
-#define __glibcpp_wchar_t_digits10 __glibcpp_s8_digits10
-#elif __glibcpp_wchar_t_bits == 16
-#define __glibcpp_wchar_t_min __glibcpp_s16_min
-#define __glibcpp_wchar_t_max __glibcpp_s16_max
-#define __glibcpp_wchar_t_digits __glibcpp_s16_digits
-#define __glibcpp_wchar_t_digits10 __glibcpp_s16_digits10
-#elif __glibcpp_wchar_t_bits == 32
-#define __glibcpp_wchar_t_min (wchar_t)__glibcpp_s32_min
-#define __glibcpp_wchar_t_max (wchar_t)__glibcpp_s32_max
-#define __glibcpp_wchar_t_digits __glibcpp_s32_digits
-#define __glibcpp_wchar_t_digits10 __glibcpp_s32_digits10
-#elif __glibcpp_wchar_t_bits == 64
-#define __glibcpp_wchar_t_min (wchar_t)__glibcpp_s64_min
-#define __glibcpp_wchar_t_max (wchar_t)__glibcpp_s64_max
-#define __glibcpp_wchar_t_digits __glibcpp_s64_digits
-#define __glibcpp_wchar_t_digits10 __glibcpp_s64_digits10
-#else
-// You must define these macros in the configuration file.
-#endif
-#else
-#if __glibcpp_wchar_t_bits == 8
-#define __glibcpp_wchar_t_min __glibcpp_u8_min
-#define __glibcpp_wchar_t_max __glibcpp_u8_max
-#define __glibcpp_wchar_t_digits __glibcpp_u8_digits
-#define __glibcpp_wchar_t_digits10 __glibcpp_u8_digits10
-#elif __glibcpp_wchar_t_bits == 16
-#define __glibcpp_wchar_t_min __glibcpp_u16_min
-#define __glibcpp_wchar_t_max __glibcpp_u16_max
-#define __glibcpp_wchar_t_digits __glibcpp_u16_digits
-#define __glibcpp_wchar_t_digits10 __glibcpp_u16_digits10
-#elif __glibcpp_wchar_t_bits == 32
-#define __glibcpp_wchar_t_min (wchar_t)__glibcpp_u32_min
-#define __glibcpp_wchar_t_max (wchar_t)__glibcpp_u32_max
-#define __glibcpp_wchar_t_digits __glibcpp_u32_digits
-#define __glibcpp_wchar_t_digits10 __glibcpp_u32_digits10
-#elif __glibcpp_wchar_t_bits == 64
-#define __glibcpp_wchar_t_min (wchar_t)__glibcpp_u64_min
-#define __glibcpp_wchar_t_max (wchar_t)__glibcpp_u64_max
-#define __glibcpp_wchar_t_digits __glibcpp_u64_digits
-#define __glibcpp_wchar_t_digits10 __glibcpp_u64_digits10
-#else
-// You must define these macros in the configuration file.
-#endif
+// GCC only intrinsicly supports modulo integral types. The only remaining
+// integral exceptional values is division by zero. Only targets that do not
+// signal division by zero in some "hard to ignore" way should use false.
+#ifndef __glibcpp_integral_traps
+# define __glibcpp_integral_traps true
#endif
// float
//
-#if __glibcpp_float_bits == 32
-#define __glibcpp_float_min __glibcpp_f32_min
-#define __glibcpp_float_max __glibcpp_f32_max
-#define __glibcpp_float_digits __glibcpp_f32_digits
-#define __glibcpp_float_digits10 __glibcpp_f32_digits10
-#define __glibcpp_float_radix __glibcpp_f32_radix
-#define __glibcpp_float_epsilon __glibcpp_f32_epsilon
-#define __glibcpp_float_round_error __glibcpp_f32_round_error
-#define __glibcpp_float_min_exponent __glibcpp_f32_min_exponent
-#define __glibcpp_float_min_exponent10 __glibcpp_f32_min_exponent10
-#define __glibcpp_float_max_exponent __glibcpp_f32_max_exponent
-#define __glibcpp_float_max_exponent10 __glibcpp_f32_max_exponent10
-#elif __glibcpp_float_bits == 64
-#define __glibcpp_float_min __glibcpp_f64_min
-#define __glibcpp_float_max __glibcpp_f64_max
-#define __glibcpp_float_digits __glibcpp_f64_digits
-#define __glibcpp_float_digits10 __glibcpp_f64_digits10
-#define __glibcpp_float_radix __glibcpp_f64_radix
-#define __glibcpp_float_epsilon __glibcpp_f64_epsilon
-#define __glibcpp_float_round_error __glibcpp_f64_round_error
-#define __glibcpp_float_min_exponent __glibcpp_f64_min_exponent
-#define __glibcpp_float_min_exponent10 __glibcpp_f64_min_exponent10
-#define __glibcpp_float_max_exponent __glibcpp_f64_max_exponent
-#define __glibcpp_float_max_exponent10 __glibcpp_f64_max_exponent10
-#elif __glibcpp_float_bits == 80
-#define __glibcpp_float_min __glibcpp_f80_min
-#define __glibcpp_float_max __glibcpp_f80_max
-#define __glibcpp_float_digits __glibcpp_f80_digits
-#define __glibcpp_float_digits10 __glibcpp_f80_digits10
-#define __glibcpp_float_radix __glibcpp_f80_radix
-#define __glibcpp_float_epsilon __glibcpp_f80_epsilon
-#define __glibcpp_float_round_error __glibcpp_f80_round_error
-#define __glibcpp_float_min_exponent __glibcpp_f80_min_exponent
-#define __glibcpp_float_min_exponent10 __glibcpp_f80_min_exponent10
-#define __glibcpp_float_max_exponent __glibcpp_f80_max_exponent
-#define __glibcpp_float_max_exponent10 __glibcpp_f80_max_exponent10
-#else
-// You must define these macros in the configuration file.
-#endif
-
-// FIXME: These are just stubs and inkorrect
-
-#ifndef __glibcpp_float_has_infinity
-#define __glibcpp_float_has_infinity false
-#endif
-
-#ifndef __glibcpp_float_has_quiet_NaN
-#define __glibcpp_float_has_quiet_NaN false
-#endif
-
-#ifndef __glibcpp_float_has_signaling_NaN
-#define __glibcpp_float_has_signaling_NaN false
-#endif
-
-#ifndef __glibcpp_float_has_denorm
-#define __glibcpp_float_has_denorm denorm_absent
-#endif
+// Default values. Should be overriden in configuration files if necessary.
#ifndef __glibcpp_float_has_denorm_loss
-#define __glibcpp_float_has_denorm_loss false
-#endif
-
-#ifndef __glibcpp_float_infinity
-#define __glibcpp_float_infinity 0.0F
-#endif
-
-#ifndef __glibcpp_float_quiet_NaN
-#define __glibcpp_float_quiet_NaN 0.0F
-#endif
-
-#ifndef __glibcpp_float_signaling_NaN
-#define __glibcpp_float_signaling_NaN 0.0F
-#endif
-
-#ifndef __glibcpp_float_denorm_min
-#define __glibcpp_float_denorm_min 0.0F
+# define __glibcpp_float_has_denorm_loss false
#endif
-
-#ifndef __glibcpp_float_is_iec559
-#define __glibcpp_float_is_iec559 false
-#endif
-
-#ifndef __glibcpp_float_is_bounded
-#define __glibcpp_float_is_bounded true
-#endif
-
-#ifndef __glibcpp_float_is_modulo
-#define __glibcpp_float_is_modulo false
-#endif
-
#ifndef __glibcpp_float_traps
-#define __glibcpp_float_traps false
+# define __glibcpp_float_traps false
#endif
-
#ifndef __glibcpp_float_tinyness_before
-#define __glibcpp_float_tinyness_before false
-#endif
-
-#ifndef __glibcpp_float_round_style
-#define __glibcpp_float_round_style round_toward_zero
+# define __glibcpp_float_tinyness_before false
#endif
// double
-#if __glibcpp_double_bits == 32
-#define __glibcpp_double_min __glibcpp_f32_min
-#define __glibcpp_double_max __glibcpp_f32_max
-#define __glibcpp_double_digits __glibcpp_f32_digits
-#define __glibcpp_double_digits10 __glibcpp_f32_digits10
-#define __glibcpp_double_radix __glibcpp_f32_radix
-#define __glibcpp_double_epsilon __glibcpp_f32_epsilon
-#define __glibcpp_double_round_error __glibcpp_f32_round_error
-#define __glibcpp_double_min_exponent __glibcpp_f32_min_exponent
-#define __glibcpp_double_min_exponent10 __glibcpp_f32_min_exponent10
-#define __glibcpp_double_max_exponent __glibcpp_f32_max_exponent
-#define __glibcpp_double_max_exponent10 __glibcpp_f32_max_exponent10
-#elif __glibcpp_double_bits == 64
-#define __glibcpp_double_min __glibcpp_f64_min
-#define __glibcpp_double_max __glibcpp_f64_max
-#define __glibcpp_double_digits __glibcpp_f64_digits
-#define __glibcpp_double_digits10 __glibcpp_f64_digits10
-#define __glibcpp_double_radix __glibcpp_f64_radix
-#define __glibcpp_double_epsilon __glibcpp_f64_epsilon
-#define __glibcpp_double_round_error __glibcpp_f64_round_error
-#define __glibcpp_double_min_exponent __glibcpp_f64_min_exponent
-#define __glibcpp_double_min_exponent10 __glibcpp_f64_min_exponent10
-#define __glibcpp_double_max_exponent __glibcpp_f64_max_exponent
-#define __glibcpp_double_max_exponent10 __glibcpp_f64_max_exponent10
-#elif __glibcpp_double_bits == 80
-#define __glibcpp_double_min __glibcpp_f80_min
-#define __glibcpp_double_max __glibcpp_f80_max
-#define __glibcpp_double_digits __glibcpp_f80_digits
-#define __glibcpp_double_digits10 __glibcpp_f80_digits10
-#define __glibcpp_double_radix __glibcpp_f80_radix
-#define __glibcpp_double_epsilon __glibcpp_f80_epsilon
-#define __glibcpp_double_round_error __glibcpp_f80_round_error
-#define __glibcpp_double_min_exponent __glibcpp_f80_min_exponent
-#define __glibcpp_double_min_exponent10 __glibcpp_f80_min_exponent10
-#define __glibcpp_double_max_exponent __glibcpp_f80_max_exponent
-#define __glibcpp_double_max_exponent10 __glibcpp_f80_max_exponent10
-#else
-// You must define these macros in the configuration file.
-#endif
-
-// FIXME: These are just stubs and inkorrect
-
-#ifndef __glibcpp_double_has_infinity
-#define __glibcpp_double_has_infinity false
-#endif
-
-#ifndef __glibcpp_double_has_quiet_NaN
-#define __glibcpp_double_has_quiet_NaN false
-#endif
-
-#ifndef __glibcpp_double_has_signaling_NaN
-#define __glibcpp_double_has_signaling_NaN false
-#endif
-
-#ifndef __glibcpp_double_has_denorm
-#define __glibcpp_double_has_denorm denorm_absent
-#endif
+// Default values. Should be overriden in configuration files if necessary.
#ifndef __glibcpp_double_has_denorm_loss
-#define __glibcpp_double_has_denorm_loss false
-#endif
-
-#ifndef __glibcpp_double_infinity
-#define __glibcpp_double_infinity 0.0
+# define __glibcpp_double_has_denorm_loss false
#endif
-
-#ifndef __glibcpp_double_quiet_NaN
-#define __glibcpp_double_quiet_NaN 0.0
-#endif
-
-#ifndef __glibcpp_double_signaling_NaN
-#define __glibcpp_double_signaling_NaN 0.0
-#endif
-
-#ifndef __glibcpp_double_denorm_min
-#define __glibcpp_double_denorm_min 0.0
-#endif
-
-#ifndef __glibcpp_double_is_iec559
-#define __glibcpp_double_is_iec559 false
-#endif
-
-#ifndef __glibcpp_double_is_bounded
-#define __glibcpp_double_is_bounded true
-#endif
-
-#ifndef __glibcpp_double_is_modulo
-#define __glibcpp_double_is_modulo false
-#endif
-
#ifndef __glibcpp_double_traps
-#define __glibcpp_double_traps false
+# define __glibcpp_double_traps false
#endif
-
#ifndef __glibcpp_double_tinyness_before
-#define __glibcpp_double_tinyness_before false
-#endif
-
-#ifndef __glibcpp_double_round_style
-#define __glibcpp_double_round_style round_toward_zero
+# define __glibcpp_double_tinyness_before false
#endif
// long double
-#if __glibcpp_long_double_bits == 32
-#define __glibcpp_long_double_min __glibcpp_f32_min
-#define __glibcpp_long_double_max __glibcpp_f32_max
-#define __glibcpp_long_double_digits __glibcpp_f32_digits
-#define __glibcpp_long_double_digits10 __glibcpp_f32_digits10
-#define __glibcpp_long_double_radix __glibcpp_f32_radix
-#define __glibcpp_long_double_epsilon __glibcpp_f32_epsilon
-#define __glibcpp_long_double_round_error __glibcpp_f32_round_error
-#define __glibcpp_long_double_min_exponent __glibcpp_f32_min_exponent
-#define __glibcpp_long_double_min_exponent10 __glibcpp_f32_min_exponent10
-#define __glibcpp_long_double_max_exponent __glibcpp_f32_max_exponent
-#define __glibcpp_long_double_max_exponent10 __glibcpp_f32_max_exponent10
-#elif __glibcpp_long_double_bits == 64
-#define __glibcpp_long_double_min __glibcpp_f64_min
-#define __glibcpp_long_double_max __glibcpp_f64_max
-#define __glibcpp_long_double_digits __glibcpp_f64_digits
-#define __glibcpp_long_double_digits10 __glibcpp_f64_digits10
-#define __glibcpp_long_double_radix __glibcpp_f64_radix
-#define __glibcpp_long_double_epsilon __glibcpp_f64_epsilon
-#define __glibcpp_long_double_round_error __glibcpp_f64_round_error
-#define __glibcpp_long_double_min_exponent __glibcpp_f64_min_exponent
-#define __glibcpp_long_double_min_exponent10 __glibcpp_f64_min_exponent10
-#define __glibcpp_long_double_max_exponent __glibcpp_f64_max_exponent
-#define __glibcpp_long_double_max_exponent10 __glibcpp_f64_max_exponent10
-#elif __glibcpp_long_double_bits == 80
-#define __glibcpp_long_double_min __glibcpp_f80_min
-#define __glibcpp_long_double_max __glibcpp_f80_max
-#define __glibcpp_long_double_digits __glibcpp_f80_digits
-#define __glibcpp_long_double_digits10 __glibcpp_f80_digits10
-#define __glibcpp_long_double_radix __glibcpp_f80_radix
-#define __glibcpp_long_double_epsilon __glibcpp_f80_epsilon
-#define __glibcpp_long_double_round_error __glibcpp_f80_round_error
-#define __glibcpp_long_double_min_exponent __glibcpp_f80_min_exponent
-#define __glibcpp_long_double_min_exponent10 __glibcpp_f80_min_exponent10
-#define __glibcpp_long_double_max_exponent __glibcpp_f80_max_exponent
-#define __glibcpp_long_double_max_exponent10 __glibcpp_f80_max_exponent10
-#elif __glibcpp_long_double_bits == 96
-#define __glibcpp_long_double_min __glibcpp_f96_min
-#define __glibcpp_long_double_max __glibcpp_f96_max
-#define __glibcpp_long_double_digits __glibcpp_f96_digits
-#define __glibcpp_long_double_digits10 __glibcpp_f96_digits10
-#define __glibcpp_long_double_radix __glibcpp_f96_radix
-#define __glibcpp_long_double_epsilon __glibcpp_f96_epsilon
-#define __glibcpp_long_double_round_error __glibcpp_f96_round_error
-#define __glibcpp_long_double_min_exponent __glibcpp_f96_min_exponent
-#define __glibcpp_long_double_min_exponent10 __glibcpp_f96_min_exponent10
-#define __glibcpp_long_double_max_exponent __glibcpp_f96_max_exponent
-#define __glibcpp_long_double_max_exponent10 __glibcpp_f96_max_exponent10
-#elif __glibcpp_long_double_bits == 128
-#define __glibcpp_long_double_min __glibcpp_f128_min
-#define __glibcpp_long_double_max __glibcpp_f128_max
-#define __glibcpp_long_double_digits __glibcpp_f128_digits
-#define __glibcpp_long_double_digits10 __glibcpp_f128_digits10
-#define __glibcpp_long_double_radix __glibcpp_f128_radix
-#define __glibcpp_long_double_epsilon __glibcpp_f128_epsilon
-#define __glibcpp_long_double_round_error __glibcpp_f128_round_error
-#define __glibcpp_long_double_min_exponent __glibcpp_f128_min_exponent
-#define __glibcpp_long_double_min_exponent10 __glibcpp_f128_min_exponent10
-#define __glibcpp_long_double_max_exponent __glibcpp_f128_max_exponent
-#define __glibcpp_long_double_max_exponent10 __glibcpp_f128_max_exponent10
-#else
-// You must define these macros in the configuration file.
-#endif
-
-// FIXME: These are just stubs and inkorrect
-
-#ifndef __glibcpp_long_double_has_infinity
-#define __glibcpp_long_double_has_infinity false
-#endif
-
-#ifndef __glibcpp_long_double_has_quiet_NaN
-#define __glibcpp_long_double_has_quiet_NaN false
-#endif
-
-#ifndef __glibcpp_long_double_has_signaling_NaN
-#define __glibcpp_long_double_has_signaling_NaN false
-#endif
-
-#ifndef __glibcpp_long_double_has_denorm
-#define __glibcpp_long_double_has_denorm denorm_absent
-#endif
+// Default values. Should be overriden in configuration files if necessary.
#ifndef __glibcpp_long_double_has_denorm_loss
-#define __glibcpp_long_double_has_denorm_loss false
-#endif
-
-#ifndef __glibcpp_long_double_infinity
-#define __glibcpp_long_double_infinity 0.0L
+# define __glibcpp_long_double_has_denorm_loss false
#endif
-
-#ifndef __glibcpp_long_double_quiet_NaN
-#define __glibcpp_long_double_quiet_NaN 0.0L
-#endif
-
-#ifndef __glibcpp_long_double_signaling_NaN
-#define __glibcpp_long_double_signaling_NaN 0.0L
+#ifndef __glibcpp_long_double_traps
+# define __glibcpp_long_double_traps false
#endif
-
-#ifndef __glibcpp_long_double_denorm_min
-#define __glibcpp_long_double_denorm_min 0.0L
+#ifndef __glibcpp_long_double_tinyness_before
+# define __glibcpp_long_double_tinyness_before false
#endif
-#ifndef __glibcpp_long_double_is_iec559
-#define __glibcpp_long_double_is_iec559 false
-#endif
+// You should not need to define any macros below this point.
-#ifndef __glibcpp_long_double_is_bounded
-#define __glibcpp_long_double_is_bounded true
-#endif
+#define __glibcpp_signed(T) ((T)(-1) < 0)
-#ifndef __glibcpp_long_double_is_modulo
-#define __glibcpp_long_double_is_modulo false
-#endif
+#define __glibcpp_min(T) \
+ (__glibcpp_signed (T) ? (T)1 << __glibcpp_digits (T) : (T)0)
-#ifndef __glibcpp_long_double_traps
-#define __glibcpp_long_double_traps false
-#endif
+#define __glibcpp_max(T) \
+ (__glibcpp_signed (T) ? ((T)1 << __glibcpp_digits (T)) - 1 : ~(T)0)
-#ifndef __glibcpp_long_double_tinyness_before
-#define __glibcpp_long_double_tinyness_before false
-#endif
+#define __glibcpp_digits(T) \
+ (sizeof(T) * __CHAR_BIT__ - __glibcpp_signed (T))
-#ifndef __glibcpp_long_double_round_style
-#define __glibcpp_long_double_round_style round_toward_zero
-#endif
+// The fraction 643/2136 approximates log10(2) to 7 significant digits.
+#define __glibcpp_digits10(T) \
+ (__glibcpp_digits (T) * 643 / 2136)
namespace std
{
- enum float_round_style
+ enum float_round_style
{
round_indeterminate = -1,
round_toward_zero = 0,
@@ -895,7 +158,7 @@ namespace std
round_toward_neg_infinity = 3
};
- enum float_denorm_style
+ enum float_denorm_style
{
denorm_indeterminate = -1,
denorm_absent = 0,
@@ -920,7 +183,7 @@ namespace std
static const int min_exponent10 = 0;
static const int max_exponent = 0;
static const int max_exponent10 = 0;
-
+
static const bool has_infinity = false;
static const bool has_quiet_NaN = false;
static const bool has_signaling_NaN = false;
@@ -936,8 +199,8 @@ namespace std
static const float_round_style round_style = round_toward_zero;
};
- template<typename _Tp>
- struct numeric_limits : public __numeric_limits_base
+ template<typename _Tp>
+ struct numeric_limits : public __numeric_limits_base
{
static _Tp min() throw() { return static_cast<_Tp>(0); }
static _Tp max() throw() { return static_cast<_Tp>(0); }
@@ -950,7 +213,7 @@ namespace std
};
// Now there follow 15 explicit specializations. Yes, 15. Make sure
- // you get the count right.
+ // you get the count right.
template<>
struct numeric_limits<bool>
{
@@ -958,11 +221,10 @@ namespace std
static bool min() throw()
{ return false; }
-
static bool max() throw()
{ return true; }
- static const int digits = __glibcpp_bool_digits;
+ static const int digits = 1;
static const int digits10 = 0;
static const bool is_signed = false;
static const bool is_integer = true;
@@ -1000,34 +262,31 @@ namespace std
// It is not clear what it means for a boolean type to trap.
// This is a DR on the LWG issue list. Here, I use integer
// promotion semantics.
- static const bool traps = __glibcpp_signed_int_traps
- || __glibcpp_signed_long_traps;
+ static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero;
};
-#undef __glibcpp_bool_digits
-
template<>
struct numeric_limits<char>
{
static const bool is_specialized = true;
static char min() throw()
- { return __glibcpp_char_min; }
+ { return __glibcpp_min(char); }
static char max() throw()
- { return __glibcpp_char_max; }
+ { return __glibcpp_max(char); }
- static const int digits = __glibcpp_char_digits;
- static const int digits10 = __glibcpp_char_digits10;
- static const bool is_signed = __glibcpp_plain_char_is_signed;
+ static const int digits = __glibcpp_digits (char);
+ static const int digits10 = __glibcpp_digits10 (char);
+ static const bool is_signed = __glibcpp_signed (char);
static const bool is_integer = true;
static const bool is_exact = true;
static const int radix = 2;
static char epsilon() throw()
- { return char(); }
+ { return 0; }
static char round_error() throw()
- { return char(); }
+ { return 0; }
static const int min_exponent = 0;
static const int min_exponent10 = 0;
@@ -1051,35 +310,25 @@ namespace std
static const bool is_iec559 = false;
static const bool is_bounded = true;
- static const bool is_modulo = __glibcpp_char_is_modulo;
+ static const bool is_modulo = true;
- static const bool traps = __glibcpp_char_traps;
+ static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero;
};
-#undef __glibcpp_char_min
-#undef __glibcpp_char_max
-#undef __glibcpp_char_digits
-#undef __glibcpp_char_digits10
-#undef __glibcpp_char_is_signed
-#undef __glibcpp_char_is_modulo
-#undef __glibcpp_char_traps
-
-
-
template<>
struct numeric_limits<signed char>
{
static const bool is_specialized = true;
static signed char min() throw()
- { return __glibcpp_signed_char_min; }
+ { return -__SCHAR_MAX__ - 1; }
static signed char max() throw()
- { return __glibcpp_signed_char_max; }
+ { return __SCHAR_MAX__; }
- static const int digits = __glibcpp_signed_char_digits;
- static const int digits10 = __glibcpp_signed_char_digits10;
+ static const int digits = __glibcpp_digits (signed char);
+ static const int digits10 = __glibcpp_digits10 (signed char);
static const bool is_signed = true;
static const bool is_integer = true;
static const bool is_exact = true;
@@ -1111,20 +360,13 @@ namespace std
static const bool is_iec559 = false;
static const bool is_bounded = true;
- static const bool is_modulo = __glibcpp_signed_char_is_modulo;
+ static const bool is_modulo = true;
- static const bool traps = __glibcpp_signed_char_traps;
+ static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero;
};
-#undef __glibcpp_signed_char_min
-#undef __glibcpp_signed_char_max
-#undef __glibcpp_signed_char_digits
-#undef __glibcpp_signed_char_digits10
-#undef __glibcpp_signed_char_is_modulo
-#undef __glibcpp_signed_char_traps
-
template<>
struct numeric_limits<unsigned char>
{
@@ -1133,10 +375,10 @@ namespace std
static unsigned char min() throw()
{ return 0; }
static unsigned char max() throw()
- { return __glibcpp_unsigned_char_max; }
+ { return __SCHAR_MAX__ * 2U + 1; }
- static const int digits = __glibcpp_unsigned_char_digits;
- static const int digits10 = __glibcpp_unsigned_char_digits10;
+ static const int digits = __glibcpp_digits (unsigned char);
+ static const int digits10 = __glibcpp_digits10 (unsigned char);
static const bool is_signed = false;
static const bool is_integer = true;
static const bool is_exact = true;
@@ -1170,29 +412,24 @@ namespace std
static const bool is_bounded = true;
static const bool is_modulo = true;
- static const bool traps = __glibcpp_unsigned_char_traps;
+ static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero;
};
-#undef __glibcpp_unsigned_char_max
-#undef __glibcpp_unsigned_char_digits
-#undef __glibcpp_unsigned_char_digits10
-#undef __glibcpp_unsigned_char_traps
-
template<>
struct numeric_limits<wchar_t>
{
static const bool is_specialized = true;
static wchar_t min() throw()
- { return __glibcpp_wchar_t_min; }
+ { return __glibcpp_min (wchar_t); }
static wchar_t max() throw()
- { return __glibcpp_wchar_t_max; }
+ { return __glibcpp_max (wchar_t); }
- static const int digits = __glibcpp_wchar_t_digits;
- static const int digits10 = __glibcpp_wchar_t_digits10;
- static const bool is_signed = __glibcpp_wchar_t_is_signed;
+ static const int digits = __glibcpp_digits (wchar_t);
+ static const int digits10 = __glibcpp_digits10 (wchar_t);
+ static const bool is_signed = __glibcpp_signed (wchar_t);
static const bool is_integer = true;
static const bool is_exact = true;
static const int radix = 2;
@@ -1223,33 +460,25 @@ namespace std
static const bool is_iec559 = false;
static const bool is_bounded = true;
- static const bool is_modulo = __glibcpp_wchar_t_is_modulo;
+ static const bool is_modulo = true;
- static const bool traps = __glibcpp_wchar_t_traps;
+ static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero;
};
-#undef __glibcpp_wchar_t_min
-#undef __glibcpp_wchar_t_max
-#undef __glibcpp_wchar_t_digits
-#undef __glibcpp_wchar_t_digits10
-#undef __glibcpp_wchar_t_is_signed
-#undef __glibcpp_wchar_t_is_modulo
-#undef __glibcpp_wchar_t_traps
-
template<>
struct numeric_limits<short>
{
static const bool is_specialized = true;
static short min() throw()
- { return __glibcpp_signed_short_min; }
+ { return -__SHRT_MAX__ - 1; }
static short max() throw()
- { return __glibcpp_signed_short_max; }
+ { return __SHRT_MAX__; }
- static const int digits = __glibcpp_signed_short_digits;
- static const int digits10 = __glibcpp_signed_short_digits10;
+ static const int digits = __glibcpp_digits (short);
+ static const int digits10 = __glibcpp_digits10 (short);
static const bool is_signed = true;
static const bool is_integer = true;
static const bool is_exact = true;
@@ -1279,22 +508,15 @@ namespace std
static short denorm_min() throw()
{ return short(); }
- static const bool is_iec559 = true;
+ static const bool is_iec559 = false;
static const bool is_bounded = true;
- static const bool is_modulo = __glibcpp_signed_short_is_modulo;
+ static const bool is_modulo = true;
- static const bool traps = __glibcpp_signed_short_traps;
+ static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero;
};
-#undef __glibcpp_signed_short_min
-#undef __glibcpp_signed_short_max
-#undef __glibcpp_signed_short_digits
-#undef __glibcpp_signed_short_digits10
-#undef __glibcpp_signed_short_is_modulo
-#undef __glibcpp_signed_short_traps
-
template<>
struct numeric_limits<unsigned short>
{
@@ -1303,10 +525,10 @@ namespace std
static unsigned short min() throw()
{ return 0; }
static unsigned short max() throw()
- { return __glibcpp_unsigned_short_max; }
+ { return __SHRT_MAX__ * 2U + 1; }
- static const int digits = __glibcpp_unsigned_short_digits;
- static const int digits10 = __glibcpp_unsigned_short_digits10;
+ static const int digits = __glibcpp_digits (unsigned short);
+ static const int digits10 = __glibcpp_digits10 (unsigned short);
static const bool is_signed = false;
static const bool is_integer = true;
static const bool is_exact = true;
@@ -1336,32 +558,27 @@ namespace std
static unsigned short denorm_min() throw()
{ return static_cast<unsigned short>(0); }
- static const bool is_iec559 = true;
+ static const bool is_iec559 = false;
static const bool is_bounded = true;
static const bool is_modulo = true;
- static const bool traps = __glibcpp_unsigned_short_traps;
+ static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero;
};
-#undef __glibcpp_unsigned_short_max
-#undef __glibcpp_unsigned_short_digits
-#undef __glibcpp_unsigned_short_digits10
-#undef __glibcpp_unsigned_short_traps
-
template<>
struct numeric_limits<int>
{
static const bool is_specialized = true;
static int min() throw()
- { return __glibcpp_signed_int_min; }
+ { return -__INT_MAX__ - 1; }
static int max() throw()
- { return __glibcpp_signed_int_max; }
+ { return __INT_MAX__; }
- static const int digits = __glibcpp_signed_int_digits;
- static const int digits10 = __glibcpp_signed_int_digits10;
+ static const int digits = __glibcpp_digits (int);
+ static const int digits10 = __glibcpp_digits10 (int);
static const bool is_signed = true;
static const bool is_integer = true;
static const bool is_exact = true;
@@ -1391,22 +608,15 @@ namespace std
static int denorm_min() throw()
{ return static_cast<int>(0); }
- static const bool is_iec559 = true;
+ static const bool is_iec559 = false;
static const bool is_bounded = true;
- static const bool is_modulo = __glibcpp_signed_int_is_modulo;
+ static const bool is_modulo = true;
- static const bool traps = __glibcpp_signed_int_traps;
+ static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero;
};
-#undef __glibcpp_signed_int_min
-#undef __glibcpp_signed_int_max
-#undef __glibcpp_signed_int_digits
-#undef __glibcpp_signed_int_digits10
-#undef __glibcpp_signed_int_is_modulo
-#undef __glibcpp_signed_int_traps
-
template<>
struct numeric_limits<unsigned int>
{
@@ -1414,11 +624,11 @@ namespace std
static unsigned int min() throw()
{ return 0; }
- static unsigned int max() throw()
- { return __glibcpp_unsigned_int_max; }
+ static unsigned int max() throw()
+ { return __INT_MAX__ * 2U + 1; }
- static const int digits = __glibcpp_unsigned_int_digits;
- static const int digits10 = __glibcpp_unsigned_int_digits10;
+ static const int digits = __glibcpp_digits (unsigned int);
+ static const int digits10 = __glibcpp_digits10 (unsigned int);
static const bool is_signed = false;
static const bool is_integer = true;
static const bool is_exact = true;
@@ -1448,32 +658,27 @@ namespace std
static unsigned int denorm_min() throw()
{ return static_cast<unsigned int>(0); }
- static const bool is_iec559 = true;
+ static const bool is_iec559 = false;
static const bool is_bounded = true;
static const bool is_modulo = true;
- static const bool traps = __glibcpp_unsigned_int_traps;
+ static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero;
};
-#undef __glibcpp_unsigned_int_max
-#undef __glibcpp_unsigned_int_digits
-#undef __glibcpp_unsigned_int_digits10
-#undef __glibcpp_unsigned_int_traps
-
template<>
struct numeric_limits<long>
{
static const bool is_specialized = true;
static long min() throw()
- { return __glibcpp_signed_long_min; }
+ { return -__LONG_MAX__ - 1; }
static long max() throw()
- { return __glibcpp_signed_long_max; }
+ { return __LONG_MAX__; }
- static const int digits = __glibcpp_signed_long_digits;
- static const int digits10 = __glibcpp_signed_long_digits10;
+ static const int digits = __glibcpp_digits (long);
+ static const int digits10 = __glibcpp_digits10 (long);
static const bool is_signed = true;
static const bool is_integer = true;
static const bool is_exact = true;
@@ -1503,22 +708,15 @@ namespace std
static long denorm_min() throw()
{ return static_cast<long>(0); }
- static const bool is_iec559 = true;
+ static const bool is_iec559 = false;
static const bool is_bounded = true;
- static const bool is_modulo = __glibcpp_signed_long_is_modulo;
+ static const bool is_modulo = true;
- static const bool traps = __glibcpp_signed_long_traps;
+ static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero;
};
-#undef __glibcpp_signed_long_min
-#undef __glibcpp_signed_long_max
-#undef __glibcpp_signed_long_digits
-#undef __glibcpp_signed_long_digits10
-#undef __glibcpp_signed_long_is_modulo
-#undef __glibcpp_signed_long_traps
-
template<>
struct numeric_limits<unsigned long>
{
@@ -1527,10 +725,10 @@ namespace std
static unsigned long min() throw()
{ return 0; }
static unsigned long max() throw()
- { return __glibcpp_unsigned_long_max; }
+ { return __LONG_MAX__ * 2UL + 1; }
- static const int digits = __glibcpp_unsigned_long_digits;
- static const int digits10 = __glibcpp_unsigned_long_digits10;
+ static const int digits = __glibcpp_digits (unsigned long);
+ static const int digits10 = __glibcpp_digits10 (unsigned long);
static const bool is_signed = false;
static const bool is_integer = true;
static const bool is_exact = true;
@@ -1560,32 +758,27 @@ namespace std
static unsigned long denorm_min() throw()
{ return static_cast<unsigned long>(0); }
- static const bool is_iec559 = true;
+ static const bool is_iec559 = false;
static const bool is_bounded = true;
static const bool is_modulo = true;
- static const bool traps = __glibcpp_unsigned_long_traps;
+ static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero;
};
-#undef __glibcpp_unsigned_long_max
-#undef __glibcpp_unsigned_long_digits
-#undef __glibcpp_unsigned_long_digits10
-#undef __glibcpp_unsigned_long_traps
-
template<>
struct numeric_limits<long long>
{
static const bool is_specialized = true;
-
+
static long long min() throw()
- { return __glibcpp_signed_long_long_min; }
+ { return -__LONG_LONG_MAX__ - 1; }
static long long max() throw()
- { return __glibcpp_signed_long_long_max; }
-
- static const int digits = __glibcpp_signed_long_long_digits;
- static const int digits10 = __glibcpp_signed_long_long_digits10;
+ { return __LONG_LONG_MAX__; }
+
+ static const int digits = __glibcpp_digits (long long);
+ static const int digits10 = __glibcpp_digits10 (long long);
static const bool is_signed = true;
static const bool is_integer = true;
static const bool is_exact = true;
@@ -1594,18 +787,18 @@ namespace std
{ return 0; }
static long long round_error() throw()
{ return 0; }
-
+
static const int min_exponent = 0;
static const int min_exponent10 = 0;
static const int max_exponent = 0;
static const int max_exponent10 = 0;
-
+
static const bool has_infinity = false;
static const bool has_quiet_NaN = false;
static const bool has_signaling_NaN = false;
static const float_denorm_style has_denorm = denorm_absent;
static const bool has_denorm_loss = false;
-
+
static long long infinity() throw()
{ return static_cast<long long>(0); }
static long long quiet_NaN() throw()
@@ -1614,23 +807,16 @@ namespace std
{ return static_cast<long long>(0); }
static long long denorm_min() throw()
{ return static_cast<long long>(0); }
-
- static const bool is_iec559 = true;
+
+ static const bool is_iec559 = false;
static const bool is_bounded = true;
- static const bool is_modulo = __glibcpp_signed_long_long_is_modulo;
+ static const bool is_modulo = true;
- static const bool traps = __glibcpp_signed_long_long_traps;
+ static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero;
};
-#undef __glibcpp_signed_long_long_min
-#undef __glibcpp_signed_long_long_max
-#undef __glibcpp_signed_long_long_digits
-#undef __glibcpp_signed_long_long_digits10
-#undef __glibcpp_signed_long_long_is_modulo
-#undef __glibcpp_signed_long_long_traps
-
template<>
struct numeric_limits<unsigned long long>
{
@@ -1639,10 +825,10 @@ namespace std
static unsigned long long min() throw()
{ return 0; }
static unsigned long long max() throw()
- { return __glibcpp_unsigned_long_long_max; }
+ { return __LONG_LONG_MAX__ * 2ULL + 1; }
- static const int digits = __glibcpp_unsigned_long_long_digits;
- static const int digits10 = __glibcpp_unsigned_long_long_digits10;
+ static const int digits = __glibcpp_digits (unsigned long long);
+ static const int digits10 = __glibcpp_digits10 (unsigned long long);
static const bool is_signed = false;
static const bool is_integer = true;
static const bool is_exact = true;
@@ -1672,95 +858,72 @@ namespace std
static unsigned long long denorm_min() throw()
{ return static_cast<unsigned long long>(0); }
- static const bool is_iec559 = true;
+ static const bool is_iec559 = false;
static const bool is_bounded = true;
static const bool is_modulo = true;
- static const bool traps = true;
+ static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero;
};
-#undef __glibcpp_unsigned_long_long_max
-#undef __glibcpp_unsigned_long_long_digits
-#undef __glibcpp_unsigned_long_long_digits10
-#undef __glibcpp_unsigned_long_long_traps
-
template<>
struct numeric_limits<float>
{
static const bool is_specialized = true;
static float min() throw()
- { return __glibcpp_float_min; }
+ { return __FLT_MIN__; }
static float max() throw()
- { return __glibcpp_float_max; }
+ { return __FLT_MAX__; }
- static const int digits = __glibcpp_float_digits;
- static const int digits10 = __glibcpp_float_digits10;
+ static const int digits = __FLT_MANT_DIG__;
+ static const int digits10 = __FLT_DIG__;
static const bool is_signed = true;
static const bool is_integer = false;
static const bool is_exact = false;
- static const int radix = __glibcpp_float_radix;
+ static const int radix = __FLT_RADIX__;
static float epsilon() throw()
- { return __glibcpp_float_epsilon; }
+ { return __FLT_EPSILON__; }
static float round_error() throw()
- { return __glibcpp_float_round_error; }
-
- static const int min_exponent = __glibcpp_float_min_exponent;
- static const int min_exponent10 = __glibcpp_float_min_exponent10;
- static const int max_exponent = __glibcpp_float_max_exponent;
- static const int max_exponent10 = __glibcpp_float_max_exponent10;
-
- static const bool has_infinity = __glibcpp_float_has_infinity;
- static const bool has_quiet_NaN = __glibcpp_float_has_quiet_NaN;
- static const bool has_signaling_NaN = __glibcpp_float_has_signaling_NaN;
- static const float_denorm_style has_denorm = __glibcpp_float_has_denorm;
+ { return 0.5F; }
+
+ static const int min_exponent = __FLT_MIN_EXP__;
+ static const int min_exponent10 = __FLT_MIN_10_EXP__;
+ static const int max_exponent = __FLT_MAX_EXP__;
+ static const int max_exponent10 = __FLT_MAX_10_EXP__;
+
+ static const bool has_infinity
+ = __builtin_huge_valf () / 2 == __builtin_huge_valf ();
+ static const bool has_quiet_NaN
+ = __builtin_nanf ("") != __builtin_nanf ("");
+ static const bool has_signaling_NaN = has_quiet_NaN;
+ static const float_denorm_style has_denorm
+ = __FLT_DENORM_MIN__ ? denorm_present : denorm_absent;
static const bool has_denorm_loss = __glibcpp_float_has_denorm_loss;
static float infinity() throw()
- { return __glibcpp_float_infinity; }
+ { return __builtin_huge_valf (); }
static float quiet_NaN() throw()
- { return __glibcpp_float_quiet_NaN; }
+ { return __builtin_nanf (""); }
static float signaling_NaN() throw()
- { return __glibcpp_float_signaling_NaN; }
+ { return __builtin_nansf (""); }
static float denorm_min() throw()
- { return __glibcpp_float_denorm_min; }
+ { return __FLT_DENORM_MIN__; }
- static const bool is_iec559 = __glibcpp_float_is_iec559;
- static const bool is_bounded = __glibcpp_float_is_bounded;
- static const bool is_modulo = __glibcpp_float_is_modulo;
+ static const bool is_iec559
+ = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
+ static const bool is_bounded = true;
+ static const bool is_modulo = false;
static const bool traps = __glibcpp_float_traps;
static const bool tinyness_before = __glibcpp_float_tinyness_before;
- static const float_round_style round_style = __glibcpp_float_round_style;
+ static const float_round_style round_style = round_to_nearest;
};
-#undef __glibcpp_float_min
-#undef __glibcpp_float_max
-#undef __glibcpp_float_digits
-#undef __glibcpp_float_digits10
-#undef __glibcpp_float_radix
-#undef __glibcpp_float_round_error
-#undef __glibcpp_float_min_exponent
-#undef __glibcpp_float_min_exponent10
-#undef __glibcpp_float_max_exponent
-#undef __glibcpp_float_max_exponent10
-#undef __glibcpp_float_has_infinity
-#undef __glibcpp_float_has_quiet_NaN
-#undef __glibcpp_float_has_signaling_NaN
-#undef __glibcpp_float_has_denorm
#undef __glibcpp_float_has_denorm_loss
-#undef __glibcpp_float_infinity
-#undef __glibcpp_float_quiet_NaN
-#undef __glibcpp_float_signaling_NaN
-#undef __glibcpp_float_denorm_min
-#undef __glibcpp_float_is_iec559
-#undef __glibcpp_float_is_bounded
-#undef __glibcpp_float_is_modulo
#undef __glibcpp_float_traps
#undef __glibcpp_float_tinyness_before
-#undef __glibcpp_float_round_style
template<>
struct numeric_limits<double>
@@ -1768,159 +931,123 @@ namespace std
static const bool is_specialized = true;
static double min() throw()
- { return __glibcpp_double_min; }
+ { return __DBL_MIN__; }
static double max() throw()
- { return __glibcpp_double_max; }
+ { return __DBL_MAX__; }
- static const int digits = __glibcpp_double_digits;
- static const int digits10 = __glibcpp_double_digits10;
+ static const int digits = __DBL_MANT_DIG__;
+ static const int digits10 = __DBL_DIG__;
static const bool is_signed = true;
static const bool is_integer = false;
static const bool is_exact = false;
- static const int radix = __glibcpp_double_radix;
+ static const int radix = __FLT_RADIX__;
static double epsilon() throw()
- { return __glibcpp_double_epsilon; }
+ { return __DBL_EPSILON__; }
static double round_error() throw()
- { return __glibcpp_double_round_error; }
-
- static const int min_exponent = __glibcpp_double_min_exponent;
- static const int min_exponent10 = __glibcpp_double_min_exponent10;
- static const int max_exponent = __glibcpp_double_max_exponent;
- static const int max_exponent10 = __glibcpp_double_max_exponent10;
-
- static const bool has_infinity = __glibcpp_double_has_infinity;
- static const bool has_quiet_NaN = __glibcpp_double_has_quiet_NaN;
- static const bool has_signaling_NaN = __glibcpp_double_has_signaling_NaN;
- static const float_denorm_style has_denorm =
- __glibcpp_double_has_denorm;
+ { return 0.5; }
+
+ static const int min_exponent = __DBL_MIN_EXP__;
+ static const int min_exponent10 = __DBL_MIN_10_EXP__;
+ static const int max_exponent = __DBL_MAX_EXP__;
+ static const int max_exponent10 = __DBL_MAX_10_EXP__;
+
+ static const bool has_infinity
+ = __builtin_huge_val () / 2 == __builtin_huge_val ();
+ static const bool has_quiet_NaN
+ = __builtin_nan ("") != __builtin_nan ("");
+ static const bool has_signaling_NaN = has_quiet_NaN;
+ static const float_denorm_style has_denorm
+ = __DBL_DENORM_MIN__ ? denorm_present : denorm_absent;
static const bool has_denorm_loss = __glibcpp_double_has_denorm_loss;
static double infinity() throw()
- { return __glibcpp_double_infinity; }
+ { return __builtin_huge_val(); }
static double quiet_NaN() throw()
- { return __glibcpp_double_quiet_NaN; }
+ { return __builtin_nan (""); }
static double signaling_NaN() throw()
- { return __glibcpp_double_signaling_NaN; }
+ { return __builtin_nans (""); }
static double denorm_min() throw()
- { return __glibcpp_double_denorm_min; }
+ { return __DBL_DENORM_MIN__; }
- static const bool is_iec559 = __glibcpp_double_is_iec559;
- static const bool is_bounded = __glibcpp_double_is_bounded;
- static const bool is_modulo = __glibcpp_double_is_modulo;
+ static const bool is_iec559
+ = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
+ static const bool is_bounded = true;
+ static const bool is_modulo = false;
static const bool traps = __glibcpp_double_traps;
static const bool tinyness_before = __glibcpp_double_tinyness_before;
- static const float_round_style round_style =
- __glibcpp_double_round_style;
+ static const float_round_style round_style = round_to_nearest;
};
-#undef __glibcpp_double_min
-#undef __glibcpp_double_max
-#undef __glibcpp_double_digits
-#undef __glibcpp_double_digits10
-#undef __glibcpp_double_radix
-#undef __glibcpp_double_round_error
-#undef __glibcpp_double_min_exponent
-#undef __glibcpp_double_min_exponent10
-#undef __glibcpp_double_max_exponent
-#undef __glibcpp_double_max_exponent10
-#undef __glibcpp_double_has_infinity
-#undef __glibcpp_double_has_quiet_NaN
-#undef __glibcpp_double_has_signaling_NaN
-#undef __glibcpp_double_has_denorm
#undef __glibcpp_double_has_denorm_loss
-#undef __glibcpp_double_infinity
-#undef __glibcpp_double_quiet_NaN
-#undef __glibcpp_double_signaling_NaN
-#undef __glibcpp_double_denorm_min
-#undef __glibcpp_double_is_iec559
-#undef __glibcpp_double_is_bounded
-#undef __glibcpp_double_is_modulo
#undef __glibcpp_double_traps
#undef __glibcpp_double_tinyness_before
-#undef __glibcpp_double_round_style
-
-
+
template<>
struct numeric_limits<long double>
{
static const bool is_specialized = true;
static long double min() throw()
- { return __glibcpp_long_double_min; }
+ { return __LDBL_MIN__; }
static long double max() throw()
- { return __glibcpp_long_double_max; }
+ { return __LDBL_MAX__; }
- static const int digits = __glibcpp_long_double_digits;
- static const int digits10 = __glibcpp_long_double_digits10;
+ static const int digits = __LDBL_MANT_DIG__;
+ static const int digits10 = __LDBL_DIG__;
static const bool is_signed = true;
static const bool is_integer = false;
static const bool is_exact = false;
- static const int radix = __glibcpp_long_double_radix;
+ static const int radix = __FLT_RADIX__;
static long double epsilon() throw()
- { return __glibcpp_long_double_epsilon; }
+ { return __LDBL_EPSILON__; }
static long double round_error() throw()
- { return __glibcpp_long_double_round_error; }
-
- static const int min_exponent = __glibcpp_long_double_min_exponent;
- static const int min_exponent10 = __glibcpp_long_double_min_exponent10;
- static const int max_exponent = __glibcpp_long_double_max_exponent;
- static const int max_exponent10 = __glibcpp_long_double_max_exponent10;
-
- static const bool has_infinity = __glibcpp_long_double_has_infinity;
- static const bool has_quiet_NaN = __glibcpp_long_double_has_quiet_NaN;
- static const bool has_signaling_NaN =
- __glibcpp_long_double_has_signaling_NaN;
- static const float_denorm_style has_denorm =
- __glibcpp_long_double_has_denorm;
- static const bool has_denorm_loss =
- __glibcpp_long_double_has_denorm_loss;
+ { return 0.5L; }
+
+ static const int min_exponent = __LDBL_MIN_EXP__;
+ static const int min_exponent10 = __LDBL_MIN_10_EXP__;
+ static const int max_exponent = __LDBL_MAX_EXP__;
+ static const int max_exponent10 = __LDBL_MAX_10_EXP__;
+
+ static const bool has_infinity
+ = __builtin_huge_vall () / 2 == __builtin_huge_vall ();
+ static const bool has_quiet_NaN
+ = __builtin_nanl ("") != __builtin_nanl ("");
+ static const bool has_signaling_NaN = has_quiet_NaN;
+ static const float_denorm_style has_denorm
+ = __LDBL_DENORM_MIN__ ? denorm_present : denorm_absent;
+ static const bool has_denorm_loss
+ = __glibcpp_long_double_has_denorm_loss;
static long double infinity() throw()
- { return __glibcpp_long_double_infinity; }
+ { return __builtin_huge_vall (); }
static long double quiet_NaN() throw()
- { return __glibcpp_long_double_quiet_NaN; }
+ { return __builtin_nanl (""); }
static long double signaling_NaN() throw()
- { return __glibcpp_long_double_signaling_NaN; }
+ { return __builtin_nansl (""); }
static long double denorm_min() throw()
- { return __glibcpp_long_double_denorm_min; }
+ { return __LDBL_DENORM_MIN__; }
- static const bool is_iec559 = __glibcpp_long_double_is_iec559;
- static const bool is_bounded = __glibcpp_long_double_is_bounded;
- static const bool is_modulo = __glibcpp_long_double_is_modulo;
+ static const bool is_iec559
+ = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
+ static const bool is_bounded = true;
+ static const bool is_modulo = false;
- static const bool traps = __glibcpp_long_double_traps;
+ static const bool traps = __glibcpp_long_double_traps;
static const bool tinyness_before = __glibcpp_long_double_tinyness_before;
- static const float_round_style round_style =
- __glibcpp_long_double_round_style;
+ static const float_round_style round_style = round_to_nearest;
};
-#undef __glibcpp_long_double_min
-#undef __glibcpp_long_double_max
-#undef __glibcpp_long_double_digits
-#undef __glibcpp_long_double_digits10
-#undef __glibcpp_long_double_radix
-#undef __glibcpp_long_double_round_error
-#undef __glibcpp_long_double_min_exponent
-#undef __glibcpp_long_double_min_exponent10
-#undef __glibcpp_long_double_max_exponent
-#undef __glibcpp_long_double_max_exponent10
-#undef __glibcpp_long_double_has_infinity
-#undef __glibcpp_long_double_has_quiet_NaN
-#undef __glibcpp_long_double_has_signaling_NaN
-#undef __glibcpp_long_double_has_denorm
#undef __glibcpp_long_double_has_denorm_loss
-#undef __glibcpp_long_double_infinity
-#undef __glibcpp_long_double_quiet_NaN
-#undef __glibcpp_long_double_signaling_NaN
-#undef __glibcpp_long_double_denorm_min
-#undef __glibcpp_long_double_is_iec559
-#undef __glibcpp_long_double_is_bounded
-#undef __glibcpp_long_double_is_modulo
#undef __glibcpp_long_double_traps
#undef __glibcpp_long_double_tinyness_before
-#undef __glibcpp_long_double_round_style
-
+
} // namespace std
+#undef __glibcpp_signed
+#undef __glibcpp_min
+#undef __glibcpp_max
+#undef __glibcpp_digits
+#undef __glibcpp_digits10
+
#endif // _CPP_NUMERIC_LIMITS
diff --git a/contrib/libstdc++/include/std/std_list.h b/contrib/libstdc++/include/std/std_list.h
index f32553b..84523ad 100644
--- a/contrib/libstdc++/include/std/std_list.h
+++ b/contrib/libstdc++/include/std/std_list.h
@@ -70,8 +70,9 @@
#include <bits/stl_uninitialized.h>
#include <bits/stl_list.h>
+#ifdef _GLIBCPP_NO_TEMPLATE_EXPORT
+# include <bits/list.tcc>
+#endif
+
#endif /* _CPP_LIST */
-// Local Variables:
-// mode:C++
-// End:
diff --git a/contrib/libstdc++/include/std/std_locale.h b/contrib/libstdc++/include/std/std_locale.h
index 9c46b96..2960256 100644
--- a/contrib/libstdc++/include/std/std_locale.h
+++ b/contrib/libstdc++/include/std/std_locale.h
@@ -1,6 +1,6 @@
// Locale support -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -42,11 +42,8 @@
#pragma GCC system_header
#include <bits/localefwd.h>
+#include <bits/locale_classes.h>
#include <bits/locale_facets.h>
#include <bits/locale_facets.tcc>
#endif
-
-// Local Variables:
-// mode:c++
-// End:
diff --git a/contrib/libstdc++/include/std/std_memory.h b/contrib/libstdc++/include/std/std_memory.h
index 5850eb2..47c3ede 100644
--- a/contrib/libstdc++/include/std/std_memory.h
+++ b/contrib/libstdc++/include/std/std_memory.h
@@ -58,314 +58,301 @@
#include <bits/stl_uninitialized.h>
#include <bits/stl_raw_storage_iter.h>
-// Since this entire file is within namespace std, there's no reason to
-// waste two spaces along the left column. Thus the leading indentation is
-// slightly violated from here on.
namespace std
{
-/**
- * @if maint
- * This is a helper function. The unused second parameter exists to
- * permit the real get_temporary_buffer to use template parameter deduction.
- *
- * XXX This should perhaps use the pool.
- * @endif
-*/
-template <typename _Tp>
-pair<_Tp*, ptrdiff_t>
-__get_temporary_buffer(ptrdiff_t __len, _Tp*)
-{
- if (__len > ptrdiff_t(INT_MAX / sizeof(_Tp)))
- __len = INT_MAX / sizeof(_Tp);
-
- while (__len > 0) {
- _Tp* __tmp = (_Tp*) std::malloc((std::size_t)__len * sizeof(_Tp));
- if (__tmp != 0)
- return pair<_Tp*, ptrdiff_t>(__tmp, __len);
- __len /= 2;
- }
-
- return pair<_Tp*, ptrdiff_t>((_Tp*)0, 0);
-}
-
-/**
- * @brief This is a mostly-useless wrapper around malloc().
- * @param len The number of objects of type Tp.
- * @return See full description.
- *
- * Reinventing the wheel, but this time with prettier spokes!
- *
- * This function tries to obtain storage for @c len adjacent Tp objects.
- * The objects themselves are not constructed, of course. A pair<> is
- * returned containing "the buffer s address and capacity (in the units of
- * sizeof(Tp)), or a pair of 0 values if no storage can be obtained."
- * Note that the capacity obtained may be less than that requested if the
- * memory is unavailable; you should compare len with the .second return
- * value.
-*/
-template<typename _Tp>
- inline pair<_Tp*,ptrdiff_t>
- get_temporary_buffer(ptrdiff_t __len)
- {
- return __get_temporary_buffer(__len, (_Tp*) 0);
- }
-
-/**
- * @brief The companion to get_temporary_buffer().
- * @param p A buffer previously allocated by get_temporary_buffer.
- * @return None.
- *
- * Frees the memory pointed to by p.
- */
-template<typename _Tp>
- void
- return_temporary_buffer(_Tp* __p)
- {
- std::free(__p);
- }
-
-
-/**
- * A wrapper class to provide auto_ptr with reference semantics. For
- * example, an auto_ptr can be assigned (or constructed from) the result of
- * a function which returns an auto_ptr by value.
- *
- * All the auto_ptr_ref stuff should happen behind the scenes.
-*/
-template<typename _Tp1>
- struct auto_ptr_ref
-{
- _Tp1* _M_ptr;
-
- explicit
- auto_ptr_ref(_Tp1* __p)
- : _M_ptr(__p) {}
-};
-
-
-/**
- * @brief A simple smart pointer providing strict ownership semantics.
- *
- * The Standard says:
- * <pre>
- * An @c auto_ptr owns the object it holds a pointer to. Copying an
- * @c auto_ptr copies the pointer and transfers ownership to the destination.
- * If more than one @c auto_ptr owns the same object at the same time the
- * behavior of the program is undefined.
- *
- * The uses of @c auto_ptr include providing temporary exception-safety for
- * dynamically allocated memory, passing ownership of dynamically allocated
- * memory to a function, and returning dynamically allocated memory from a
- * function. @c auto_ptr does not meet the CopyConstructible and Assignable
- * requirements for Standard Library <a href="tables.html#65">container</a>
- * elements and thus instantiating a Standard Library container with an
- * @c auto_ptr results in undefined behavior.
- * </pre>
- * Quoted from [20.4.5]/3.
- *
- * Good examples of what can and cannot be done with auto_ptr can be found
- * in the libstdc++ testsuite.
- *
- * @if maint
- * _GLIBCPP_RESOLVE_LIB_DEFECTS
- * 127. auto_ptr<> conversion issues
- * These resolutions have all been incorporated.
- * @endif
-*/
-template<typename _Tp>
- class auto_ptr
-{
-private:
- _Tp* _M_ptr;
-
-public:
- /// The pointed-to type.
- typedef _Tp element_type;
-
/**
- * @brief An %auto_ptr is usually constructed from a raw pointer.
- * @param p A pointer (defaults to NULL).
- *
- * This object now @e owns the object pointed to by @a p.
- */
- explicit
- auto_ptr(element_type* __p = 0) throw()
- : _M_ptr(__p) { }
-
- /**
- * @brief An %auto_ptr can be constructed from another %auto_ptr.
- * @param a Another %auto_ptr of the same type.
- *
- * This object now @e owns the object previously owned by @a a, which has
- * given up ownsership.
- */
- auto_ptr(auto_ptr& __a) throw()
- : _M_ptr(__a.release()) { }
-
- /**
- * @brief An %auto_ptr can be constructed from another %auto_ptr.
- * @param a Another %auto_ptr of a different but related type.
- *
- * A pointer-to-Tp1 must be convertible to a pointer-to-Tp/element_type.
- *
- * This object now @e owns the object previously owned by @a a, which has
- * given up ownsership.
- */
- template<typename _Tp1>
- auto_ptr(auto_ptr<_Tp1>& __a) throw()
- : _M_ptr(__a.release()) { }
-
- /**
- * @brief %auto_ptr assignment operator.
- * @param a Another %auto_ptr of the same type.
+ * @if maint
+ * This is a helper function. The unused second parameter exists to
+ * permit the real get_temporary_buffer to use template parameter deduction.
*
- * This object now @e owns the object previously owned by @a a, which has
- * given up ownsership. The object that this one @e used to own and
- * track has been deleted.
- */
- auto_ptr&
- operator=(auto_ptr& __a) throw()
+ * XXX This should perhaps use the pool.
+ * @endif
+ */
+ template<typename _Tp>
+ pair<_Tp*, ptrdiff_t>
+ __get_temporary_buffer(ptrdiff_t __len, _Tp*)
{
- reset(__a.release());
- return *this;
+ if (__len > ptrdiff_t(INT_MAX / sizeof(_Tp)))
+ __len = INT_MAX / sizeof(_Tp);
+
+ while (__len > 0)
+ {
+ _Tp* __tmp = (_Tp*) std::malloc((std::size_t)__len * sizeof(_Tp));
+ if (__tmp != 0)
+ return pair<_Tp*, ptrdiff_t>(__tmp, __len);
+ __len /= 2;
+ }
+ return pair<_Tp*, ptrdiff_t>((_Tp*)0, 0);
}
/**
- * @brief %auto_ptr assignment operator.
- * @param a Another %auto_ptr of a different but related type.
+ * @brief This is a mostly-useless wrapper around malloc().
+ * @param len The number of objects of type Tp.
+ * @return See full description.
*
- * A pointer-to-Tp1 must be convertible to a pointer-to-Tp/element_type.
+ * Reinventing the wheel, but this time with prettier spokes!
*
- * This object now @e owns the object previously owned by @a a, which has
- * given up ownsership. The object that this one @e used to own and
- * track has been deleted.
- */
- template <typename _Tp1>
- auto_ptr&
- operator=(auto_ptr<_Tp1>& __a) throw()
- {
- reset(__a.release());
- return *this;
- }
+ * This function tries to obtain storage for @c len adjacent Tp objects.
+ * The objects themselves are not constructed, of course. A pair<> is
+ * returned containing "the buffer s address and capacity (in the units of
+ * sizeof(Tp)), or a pair of 0 values if no storage can be obtained."
+ * Note that the capacity obtained may be less than that requested if the
+ * memory is unavailable; you should compare len with the .second return
+ * value.
+ */
+ template<typename _Tp>
+ inline pair<_Tp*,ptrdiff_t>
+ get_temporary_buffer(ptrdiff_t __len)
+ { return __get_temporary_buffer(__len, (_Tp*) 0); }
/**
- * When the %auto_ptr goes out of scope, the object it owns is deleted.
- * If it no longer owns anything (i.e., @c get() is @c NULL), then this
- * has no effect.
+ * @brief The companion to get_temporary_buffer().
+ * @param p A buffer previously allocated by get_temporary_buffer.
+ * @return None.
*
- * @if maint
- * The C++ standard says there is supposed to be an empty throw
- * specification here, but omitting it is standard conforming. Its
- * presence can be detected only if _Tp::~_Tp() throws, but this is
- * prohibited. [17.4.3.6]/2
- * @end maint
- */
- ~auto_ptr() { delete _M_ptr; }
+ * Frees the memory pointed to by p.
+ */
+ template<typename _Tp>
+ void
+ return_temporary_buffer(_Tp* __p)
+ { std::free(__p); }
/**
- * @brief Smart pointer dereferencing.
+ * A wrapper class to provide auto_ptr with reference semantics. For
+ * example, an auto_ptr can be assigned (or constructed from) the result of
+ * a function which returns an auto_ptr by value.
*
- * If this %auto_ptr no longer owns anything, then this operation will
- * crash. (For a smart pointer, "no longer owns anything" is the same as
- * being a null pointer, and you know what happens when you dereference
- * one of those...)
- */
- element_type&
- operator*() const throw() { return *_M_ptr; }
+ * All the auto_ptr_ref stuff should happen behind the scenes.
+ */
+ template<typename _Tp1>
+ struct auto_ptr_ref
+ {
+ _Tp1* _M_ptr;
+
+ explicit
+ auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { }
+ };
- /**
- * @brief Smart pointer dereferencing.
- *
- * This returns the pointer itself, which the language then will
- * automatically cause to be dereferenced.
- */
- element_type*
- operator->() const throw() { return _M_ptr; }
/**
- * @brief Bypassing the smart pointer.
- * @return The raw pointer being managed.
+ * @brief A simple smart pointer providing strict ownership semantics.
*
- * You can get a copy of the pointer that this object owns, for
- * situations such as passing to a function which only accepts a raw
- * pointer.
+ * The Standard says:
+ * <pre>
+ * An @c auto_ptr owns the object it holds a pointer to. Copying an
+ * @c auto_ptr copies the pointer and transfers ownership to the destination.
+ * If more than one @c auto_ptr owns the same object at the same time the
+ * behavior of the program is undefined.
*
- * @note This %auto_ptr still owns the memory.
- */
- element_type*
- get() const throw() { return _M_ptr; }
-
- /**
- * @brief Bypassing the smart pointer.
- * @return The raw pointer being managed.
+ * The uses of @c auto_ptr include providing temporary exception-safety for
+ * dynamically allocated memory, passing ownership of dynamically allocated
+ * memory to a function, and returning dynamically allocated memory from a
+ * function. @c auto_ptr does not meet the CopyConstructible and Assignable
+ * requirements for Standard Library <a href="tables.html#65">container</a>
+ * elements and thus instantiating a Standard Library container with an
+ * @c auto_ptr results in undefined behavior.
+ * </pre>
+ * Quoted from [20.4.5]/3.
*
- * You can get a copy of the pointer that this object owns, for
- * situations such as passing to a function which only accepts a raw
- * pointer.
+ * Good examples of what can and cannot be done with auto_ptr can be found
+ * in the libstdc++ testsuite.
*
- * @note This %auto_ptr no longer owns the memory. When this object
- * goes out of scope, nothing will happen.
- */
- element_type*
- release() throw()
- {
- element_type* __tmp = _M_ptr;
- _M_ptr = 0;
- return __tmp;
- }
-
- /**
- * @brief Forcibly deletes the managed object.
- * @param p A pointer (defaults to NULL).
- *
- * This object now @e owns the object pointed to by @a p. The previous
- * object has been deleted.
- */
- void
- reset(element_type* __p = 0) throw()
- {
- if (__p != _M_ptr)
- {
- delete _M_ptr;
- _M_ptr = __p;
- }
- }
-
- /** @{
- * @brief Automatic conversions
- *
- * These operations convert an %auto_ptr into and from an auto_ptr_ref
- * automatically as needed. This allows constructs such as
- * @code
- * auto_ptr<Derived> func_returning_auto_ptr(.....);
- * ...
- * auto_ptr<Base> ptr = func_returning_auto_ptr(.....);
- * @endcode
- */
- auto_ptr(auto_ptr_ref<element_type> __ref) throw()
- : _M_ptr(__ref._M_ptr) {}
-
- auto_ptr&
- operator=(auto_ptr_ref<element_type> __ref) throw()
+ * @if maint
+ * _GLIBCPP_RESOLVE_LIB_DEFECTS
+ * 127. auto_ptr<> conversion issues
+ * These resolutions have all been incorporated.
+ * @endif
+ */
+ template<typename _Tp>
+ class auto_ptr
{
- if (__ref._M_ptr != this->get())
+ private:
+ _Tp* _M_ptr;
+
+ public:
+ /// The pointed-to type.
+ typedef _Tp element_type;
+
+ /**
+ * @brief An %auto_ptr is usually constructed from a raw pointer.
+ * @param p A pointer (defaults to NULL).
+ *
+ * This object now @e owns the object pointed to by @a p.
+ */
+ explicit
+ auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { }
+
+ /**
+ * @brief An %auto_ptr can be constructed from another %auto_ptr.
+ * @param a Another %auto_ptr of the same type.
+ *
+ * This object now @e owns the object previously owned by @a a,
+ * which has given up ownsership.
+ */
+ auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { }
+
+ /**
+ * @brief An %auto_ptr can be constructed from another %auto_ptr.
+ * @param a Another %auto_ptr of a different but related type.
+ *
+ * A pointer-to-Tp1 must be convertible to a pointer-to-Tp/element_type.
+ *
+ * This object now @e owns the object previously owned by @a a,
+ * which has given up ownsership.
+ */
+ template<typename _Tp1>
+ auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { }
+
+ /**
+ * @brief %auto_ptr assignment operator.
+ * @param a Another %auto_ptr of the same type.
+ *
+ * This object now @e owns the object previously owned by @a a,
+ * which has given up ownsership. The object that this one @e
+ * used to own and track has been deleted.
+ */
+ auto_ptr&
+ operator=(auto_ptr& __a) throw()
+ {
+ reset(__a.release());
+ return *this;
+ }
+
+ /**
+ * @brief %auto_ptr assignment operator.
+ * @param a Another %auto_ptr of a different but related type.
+ *
+ * A pointer-to-Tp1 must be convertible to a pointer-to-Tp/element_type.
+ *
+ * This object now @e owns the object previously owned by @a a,
+ * which has given up ownsership. The object that this one @e
+ * used to own and track has been deleted.
+ */
+ template<typename _Tp1>
+ auto_ptr&
+ operator=(auto_ptr<_Tp1>& __a) throw()
{
- delete _M_ptr;
- _M_ptr = __ref._M_ptr;
- }
- return *this;
- }
-
- template<typename _Tp1>
- operator auto_ptr_ref<_Tp1>() throw()
- { return auto_ptr_ref<_Tp1>(this->release()); }
-
- template<typename _Tp1>
- operator auto_ptr<_Tp1>() throw()
- { return auto_ptr<_Tp1>(this->release()); }
- /** @} */
-};
-
+ reset(__a.release());
+ return *this;
+ }
+
+ /**
+ * When the %auto_ptr goes out of scope, the object it owns is deleted.
+ * If it no longer owns anything (i.e., @c get() is @c NULL), then this
+ * has no effect.
+ *
+ * @if maint
+ * The C++ standard says there is supposed to be an empty throw
+ * specification here, but omitting it is standard conforming. Its
+ * presence can be detected only if _Tp::~_Tp() throws, but this is
+ * prohibited. [17.4.3.6]/2
+ * @end maint
+ */
+ ~auto_ptr() { delete _M_ptr; }
+
+ /**
+ * @brief Smart pointer dereferencing.
+ *
+ * If this %auto_ptr no longer owns anything, then this
+ * operation will crash. (For a smart pointer, "no longer owns
+ * anything" is the same as being a null pointer, and you know
+ * what happens when you dereference one of those...)
+ */
+ element_type&
+ operator*() const throw() { return *_M_ptr; }
+
+ /**
+ * @brief Smart pointer dereferencing.
+ *
+ * This returns the pointer itself, which the language then will
+ * automatically cause to be dereferenced.
+ */
+ element_type*
+ operator->() const throw() { return _M_ptr; }
+
+ /**
+ * @brief Bypassing the smart pointer.
+ * @return The raw pointer being managed.
+ *
+ * You can get a copy of the pointer that this object owns, for
+ * situations such as passing to a function which only accepts a raw
+ * pointer.
+ *
+ * @note This %auto_ptr still owns the memory.
+ */
+ element_type*
+ get() const throw() { return _M_ptr; }
+
+ /**
+ * @brief Bypassing the smart pointer.
+ * @return The raw pointer being managed.
+ *
+ * You can get a copy of the pointer that this object owns, for
+ * situations such as passing to a function which only accepts a raw
+ * pointer.
+ *
+ * @note This %auto_ptr no longer owns the memory. When this object
+ * goes out of scope, nothing will happen.
+ */
+ element_type*
+ release() throw()
+ {
+ element_type* __tmp = _M_ptr;
+ _M_ptr = 0;
+ return __tmp;
+ }
+
+ /**
+ * @brief Forcibly deletes the managed object.
+ * @param p A pointer (defaults to NULL).
+ *
+ * This object now @e owns the object pointed to by @a p. The previous
+ * object has been deleted.
+ */
+ void
+ reset(element_type* __p = 0) throw()
+ {
+ if (__p != _M_ptr)
+ {
+ delete _M_ptr;
+ _M_ptr = __p;
+ }
+ }
+
+ /** @{
+ * @brief Automatic conversions
+ *
+ * These operations convert an %auto_ptr into and from an auto_ptr_ref
+ * automatically as needed. This allows constructs such as
+ * @code
+ * auto_ptr<Derived> func_returning_auto_ptr(.....);
+ * ...
+ * auto_ptr<Base> ptr = func_returning_auto_ptr(.....);
+ * @endcode
+ */
+ auto_ptr(auto_ptr_ref<element_type> __ref) throw()
+ : _M_ptr(__ref._M_ptr) { }
+
+ auto_ptr&
+ operator=(auto_ptr_ref<element_type> __ref) throw()
+ {
+ if (__ref._M_ptr != this->get())
+ {
+ delete _M_ptr;
+ _M_ptr = __ref._M_ptr;
+ }
+ return *this;
+ }
+
+ template<typename _Tp1>
+ operator auto_ptr_ref<_Tp1>() throw()
+ { return auto_ptr_ref<_Tp1>(this->release()); }
+
+ template<typename _Tp1>
+ operator auto_ptr<_Tp1>() throw()
+ { return auto_ptr<_Tp1>(this->release()); }
+ /** @} */
+ };
} // namespace std
-#endif /* _CPP_MEMORY */
+#endif
diff --git a/contrib/libstdc++/include/std/std_ostream.h b/contrib/libstdc++/include/std/std_ostream.h
index eff4bb5..82f8a28 100644
--- a/contrib/libstdc++/include/std/std_ostream.h
+++ b/contrib/libstdc++/include/std/std_ostream.h
@@ -46,7 +46,14 @@
namespace std
{
- // 27.6.2.1 Template class basic_ostream
+ // [27.6.2.1] Template class basic_ostream
+ /**
+ * @brief Controlling output.
+ *
+ * This is the base class for all output streams. It provides text
+ * formatting of all builtin types, and communicates with any class
+ * derived from basic_streambuf to do the actual output.
+ */
template<typename _CharT, typename _Traits>
class basic_ostream : virtual public basic_ios<_CharT, _Traits>
{
@@ -66,20 +73,60 @@ namespace std
typedef num_put<_CharT, __ostreambuf_iter> __numput_type;
typedef ctype<_CharT> __ctype_type;
- // 27.6.2.2 Constructor/destructor:
+ template<typename _CharT2, typename _Traits2>
+ friend basic_ostream<_CharT2, _Traits2>&
+ operator<<(basic_ostream<_CharT2, _Traits2>&, _CharT2);
+
+ template<typename _Traits2>
+ friend basic_ostream<char, _Traits2>&
+ operator<<(basic_ostream<char, _Traits2>&, char);
+
+ template<typename _CharT2, typename _Traits2>
+ friend basic_ostream<_CharT2, _Traits2>&
+ operator<<(basic_ostream<_CharT2, _Traits2>&, const _CharT2*);
+
+ template<typename _Traits2>
+ friend basic_ostream<char, _Traits2>&
+ operator<<(basic_ostream<char, _Traits2>&, const char*);
+
+ template<typename _CharT2, typename _Traits2>
+ friend basic_ostream<_CharT2, _Traits2>&
+ operator<<(basic_ostream<_CharT2, _Traits2>&, const char*);
+
+ // [27.6.2.2] constructor/destructor
+ /**
+ * @brief Base constructor.
+ *
+ * This ctor is almost never called by the user directly, rather from
+ * derived classes' initialization lists, which pass a pointer to
+ * their own stream buffer.
+ */
explicit
basic_ostream(__streambuf_type* __sb)
{ this->init(__sb); }
+ /**
+ * @brief Base destructor.
+ *
+ * This does very little apart from providing a virtual base dtor.
+ */
virtual
~basic_ostream() { }
- // 27.6.2.3 Prefix/suffix:
+ // [27.6.2.3] prefix/suffix
class sentry;
friend class sentry;
- // 27.6.2.5 Formatted output:
- // 27.6.2.5.3 basic_ostream::operator<<
+ // [27.6.2.5] formatted output
+ // [27.6.2.5.3] basic_ostream::operator<<
+ //@{
+ /**
+ * @brief Interface for manipulators.
+ *
+ * Manuipulators such as @c std::endl and @c std::hex use these
+ * functions in constructs like "std::cout << std::endl". For more
+ * information, see the iomanip header.
+ */
__ostream_type&
operator<<(__ostream_type& (*__pf)(__ostream_type&));
@@ -88,8 +135,35 @@ namespace std
__ostream_type&
operator<<(ios_base& (*__pf) (ios_base&));
-
- // 27.6.2.5.2 Arithmetic Inserters
+ //@}
+
+ // [27.6.2.5.2] arithmetic inserters
+ /**
+ * @name Arithmetic Inserters
+ *
+ * All the @c operator<< functions (aka <em>formatted output
+ * functions</em>) have some common behavior. Each starts by
+ * constructing a temporary object of type std::basic_ostream::sentry.
+ * This can have several effects, concluding with the setting of a
+ * status flag; see the sentry documentation for more.
+ *
+ * If the sentry status is good, the function tries to generate
+ * whatever data is appropriate for the type of the argument.
+ *
+ * If an exception is thrown during insertion, ios_base::badbit
+ * will be turned on in the stream's error state without causing an
+ * ios_base::failure to be thrown. The original exception will then
+ * be rethrown.
+ */
+ //@{
+ /**
+ * @brief Basic arithmetic inserters
+ * @param A variable of builtin type.
+ * @return @c *this if successful
+ *
+ * These functions use the stream's current locale (specifically, the
+ * @c num_get facet) to perform numeric formatting.
+ */
__ostream_type&
operator<<(long __n);
@@ -150,31 +224,140 @@ namespace std
__ostream_type&
operator<<(const void* __p);
+ /**
+ * @brief Extracting from another streambuf.
+ * @param sb A pointer to a streambuf
+ *
+ * This function behaves like one of the basic arithmetic extractors,
+ * in that it also constructs a sentry onject and has the same error
+ * handling behavior.
+ *
+ * If @a sb is NULL, the stream will set failbit in its error state.
+ *
+ * Characters are extracted from @a sb and inserted into @c *this
+ * until one of the following occurs:
+ *
+ * - the input stream reaches end-of-file,
+ * - insertion into the output sequence fails (in this case, the
+ * character that would have been inserted is not extracted), or
+ * - an exception occurs while getting a character from @a sb, which
+ * sets failbit in the error state
+ *
+ * If the function inserts no characters, failbit is set.
+ */
__ostream_type&
operator<<(__streambuf_type* __sb);
-
- // Unformatted output:
+ //@}
+
+ // [27.6.2.6] unformatted output functions
+ /**
+ * @name Unformatted Output Functions
+ *
+ * All the unformatted output functions have some common behavior.
+ * Each starts by constructing a temporary object of type
+ * std::basic_ostream::sentry. This has several effects, concluding
+ * with the setting of a status flag; see the sentry documentation
+ * for more.
+ *
+ * If the sentry status is good, the function tries to generate
+ * whatever data is appropriate for the type of the argument.
+ *
+ * If an exception is thrown during insertion, ios_base::badbit
+ * will be turned on in the stream's error state. If badbit is on in
+ * the stream's exceptions mask, the exception will be rethrown
+ * without completing its actions.
+ */
+ //@{
+ /**
+ * @brief Simple insertion.
+ * @param c The character to insert.
+ * @return *this
+ *
+ * Tries to insert @a c.
+ *
+ * @note This function is not overloaded on signed char and
+ * unsigned char.
+ */
__ostream_type&
put(char_type __c);
+ /**
+ * @brief Character string insertion.
+ * @param s The array to insert.
+ * @param n Maximum number of characters to insert.
+ * @return *this
+ *
+ * Characters are copied from @a s and inserted into the stream until
+ * one of the following happens:
+ *
+ * - @a n characters are inserted
+ * - inserting into the output sequence fails (in this case, badbit
+ * will be set in the stream's error state)
+ *
+ * @note This function is not overloaded on signed char and
+ * unsigned char.
+ */
__ostream_type&
write(const char_type* __s, streamsize __n);
-
+ //@}
+
+ /**
+ * @brief Synchronizing the stream buffer.
+ * @return *this
+ *
+ * If @c rdbuf() is a null pointer, changes nothing.
+ *
+ * Otherwise, calls @c rdbuf()->pubsync(), and if that returns -1,
+ * sets badbit.
+ */
__ostream_type&
flush();
- // Seeks:
+ // [27.6.2.4] seek members
+ /**
+ * @brief Getting the current write position.
+ * @return A file position object.
+ *
+ * If @c fail() is not false, returns @c pos_type(-1) to indicate
+ * failure. Otherwise returns @c rdbuf()->pubseekoff(0,cur,out).
+ */
pos_type
tellp();
+ /**
+ * @brief Changing the current write position.
+ * @param pos A file position object.
+ * @return *this
+ *
+ * If @c fail() is not true, calls @c rdbuf()->pubseekpos(pos). If
+ * that function fails, sets failbit.
+ */
__ostream_type&
seekp(pos_type);
- __ostream_type&
+ /**
+ * @brief Changing the current write position.
+ * @param off A file offset object.
+ * @param dir The direction in which to seek.
+ * @return *this
+ *
+ * If @c fail() is not true, calls @c rdbuf()->pubseekoff(off,dir).
+ * If that function fails, sets failbit.
+ */
+ __ostream_type&
seekp(off_type, ios_base::seekdir);
};
- // 27.6.2.3 Class basic_ostream::sentry
+ /**
+ * @brief Performs setup work for output streams.
+ *
+ * Objects of this class are created before all of the standard
+ * inserters are run. It is responsible for "exception-safe prefix and
+ * suffix operations." Additional actions may be added by the
+ * implementation, and we list them in
+ * http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/howto.html#5
+ * under [27.6] notes.
+ */
template <typename _CharT, typename _Traits>
class basic_ostream<_CharT, _Traits>::sentry
{
@@ -183,9 +366,27 @@ namespace std
basic_ostream<_CharT,_Traits>& _M_os;
public:
+ /**
+ * @brief The constructor performs preparatory work.
+ * @param os The output stream to guard.
+ *
+ * If the stream state is good (@a os.good() is true), then if the
+ * stream is tied to another output stream, @c is.tie()->flush()
+ * is called to synchronize the output sequences.
+ *
+ * If the stream state is still good, then the sentry state becomes
+ * true ("okay").
+ */
explicit
sentry(basic_ostream<_CharT,_Traits>& __os);
+ /**
+ * @brief Possibly flushes the stream.
+ *
+ * If @c ios_base::unitbuf is set in @c os.flags(), and
+ * @c std::uncaught_exception() is true, the sentry destructor calls
+ * @c flush() on the output stream.
+ */
~sentry()
{
// XXX MT
@@ -197,10 +398,34 @@ namespace std
}
}
+ /**
+ * @brief Quick status checking.
+ * @return The sentry state.
+ *
+ * For ease of use, sentries may be converted to booleans. The
+ * return value is that of the sentry state (true == okay).
+ */
operator bool()
{ return _M_ok; }
};
+ // [27.6.2.5.4] character insertion templates
+ //@{
+ /**
+ * @brief Character inserters
+ * @param out An output stream.
+ * @param c A character.
+ * @return out
+ *
+ * Behaves like one of the formatted arithmetic inserters described in
+ * std::basic_ostream. After constructing a sentry object with good
+ * status, this function inserts a single character and any required
+ * padding (as determined by [22.2.2.2.2]). @c out.width(0) is then
+ * called.
+ *
+ * If @a c is of type @c char and the character type of the stream is not
+ * @c char, the character is widened before insertion.
+ */
template<typename _CharT, typename _Traits>
basic_ostream<_CharT, _Traits>&
operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c);
@@ -225,7 +450,22 @@ namespace std
basic_ostream<char, _Traits>&
operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c)
{ return (__out << static_cast<char>(__c)); }
+ //@}
+ //@{
+ /**
+ * @brief String inserters
+ * @param out An output stream.
+ * @param s A character string.
+ * @return out
+ * @pre @a s must be a non-NULL pointer
+ *
+ * Behaves like one of the formatted arithmetic inserters described in
+ * std::basic_ostream. After constructing a sentry object with good
+ * status, this function inserts @c traits::length(s) characters starting
+ * at @a s, widened if necessary, followed by any required padding (as
+ * determined by [22.2.2.2.2]). @c out.width(0) is then called.
+ */
template<typename _CharT, typename _Traits>
basic_ostream<_CharT, _Traits>&
operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s);
@@ -249,18 +489,38 @@ namespace std
basic_ostream<char, _Traits> &
operator<<(basic_ostream<char, _Traits>& __out, const unsigned char* __s)
{ return (__out << reinterpret_cast<const char*>(__s)); }
-
- // 27.6.2.7 Standard basic_ostream manipulators
+ //@}
+
+ // [27.6.2.7] standard basic_ostream manipulators
+ /**
+ * @brief Write a newline and flush the stream.
+ *
+ * This manipulator is often mistakenly used when a simple newline is
+ * desired, leading to poor buffering performance. See
+ * http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#2 for more
+ * on this subject.
+ */
template<typename _CharT, typename _Traits>
basic_ostream<_CharT, _Traits>&
endl(basic_ostream<_CharT, _Traits>& __os)
{ return flush(__os.put(__os.widen('\n'))); }
+ /**
+ * @brief Write a null character into the output sequence.
+ *
+ * "Null character" is @c CharT() by definition. For CharT of @c char,
+ * this correctly writes the ASCII @c NUL character string terminator.
+ */
template<typename _CharT, typename _Traits>
basic_ostream<_CharT, _Traits>&
ends(basic_ostream<_CharT, _Traits>& __os)
{ return __os.put(_CharT()); }
+ /**
+ * @brief Flushes the output stream.
+ *
+ * This manipulator simply calls the stream's @c flush() member function.
+ */
template<typename _CharT, typename _Traits>
basic_ostream<_CharT, _Traits>&
flush(basic_ostream<_CharT, _Traits>& __os)
diff --git a/contrib/libstdc++/include/std/std_queue.h b/contrib/libstdc++/include/std/std_queue.h
index 6be3551..60636e6 100644
--- a/contrib/libstdc++/include/std/std_queue.h
+++ b/contrib/libstdc++/include/std/std_queue.h
@@ -74,8 +74,9 @@
#include <bits/stl_function.h>
#include <bits/stl_queue.h>
-#endif /* _CPP_QUEUE */
+#ifdef _GLIBCPP_NO_TEMPLATE_EXPORT
+# include <bits/deque.tcc>
+# include <bits/vector.tcc>
+#endif
-// Local Variables:
-// mode:C++
-// End:
+#endif /* _CPP_QUEUE */
diff --git a/contrib/libstdc++/include/std/std_sstream.h b/contrib/libstdc++/include/std/std_sstream.h
index 6ee7505..0940e60 100644
--- a/contrib/libstdc++/include/std/std_sstream.h
+++ b/contrib/libstdc++/include/std/std_sstream.h
@@ -1,6 +1,6 @@
// String based streams -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -46,6 +46,18 @@
namespace std
{
+ // [27.7.1] template class basic_stringbuf
+ /**
+ * @brief The actual work of input and output (for std::string).
+ *
+ * This class associates either or both of its input and output sequences
+ * with a sequence of characters, which can be initialized from, or made
+ * available as, a @c std::basic_string. (Paraphrased from [27.7.1]/1.)
+ *
+ * For this class, open modes (of type @c ios_base::openmode) have
+ * @c in set if the input sequence can be read, and @c out set if the
+ * output sequence can be written.
+ */
template<typename _CharT, typename _Traits, typename _Alloc>
class basic_stringbuf : public basic_streambuf<_CharT, _Traits>
{
@@ -61,22 +73,48 @@ namespace std
typedef typename traits_type::pos_type pos_type;
typedef typename traits_type::off_type off_type;
- // Non-standard Types:
+ //@{
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
typedef basic_streambuf<char_type, traits_type> __streambuf_type;
typedef basic_string<char_type, _Traits, _Alloc> __string_type;
typedef typename __string_type::size_type __size_type;
+ //@}
protected:
// Data Members:
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
__string_type _M_string;
public:
// Constructors:
+ /**
+ * @brief Starts with an empty string buffer.
+ * @param mode Whether the buffer can read, or write, or both.
+ *
+ * The default constructor initializes the parent class using its
+ * own default ctor.
+ */
explicit
basic_stringbuf(ios_base::openmode __mode = ios_base::in | ios_base::out)
: __streambuf_type(), _M_string()
{ _M_stringbuf_init(__mode); }
+ /**
+ * @brief Starts with an existing string buffer.
+ * @param str A string to copy as a starting buffer.
+ * @param mode Whether the buffer can read, or write, or both.
+ *
+ * This constructor initializes the parent class using its
+ * own default ctor.
+ */
explicit
basic_stringbuf(const __string_type& __str,
ios_base::openmode __mode = ios_base::in | ios_base::out)
@@ -84,6 +122,14 @@ namespace std
{ _M_stringbuf_init(__mode); }
// Get and set:
+ /**
+ * @brief Copying out the string buffer.
+ * @return A copy of one of the underlying sequences.
+ *
+ * "If the buffer is only created in input mode, the underlying
+ * character sequence is equal to the input sequence; otherwise, it
+ * is equal to the output sequence." [27.7.1.2]/1
+ */
__string_type
str() const
{
@@ -94,7 +140,7 @@ namespace std
// _M_string, and may not be the correct size of the
// current stringbuf internal buffer.
__size_type __len = _M_string.size();
- if (_M_out_cur > _M_out_beg)
+ if (_M_out_end > _M_out_beg)
__len = max(__size_type(_M_out_end - _M_out_beg), __len);
return __string_type(_M_out_beg, _M_out_beg + __len);
}
@@ -102,6 +148,13 @@ namespace std
return _M_string;
}
+ /**
+ * @brief Setting a new buffer.
+ * @param s The string to use as a new sequence.
+ *
+ * Deallocates any previous stored sequence, then copies @a s to
+ * use as a new one.
+ */
void
str(const __string_type& __s)
{
@@ -112,6 +165,11 @@ namespace std
protected:
// Common initialization code for both ctors goes here.
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
void
_M_stringbuf_init(ios_base::openmode __mode)
{
@@ -135,6 +193,7 @@ namespace std
}
// Overridden virtual functions:
+ // [documentation is inherited]
virtual int_type
underflow()
{
@@ -144,12 +203,25 @@ namespace std
return traits_type::eof();
}
+ // [documentation is inherited]
virtual int_type
pbackfail(int_type __c = traits_type::eof());
+ // [documentation is inherited]
virtual int_type
overflow(int_type __c = traits_type::eof());
+ /**
+ * @brief Manipulates the buffer.
+ * @param s Pointer to a buffer area.
+ * @param n Size of @a s.
+ * @return @c this
+ *
+ * If no buffer has already been created, and both @a s and @a n are
+ * non-zero, then @c s is used as a buffer; see
+ * http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#2
+ * for more.
+ */
virtual __streambuf_type*
setbuf(char_type* __s, streamsize __n)
{
@@ -161,10 +233,12 @@ namespace std
return this;
}
+ // [documentation is inherited]
virtual pos_type
seekoff(off_type __off, ios_base::seekdir __way,
ios_base::openmode __mode = ios_base::in | ios_base::out);
+ // [documentation is inherited]
virtual pos_type
seekpos(pos_type __sp,
ios_base::openmode __mode = ios_base::in | ios_base::out);
@@ -175,6 +249,11 @@ namespace std
// Assumes: contents of _M_string and internal buffer match exactly.
// __i == _M_in_cur - _M_in_beg
// __o == _M_out_cur - _M_out_beg
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
virtual int
_M_really_sync(__size_type __i, __size_type __o)
{
@@ -196,7 +275,15 @@ namespace std
};
- // 27.7.2 Template class basic_istringstream
+ // [27.7.2] Template class basic_istringstream
+ /**
+ * @brief Controlling input for std::string.
+ *
+ * This class supports reading from objects of type std::basic_string,
+ * using the inherited functions from std::basic_istream. To control
+ * the associated sequence, an instance of std::basic_stringbuf is used,
+ * which this page refers to as @c sb.
+ */
template<typename _CharT, typename _Traits, typename _Alloc>
class basic_istringstream : public basic_istream<_CharT, _Traits>
{
@@ -218,40 +305,104 @@ namespace std
typedef basic_istream<char_type, traits_type> __istream_type;
private:
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
__stringbuf_type _M_stringbuf;
public:
// Constructors:
+ /**
+ * @brief Default constructor starts with an empty string buffer.
+ * @param mode Whether the buffer can read, or write, or both.
+ *
+ * @c ios_base::in is automatically included in @a mode.
+ *
+ * Initializes @c sb using @c mode|in, and passes @c &sb to the base
+ * class initializer. Does not allocate any buffer.
+ *
+ * @if maint
+ * That's a lie. We initialize the base class with NULL, because the
+ * string class does its own memory management.
+ * @endif
+ */
explicit
basic_istringstream(ios_base::openmode __mode = ios_base::in)
: __istream_type(NULL), _M_stringbuf(__mode | ios_base::in)
{ this->init(&_M_stringbuf); }
+ /**
+ * @brief Starts with an existing string buffer.
+ * @param str A string to copy as a starting buffer.
+ * @param mode Whether the buffer can read, or write, or both.
+ *
+ * @c ios_base::in is automatically included in @a mode.
+ *
+ * Initializes @c sb using @a str and @c mode|in, and passes @c &sb
+ * to the base class initializer.
+ *
+ * @if maint
+ * That's a lie. We initialize the base class with NULL, because the
+ * string class does its own memory management.
+ * @endif
+ */
explicit
basic_istringstream(const __string_type& __str,
ios_base::openmode __mode = ios_base::in)
: __istream_type(NULL), _M_stringbuf(__str, __mode | ios_base::in)
{ this->init(&_M_stringbuf); }
+ /**
+ * @brief The destructor does nothing.
+ *
+ * The buffer is deallocated by the stringbuf object, not the
+ * formatting stream.
+ */
~basic_istringstream()
{ }
// Members:
+ /**
+ * @brief Accessing the underlying buffer.
+ * @return The current basic_stringbuf buffer.
+ *
+ * This hides both signatures of std::basic_ios::rdbuf().
+ */
__stringbuf_type*
rdbuf() const
{ return const_cast<__stringbuf_type*>(&_M_stringbuf); }
+ /**
+ * @brief Copying out the string buffer.
+ * @return @c rdbuf()->str()
+ */
__string_type
str() const
{ return _M_stringbuf.str(); }
+ /**
+ * @brief Setting a new buffer.
+ * @param s The string to use as a new sequence.
+ *
+ * Calls @c rdbuf()->str(s).
+ */
void
str(const __string_type& __s)
{ _M_stringbuf.str(__s); }
};
- // 27.7.3 Template class basic_ostringstream
+ // [27.7.3] Template class basic_ostringstream
+ /**
+ * @brief Controlling output for std::string.
+ *
+ * This class supports writing to objects of type std::basic_string,
+ * using the inherited functions from std::basic_ostream. To control
+ * the associated sequence, an instance of std::basic_stringbuf is used,
+ * which this page refers to as @c sb.
+ */
template <typename _CharT, typename _Traits, typename _Alloc>
class basic_ostringstream : public basic_ostream<_CharT, _Traits>
{
@@ -273,40 +424,104 @@ namespace std
typedef basic_ostream<char_type, traits_type> __ostream_type;
private:
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
__stringbuf_type _M_stringbuf;
public:
- // Constructors/destructor:
+ // Constructors/destructor:
+ /**
+ * @brief Default constructor starts with an empty string buffer.
+ * @param mode Whether the buffer can read, or write, or both.
+ *
+ * @c ios_base::out is automatically included in @a mode.
+ *
+ * Initializes @c sb using @c mode|out, and passes @c &sb to the base
+ * class initializer. Does not allocate any buffer.
+ *
+ * @if maint
+ * That's a lie. We initialize the base class with NULL, because the
+ * string class does its own memory management.
+ * @endif
+ */
explicit
basic_ostringstream(ios_base::openmode __mode = ios_base::out)
: __ostream_type(NULL), _M_stringbuf(__mode | ios_base::out)
{ this->init(&_M_stringbuf); }
+ /**
+ * @brief Starts with an existing string buffer.
+ * @param str A string to copy as a starting buffer.
+ * @param mode Whether the buffer can read, or write, or both.
+ *
+ * @c ios_base::out is automatically included in @a mode.
+ *
+ * Initializes @c sb using @a str and @c mode|out, and passes @c &sb
+ * to the base class initializer.
+ *
+ * @if maint
+ * That's a lie. We initialize the base class with NULL, because the
+ * string class does its own memory management.
+ * @endif
+ */
explicit
basic_ostringstream(const __string_type& __str,
ios_base::openmode __mode = ios_base::out)
: __ostream_type(NULL), _M_stringbuf(__str, __mode | ios_base::out)
{ this->init(&_M_stringbuf); }
+ /**
+ * @brief The destructor does nothing.
+ *
+ * The buffer is deallocated by the stringbuf object, not the
+ * formatting stream.
+ */
~basic_ostringstream()
{ }
// Members:
+ /**
+ * @brief Accessing the underlying buffer.
+ * @return The current basic_stringbuf buffer.
+ *
+ * This hides both signatures of std::basic_ios::rdbuf().
+ */
__stringbuf_type*
rdbuf() const
{ return const_cast<__stringbuf_type*>(&_M_stringbuf); }
+ /**
+ * @brief Copying out the string buffer.
+ * @return @c rdbuf()->str()
+ */
__string_type
str() const
{ return _M_stringbuf.str(); }
+ /**
+ * @brief Setting a new buffer.
+ * @param s The string to use as a new sequence.
+ *
+ * Calls @c rdbuf()->str(s).
+ */
void
str(const __string_type& __s)
{ _M_stringbuf.str(__s); }
};
- // 27.7.4 Template class basic_stringstream
+ // [27.7.4] Template class basic_stringstream
+ /**
+ * @brief Controlling input and output for std::string.
+ *
+ * This class supports reading from and writing to objects of type
+ * std::basic_string, using the inherited functions from
+ * std::basic_iostream. To control the associated sequence, an instance
+ * of std::basic_stringbuf is used, which this page refers to as @c sb.
+ */
template <typename _CharT, typename _Traits, typename _Alloc>
class basic_stringstream : public basic_iostream<_CharT, _Traits>
{
@@ -328,33 +543,85 @@ namespace std
typedef basic_iostream<char_type, traits_type> __iostream_type;
private:
+ /**
+ * @if maint
+ * @doctodo
+ * @endif
+ */
__stringbuf_type _M_stringbuf;
public:
// Constructors/destructors
+ /**
+ * @brief Default constructor starts with an empty string buffer.
+ * @param mode Whether the buffer can read, or write, or both.
+ *
+ * Initializes @c sb using @c mode, and passes @c &sb to the base
+ * class initializer. Does not allocate any buffer.
+ *
+ * @if maint
+ * That's a lie. We initialize the base class with NULL, because the
+ * string class does its own memory management.
+ * @endif
+ */
explicit
basic_stringstream(ios_base::openmode __m = ios_base::out | ios_base::in)
: __iostream_type(NULL), _M_stringbuf(__m)
{ this->init(&_M_stringbuf); }
+ /**
+ * @brief Starts with an existing string buffer.
+ * @param str A string to copy as a starting buffer.
+ * @param mode Whether the buffer can read, or write, or both.
+ *
+ * Initializes @c sb using @a str and @c mode, and passes @c &sb
+ * to the base class initializer.
+ *
+ * @if maint
+ * That's a lie. We initialize the base class with NULL, because the
+ * string class does its own memory management.
+ * @endif
+ */
explicit
basic_stringstream(const __string_type& __str,
ios_base::openmode __m = ios_base::out | ios_base::in)
: __iostream_type(NULL), _M_stringbuf(__str, __m)
{ this->init(&_M_stringbuf); }
+ /**
+ * @brief The destructor does nothing.
+ *
+ * The buffer is deallocated by the stringbuf object, not the
+ * formatting stream.
+ */
~basic_stringstream()
{ }
// Members:
+ /**
+ * @brief Accessing the underlying buffer.
+ * @return The current basic_stringbuf buffer.
+ *
+ * This hides both signatures of std::basic_ios::rdbuf().
+ */
__stringbuf_type*
rdbuf() const
{ return const_cast<__stringbuf_type*>(&_M_stringbuf); }
+ /**
+ * @brief Copying out the string buffer.
+ * @return @c rdbuf()->str()
+ */
__string_type
str() const
{ return _M_stringbuf.str(); }
+ /**
+ * @brief Setting a new buffer.
+ * @param s The string to use as a new sequence.
+ *
+ * Calls @c rdbuf()->str(s).
+ */
void
str(const __string_type& __s)
{ _M_stringbuf.str(__s); }
diff --git a/contrib/libstdc++/include/std/std_stack.h b/contrib/libstdc++/include/std/std_stack.h
index e517c42..ddae7e7 100644
--- a/contrib/libstdc++/include/std/std_stack.h
+++ b/contrib/libstdc++/include/std/std_stack.h
@@ -70,8 +70,8 @@
#include <bits/stl_deque.h>
#include <bits/stl_stack.h>
-#endif /* _CPP_STACK */
+#ifdef _GLIBCPP_NO_TEMPLATE_EXPORT
+# include <bits/deque.tcc>
+#endif
-// Local Variables:
-// mode:C++
-// End:
+#endif /* _CPP_STACK */
diff --git a/contrib/libstdc++/include/std/std_streambuf.h b/contrib/libstdc++/include/std/std_streambuf.h
index db36ed3..a1958c1 100644
--- a/contrib/libstdc++/include/std/std_streambuf.h
+++ b/contrib/libstdc++/include/std/std_streambuf.h
@@ -50,28 +50,104 @@
namespace std
{
+ /**
+ * @if maint
+ * Does stuff.
+ * @endif
+ */
template<typename _CharT, typename _Traits>
streamsize
__copy_streambufs(basic_ios<_CharT, _Traits>& _ios,
basic_streambuf<_CharT, _Traits>* __sbin,
basic_streambuf<_CharT, _Traits>* __sbout);
- // 27.5.2 Template class basic_streambuf<_CharT, _Traits>
+ /**
+ * @brief The actual work of input and output (interface).
+ *
+ * This is a base class. Derived stream buffers each control a
+ * pair of character sequences: one for input, and one for output.
+ *
+ * Section [27.5.1] of the standard describes the requirements and
+ * behavior of stream buffer classes. That section (three paragraphs)
+ * is reproduced here, for simplicity and accuracy.
+ *
+ * -# Stream buffers can impose various constraints on the sequences
+ * they control. Some constraints are:
+ * - The controlled input sequence can be not readable.
+ * - The controlled output sequence can be not writable.
+ * - The controlled sequences can be associated with the contents of
+ * other representations for character sequences, such as external
+ * files.
+ * - The controlled sequences can support operations @e directly to or
+ * from associated sequences.
+ * - The controlled sequences can impose limitations on how the
+ * program can read characters from a sequence, write characters to
+ * a sequence, put characters back into an input sequence, or alter
+ * the stream position.
+ * .
+ * -# Each sequence is characterized by three pointers which, if non-null,
+ * all point into the same @c charT array object. The array object
+ * represents, at any moment, a (sub)sequence of characters from the
+ * sequence. Operations performed on a sequence alter the values
+ * stored in these pointers, perform reads and writes directly to or
+ * from associated sequences, and alter "the stream position" and
+ * conversion state as needed to maintain this subsequence relationship.
+ * The three pointers are:
+ * - the <em>beginning pointer</em>, or lowest element address in the
+ * array (called @e xbeg here);
+ * - the <em>next pointer</em>, or next element address that is a
+ * current candidate for reading or writing (called @e xnext here);
+ * - the <em>end pointer</em>, or first element address beyond the
+ * end of the array (called @e xend here).
+ * .
+ * -# The following semantic constraints shall always apply for any set
+ * of three pointers for a sequence, using the pointer names given
+ * immediately above:
+ * - If @e xnext is not a null pointer, then @e xbeg and @e xend shall
+ * also be non-null pointers into the same @c charT array, as
+ * described above; otherwise, @e xbeg and @e xend shall also be null.
+ * - If @e xnext is not a null pointer and @e xnext < @e xend for an
+ * output sequence, then a <em>write position</em> is available.
+ * In this case, @e *xnext shall be assignable as the next element
+ * to write (to put, or to store a character value, into the sequence).
+ * - If @e xnext is not a null pointer and @e xbeg < @e xnext for an
+ * input sequence, then a <em>putback position</em> is available.
+ * In this case, @e xnext[-1] shall have a defined value and is the
+ * next (preceding) element to store a character that is put back
+ * into the input sequence.
+ * - If @e xnext is not a null pointer and @e xnext< @e xend for an
+ * input sequence, then a <em>read position</em> is available.
+ * In this case, @e *xnext shall have a defined value and is the
+ * next element to read (to get, or to obtain a character value,
+ * from the sequence).
+ */
template<typename _CharT, typename _Traits>
class basic_streambuf
{
public:
- // Types:
+ //@{
+ /**
+ * These are standard types. They permit a standardized way of
+ * referring to names of (or names dependant on) the template
+ * parameters, which are specific to the implementation.
+ */
typedef _CharT char_type;
typedef _Traits traits_type;
typedef typename traits_type::int_type int_type;
typedef typename traits_type::pos_type pos_type;
typedef typename traits_type::off_type off_type;
-
- // Non-standard Types:
+ //@}
+
+ //@{
+ /**
+ * @if maint
+ * These are non-standard types.
+ * @endif
+ */
typedef ctype<char_type> __ctype_type;
typedef basic_streambuf<char_type, traits_type> __streambuf_type;
typedef typename traits_type::state_type __state_type;
+ //@}
friend class basic_ios<char_type, traits_type>;
friend class basic_istream<char_type, traits_type>;
@@ -84,56 +160,100 @@ namespace std
__streambuf_type* __sbin,__streambuf_type* __sbout);
protected:
- // Pointer to the beginning of internally-allocated
- // space. Filebuf manually allocates/deallocates this, whereas
- // stringstreams attempt to use the built-in intelligence of the
- // string class. If you are managing memory, set this. If not,
- // leave it NULL.
+ /**
+ * @if maint
+ * Pointer to the beginning of internally-allocated space. Filebuf
+ * manually allocates/deallocates this, whereas stringstreams attempt
+ * to use the built-in intelligence of the string class. If you are
+ * managing memory, set this. If not, leave it NULL.
+ * @endif
+ */
char_type* _M_buf;
- // Actual size of allocated internal buffer, in bytes.
+ /**
+ * @if maint
+ * Actual size of allocated internal buffer, in bytes.
+ * @endif
+ */
size_t _M_buf_size;
- // Optimal or preferred size of internal buffer, in bytes.
+ /**
+ * @if maint
+ * Optimal or preferred size of internal buffer, in bytes.
+ * @endif
+ */
size_t _M_buf_size_opt;
- // True iff _M_in_* and _M_out_* buffers should always point to
- // the same place. True for fstreams, false for sstreams.
+ /**
+ * @if maint
+ * True iff _M_in_* and _M_out_* buffers should always point to
+ * the same place. True for fstreams, false for sstreams.
+ * @endif
+ */
bool _M_buf_unified;
- // This is based on _IO_FILE, just reordered to be more
- // consistent, and is intended to be the most minimal abstraction
- // for an internal buffer.
- // get == input == read
- // put == output == write
+ //@{
+ /**
+ * @if maint
+ * This is based on _IO_FILE, just reordered to be more consistent,
+ * and is intended to be the most minimal abstraction for an
+ * internal buffer.
+ * - get == input == read
+ * - put == output == write
+ * @endif
+ */
char_type* _M_in_beg; // Start of get area.
char_type* _M_in_cur; // Current read area.
char_type* _M_in_end; // End of get area.
char_type* _M_out_beg; // Start of put area.
char_type* _M_out_cur; // Current put area.
char_type* _M_out_end; // End of put area.
+ //@}
- // Place to stash in || out || in | out settings for current streambuf.
+ /**
+ * @if maint
+ * Place to stash in || out || in | out settings for current streambuf.
+ * @endif
+ */
ios_base::openmode _M_mode;
- // Current locale setting.
+ /**
+ * @if maint
+ * Current locale setting.
+ * @endif
+ */
locale _M_buf_locale;
- // True iff locale is initialized.
+ /**
+ * @if maint
+ * True iff locale is initialized.
+ * @endif
+ */
bool _M_buf_locale_init;
- // Necessary bits for putback buffer management. Only used in
- // the basic_filebuf class, as necessary for the standard
- // requirements. The only basic_streambuf member function that
- // needs access to these data members is in_avail...
- // NB: pbacks of over one character are not currently supported.
+ //@{
+ /**
+ * @if maint
+ * Necessary bits for putback buffer management. Only used in
+ * the basic_filebuf class, as necessary for the standard
+ * requirements. The only basic_streambuf member function that
+ * needs access to these data members is in_avail...
+ *
+ * @note pbacks of over one character are not currently supported.
+ * @endif
+ */
static const size_t _S_pback_size = 1;
char_type _M_pback[_S_pback_size];
char_type* _M_pback_cur_save;
char_type* _M_pback_end_save;
bool _M_pback_init;
+ //@}
- // Yet unused.
+ /**
+ * @if maint
+ * Yet unused.
+ * @endif
+ */
fpos<__state_type> _M_pos;
// Initializes pback buffers, and moves normal buffers to safety.
@@ -158,7 +278,7 @@ namespace std
// Assumptions:
// The pback buffer has only moved forward.
void
- _M_pback_destroy()
+ _M_pback_destroy() throw()
{
if (_M_pback_init)
{
@@ -236,6 +356,7 @@ namespace std
}
public:
+ /// Destructor deallocates no buffer space.
virtual
~basic_streambuf()
{
@@ -245,7 +366,14 @@ namespace std
_M_mode = ios_base::openmode(0);
}
- // Locales:
+ // [27.5.2.2.1] locales
+ /**
+ * @brief Entry point for imbue().
+ * @param loc The new locale.
+ * @return The previous locale.
+ *
+ * Calls the derived imbue(loc).
+ */
locale
pubimbue(const locale &__loc)
{
@@ -254,11 +382,27 @@ namespace std
return __tmp;
}
+ /**
+ * @brief Locale access.
+ * @return The current locale in effect.
+ *
+ * If pubimbue(loc) has been called, then the most recent @c loc
+ * is returned. Otherwise the global locale in effect at the time
+ * of construction is returned.
+ */
locale
getloc() const
{ return _M_buf_locale; }
- // Buffer and positioning:
+ // [27.5.2.2.2] buffer management and positioning
+ //@{
+ /**
+ * @brief Entry points for derived buffer functions.
+ *
+ * The public versions of @c pubfoo dispatch to the protected
+ * derived @c foo member functions, passing the arguments (if any)
+ * and returning the result unchanged.
+ */
__streambuf_type*
pubsetbuf(char_type* __s, streamsize __n)
{ return this->setbuf(__s, __n); }
@@ -275,9 +419,17 @@ namespace std
int
pubsync() { return this->sync(); }
-
- // Get and put areas:
- // Get area:
+ //@}
+
+ // [27.5.2.2.3] get area
+ /**
+ * @brief Looking ahead into the stream.
+ * @return The number of characters available.
+ *
+ * If a read position is available, returns the number of characters
+ * available for reading before the buffer must be refilled.
+ * Otherwise returns the derived @c showmanyc().
+ */
streamsize
in_avail()
{
@@ -298,6 +450,13 @@ namespace std
return __ret;
}
+ /**
+ * @brief Getting the next character.
+ * @return The next character, or eof.
+ *
+ * Calls @c sbumpc(), and if that function returns
+ * @c traits::eof(), so does this function. Otherwise, @c sgetc().
+ */
int_type
snextc()
{
@@ -306,9 +465,25 @@ namespace std
? __eof : this->sgetc());
}
+ /**
+ * @brief Getting the next character.
+ * @return The next character, or eof.
+ *
+ * If the input read position is available, returns that character
+ * and increments the read pointer, otherwise calls and returns
+ * @c uflow().
+ */
int_type
sbumpc();
+ /**
+ * @brief Getting the next character.
+ * @return The next character, or eof.
+ *
+ * If the input read position is available, returns that character,
+ * otherwise calls and returns @c underflow(). Does not move the
+ * read position after fetching the character.
+ */
int_type
sgetc()
{
@@ -320,26 +495,84 @@ namespace std
return __ret;
}
+ /**
+ * @brief Entry point for xsgetn.
+ * @param s A buffer area.
+ * @param n A count.
+ *
+ * Returns xsgetn(s,n). The effect is to fill @a s[0] through
+ * @a s[n-1] with characters from the input sequence, if possible.
+ */
streamsize
sgetn(char_type* __s, streamsize __n)
{ return this->xsgetn(__s, __n); }
- // Putback:
+ // [27.5.2.2.4] putback
+ /**
+ * @brief Pushing characters back into the input stream.
+ * @param c The character to push back.
+ * @return The previous character, if possible.
+ *
+ * Similar to sungetc(), but @a c is pushed onto the stream instead
+ * of "the previous character". If successful, the next character
+ * fetched from the input stream will be @a c.
+ */
int_type
sputbackc(char_type __c);
+ /**
+ * @brief Moving backwards in the input stream.
+ * @return The previous character, if possible.
+ *
+ * If a putback position is available, this function decrements the
+ * input pointer and returns that character. Otherwise, calls and
+ * returns pbackfail(). The effect is to "unget" the last character
+ * "gotten".
+ */
int_type
sungetc();
- // Put area:
+ // [27.5.2.2.5] put area
+ /**
+ * @brief Entry point for all single-character output functions.
+ * @param c A character to output.
+ * @return @a c, if possible.
+ *
+ * One of two public output functions.
+ *
+ * If a write position is available for the output sequence (i.e.,
+ * the buffer is not full), stores @a c in that position, increments
+ * the position, and returns @c traits::to_int_type(c). If a write
+ * position is not available, returns @c overflow(c).
+ */
int_type
sputc(char_type __c);
+ /**
+ * @brief Entry point for all single-character output functions.
+ * @param s A buffer read area.
+ * @param n A count.
+ *
+ * One of two public output functions.
+ *
+ *
+ * Returns xsputn(s,n). The effect is to write @a s[0] through
+ * @a s[n-1] to the output sequence, if possible.
+ */
streamsize
sputn(const char_type* __s, streamsize __n)
{ return this->xsputn(__s, __n); }
protected:
+ /**
+ * @brief Base constructor.
+ *
+ * Only called from derived constructors, and sets up all the
+ * buffer data to zero, including the pointers described in the
+ * basic_streambuf class description. Note that, as a result,
+ * - the class starts with no read nor write positions available,
+ * - this is not an error
+ */
basic_streambuf()
: _M_buf(NULL), _M_buf_size(0), _M_buf_size_opt(BUFSIZ),
_M_buf_unified(false), _M_in_beg(0), _M_in_cur(0), _M_in_end(0),
@@ -349,7 +582,18 @@ namespace std
_M_pback_init(false)
{ }
- // Get area:
+ // [27.5.2.3.1] get area access
+ //@{
+ /**
+ * @brief Access to the get area.
+ *
+ * These functions are only available to other protected functions,
+ * including derived classes.
+ *
+ * - eback() returns the beginning pointer for the input sequence
+ * - gptr() returns the next pointer for the input sequence
+ * - egptr() returns the end pointer for the input sequence
+ */
char_type*
eback() const { return _M_in_beg; }
@@ -358,10 +602,25 @@ namespace std
char_type*
egptr() const { return _M_in_end; }
-
+ //@}
+
+ /**
+ * @brief Moving the read position.
+ * @param n The delta by which to move.
+ *
+ * This just advances the read position without returning any data.
+ */
void
gbump(int __n) { _M_in_cur += __n; }
+ /**
+ * @brief Setting the three read area pointers.
+ * @param gbeg A pointer.
+ * @param gnext A pointer.
+ * @param gend A pointer.
+ * @post @a gbeg == @c eback(), @a gnext == @c gptr(), and
+ * @a gend == @c egptr()
+ */
void
setg(char_type* __gbeg, char_type* __gnext, char_type* __gend)
{
@@ -372,7 +631,18 @@ namespace std
_M_mode = _M_mode | ios_base::in;
}
- // Put area:
+ // [27.5.2.3.2] put area access
+ //@{
+ /**
+ * @brief Access to the put area.
+ *
+ * These functions are only available to other protected functions,
+ * including derived classes.
+ *
+ * - pbase() returns the beginning pointer for the output sequence
+ * - pptr() returns the next pointer for the output sequence
+ * - epptr() returns the end pointer for the output sequence
+ */
char_type*
pbase() const { return _M_out_beg; }
@@ -381,10 +651,24 @@ namespace std
char_type*
epptr() const { return _M_out_end; }
-
+ //@}
+
+ /**
+ * @brief Moving the write position.
+ * @param n The delta by which to move.
+ *
+ * This just advances the write position without returning any data.
+ */
void
pbump(int __n) { _M_out_cur += __n; }
+ /**
+ * @brief Setting the three write area pointers.
+ * @param pbeg A pointer.
+ * @param pend A pointer.
+ * @post @a pbeg == @c pbase(), @a pbeg == @c pptr(), and
+ * @a pend == @c epptr()
+ */
void
setp(char_type* __pbeg, char_type* __pend)
{
@@ -394,8 +678,19 @@ namespace std
_M_mode = _M_mode | ios_base::out;
}
- // Virtual functions:
- // Locales:
+ // [27.5.2.4] virtual functions
+ // [27.5.2.4.1] locales
+ /**
+ * @brief Changes translations.
+ * @param loc A new locale.
+ *
+ * Translations done during I/O which depend on the current locale
+ * are changed by this call. The standard adds, "Between invocations
+ * of this function a class derived from streambuf can safely cache
+ * results of calls to locale functions and to members of facets
+ * so obtained." This function simply stores the new locale for use
+ * by derived classes.
+ */
virtual void
imbue(const locale& __loc)
{
@@ -403,35 +698,126 @@ namespace std
_M_buf_locale = __loc;
}
- // Buffer management and positioning:
+ // [27.5.2.4.2] buffer management and positioning
+ /**
+ * @brief Maniuplates the buffer.
+ *
+ * Each derived class provides its own appropriate behavior. See
+ * the next-to-last paragraph of
+ * http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#2 for
+ * more on this function.
+ *
+ * @note Base class version does nothing, returns @c this.
+ */
virtual basic_streambuf<char_type,_Traits>*
setbuf(char_type*, streamsize)
{ return this; }
+ /**
+ * @brief Alters the stream positions.
+ *
+ * Each derived class provides its own appropriate behavior.
+ * @note Base class version does nothing, returns a @c pos_type
+ * that represents an invalid stream position.
+ */
virtual pos_type
seekoff(off_type, ios_base::seekdir,
ios_base::openmode /*__mode*/ = ios_base::in | ios_base::out)
{ return pos_type(off_type(-1)); }
+ /**
+ * @brief Alters the stream positions.
+ *
+ * Each derived class provides its own appropriate behavior.
+ * @note Base class version does nothing, returns a @c pos_type
+ * that represents an invalid stream position.
+ */
virtual pos_type
seekpos(pos_type,
ios_base::openmode /*__mode*/ = ios_base::in | ios_base::out)
{ return pos_type(off_type(-1)); }
+ /**
+ * @brief Synchronizes the buffer arrays with the controlled sequences.
+ * @return -1 on failure.
+ *
+ * Each derived class provides its own appropriate behavior,
+ * including the definition of "failure".
+ * @note Base class version does nothing, returns zero.
+ */
virtual int
sync() { return 0; }
- // Get area:
+ // [27.5.2.4.3] get area
+ /**
+ * @brief Investigating the data available.
+ * @return An estimate of the number of characters available in the
+ * input sequence, or -1.
+ *
+ * "If it returns a positive value, then successive calls to
+ * @c underflow() will not return @c traits::eof() until at least that
+ * number of characters have been supplied. If @c showmanyc()
+ * returns -1, then calls to @c underflow() or @c uflow() will fail."
+ * [27.5.2.4.3]/1
+ *
+ * @note Base class version does nothing, returns zero.
+ * @note The standard adds that "the intention is not only that the
+ * calls [to underflow or uflow] will not return @c eof() but
+ * that they will return "immediately".
+ * @note The standard adds that "the morphemes of @c showmanyc are
+ * "es-how-many-see", not "show-manic".
+ */
virtual streamsize
showmanyc() { return 0; }
+ /**
+ * @brief Multiple character extraction.
+ * @param s A buffer area.
+ * @param n Maximum number of characters to assign.
+ * @return The number of characters assigned.
+ *
+ * Fills @a s[0] through @a s[n-1] with characters from the input
+ * sequence, as if by @c sbumpc(). Stops when either @a n characters
+ * have been copied, or when @c traits::eof() would be copied.
+ *
+ * It is expected that derived classes provide a more efficient
+ * implementation by overriding this definition.
+ */
virtual streamsize
xsgetn(char_type* __s, streamsize __n);
+ /**
+ * @brief Fetches more data from the controlled sequence.
+ * @return The first character from the <em>pending sequence</em>.
+ *
+ * Informally, this function is called when the input buffer is
+ * exhausted (or does not exist, as buffering need not actually be
+ * done). If a buffer exists, it is "refilled". In either case, the
+ * next available character is returned, or @c traits::eof() to
+ * indicate a null pending sequence.
+ *
+ * For a formal definiton of the pending sequence, see a good text
+ * such as Langer & Kreft, or [27.5.2.4.3]/7-14.
+ *
+ * A functioning input streambuf can be created by overriding only
+ * this function (no buffer area will be used). For an example, see
+ * http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#6
+ *
+ * @note Base class version does nothing, returns eof().
+ */
virtual int_type
underflow()
{ return traits_type::eof(); }
+ /**
+ * @brief Fetches more data from the controlled sequence.
+ * @return The first character from the <em>pending sequence</em>.
+ *
+ * Informally, this function does the same thing as @c underflow(),
+ * and in fact is required to call that function. It also returns
+ * the new character, like @c underflow() does. However, this
+ * function also moves the read position forward by one.
+ */
virtual int_type
uflow()
{
@@ -448,21 +834,78 @@ namespace std
return __ret;
}
- // Putback:
+ // [27.5.2.4.4] putback
+ /**
+ * @brief Tries to back up the input sequence.
+ * @param c The character to be inserted back into the sequence.
+ * @return eof() on failure, "some other value" on success
+ * @post The constraints of @c gptr(), @c eback(), and @c pptr()
+ * are the same as for @c underflow().
+ *
+ * @note Base class version does nothing, returns eof().
+ */
virtual int_type
pbackfail(int_type /* __c */ = traits_type::eof())
{ return traits_type::eof(); }
// Put area:
+ /**
+ * @brief Multiple character insertion.
+ * @param s A buffer area.
+ * @param n Maximum number of characters to write.
+ * @return The number of characters written.
+ *
+ * Writes @a s[0] through @a s[n-1] to the output sequence, as if
+ * by @c sputc(). Stops when either @a n characters have been
+ * copied, or when @c sputc() would return @c traits::eof().
+ *
+ * It is expected that derived classes provide a more efficient
+ * implementation by overriding this definition.
+ */
virtual streamsize
xsputn(const char_type* __s, streamsize __n);
+ /**
+ * @brief Consumes data from the buffer; writes to the
+ * controlled sequence.
+ * @param c An additional character to consume.
+ * @return eof() to indicate failure, something else (usually
+ * @a c, or not_eof())
+ *
+ * Informally, this function is called when the output buffer is full
+ * (or does not exist, as buffering need not actually be done). If a
+ * buffer exists, it is "consumed", with "some effect" on the
+ * controlled sequence. (Typically, the buffer is written out to the
+ * sequence verbatim.) In either case, the character @a c is also
+ * written out, if @a c is not @c eof().
+ *
+ * For a formal definiton of this function, see a good text
+ * such as Langer & Kreft, or [27.5.2.4.5]/3-7.
+ *
+ * A functioning output streambuf can be created by overriding only
+ * this function (no buffer area will be used).
+ *
+ * @note Base class version does nothing, returns eof().
+ */
virtual int_type
overflow(int_type /* __c */ = traits_type::eof())
{ return traits_type::eof(); }
#ifdef _GLIBCPP_DEPRECATED
+ // Annex D.6
public:
+ /**
+ * @brief Tosses a character.
+ *
+ * Advances the read pointer, ignoring the character that would have
+ * been read.
+ *
+ * See http://gcc.gnu.org/ml/libstdc++/2002-05/msg00168.html
+ *
+ * @note This function has been deprecated by the standard. You
+ * must define @c _GLIBCPP_DEPRECATED to make this visible; see
+ * c++config.h.
+ */
void
stossc()
{
diff --git a/contrib/libstdc++/include/std/std_valarray.h b/contrib/libstdc++/include/std/std_valarray.h
index 3957d7f..b4de5df 100644
--- a/contrib/libstdc++/include/std/std_valarray.h
+++ b/contrib/libstdc++/include/std/std_valarray.h
@@ -45,48 +45,47 @@
#include <cmath>
#include <cstdlib>
#include <numeric>
-#include <functional>
#include <algorithm>
namespace std
{
- template<class _Clos, typename _Tp> class _Expr;
+ template<class _Clos, typename _Tp>
+ class _Expr;
- template<typename _Tp1, typename _Tp2> class _ValArray;
+ template<typename _Tp1, typename _Tp2>
+ class _ValArray;
- template<template<class> class _Oper,
- template<class, class> class _Meta, class _Dom> struct _UnClos;
+ template<class _Oper, template<class, class> class _Meta, class _Dom>
+ struct _UnClos;
- template<template<class> class _Oper,
+ template<class _Oper,
template<class, class> class _Meta1,
template<class, class> class _Meta2,
- class _Dom1, class _Dom2> class _BinClos;
+ class _Dom1, class _Dom2>
+ class _BinClos;
- template<template<class, class> class _Meta, class _Dom> class _SClos;
+ template<template<class, class> class _Meta, class _Dom>
+ class _SClos;
- template<template<class, class> class _Meta, class _Dom> class _GClos;
+ template<template<class, class> class _Meta, class _Dom>
+ class _GClos;
- template<template<class, class> class _Meta, class _Dom> class _IClos;
+ template<template<class, class> class _Meta, class _Dom>
+ class _IClos;
- template<template<class, class> class _Meta, class _Dom> class _ValFunClos;
-
- template<template<class, class> class _Meta, class _Dom> class _RefFunClos;
-
- template<class _Tp> struct _Unary_plus;
- template<class _Tp> struct _Bitwise_and;
- template<class _Tp> struct _Bitwise_or;
- template<class _Tp> struct _Bitwise_xor;
- template<class _Tp> struct _Bitwise_not;
- template<class _Tp> struct _Shift_left;
- template<class _Tp> struct _Shift_right;
+ template<template<class, class> class _Meta, class _Dom>
+ class _ValFunClos;
- template<class _Tp> class valarray; // An array of type _Tp
- class slice; // BLAS-like slice out of an array
- template<class _Tp> class slice_array;
- class gslice; // generalized slice out of an array
- template<class _Tp> class gslice_array;
- template<class _Tp> class mask_array; // masked array
- template<class _Tp> class indirect_array; // indirected array
+ template<template<class, class> class _Meta, class _Dom>
+ class _RefFunClos;
+
+ template<class _Tp> class valarray; // An array of type _Tp
+ class slice; // BLAS-like slice out of an array
+ template<class _Tp> class slice_array;
+ class gslice; // generalized slice out of an array
+ template<class _Tp> class gslice_array;
+ template<class _Tp> class mask_array; // masked array
+ template<class _Tp> class indirect_array; // indirected array
} // namespace std
@@ -95,12 +94,19 @@ namespace std
namespace std
{
- template<class _Tp> class valarray
- {
- public:
+ template<class _Tp>
+ class valarray
+ {
+ template<class _Op>
+ struct _UnaryOp
+ {
+ typedef typename __fun<_Op, _Tp>::result_type __rt;
+ typedef _Expr<_UnClos<_Op, _ValArray, _Tp>, __rt> _Rt;
+ };
+ public:
typedef _Tp value_type;
-
- // _lib.valarray.cons_ construct/destroy:
+
+ // _lib.valarray.cons_ construct/destroy:
valarray();
explicit valarray(size_t);
valarray(const _Tp&, size_t);
@@ -111,8 +117,8 @@ namespace std
valarray(const mask_array<_Tp>&);
valarray(const indirect_array<_Tp>&);
template<class _Dom>
- valarray(const _Expr<_Dom,_Tp>& __e);
- ~valarray();
+ valarray(const _Expr<_Dom,_Tp>& __e);
+ ~valarray();
// _lib.valarray.assign_ assignment:
valarray<_Tp>& operator=(const valarray<_Tp>&);
@@ -123,7 +129,7 @@ namespace std
valarray<_Tp>& operator=(const indirect_array<_Tp>&);
template<class _Dom> valarray<_Tp>&
- operator= (const _Expr<_Dom,_Tp>&);
+ operator= (const _Expr<_Dom,_Tp>&);
// _lib.valarray.access_ element access:
// XXX: LWG to be resolved.
@@ -137,67 +143,67 @@ namespace std
valarray<_Tp> operator[](const valarray<bool>&) const;
mask_array<_Tp> operator[](const valarray<bool>&);
_Expr<_IClos<_ValArray, _Tp>, _Tp>
- operator[](const valarray<size_t>&) const;
+ operator[](const valarray<size_t>&) const;
indirect_array<_Tp> operator[](const valarray<size_t>&);
// _lib.valarray.unary_ unary operators:
- _Expr<_UnClos<_Unary_plus,_ValArray,_Tp>,_Tp> operator+ () const;
- _Expr<_UnClos<negate,_ValArray,_Tp>,_Tp> operator- () const;
- _Expr<_UnClos<_Bitwise_not,_ValArray,_Tp>,_Tp> operator~ () const;
- _Expr<_UnClos<logical_not,_ValArray,_Tp>,bool> operator! () const;
-
+ typename _UnaryOp<__unary_plus>::_Rt operator+() const;
+ typename _UnaryOp<__negate>::_Rt operator-() const;
+ typename _UnaryOp<__bitwise_not>::_Rt operator~() const;
+ typename _UnaryOp<__logical_not>::_Rt operator!() const;
+
// _lib.valarray.cassign_ computed assignment:
- valarray<_Tp>& operator*= (const _Tp&);
- valarray<_Tp>& operator/= (const _Tp&);
- valarray<_Tp>& operator%= (const _Tp&);
- valarray<_Tp>& operator+= (const _Tp&);
- valarray<_Tp>& operator-= (const _Tp&);
- valarray<_Tp>& operator^= (const _Tp&);
- valarray<_Tp>& operator&= (const _Tp&);
- valarray<_Tp>& operator|= (const _Tp&);
+ valarray<_Tp>& operator*=(const _Tp&);
+ valarray<_Tp>& operator/=(const _Tp&);
+ valarray<_Tp>& operator%=(const _Tp&);
+ valarray<_Tp>& operator+=(const _Tp&);
+ valarray<_Tp>& operator-=(const _Tp&);
+ valarray<_Tp>& operator^=(const _Tp&);
+ valarray<_Tp>& operator&=(const _Tp&);
+ valarray<_Tp>& operator|=(const _Tp&);
valarray<_Tp>& operator<<=(const _Tp&);
valarray<_Tp>& operator>>=(const _Tp&);
- valarray<_Tp>& operator*= (const valarray<_Tp>&);
- valarray<_Tp>& operator/= (const valarray<_Tp>&);
- valarray<_Tp>& operator%= (const valarray<_Tp>&);
- valarray<_Tp>& operator+= (const valarray<_Tp>&);
- valarray<_Tp>& operator-= (const valarray<_Tp>&);
- valarray<_Tp>& operator^= (const valarray<_Tp>&);
- valarray<_Tp>& operator|= (const valarray<_Tp>&);
- valarray<_Tp>& operator&= (const valarray<_Tp>&);
+ valarray<_Tp>& operator*=(const valarray<_Tp>&);
+ valarray<_Tp>& operator/=(const valarray<_Tp>&);
+ valarray<_Tp>& operator%=(const valarray<_Tp>&);
+ valarray<_Tp>& operator+=(const valarray<_Tp>&);
+ valarray<_Tp>& operator-=(const valarray<_Tp>&);
+ valarray<_Tp>& operator^=(const valarray<_Tp>&);
+ valarray<_Tp>& operator|=(const valarray<_Tp>&);
+ valarray<_Tp>& operator&=(const valarray<_Tp>&);
valarray<_Tp>& operator<<=(const valarray<_Tp>&);
valarray<_Tp>& operator>>=(const valarray<_Tp>&);
template<class _Dom>
- valarray<_Tp>& operator*= (const _Expr<_Dom,_Tp>&);
+ valarray<_Tp>& operator*=(const _Expr<_Dom,_Tp>&);
template<class _Dom>
- valarray<_Tp>& operator/= (const _Expr<_Dom,_Tp>&);
+ valarray<_Tp>& operator/=(const _Expr<_Dom,_Tp>&);
template<class _Dom>
- valarray<_Tp>& operator%= (const _Expr<_Dom,_Tp>&);
+ valarray<_Tp>& operator%=(const _Expr<_Dom,_Tp>&);
template<class _Dom>
- valarray<_Tp>& operator+= (const _Expr<_Dom,_Tp>&);
+ valarray<_Tp>& operator+=(const _Expr<_Dom,_Tp>&);
template<class _Dom>
- valarray<_Tp>& operator-= (const _Expr<_Dom,_Tp>&);
+ valarray<_Tp>& operator-=(const _Expr<_Dom,_Tp>&);
template<class _Dom>
- valarray<_Tp>& operator^= (const _Expr<_Dom,_Tp>&);
+ valarray<_Tp>& operator^=(const _Expr<_Dom,_Tp>&);
template<class _Dom>
- valarray<_Tp>& operator|= (const _Expr<_Dom,_Tp>&);
+ valarray<_Tp>& operator|=(const _Expr<_Dom,_Tp>&);
template<class _Dom>
- valarray<_Tp>& operator&= (const _Expr<_Dom,_Tp>&);
+ valarray<_Tp>& operator&=(const _Expr<_Dom,_Tp>&);
template<class _Dom>
- valarray<_Tp>& operator<<=(const _Expr<_Dom,_Tp>&);
+ valarray<_Tp>& operator<<=(const _Expr<_Dom,_Tp>&);
template<class _Dom>
- valarray<_Tp>& operator>>=(const _Expr<_Dom,_Tp>&);
+ valarray<_Tp>& operator>>=(const _Expr<_Dom,_Tp>&);
+
-
// _lib.valarray.members_ member functions:
size_t size() const;
_Tp sum() const;
_Tp min() const;
_Tp max() const;
-// // FIXME: Extension
-// _Tp product () const;
+ // // FIXME: Extension
+ // _Tp product () const;
valarray<_Tp> shift (int) const;
valarray<_Tp> cshift(int) const;
@@ -205,56 +211,25 @@ namespace std
_Expr<_RefFunClos<_ValArray,_Tp>,_Tp> apply(_Tp func(const _Tp&)) const;
void resize(size_t __size, _Tp __c = _Tp());
- private:
+ private:
size_t _M_size;
_Tp* __restrict__ _M_data;
-
+
friend class _Array<_Tp>;
- };
-
-
- template<typename _Tp> struct _Unary_plus : unary_function<_Tp,_Tp> {
- _Tp operator() (const _Tp& __t) const { return __t; }
- };
-
- template<typename _Tp> struct _Bitwise_and : binary_function<_Tp,_Tp,_Tp> {
- _Tp operator() (_Tp __x, _Tp __y) const { return __x & __y; }
- };
-
- template<typename _Tp> struct _Bitwise_or : binary_function<_Tp,_Tp,_Tp> {
- _Tp operator() (_Tp __x, _Tp __y) const { return __x | __y; }
- };
-
- template<typename _Tp> struct _Bitwise_xor : binary_function<_Tp,_Tp,_Tp> {
- _Tp operator() (_Tp __x, _Tp __y) const { return __x ^ __y; }
- };
-
- template<typename _Tp> struct _Bitwise_not : unary_function<_Tp,_Tp> {
- _Tp operator() (_Tp __t) const { return ~__t; }
- };
-
- template<typename _Tp> struct _Shift_left : unary_function<_Tp,_Tp> {
- _Tp operator() (_Tp __x, _Tp __y) const { return __x << __y; }
- };
-
- template<typename _Tp> struct _Shift_right : unary_function<_Tp,_Tp> {
- _Tp operator() (_Tp __x, _Tp __y) const { return __x >> __y; }
- };
-
+ };
template<typename _Tp>
- inline const _Tp&
- valarray<_Tp>::operator[] (size_t __i) const
- { return _M_data[__i]; }
+ inline const _Tp&
+ valarray<_Tp>::operator[](size_t __i) const
+ { return _M_data[__i]; }
template<typename _Tp>
- inline _Tp&
- valarray<_Tp>::operator[] (size_t __i)
- { return _M_data[__i]; }
+ inline _Tp&
+ valarray<_Tp>::operator[](size_t __i)
+ { return _M_data[__i]; }
} // std::
-#include <bits/slice.h>
#include <bits/slice_array.h>
#include <bits/gslice.h>
#include <bits/gslice_array.h>
@@ -264,214 +239,227 @@ namespace std
namespace std
{
template<typename _Tp>
- inline valarray<_Tp>::valarray () : _M_size (0), _M_data (0) {}
+ inline
+ valarray<_Tp>::valarray() : _M_size(0), _M_data(0) {}
template<typename _Tp>
- inline valarray<_Tp>::valarray (size_t __n)
- : _M_size(__n), _M_data(__valarray_get_storage<_Tp>(__n))
- { __valarray_default_construct(_M_data, _M_data + __n); }
+ inline
+ valarray<_Tp>::valarray(size_t __n)
+ : _M_size(__n), _M_data(__valarray_get_storage<_Tp>(__n))
+ { __valarray_default_construct(_M_data, _M_data + __n); }
template<typename _Tp>
- inline valarray<_Tp>::valarray (const _Tp& __t, size_t __n)
- : _M_size(__n), _M_data(__valarray_get_storage<_Tp>(__n))
- { __valarray_fill_construct (_M_data, _M_data + __n, __t); }
+ inline
+ valarray<_Tp>::valarray(const _Tp& __t, size_t __n)
+ : _M_size(__n), _M_data(__valarray_get_storage<_Tp>(__n))
+ { __valarray_fill_construct(_M_data, _M_data + __n, __t); }
template<typename _Tp>
- inline valarray<_Tp>::valarray (const _Tp* __restrict__ __p, size_t __n)
- : _M_size(__n), _M_data(__valarray_get_storage<_Tp>(__n))
- { __valarray_copy_construct (__p, __p + __n, _M_data); }
+ inline
+ valarray<_Tp>::valarray(const _Tp* __restrict__ __p, size_t __n)
+ : _M_size(__n), _M_data(__valarray_get_storage<_Tp>(__n))
+ { __valarray_copy_construct(__p, __p + __n, _M_data); }
template<typename _Tp>
- inline valarray<_Tp>::valarray (const valarray<_Tp>& __v)
- : _M_size(__v._M_size), _M_data(__valarray_get_storage<_Tp>(__v._M_size))
- { __valarray_copy_construct (__v._M_data, __v._M_data + _M_size, _M_data); }
+ inline
+ valarray<_Tp>::valarray(const valarray<_Tp>& __v)
+ : _M_size(__v._M_size), _M_data(__valarray_get_storage<_Tp>(__v._M_size))
+ { __valarray_copy_construct(__v._M_data, __v._M_data + _M_size, _M_data); }
template<typename _Tp>
- inline valarray<_Tp>::valarray (const slice_array<_Tp>& __sa)
- : _M_size(__sa._M_sz), _M_data(__valarray_get_storage<_Tp>(__sa._M_sz))
- {
- __valarray_copy
- (__sa._M_array, __sa._M_sz, __sa._M_stride, _Array<_Tp>(_M_data));
- }
+ inline
+ valarray<_Tp>::valarray(const slice_array<_Tp>& __sa)
+ : _M_size(__sa._M_sz), _M_data(__valarray_get_storage<_Tp>(__sa._M_sz))
+ {
+ __valarray_copy
+ (__sa._M_array, __sa._M_sz, __sa._M_stride, _Array<_Tp>(_M_data));
+ }
template<typename _Tp>
- inline valarray<_Tp>::valarray (const gslice_array<_Tp>& __ga)
- : _M_size(__ga._M_index.size()),
- _M_data(__valarray_get_storage<_Tp>(_M_size))
- {
- __valarray_copy
- (__ga._M_array, _Array<size_t>(__ga._M_index),
- _Array<_Tp>(_M_data), _M_size);
- }
+ inline
+ valarray<_Tp>::valarray(const gslice_array<_Tp>& __ga)
+ : _M_size(__ga._M_index.size()),
+ _M_data(__valarray_get_storage<_Tp>(_M_size))
+ {
+ __valarray_copy
+ (__ga._M_array, _Array<size_t>(__ga._M_index),
+ _Array<_Tp>(_M_data), _M_size);
+ }
template<typename _Tp>
- inline valarray<_Tp>::valarray (const mask_array<_Tp>& __ma)
- : _M_size(__ma._M_sz), _M_data(__valarray_get_storage<_Tp>(__ma._M_sz))
- {
- __valarray_copy
- (__ma._M_array, __ma._M_mask, _Array<_Tp>(_M_data), _M_size);
- }
+ inline
+ valarray<_Tp>::valarray(const mask_array<_Tp>& __ma)
+ : _M_size(__ma._M_sz), _M_data(__valarray_get_storage<_Tp>(__ma._M_sz))
+ {
+ __valarray_copy
+ (__ma._M_array, __ma._M_mask, _Array<_Tp>(_M_data), _M_size);
+ }
template<typename _Tp>
- inline valarray<_Tp>::valarray (const indirect_array<_Tp>& __ia)
- : _M_size(__ia._M_sz), _M_data(__valarray_get_storage<_Tp>(__ia._M_sz))
- {
- __valarray_copy
- (__ia._M_array, __ia._M_index, _Array<_Tp>(_M_data), _M_size);
- }
+ inline
+ valarray<_Tp>::valarray(const indirect_array<_Tp>& __ia)
+ : _M_size(__ia._M_sz), _M_data(__valarray_get_storage<_Tp>(__ia._M_sz))
+ {
+ __valarray_copy
+ (__ia._M_array, __ia._M_index, _Array<_Tp>(_M_data), _M_size);
+ }
template<typename _Tp> template<class _Dom>
- inline valarray<_Tp>::valarray (const _Expr<_Dom, _Tp>& __e)
- : _M_size(__e.size ()), _M_data(__valarray_get_storage<_Tp>(_M_size))
- { __valarray_copy (__e, _M_size, _Array<_Tp>(_M_data)); }
+ inline
+ valarray<_Tp>::valarray(const _Expr<_Dom, _Tp>& __e)
+ : _M_size(__e.size()), _M_data(__valarray_get_storage<_Tp>(_M_size))
+ { __valarray_copy(__e, _M_size, _Array<_Tp>(_M_data)); }
template<typename _Tp>
- inline valarray<_Tp>::~valarray ()
- {
+ inline
+ valarray<_Tp>::~valarray()
+ {
__valarray_destroy_elements(_M_data, _M_data + _M_size);
__valarray_release_memory(_M_data);
- }
+ }
template<typename _Tp>
- inline valarray<_Tp>&
- valarray<_Tp>::operator= (const valarray<_Tp>& __v)
- {
+ inline valarray<_Tp>&
+ valarray<_Tp>::operator=(const valarray<_Tp>& __v)
+ {
__valarray_copy(__v._M_data, _M_size, _M_data);
return *this;
- }
+ }
template<typename _Tp>
- inline valarray<_Tp>&
- valarray<_Tp>::operator= (const _Tp& __t)
- {
- __valarray_fill (_M_data, _M_size, __t);
+ inline valarray<_Tp>&
+ valarray<_Tp>::operator=(const _Tp& __t)
+ {
+ __valarray_fill(_M_data, _M_size, __t);
return *this;
- }
+ }
template<typename _Tp>
- inline valarray<_Tp>&
- valarray<_Tp>::operator= (const slice_array<_Tp>& __sa)
- {
- __valarray_copy (__sa._M_array, __sa._M_sz,
- __sa._M_stride, _Array<_Tp>(_M_data));
+ inline valarray<_Tp>&
+ valarray<_Tp>::operator=(const slice_array<_Tp>& __sa)
+ {
+ __valarray_copy(__sa._M_array, __sa._M_sz,
+ __sa._M_stride, _Array<_Tp>(_M_data));
return *this;
- }
+ }
template<typename _Tp>
- inline valarray<_Tp>&
- valarray<_Tp>::operator= (const gslice_array<_Tp>& __ga)
- {
- __valarray_copy (__ga._M_array, _Array<size_t>(__ga._M_index),
- _Array<_Tp>(_M_data), _M_size);
+ inline valarray<_Tp>&
+ valarray<_Tp>::operator=(const gslice_array<_Tp>& __ga)
+ {
+ __valarray_copy(__ga._M_array, _Array<size_t>(__ga._M_index),
+ _Array<_Tp>(_M_data), _M_size);
return *this;
- }
+ }
template<typename _Tp>
- inline valarray<_Tp>&
- valarray<_Tp>::operator= (const mask_array<_Tp>& __ma)
- {
- __valarray_copy (__ma._M_array, __ma._M_mask,
- _Array<_Tp>(_M_data), _M_size);
+ inline valarray<_Tp>&
+ valarray<_Tp>::operator=(const mask_array<_Tp>& __ma)
+ {
+ __valarray_copy(__ma._M_array, __ma._M_mask,
+ _Array<_Tp>(_M_data), _M_size);
return *this;
- }
+ }
template<typename _Tp>
- inline valarray<_Tp>&
- valarray<_Tp>::operator= (const indirect_array<_Tp>& __ia)
- {
- __valarray_copy (__ia._M_array, __ia._M_index,
- _Array<_Tp>(_M_data), _M_size);
+ inline valarray<_Tp>&
+ valarray<_Tp>::operator=(const indirect_array<_Tp>& __ia)
+ {
+ __valarray_copy(__ia._M_array, __ia._M_index,
+ _Array<_Tp>(_M_data), _M_size);
return *this;
- }
+ }
template<typename _Tp> template<class _Dom>
- inline valarray<_Tp>&
- valarray<_Tp>::operator= (const _Expr<_Dom, _Tp>& __e)
- {
- __valarray_copy (__e, _M_size, _Array<_Tp>(_M_data));
- return *this;
- }
+ inline valarray<_Tp>&
+ valarray<_Tp>::operator=(const _Expr<_Dom, _Tp>& __e)
+ {
+ __valarray_copy(__e, _M_size, _Array<_Tp>(_M_data));
+ return *this;
+ }
template<typename _Tp>
- inline _Expr<_SClos<_ValArray,_Tp>, _Tp>
- valarray<_Tp>::operator[] (slice __s) const
- {
+ inline _Expr<_SClos<_ValArray,_Tp>, _Tp>
+ valarray<_Tp>::operator[](slice __s) const
+ {
typedef _SClos<_ValArray,_Tp> _Closure;
- return _Expr<_Closure, _Tp> (_Closure (_Array<_Tp>(_M_data), __s));
- }
+ return _Expr<_Closure, _Tp>(_Closure (_Array<_Tp>(_M_data), __s));
+ }
template<typename _Tp>
- inline slice_array<_Tp>
- valarray<_Tp>::operator[] (slice __s)
- {
- return slice_array<_Tp> (_Array<_Tp>(_M_data), __s);
- }
+ inline slice_array<_Tp>
+ valarray<_Tp>::operator[](slice __s)
+ {
+ return slice_array<_Tp>(_Array<_Tp>(_M_data), __s);
+ }
template<typename _Tp>
- inline _Expr<_GClos<_ValArray,_Tp>, _Tp>
- valarray<_Tp>::operator[] (const gslice& __gs) const
- {
+ inline _Expr<_GClos<_ValArray,_Tp>, _Tp>
+ valarray<_Tp>::operator[](const gslice& __gs) const
+ {
typedef _GClos<_ValArray,_Tp> _Closure;
return _Expr<_Closure, _Tp>
- (_Closure (_Array<_Tp>(_M_data), __gs._M_index->_M_index));
- }
+ (_Closure(_Array<_Tp>(_M_data), __gs._M_index->_M_index));
+ }
template<typename _Tp>
- inline gslice_array<_Tp>
- valarray<_Tp>::operator[] (const gslice& __gs)
- {
+ inline gslice_array<_Tp>
+ valarray<_Tp>::operator[](const gslice& __gs)
+ {
return gslice_array<_Tp>
- (_Array<_Tp>(_M_data), __gs._M_index->_M_index);
- }
+ (_Array<_Tp>(_M_data), __gs._M_index->_M_index);
+ }
template<typename _Tp>
- inline valarray<_Tp>
- valarray<_Tp>::operator[] (const valarray<bool>& __m) const
- {
- size_t __s (0);
- size_t __e (__m.size ());
+ inline valarray<_Tp>
+ valarray<_Tp>::operator[](const valarray<bool>& __m) const
+ {
+ size_t __s = 0;
+ size_t __e = __m.size();
for (size_t __i=0; __i<__e; ++__i)
- if (__m[__i]) ++__s;
- return valarray<_Tp> (mask_array<_Tp> (_Array<_Tp>(_M_data), __s,
- _Array<bool> (__m)));
- }
+ if (__m[__i]) ++__s;
+ return valarray<_Tp>(mask_array<_Tp>(_Array<_Tp>(_M_data), __s,
+ _Array<bool> (__m)));
+ }
template<typename _Tp>
- inline mask_array<_Tp>
- valarray<_Tp>::operator[] (const valarray<bool>& __m)
- {
- size_t __s (0);
- size_t __e (__m.size ());
+ inline mask_array<_Tp>
+ valarray<_Tp>::operator[](const valarray<bool>& __m)
+ {
+ size_t __s = 0;
+ size_t __e = __m.size();
for (size_t __i=0; __i<__e; ++__i)
- if (__m[__i]) ++__s;
- return mask_array<_Tp> (_Array<_Tp>(_M_data), __s, _Array<bool> (__m));
- }
+ if (__m[__i]) ++__s;
+ return mask_array<_Tp>(_Array<_Tp>(_M_data), __s, _Array<bool>(__m));
+ }
template<typename _Tp>
- inline _Expr<_IClos<_ValArray,_Tp>, _Tp>
- valarray<_Tp>::operator[] (const valarray<size_t>& __i) const
- {
+ inline _Expr<_IClos<_ValArray,_Tp>, _Tp>
+ valarray<_Tp>::operator[](const valarray<size_t>& __i) const
+ {
typedef _IClos<_ValArray,_Tp> _Closure;
- return _Expr<_Closure, _Tp> (_Closure (*this, __i));
- }
+ return _Expr<_Closure, _Tp>(_Closure(*this, __i));
+ }
template<typename _Tp>
- inline indirect_array<_Tp>
- valarray<_Tp>::operator[] (const valarray<size_t>& __i)
- {
- return indirect_array<_Tp> (_Array<_Tp>(_M_data), __i.size(),
- _Array<size_t> (__i));
- }
+ inline indirect_array<_Tp>
+ valarray<_Tp>::operator[](const valarray<size_t>& __i)
+ {
+ return indirect_array<_Tp>(_Array<_Tp>(_M_data), __i.size(),
+ _Array<size_t>(__i));
+ }
template<class _Tp>
- inline size_t valarray<_Tp>::size () const { return _M_size; }
+ inline size_t
+ valarray<_Tp>::size() const
+ { return _M_size; }
template<class _Tp>
- inline _Tp
- valarray<_Tp>::sum () const
- {
+ inline _Tp
+ valarray<_Tp>::sum() const
+ {
return __valarray_sum(_M_data, _M_data + _M_size);
- }
+ }
// template<typename _Tp>
// inline _Tp
@@ -530,209 +518,172 @@ namespace std
}
template <class _Tp>
- inline void
- valarray<_Tp>::resize (size_t __n, _Tp __c)
- {
- // This complication is so to make valarray<valarray<T> > work
- // even though it is not required by the standard. Nobody should
- // be saying valarray<valarray<T> > anyway. See the specs.
- __valarray_destroy_elements(_M_data, _M_data + _M_size);
- if (_M_size != __n)
- {
- __valarray_release_memory(_M_data);
- _M_size = __n;
- _M_data = __valarray_get_storage<_Tp>(__n);
- }
- __valarray_fill_construct(_M_data, _M_data + __n, __c);
- }
+ inline void
+ valarray<_Tp>::resize (size_t __n, _Tp __c)
+ {
+ // This complication is so to make valarray<valarray<T> > work
+ // even though it is not required by the standard. Nobody should
+ // be saying valarray<valarray<T> > anyway. See the specs.
+ __valarray_destroy_elements(_M_data, _M_data + _M_size);
+ if (_M_size != __n)
+ {
+ __valarray_release_memory(_M_data);
+ _M_size = __n;
+ _M_data = __valarray_get_storage<_Tp>(__n);
+ }
+ __valarray_fill_construct(_M_data, _M_data + __n, __c);
+ }
template<typename _Tp>
- inline _Tp
- valarray<_Tp>::min() const
- {
+ inline _Tp
+ valarray<_Tp>::min() const
+ {
return *min_element (_M_data, _M_data+_M_size);
- }
+ }
template<typename _Tp>
- inline _Tp
- valarray<_Tp>::max() const
- {
+ inline _Tp
+ valarray<_Tp>::max() const
+ {
return *max_element (_M_data, _M_data+_M_size);
- }
+ }
template<class _Tp>
- inline _Expr<_ValFunClos<_ValArray,_Tp>,_Tp>
- valarray<_Tp>::apply (_Tp func (_Tp)) const
- {
+ inline _Expr<_ValFunClos<_ValArray,_Tp>,_Tp>
+ valarray<_Tp>::apply(_Tp func(_Tp)) const
+ {
typedef _ValFunClos<_ValArray,_Tp> _Closure;
- return _Expr<_Closure,_Tp> (_Closure (*this, func));
- }
+ return _Expr<_Closure,_Tp>(_Closure(*this, func));
+ }
template<class _Tp>
- inline _Expr<_RefFunClos<_ValArray,_Tp>,_Tp>
- valarray<_Tp>::apply (_Tp func (const _Tp &)) const
- {
+ inline _Expr<_RefFunClos<_ValArray,_Tp>,_Tp>
+ valarray<_Tp>::apply(_Tp func(const _Tp &)) const
+ {
typedef _RefFunClos<_ValArray,_Tp> _Closure;
- return _Expr<_Closure,_Tp> (_Closure (*this, func));
- }
+ return _Expr<_Closure,_Tp>(_Closure(*this, func));
+ }
#define _DEFINE_VALARRAY_UNARY_OPERATOR(_Op, _Name) \
template<typename _Tp> \
- inline _Expr<_UnClos<_Name,_ValArray,_Tp>, _Tp> \
+ inline typename valarray<_Tp>::template _UnaryOp<_Name>::_Rt \
valarray<_Tp>::operator _Op() const \
{ \
- typedef _UnClos<_Name,_ValArray,_Tp> _Closure; \
- return _Expr<_Closure, _Tp> (_Closure (*this)); \
+ typedef _UnClos<_Name,_ValArray,_Tp> _Closure; \
+ typedef typename __fun<_Name, _Tp>::result_type _Rt; \
+ return _Expr<_Closure, _Rt>(_Closure(*this)); \
}
- _DEFINE_VALARRAY_UNARY_OPERATOR(+, _Unary_plus)
- _DEFINE_VALARRAY_UNARY_OPERATOR(-, negate)
- _DEFINE_VALARRAY_UNARY_OPERATOR(~, _Bitwise_not)
+ _DEFINE_VALARRAY_UNARY_OPERATOR(+, __unary_plus)
+ _DEFINE_VALARRAY_UNARY_OPERATOR(-, __negate)
+ _DEFINE_VALARRAY_UNARY_OPERATOR(~, __bitwise_not)
+ _DEFINE_VALARRAY_UNARY_OPERATOR (!, __logical_not)
#undef _DEFINE_VALARRAY_UNARY_OPERATOR
-
- template<typename _Tp>
- inline _Expr<_UnClos<logical_not,_ValArray,_Tp>, bool>
- valarray<_Tp>::operator!() const
- {
- typedef _UnClos<logical_not,_ValArray,_Tp> _Closure;
- return _Expr<_Closure, bool> (_Closure (*this));
- }
#define _DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(_Op, _Name) \
template<class _Tp> \
- inline valarray<_Tp> & \
- valarray<_Tp>::operator _Op##= (const _Tp &__t) \
- { \
- _Array_augmented_##_Name (_Array<_Tp>(_M_data), _M_size, __t); \
+ inline valarray<_Tp>& \
+ valarray<_Tp>::operator _Op##=(const _Tp &__t) \
+ { \
+ _Array_augmented_##_Name(_Array<_Tp>(_M_data), _M_size, __t); \
return *this; \
- } \
+ } \
\
template<class _Tp> \
- inline valarray<_Tp> & \
- valarray<_Tp>::operator _Op##= (const valarray<_Tp> &__v) \
- { \
- _Array_augmented_##_Name (_Array<_Tp>(_M_data), _M_size, \
- _Array<_Tp>(__v._M_data)); \
+ inline valarray<_Tp>& \
+ valarray<_Tp>::operator _Op##=(const valarray<_Tp> &__v) \
+ { \
+ _Array_augmented_##_Name(_Array<_Tp>(_M_data), _M_size, \
+ _Array<_Tp>(__v._M_data)); \
return *this; \
- }
-
-_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(+, plus)
-_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(-, minus)
-_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(*, multiplies)
-_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(/, divides)
-_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(%, modulus)
-_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(^, xor)
-_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(&, and)
-_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(|, or)
-_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(<<, shift_left)
-_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(>>, shift_right)
+ }
+
+_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(+, __plus)
+_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(-, __minus)
+_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(*, __multiplies)
+_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(/, __divides)
+_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(%, __modulus)
+_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(^, __bitwise_xor)
+_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(&, __bitwise_and)
+_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(|, __bitwise_or)
+_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(<<, __shift_left)
+_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(>>, __shift_right)
#undef _DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT
-
-} // std::
-
-
-namespace std
-{
-
#define _DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(_Op, _Name) \
template<class _Tp> template<class _Dom> \
- inline valarray<_Tp> & \
- valarray<_Tp>::operator _Op##= (const _Expr<_Dom,_Tp> &__e) \
- { \
- _Array_augmented_##_Name (_Array<_Tp>(_M_data), __e, _M_size); \
+ inline valarray<_Tp>& \
+ valarray<_Tp>::operator _Op##=(const _Expr<_Dom,_Tp>& __e) \
+ { \
+ _Array_augmented_##_Name(_Array<_Tp>(_M_data), __e, _M_size); \
return *this; \
- }
-
-_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(+, plus)
-_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(-, minus)
-_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(*, multiplies)
-_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(/, divides)
-_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(%, modulus)
-_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(^, xor)
-_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(&, and)
-_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(|, or)
-_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(<<, shift_left)
-_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(>>, shift_right)
+ }
+
+_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(+, __plus)
+_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(-, __minus)
+_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(*, __multiplies)
+_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(/, __divides)
+_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(%, __modulus)
+_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(^, __bitwise_xor)
+_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(&, __bitwise_and)
+_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(|, __bitwise_or)
+_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(<<, __shift_left)
+_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(>>, __shift_right)
#undef _DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT
#define _DEFINE_BINARY_OPERATOR(_Op, _Name) \
template<typename _Tp> \
- inline _Expr<_BinClos<_Name,_ValArray,_ValArray,_Tp,_Tp>, _Tp> \
- operator _Op (const valarray<_Tp> &__v, const valarray<_Tp> &__w) \
- { \
+ inline _Expr<_BinClos<_Name,_ValArray,_ValArray,_Tp,_Tp>, \
+ typename __fun<_Name, _Tp>::result_type> \
+ operator _Op(const valarray<_Tp>& __v, const valarray<_Tp>& __w) \
+ { \
typedef _BinClos<_Name,_ValArray,_ValArray,_Tp,_Tp> _Closure; \
- return _Expr<_Closure, _Tp> (_Closure (__v, __w)); \
- } \
+ typedef typename __fun<_Name, _Tp>::result_type _Rt; \
+ return _Expr<_Closure, _Rt>(_Closure(__v, __w)); \
+ } \
\
template<typename _Tp> \
- inline _Expr<_BinClos<_Name,_ValArray,_Constant,_Tp,_Tp>,_Tp> \
- operator _Op (const valarray<_Tp> &__v, const _Tp &__t) \
+ inline _Expr<_BinClos<_Name,_ValArray,_Constant,_Tp,_Tp>, \
+ typename __fun<_Name, _Tp>::result_type> \
+ operator _Op(const valarray<_Tp>& __v, const _Tp& __t) \
{ \
- typedef _BinClos<_Name,_ValArray,_Constant,_Tp,_Tp> _Closure; \
- return _Expr<_Closure, _Tp> (_Closure (__v, __t)); \
+ typedef _BinClos<_Name,_ValArray,_Constant,_Tp,_Tp> _Closure; \
+ typedef typename __fun<_Name, _Tp>::result_type _Rt; \
+ return _Expr<_Closure, _Rt>(_Closure(__v, __t)); \
} \
\
template<typename _Tp> \
- inline _Expr<_BinClos<_Name,_Constant,_ValArray,_Tp,_Tp>,_Tp> \
- operator _Op (const _Tp &__t, const valarray<_Tp> &__v) \
- { \
- typedef _BinClos<_Name,_Constant,_ValArray,_Tp,_Tp> _Closure; \
- return _Expr<_Closure, _Tp> (_Closure (__t, __v)); \
- }
-
-_DEFINE_BINARY_OPERATOR(+, plus)
-_DEFINE_BINARY_OPERATOR(-, minus)
-_DEFINE_BINARY_OPERATOR(*, multiplies)
-_DEFINE_BINARY_OPERATOR(/, divides)
-_DEFINE_BINARY_OPERATOR(%, modulus)
-_DEFINE_BINARY_OPERATOR(^, _Bitwise_xor)
-_DEFINE_BINARY_OPERATOR(&, _Bitwise_and)
-_DEFINE_BINARY_OPERATOR(|, _Bitwise_or)
-_DEFINE_BINARY_OPERATOR(<<, _Shift_left)
-_DEFINE_BINARY_OPERATOR(>>, _Shift_right)
-
-#undef _DEFINE_BINARY_OPERATOR
-
-#define _DEFINE_LOGICAL_OPERATOR(_Op, _Name) \
- template<typename _Tp> \
- inline _Expr<_BinClos<_Name,_ValArray,_ValArray,_Tp,_Tp>,bool> \
- operator _Op (const valarray<_Tp> &__v, const valarray<_Tp> &__w) \
- { \
- typedef _BinClos<_Name,_ValArray,_ValArray,_Tp,_Tp> _Closure; \
- return _Expr<_Closure, bool> (_Closure (__v, __w)); \
- } \
- \
- template<class _Tp> \
- inline _Expr<_BinClos<_Name,_ValArray,_Constant,_Tp,_Tp>,bool> \
- operator _Op (const valarray<_Tp> &__v, const _Tp &__t) \
+ inline _Expr<_BinClos<_Name,_Constant,_ValArray,_Tp,_Tp>, \
+ typename __fun<_Name, _Tp>::result_type> \
+ operator _Op(const _Tp& __t, const valarray<_Tp>& __v) \
{ \
- typedef _BinClos<_Name,_ValArray,_Constant,_Tp,_Tp> _Closure; \
- return _Expr<_Closure, bool> (_Closure (__v, __t)); \
- } \
- \
- template<class _Tp> \
- inline _Expr<_BinClos<_Name,_Constant,_ValArray,_Tp,_Tp>,bool> \
- operator _Op (const _Tp &__t, const valarray<_Tp> &__v) \
- { \
- typedef _BinClos<_Name,_Constant,_ValArray,_Tp,_Tp> _Closure; \
- return _Expr<_Closure, bool> (_Closure (__t, __v)); \
- }
-
-_DEFINE_LOGICAL_OPERATOR(&&, logical_and)
-_DEFINE_LOGICAL_OPERATOR(||, logical_or)
-_DEFINE_LOGICAL_OPERATOR(==, equal_to)
-_DEFINE_LOGICAL_OPERATOR(!=, not_equal_to)
-_DEFINE_LOGICAL_OPERATOR(<, less)
-_DEFINE_LOGICAL_OPERATOR(>, greater)
-_DEFINE_LOGICAL_OPERATOR(<=, less_equal)
-_DEFINE_LOGICAL_OPERATOR(>=, greater_equal)
-
-#undef _DEFINE_LOGICAL_OPERATOR
+ typedef _BinClos<_Name,_Constant,_ValArray,_Tp,_Tp> _Closure; \
+ typedef typename __fun<_Name, _Tp>::result_type _Rt; \
+ return _Expr<_Closure, _Tp>(_Closure(__t, __v)); \
+ }
+
+_DEFINE_BINARY_OPERATOR(+, __plus)
+_DEFINE_BINARY_OPERATOR(-, __minus)
+_DEFINE_BINARY_OPERATOR(*, __multiplies)
+_DEFINE_BINARY_OPERATOR(/, __divides)
+_DEFINE_BINARY_OPERATOR(%, __modulus)
+_DEFINE_BINARY_OPERATOR(^, __bitwise_xor)
+_DEFINE_BINARY_OPERATOR(&, __bitwise_and)
+_DEFINE_BINARY_OPERATOR(|, __bitwise_or)
+_DEFINE_BINARY_OPERATOR(<<, __shift_left)
+_DEFINE_BINARY_OPERATOR(>>, __shift_right)
+_DEFINE_BINARY_OPERATOR(&&, __logical_and)
+_DEFINE_BINARY_OPERATOR(||, __logical_or)
+_DEFINE_BINARY_OPERATOR(==, __equal_to)
+_DEFINE_BINARY_OPERATOR(!=, __not_equal_to)
+_DEFINE_BINARY_OPERATOR(<, __less)
+_DEFINE_BINARY_OPERATOR(>, __greater)
+_DEFINE_BINARY_OPERATOR(<=, __less_equal)
+_DEFINE_BINARY_OPERATOR(>=, __greater_equal)
} // namespace std
diff --git a/contrib/libstdc++/include/std/std_vector.h b/contrib/libstdc++/include/std/std_vector.h
index 4120aa9..5738ef7 100644
--- a/contrib/libstdc++/include/std/std_vector.h
+++ b/contrib/libstdc++/include/std/std_vector.h
@@ -71,8 +71,9 @@
#include <bits/stl_vector.h>
#include <bits/stl_bvector.h>
+#ifdef _GLIBCPP_NO_TEMPLATE_EXPORT
+# include <bits/vector.tcc>
+#endif
+
#endif /* _CPP_VECTOR */
-// Local Variables:
-// mode:C++
-// End:
diff --git a/contrib/libstdc++/libmath/Makefile.am b/contrib/libstdc++/libmath/Makefile.am
index c1bf4be..30d3dce 100644
--- a/contrib/libstdc++/libmath/Makefile.am
+++ b/contrib/libstdc++/libmath/Makefile.am
@@ -41,4 +41,4 @@ INCLUDES = \
$(TOPLEVEL_INCLUDES)
# Only compiling "C" sources in this directory.
-LIBTOOL = @LIBTOOL@ --tag CC \ No newline at end of file
+LIBTOOL = @LIBTOOL@ --tag CC
diff --git a/contrib/libstdc++/libmath/Makefile.in b/contrib/libstdc++/libmath/Makefile.in
index 697bc32..658627d 100644
--- a/contrib/libstdc++/libmath/Makefile.in
+++ b/contrib/libstdc++/libmath/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
@@ -67,15 +67,24 @@ AR = @AR@
AS = @AS@
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
AWK = @AWK@
+BASIC_FILE_CC = @BASIC_FILE_CC@
BASIC_FILE_H = @BASIC_FILE_H@
CC = @CC@
CCODECVT_C = @CCODECVT_C@
+CCODECVT_CC = @CCODECVT_CC@
CCODECVT_H = @CCODECVT_H@
+CCOLLATE_CC = @CCOLLATE_CC@
+CCTYPE_CC = @CCTYPE_CC@
+CLOCALE_CC = @CLOCALE_CC@
CLOCALE_H = @CLOCALE_H@
+CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
+CMESSAGES_CC = @CMESSAGES_CC@
CMESSAGES_H = @CMESSAGES_H@
+CMONEY_CC = @CMONEY_CC@
+CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
-CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@
CSTDIO_H = @CSTDIO_H@
+CTIME_CC = @CTIME_CC@
CTIME_H = @CTIME_H@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -107,6 +116,7 @@ RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
STRIP = @STRIP@
+SYMVER_MAP = @SYMVER_MAP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_FLAGS = @WARN_FLAGS@
diff --git a/contrib/libstdc++/libmath/stubs.c b/contrib/libstdc++/libmath/stubs.c
index 586fd6d..1968bff 100644
--- a/contrib/libstdc++/libmath/stubs.c
+++ b/contrib/libstdc++/libmath/stubs.c
@@ -1,6 +1,6 @@
/* Stub definitions for libmath subpart of libstdc++. */
-/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU ISO C++ Library. This library is free
software; you can redistribute it and/or modify it under the
@@ -108,6 +108,8 @@ float
hypotf(float x, float y)
{
float s = fabsf(x) + fabsf(y);
+ if (s == 0.0F)
+ return s;
x /= s; y /= s;
return s * sqrtf(x * x + y * y);
}
@@ -118,6 +120,8 @@ double
hypot(double x, double y)
{
double s = fabs(x) + fabs(y);
+ if (s == 0.0)
+ return s;
x /= s; y /= s;
return s * sqrt(x * x + y * y);
}
@@ -128,6 +132,8 @@ long double
hypotl(long double x, long double y)
{
long double s = fabsl(x) + fabsl(y);
+ if (s == 0.0L)
+ return s;
x /= s; y /= s;
return s * sqrtl(x * x + y * y);
}
diff --git a/contrib/libstdc++/libsupc++/Makefile.am b/contrib/libstdc++/libsupc++/Makefile.am
index 0a741de..8d66e0e 100644
--- a/contrib/libstdc++/libsupc++/Makefile.am
+++ b/contrib/libstdc++/libsupc++/Makefile.am
@@ -1,6 +1,6 @@
## Makefile for the GNU C++ Support library.
##
-## Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+## Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
##
## Process this file with automake to produce Makefile.in.
##
@@ -47,9 +47,8 @@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS
-# NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden.
CONFIG_CXXFLAGS = \
- @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @DEBUG_FLAGS@
+ @SECTION_FLAGS@ @EXTRA_CXX_FLAGS@
# Warning flags to use.
WARN_CXXFLAGS = \
@@ -84,6 +83,7 @@ sources = \
eh_terminate.cc \
eh_throw.cc \
eh_type.cc \
+ guard.cc \
new_handler.cc \
new_op.cc \
new_opnt.cc \
@@ -97,7 +97,7 @@ sources = \
libsupc___la_SOURCES = $(sources) $(c_sources)
libsupc__convenience_la_SOURCES = $(sources) $(c_sources)
-glibcppinstalldir = @gxx_include_dir@
+glibcppinstalldir = $(gxx_include_dir)
glibcppinstall_HEADERS = $(headers)
LIBSUPCXX_CXXFLAGS = $(LIBSUPCXX_PICFLAGS)
@@ -126,8 +126,8 @@ dyn-string.o: dyn-string.c
# LTCOMPILE is copied from LTCXXCOMPILE below.
LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared --mode=compile $(CC) \
- $(DEFS) $(GCC_INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
+ $(DEFS) $(GCC_INCLUDES) $(LIBSUPCXX_PICFLAGS) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
# AM_CXXFLAGS needs to be in each subdirectory so that it can be
@@ -142,6 +142,9 @@ AM_CXXFLAGS = \
$(OPTIMIZE_CXXFLAGS) \
$(CONFIG_CXXFLAGS)
+AM_MAKEFLAGS = \
+ "gxx_include_dir=$(gxx_include_dir)"
+
# libstdc++ libtool notes
# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
diff --git a/contrib/libstdc++/libsupc++/Makefile.in b/contrib/libstdc++/libsupc++/Makefile.in
index 9de2f5f..843c7f4 100644
--- a/contrib/libstdc++/libsupc++/Makefile.in
+++ b/contrib/libstdc++/libsupc++/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
@@ -67,14 +67,23 @@ AR = @AR@
AS = @AS@
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
AWK = @AWK@
+BASIC_FILE_CC = @BASIC_FILE_CC@
BASIC_FILE_H = @BASIC_FILE_H@
CCODECVT_C = @CCODECVT_C@
+CCODECVT_CC = @CCODECVT_CC@
CCODECVT_H = @CCODECVT_H@
+CCOLLATE_CC = @CCOLLATE_CC@
+CCTYPE_CC = @CCTYPE_CC@
+CLOCALE_CC = @CLOCALE_CC@
CLOCALE_H = @CLOCALE_H@
+CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
+CMESSAGES_CC = @CMESSAGES_CC@
CMESSAGES_H = @CMESSAGES_H@
+CMONEY_CC = @CMONEY_CC@
+CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
-CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@
CSTDIO_H = @CSTDIO_H@
+CTIME_CC = @CTIME_CC@
CTIME_H = @CTIME_H@
CXXCPP = @CXXCPP@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
@@ -103,6 +112,7 @@ RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
STRIP = @STRIP@
+SYMVER_MAP = @SYMVER_MAP@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
@@ -153,9 +163,8 @@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS
-# NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden.
CONFIG_CXXFLAGS = \
- @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @DEBUG_FLAGS@
+ @SECTION_FLAGS@ @EXTRA_CXX_FLAGS@
# Warning flags to use.
@@ -195,6 +204,7 @@ sources = \
eh_terminate.cc \
eh_throw.cc \
eh_type.cc \
+ guard.cc \
new_handler.cc \
new_op.cc \
new_opnt.cc \
@@ -209,7 +219,7 @@ sources = \
libsupc___la_SOURCES = $(sources) $(c_sources)
libsupc__convenience_la_SOURCES = $(sources) $(c_sources)
-glibcppinstalldir = @gxx_include_dir@
+glibcppinstalldir = $(gxx_include_dir)
glibcppinstall_HEADERS = $(headers)
LIBSUPCXX_CXXFLAGS = $(LIBSUPCXX_PICFLAGS)
@@ -224,8 +234,8 @@ C_COMPILE = \
# LTCOMPILE is copied from LTCXXCOMPILE below.
LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared --mode=compile $(CC) \
- $(DEFS) $(GCC_INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
+ $(DEFS) $(GCC_INCLUDES) $(LIBSUPCXX_PICFLAGS) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
# AM_CXXFLAGS needs to be in each subdirectory so that it can be
@@ -241,6 +251,10 @@ AM_CXXFLAGS = \
$(CONFIG_CXXFLAGS)
+AM_MAKEFLAGS = \
+ "gxx_include_dir=$(gxx_include_dir)"
+
+
# libstdc++ libtool notes
# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
@@ -291,15 +305,15 @@ libsupc__convenience_la_LIBADD =
libsupc__convenience_la_OBJECTS = del_op.lo del_opnt.lo del_opv.lo \
del_opvnt.lo eh_alloc.lo eh_aux_runtime.lo eh_catch.lo eh_exception.lo \
eh_globals.lo eh_personality.lo eh_terminate.lo eh_throw.lo eh_type.lo \
-new_handler.lo new_op.lo new_opnt.lo new_opv.lo new_opvnt.lo pure.lo \
-tinfo.lo tinfo2.lo vec.lo cxa_demangle.lo dyn-string.lo
+guard.lo new_handler.lo new_op.lo new_opnt.lo new_opv.lo new_opvnt.lo \
+pure.lo tinfo.lo tinfo2.lo vec.lo cxa_demangle.lo dyn-string.lo
libsupc___la_LDFLAGS =
libsupc___la_LIBADD =
libsupc___la_OBJECTS = del_op.lo del_opnt.lo del_opv.lo del_opvnt.lo \
eh_alloc.lo eh_aux_runtime.lo eh_catch.lo eh_exception.lo eh_globals.lo \
-eh_personality.lo eh_terminate.lo eh_throw.lo eh_type.lo new_handler.lo \
-new_op.lo new_opnt.lo new_opv.lo new_opvnt.lo pure.lo tinfo.lo \
-tinfo2.lo vec.lo cxa_demangle.lo dyn-string.lo
+eh_personality.lo eh_terminate.lo eh_throw.lo eh_type.lo guard.lo \
+new_handler.lo new_op.lo new_opnt.lo new_opv.lo new_opvnt.lo pure.lo \
+tinfo.lo tinfo2.lo vec.lo cxa_demangle.lo dyn-string.lo
CXXFLAGS = @CXXFLAGS@
CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
CXXLD = $(CXX)
diff --git a/contrib/libstdc++/libsupc++/cxxabi.h b/contrib/libstdc++/libsupc++/cxxabi.h
index 371b77e..adb1a00 100644
--- a/contrib/libstdc++/libsupc++/cxxabi.h
+++ b/contrib/libstdc++/libsupc++/cxxabi.h
@@ -500,7 +500,42 @@ void __cxa_vec_delete3 (void *__array_address,
__SIZE_TYPE__ __padding_size,
void (*__destructor) (void *),
void (*__dealloc) (void *, __SIZE_TYPE__));
-
+
+/* guard variables */
+
+/* The ABI requires a 64-bit type. */
+__extension__ typedef int __guard __attribute__((mode (__DI__)));
+
+extern "C"
+int __cxa_guard_acquire (__guard *);
+
+extern "C"
+void __cxa_guard_release (__guard *);
+
+extern "C"
+void __cxa_guard_abort (__guard *);
+
+/* pure virtual functions */
+
+extern "C" void
+__cxa_pure_virtual (void);
+
+/* exception handling */
+
+extern "C" void
+__cxa_bad_cast ();
+
+extern "C" void
+__cxa_bad_typeid ();
+
+/* DSO destruction */
+
+extern "C" int
+__cxa_atexit (void (*)(void *), void *, void *);
+
+extern "C" int
+__cxa_finalize (void *);
+
/* demangling routines */
extern "C"
diff --git a/contrib/libstdc++/libsupc++/eh_catch.cc b/contrib/libstdc++/libsupc++/eh_catch.cc
index ba49dfe..4a678eb9 100644
--- a/contrib/libstdc++/libsupc++/eh_catch.cc
+++ b/contrib/libstdc++/libsupc++/eh_catch.cc
@@ -1,5 +1,5 @@
// -*- C++ -*- Exception handling routines for catching.
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
//
// This file is part of GNU CC.
//
@@ -39,15 +39,28 @@ __cxa_begin_catch (void *exc_obj_in)
{
_Unwind_Exception *exceptionObject
= reinterpret_cast <_Unwind_Exception *>(exc_obj_in);
-
- // ??? Foreign exceptions can't be stacked here, and there doesn't
- // appear to be any place to store for __cxa_end_catch to destroy.
-
- __cxa_exception *header = __get_exception_header_from_ue (exceptionObject);
__cxa_eh_globals *globals = __cxa_get_globals ();
__cxa_exception *prev = globals->caughtExceptions;
- int count = header->handlerCount;
+ __cxa_exception *header = __get_exception_header_from_ue (exceptionObject);
+
+ // Foreign exceptions can't be stacked here. If the exception stack is
+ // empty, then fine. Otherwise we really have no choice but to terminate.
+ // Note that this use of "header" is a lie. It's fine so long as we only
+ // examine header->unwindHeader though.
+ if (header->unwindHeader.exception_class != __gxx_exception_class)
+ {
+ if (prev != 0)
+ std::terminate ();
+
+ // Remember for end_catch and rethrow.
+ globals->caughtExceptions = header;
+
+ // ??? No sensible value to return; we don't know what the
+ // object is, much less where it is in relation to the header.
+ return 0;
+ }
+ int count = header->handlerCount;
if (count < 0)
// This exception was rethrown from an immediately enclosing region.
count = -count + 1;
@@ -71,8 +84,22 @@ __cxa_end_catch ()
{
__cxa_eh_globals *globals = __cxa_get_globals_fast ();
__cxa_exception *header = globals->caughtExceptions;
- int count = header->handlerCount;
+ // A rethrow of a foreign exception will be removed from the
+ // the exception stack immediately by __cxa_rethrow.
+ if (!header)
+ return;
+
+ // A foreign exception couldn't have been stacked (see above),
+ // so by definition processing must be complete.
+ if (header->unwindHeader.exception_class != __gxx_exception_class)
+ {
+ globals->caughtExceptions = 0;
+ _Unwind_DeleteException (&header->unwindHeader);
+ return;
+ }
+
+ int count = header->handlerCount;
if (count < 0)
{
// This exception was rethrown. Decrement the (inverted) catch
@@ -92,7 +119,7 @@ __cxa_end_catch ()
}
else if (count < 0)
// A bug in the exception handling library or compiler.
- std::abort ();
+ std::terminate ();
header->handlerCount = count;
}
diff --git a/contrib/libstdc++/libsupc++/eh_personality.cc b/contrib/libstdc++/libsupc++/eh_personality.cc
index 58c266a..2b315c3 100644
--- a/contrib/libstdc++/libsupc++/eh_personality.cc
+++ b/contrib/libstdc++/libsupc++/eh_personality.cc
@@ -1,5 +1,5 @@
// -*- C++ -*- The GNU C++ exception personality routine.
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of GNU CC.
//
@@ -124,6 +124,8 @@ get_adjusted_ptr (const std::type_info *catch_type,
return false;
}
+// Return true if THROW_TYPE matches one if the filter types.
+
static bool
check_exception_spec (lsda_header_info *info, const std::type_info *throw_type,
void *thrown_ptr, _Unwind_Sword filter_value)
@@ -154,6 +156,18 @@ check_exception_spec (lsda_header_info *info, const std::type_info *throw_type,
}
}
+// Return true if the filter spec is empty, ie throw().
+
+static bool
+empty_exception_spec (lsda_header_info *info, _Unwind_Sword filter_value)
+{
+ const unsigned char *e = info->TType - filter_value - 1;
+ _Unwind_Word tmp;
+
+ e = read_uleb128 (e, &tmp);
+ return tmp == 0;
+}
+
// Using a different personality function name causes link failures
// when trying to mix code using different exception handling models.
#ifdef _GLIBCPP_SJLJ_EXCEPTIONS
@@ -197,6 +211,7 @@ PERSONALITY_FUNCTION (int version,
&& exception_class == __gxx_exception_class)
{
handler_switch_value = xh->handlerSwitchValue;
+ language_specific_data = xh->languageSpecificData;
landing_pad = (_Unwind_Ptr) xh->catchTemp;
found_type = (landing_pad == 0 ? found_terminate : found_handler);
goto install_context;
@@ -275,7 +290,7 @@ PERSONALITY_FUNCTION (int version,
// If ip is not present in the table, call terminate. This is for
// a destructor inside a cleanup, or a library routine the compiler
// was not expecting to throw.
- found_type = (actions & _UA_FORCE_UNWIND ? found_nothing : found_terminate);
+ found_type = found_terminate;
goto do_something;
found_something:
@@ -327,23 +342,15 @@ PERSONALITY_FUNCTION (int version,
// Positive filter values are handlers.
catch_type = get_ttype_entry (&info, ar_filter);
- // Null catch type is a catch-all handler. We can catch
- // foreign exceptions with this.
- if (! catch_type)
- {
- if (!(actions & _UA_FORCE_UNWIND))
- {
- saw_handler = true;
- break;
- }
- }
- else if (throw_type)
+ // Null catch type is a catch-all handler; we can catch foreign
+ // exceptions with this. Otherwise we must match types.
+ if (! catch_type
+ || (throw_type
+ && get_adjusted_ptr (catch_type, throw_type,
+ &thrown_ptr)))
{
- if (get_adjusted_ptr (catch_type, throw_type, &thrown_ptr))
- {
- saw_handler = true;
- break;
- }
+ saw_handler = true;
+ break;
}
}
else
@@ -352,9 +359,12 @@ PERSONALITY_FUNCTION (int version,
// ??? How do foreign exceptions fit in? As far as I can
// see we can't match because there's no __cxa_exception
// object to stuff bits in for __cxa_call_unexpected to use.
+ // Allow them iff the exception spec is non-empty. I.e.
+ // a throw() specification results in __unexpected.
if (throw_type
- && ! check_exception_spec (&info, throw_type, thrown_ptr,
- ar_filter))
+ ? ! check_exception_spec (&info, throw_type, thrown_ptr,
+ ar_filter)
+ : empty_exception_spec (&info, ar_filter))
{
saw_handler = true;
break;
@@ -394,25 +404,43 @@ PERSONALITY_FUNCTION (int version,
// ??? Completely unknown what this field is supposed to be for.
// ??? Need to cache TType encoding base for call_unexpected.
- xh->catchTemp = (void *) (_Unwind_Ptr) landing_pad;
+ xh->catchTemp = landing_pad;
}
return _URC_HANDLER_FOUND;
}
install_context:
- if (found_type == found_terminate)
+ // We can't use any of the cxa routines with foreign exceptions,
+ // because they all expect ue_header to be a struct __cxa_exception.
+ // So in that case, call terminate or unexpected directly.
+ if ((actions & _UA_FORCE_UNWIND)
+ || exception_class != __gxx_exception_class)
{
- __cxa_begin_catch (&xh->unwindHeader);
- __terminate (xh->terminateHandler);
+ if (found_type == found_terminate)
+ std::terminate ();
+ else if (handler_switch_value < 0)
+ {
+ try
+ { std::unexpected (); }
+ catch(...)
+ { std::terminate (); }
+ }
}
-
- // Cache the TType base value for __cxa_call_unexpected, as we won't
- // have an _Unwind_Context then.
- if (handler_switch_value < 0)
+ else
{
- parse_lsda_header (context, xh->languageSpecificData, &info);
- xh->catchTemp = (void *) base_of_encoded_value (info.ttype_encoding,
- context);
+ if (found_type == found_terminate)
+ {
+ __cxa_begin_catch (&xh->unwindHeader);
+ __terminate (xh->terminateHandler);
+ }
+
+ // Cache the TType base value for __cxa_call_unexpected, as we won't
+ // have an _Unwind_Context then.
+ if (handler_switch_value < 0)
+ {
+ parse_lsda_header (context, language_specific_data, &info);
+ xh->catchTemp = base_of_encoded_value (info.ttype_encoding, context);
+ }
}
_Unwind_SetGR (context, __builtin_eh_return_data_regno (0),
@@ -457,20 +485,19 @@ __cxa_call_unexpected (void *exc_obj_in)
catch(...)
{
// Get the exception thrown from unexpected.
- // ??? Foreign exceptions can't be stacked this way.
-
+
__cxa_eh_globals *globals = __cxa_get_globals_fast ();
__cxa_exception *new_xh = globals->caughtExceptions;
void *new_ptr = new_xh + 1;
-
+
// We don't quite have enough stuff cached; re-parse the LSDA.
parse_lsda_header (0, xh_lsda, &info);
-
+
// If this new exception meets the exception spec, allow it.
if (check_exception_spec (&info, new_xh->exceptionType,
new_ptr, xh_switch_value))
__throw_exception_again;
-
+
// If the exception spec allows std::bad_exception, throw that.
// We don't have a thrown object to compare against, but since
// bad_exception doesn't have virtual bases, that's OK; just pass 0.
@@ -479,6 +506,7 @@ __cxa_call_unexpected (void *exc_obj_in)
if (check_exception_spec (&info, &bad_exc, 0, xh_switch_value))
throw std::bad_exception();
#endif
+
// Otherwise, die.
__terminate (xh_terminate_handler);
}
diff --git a/contrib/libstdc++/libsupc++/eh_throw.cc b/contrib/libstdc++/libsupc++/eh_throw.cc
index 407b829..0e13066 100644
--- a/contrib/libstdc++/libsupc++/eh_throw.cc
+++ b/contrib/libstdc++/libsupc++/eh_throw.cc
@@ -1,5 +1,5 @@
// -*- C++ -*- Exception handling routines for throwing.
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
//
// This file is part of GNU CC.
//
@@ -42,7 +42,10 @@ __gxx_exception_cleanup (_Unwind_Reason_Code code, _Unwind_Exception *exc)
// If we haven't been caught by a foreign handler, then this is
// some sort of unwind error. In that case just die immediately.
- if (code != _URC_FOREIGN_EXCEPTION_CAUGHT)
+ // _Unwind_DeleteException in the HP-UX IA64 libunwind library
+ // returns _URC_NO_REASON and not _URC_FOREIGN_EXCEPTION_CAUGHT
+ // like the GCC _Unwind_DeleteException function does.
+ if (code != _URC_FOREIGN_EXCEPTION_CAUGHT && code != _URC_NO_REASON)
__terminate (header->terminateHandler);
if (header->exceptionDestructor)
@@ -87,12 +90,19 @@ __cxa_rethrow ()
if (header)
{
// Tell __cxa_end_catch this is a rethrow.
- header->handlerCount = -header->handlerCount;
+ if (header->unwindHeader.exception_class != __gxx_exception_class)
+ globals->caughtExceptions = 0;
+ else
+ header->handlerCount = -header->handlerCount;
#ifdef _GLIBCPP_SJLJ_EXCEPTIONS
- _Unwind_SjLj_RaiseException (&header->unwindHeader);
+ _Unwind_SjLj_Resume_or_Rethrow (&header->unwindHeader);
#else
+#ifdef _LIBUNWIND_STD_ABI
_Unwind_RaiseException (&header->unwindHeader);
+#else
+ _Unwind_Resume_or_Rethrow (&header->unwindHeader);
+#endif
#endif
// Some sort of unwinding error. Note that terminate is a handler.
diff --git a/contrib/libstdc++/libsupc++/exception b/contrib/libstdc++/libsupc++/exception
index b26cb6d..d76a947 100644
--- a/contrib/libstdc++/libsupc++/exception
+++ b/contrib/libstdc++/libsupc++/exception
@@ -41,11 +41,13 @@ extern "C++" {
namespace std
{
- /** This is the base class for all exceptions thrown by the standard
+ /**
+ * @brief Base class for all library exceptions.
+ *
+ * This is the base class for all exceptions thrown by the standard
* library, and by certain language expressions. You are free to derive
* your own %exception classes, or use a different hierarchy, or to
* throw non-class data (e.g., fundamental types).
- * @brief Base class for all library exceptions.
*/
class exception
{
diff --git a/contrib/libstdc++/libsupc++/guard.cc b/contrib/libstdc++/libsupc++/guard.cc
new file mode 100644
index 0000000..b93cffd
--- /dev/null
+++ b/contrib/libstdc++/libsupc++/guard.cc
@@ -0,0 +1,51 @@
+// Copyright (C) 2002 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC 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.
+
+// GCC 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 GCC; see the file COPYING. If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// Written by Mark Mitchell, CodeSourcery LLC, <mark@codesourcery.com>
+
+#include <cxxabi.h>
+
+namespace __cxxabiv1
+{
+ extern "C"
+ int __cxa_guard_acquire (__guard *g)
+ {
+ return !*(char *)(g);
+ }
+
+ extern "C"
+ void __cxa_guard_release (__guard *g)
+ {
+ *(char *)g = 1;
+ }
+
+ extern "C"
+ void __cxa_guard_abort (__guard *)
+ {
+ }
+}
diff --git a/contrib/libstdc++/libsupc++/new b/contrib/libstdc++/libsupc++/new
index 475083b..af19ed8 100644
--- a/contrib/libstdc++/libsupc++/new
+++ b/contrib/libstdc++/libsupc++/new
@@ -45,7 +45,10 @@ extern "C++" {
namespace std
{
- /** @c bad_alloc (or classes derived from it) is used to report allocation
+ /**
+ * @brief Exception possibly thrown by @c new.
+ *
+ * @c bad_alloc (or classes derived from it) is used to report allocation
* errors from the throwing forms of @c new. */
class bad_alloc : public exception
{
diff --git a/contrib/libstdc++/libsupc++/tinfo.cc b/contrib/libstdc++/libsupc++/tinfo.cc
index d2e189a..d6e465e 100644
--- a/contrib/libstdc++/libsupc++/tinfo.cc
+++ b/contrib/libstdc++/libsupc++/tinfo.cc
@@ -28,6 +28,7 @@
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
+#include <bits/c++config.h>
#include <cstddef>
#include "tinfo.h"
#include "new" // for placement new
@@ -91,12 +92,28 @@ namespace {
using namespace std;
using namespace abi;
-// initial part of a vtable, this structure is used with offsetof, so we don't
+// Initial part of a vtable, this structure is used with offsetof, so we don't
// have to keep alignments consistent manually.
-struct vtable_prefix {
- ptrdiff_t whole_object; // offset to most derived object
- const __class_type_info *whole_type; // pointer to most derived type_info
- const void *origin; // what a class's vptr points to
+struct vtable_prefix
+{
+ // Offset to most derived object.
+ ptrdiff_t whole_object;
+
+ // Additional padding if necessary.
+#ifdef _GLIBCPP_VTABLE_PADDING
+ ptrdiff_t padding1;
+#endif
+
+ // Pointer to most derived type_info.
+ const __class_type_info *whole_type;
+
+ // Additional padding if necessary.
+#ifdef _GLIBCPP_VTABLE_PADDING
+ ptrdiff_t padding2;
+#endif
+
+ // What a class's vptr points to.
+ const void *origin;
};
template <typename T>
diff --git a/contrib/libstdc++/libsupc++/typeinfo b/contrib/libstdc++/libsupc++/typeinfo
index 480dc4a..88a2639 100644
--- a/contrib/libstdc++/libsupc++/typeinfo
+++ b/contrib/libstdc++/libsupc++/typeinfo
@@ -54,9 +54,12 @@ namespace __cxxabiv1
namespace std
{
- /** The @c type_info class describes type information generated by
+ /**
+ * @brief Part of RTTI.
+ *
+ * The @c type_info class describes type information generated by
* an implementation.
- * @brief Used in RTTI. */
+ */
class type_info
{
public:
@@ -124,7 +127,10 @@ namespace std
void **__obj_ptr) const;
};
- /** If you attempt an invalid @c dynamic_cast expression, an instance of
+ /**
+ * @brief Thrown during incorrect typecasting.
+ *
+ * If you attempt an invalid @c dynamic_cast expression, an instance of
* this class (or something derived from this class) is thrown. */
class bad_cast : public exception
{
diff --git a/contrib/libstdc++/libsupc++/unwind-cxx.h b/contrib/libstdc++/libsupc++/unwind-cxx.h
index ea30eba..b0b0b366 100644
--- a/contrib/libstdc++/libsupc++/unwind-cxx.h
+++ b/contrib/libstdc++/libsupc++/unwind-cxx.h
@@ -70,7 +70,7 @@ struct __cxa_exception
int handlerSwitchValue;
const unsigned char *actionRecord;
const unsigned char *languageSpecificData;
- void *catchTemp;
+ _Unwind_Ptr catchTemp;
void *adjustedPtr;
// The generic exception header. Must be last.
diff --git a/contrib/libstdc++/mkcheck.in b/contrib/libstdc++/mkcheck.in
index b104244..c856b05 100755
--- a/contrib/libstdc++/mkcheck.in
+++ b/contrib/libstdc++/mkcheck.in
@@ -314,7 +314,8 @@ test_file()
# and harder as we try compiling at, say, top of the hour; we would
# eventually have to calculate time_t anyhow. Or 3) just grab two
# time_t's (no more overhead than grabbing two date(1)'s).
- compiler_invocation="$LTCXX $S_FLAG $SRC_NAME -o $EXENAME"
+ our_libs="-L$TEST_DIR -lv3test"
+ compiler_invocation="$LTCXX $S_FLAG $SRC_NAME -o $EXENAME $our_libs"
echo $compiler_invocation >> compile.out 2>&1
COMP_TIME_START=$($TIMER_COMMAND)
$compiler_invocation >> compile.out 2>&1
diff --git a/contrib/libstdc++/src/Makefile.am b/contrib/libstdc++/src/Makefile.am
index 4592168..304c035 100644
--- a/contrib/libstdc++/src/Makefile.am
+++ b/contrib/libstdc++/src/Makefile.am
@@ -1,6 +1,6 @@
## Makefile for the src subdirectory of the GNU C++ Standard library.
##
-## Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+## Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
## Free Software Foundation, Inc.
##
## This file is part of the libstdc++ version 3 distribution.
@@ -29,19 +29,30 @@ mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
# Cross compiler support.
CXX = @glibcpp_CXX@
+glibcpp_srcdir=@glibcpp_srcdir@
+glibcpp_builddir=@glibcpp_builddir@
toolexecdir = @glibcpp_toolexecdir@
toolexeclibdir = @glibcpp_toolexeclibdir@
toolexeclib_LTLIBRARIES = libstdc++.la
+# Symbol versioning for shared libraries.
+if GLIBCPP_BUILD_VERSIONED_SHLIB
+version_arg = -Wl,--version-script=libstdc++-symbol.ver
+libstdc++-symbol.ver: ${glibcpp_srcdir}/@SYMVER_MAP@
+ @LN_S@ ${glibcpp_srcdir}/@SYMVER_MAP@ ./libstdc++-symbol.ver || true
+else
+version_arg =
+libstdc++-symbol.ver:
+endif
+
# Compile flags that should be constant throughout the build, both for
# SUBDIRS and for libstdc++-v3 in general.
OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS
-# NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden.
CONFIG_CXXFLAGS = \
- @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @DEBUG_FLAGS@
+ @SECTION_FLAGS@ @EXTRA_CXX_FLAGS@
# Warning flags to use.
WARN_CXXFLAGS = \
@@ -60,7 +71,8 @@ INCLUDES = \
$(LIBSUPCXX_INCLUDES) $(LIBIO_INCLUDES) $(LIBMATH_INCLUDES) \
$(TOPLEVEL_INCLUDES)
-# Source files linked in via configuration magic for a particular target.
+# Source files linked in via configuration/make substitution for a
+# particular target.
target_sources = \
codecvt_members.cc \
collate_members.cc \
@@ -70,12 +82,39 @@ target_sources = \
numeric_members.cc \
time_members.cc
-# Source files linked in via configuration magic for a particular
-# target, but with ad hoc naming rules.
+codecvt_members.cc: ${glibcpp_srcdir}/@CCODECVT_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CCODECVT_CC@ . || true
+
+collate_members.cc: ${glibcpp_srcdir}/@CCOLLATE_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CCOLLATE_CC@ . || true
+
+ctype_members.cc: ${glibcpp_srcdir}/@CCTYPE_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CCTYPE_CC@ . || true
+
+messages_members.cc: ${glibcpp_srcdir}/@CMESSAGES_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CMESSAGES_CC@ . || true
+
+monetary_members.cc: ${glibcpp_srcdir}/@CMONEY_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CMONEY_CC@ . || true
+
+numeric_members.cc: ${glibcpp_srcdir}/@CNUMERIC_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CNUMERIC_CC@ . || true
+
+time_members.cc: ${glibcpp_srcdir}/@CTIME_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CTIME_CC@ . || true
+
+# Source files linked in via configuration/make substitution for a
+# particular target, but with ad hoc naming rules.
target_sources_extra = \
basic_file.cc \
c++locale.cc
+c++locale.cc: ${glibcpp_srcdir}/@CLOCALE_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CLOCALE_CC@ ./$@ || true
+
+basic_file.cc: ${glibcpp_srcdir}/@BASIC_FILE_CC@
+ @LN_S@ ${glibcpp_srcdir}/@BASIC_FILE_CC@ ./$@ || true
+
# Sources present in the src directory.
sources = \
bitset.cc \
@@ -114,20 +153,15 @@ VPATH = $(top_srcdir)/src:$(top_srcdir)
libstdc___la_SOURCES = $(sources)
libstdc___la_LIBADD = \
- ../libmath/libmath.la @libio_la@ \
- ../libsupc++/libsupc++convenience.la
+ $(top_builddir)/libmath/libmath.la @libio_la@ \
+ $(top_builddir)/libsupc++/libsupc++convenience.la
-if GLIBCPP_BUILD_VERSIONED_SHLIB
-version_arg=-Wl,--version-script=linker.map
-else
-version_arg=
-endif
+libstdc___la_DEPENDENCIES = libstdc++-symbol.ver $(libstdc___la_LIBADD)
libstdc___la_LDFLAGS = \
-version-info @libtool_VERSION@ ${version_arg} \
-lm @LIBUNWIND_FLAG@
-libstdc___la_DEPENDENCIES = $(libstdc___la_LIBADD) linker.map
# Use special rules for the deprecated source files so that they find
# deprecated include files.
@@ -150,13 +184,13 @@ concept-inst.o: concept-inst.cc
# modified in a per-library or per-sub-library way. Need to manually
# set this option because CONFIG_CXXFLAGS has to be after
# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
-# as the occasion call for it. (ie, --enable-debug)
+# as the occasion call for it.
AM_CXXFLAGS = \
-fno-implicit-templates \
$(LIBSUPCXX_CXXFLAGS) \
$(WARN_CXXFLAGS) \
$(OPTIMIZE_CXXFLAGS) \
- $(CONFIG_CXXFLAGS)
+ $(CONFIG_CXXFLAGS)
# libstdc++ libtool notes
@@ -188,3 +222,37 @@ LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \
# compilation driver.
CXXLINK = $(LIBTOOL) --tag CXX --mode=link $(CXX) \
@OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
+
+
+# Added bits to build debug library.
+if GLIBCPP_BUILD_DEBUG
+all-local: build_debug
+install-data-local: install_debug
+else
+all-local:
+install-data-local:
+endif
+
+debugdir = debug
+
+# Build parallel set of debug objects here.
+stamp-debug:
+ if test ! -d ${debugdir}; then \
+ mkdir -p ${debugdir}; \
+ (cd ${debugdir}; \
+ sed -e 's/top_builddir = \.\./top_builddir = ..\/../' \
+ -e 's/srcdir = \.\./srcdir = ..\/../' \
+ -e 's/glibcpp_basedir = \.\./glibcpp_basedir = ..\/../' \
+ -e 's/all-local: build_debug/all-local:/' \
+ -e 's/install-data-local: install_debug/install-data-local:/' \
+ < ../Makefile > Makefile) ; \
+ fi; \
+ echo `date` > stamp-debug;
+
+build_debug: stamp-debug
+ (cd ${debugdir} && $(MAKE) CXXFLAGS='@DEBUG_FLAGS@' all)
+
+# Install debug library here.
+install_debug:
+ (cd ${debugdir} && $(MAKE) \
+ toolexeclibdir=@glibcpp_toolexeclibdir@/debug install)
diff --git a/contrib/libstdc++/src/Makefile.in b/contrib/libstdc++/src/Makefile.in
index 9e3ff9b..95c1cf8 100644
--- a/contrib/libstdc++/src/Makefile.in
+++ b/contrib/libstdc++/src/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
@@ -66,15 +66,24 @@ AR = @AR@
AS = @AS@
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
AWK = @AWK@
+BASIC_FILE_CC = @BASIC_FILE_CC@
BASIC_FILE_H = @BASIC_FILE_H@
CC = @CC@
CCODECVT_C = @CCODECVT_C@
+CCODECVT_CC = @CCODECVT_CC@
CCODECVT_H = @CCODECVT_H@
+CCOLLATE_CC = @CCOLLATE_CC@
+CCTYPE_CC = @CCTYPE_CC@
+CLOCALE_CC = @CLOCALE_CC@
CLOCALE_H = @CLOCALE_H@
+CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
+CMESSAGES_CC = @CMESSAGES_CC@
CMESSAGES_H = @CMESSAGES_H@
+CMONEY_CC = @CMONEY_CC@
+CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
-CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@
CSTDIO_H = @CSTDIO_H@
+CTIME_CC = @CTIME_CC@
CTIME_H = @CTIME_H@
CXXCPP = @CXXCPP@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
@@ -101,6 +110,7 @@ RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
STRIP = @STRIP@
+SYMVER_MAP = @SYMVER_MAP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_FLAGS = @WARN_FLAGS@
@@ -113,10 +123,8 @@ glibcpp_CXX = @glibcpp_CXX@
glibcpp_MOFILES = @glibcpp_MOFILES@
glibcpp_POFILES = @glibcpp_POFILES@
glibcpp_basedir = @glibcpp_basedir@
-glibcpp_builddir = @glibcpp_builddir@
glibcpp_localedir = @glibcpp_localedir@
glibcpp_prefixdir = @glibcpp_prefixdir@
-glibcpp_srcdir = @glibcpp_srcdir@
glibcpp_thread_h = @glibcpp_thread_h@
glibcpp_toolexecdir = @glibcpp_toolexecdir@
glibcpp_toolexeclibdir = @glibcpp_toolexeclibdir@
@@ -133,9 +141,13 @@ mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
# Cross compiler support.
CXX = @glibcpp_CXX@
+glibcpp_srcdir = @glibcpp_srcdir@
+glibcpp_builddir = @glibcpp_builddir@
toolexecdir = @glibcpp_toolexecdir@
toolexeclibdir = @glibcpp_toolexeclibdir@
toolexeclib_LTLIBRARIES = libstdc++.la
+@GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE@version_arg = @GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE@-Wl,--version-script=libstdc++-symbol.ver
+@GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE@version_arg =
# Compile flags that should be constant throughout the build, both for
# SUBDIRS and for libstdc++-v3 in general.
@@ -143,9 +155,8 @@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS
-# NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden.
CONFIG_CXXFLAGS = \
- @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @DEBUG_FLAGS@
+ @SECTION_FLAGS@ @EXTRA_CXX_FLAGS@
# Warning flags to use.
@@ -167,7 +178,8 @@ INCLUDES = \
$(TOPLEVEL_INCLUDES)
-# Source files linked in via configuration magic for a particular target.
+# Source files linked in via configuration/make substitution for a
+# particular target.
target_sources = \
codecvt_members.cc \
collate_members.cc \
@@ -178,8 +190,8 @@ target_sources = \
time_members.cc
-# Source files linked in via configuration magic for a particular
-# target, but with ad hoc naming rules.
+# Source files linked in via configuration/make substitution for a
+# particular target, but with ad hoc naming rules.
target_sources_extra = \
basic_file.cc \
c++locale.cc
@@ -224,19 +236,17 @@ VPATH = $(top_srcdir)/src:$(top_srcdir)
libstdc___la_SOURCES = $(sources)
libstdc___la_LIBADD = \
- ../libmath/libmath.la @libio_la@ \
- ../libsupc++/libsupc++convenience.la
+ $(top_builddir)/libmath/libmath.la @libio_la@ \
+ $(top_builddir)/libsupc++/libsupc++convenience.la
-@GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE@version_arg = @GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE@-Wl,--version-script=linker.map
-@GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE@version_arg =
+
+libstdc___la_DEPENDENCIES = libstdc++-symbol.ver $(libstdc___la_LIBADD)
libstdc___la_LDFLAGS = \
-version-info @libtool_VERSION@ ${version_arg} \
-lm @LIBUNWIND_FLAG@
-libstdc___la_DEPENDENCIES = $(libstdc___la_LIBADD) linker.map
-
# Use special rules for the deprecated source files so that they find
# deprecated include files.
GLIBCPP_INCLUDE_DIR = @glibcpp_builddir@/include
@@ -245,13 +255,13 @@ GLIBCPP_INCLUDE_DIR = @glibcpp_builddir@/include
# modified in a per-library or per-sub-library way. Need to manually
# set this option because CONFIG_CXXFLAGS has to be after
# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
-# as the occasion call for it. (ie, --enable-debug)
+# as the occasion call for it.
AM_CXXFLAGS = \
-fno-implicit-templates \
$(LIBSUPCXX_CXXFLAGS) \
$(WARN_CXXFLAGS) \
$(OPTIMIZE_CXXFLAGS) \
- $(CONFIG_CXXFLAGS)
+ $(CONFIG_CXXFLAGS)
# libstdc++ libtool notes
@@ -285,6 +295,8 @@ LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \
CXXLINK = $(LIBTOOL) --tag CXX --mode=link $(CXX) \
@OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
+
+debugdir = debug
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
@@ -462,7 +474,7 @@ install-info: install-info-am
install-exec-am: install-toolexeclibLTLIBRARIES
install-exec: install-exec-am
-install-data-am:
+install-data-am: install-data-local
install-data: install-data-am
install-am: all-am
@@ -470,7 +482,7 @@ install-am: all-am
install: install-am
uninstall-am: uninstall-toolexeclibLTLIBRARIES
uninstall: uninstall-am
-all-am: Makefile $(LTLIBRARIES)
+all-am: Makefile $(LTLIBRARIES) all-local
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
@@ -523,11 +535,42 @@ maintainer-clean-compile mostlyclean-libtool distclean-libtool \
clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
dvi-am dvi check check-am installcheck-am installcheck install-info-am \
-install-info install-exec-am install-exec install-data-am install-data \
-install-am install uninstall-am uninstall all-redirect all-am all \
-installdirs mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+install-info install-exec-am install-exec install-data-local \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-local all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+@GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE@libstdc++-symbol.ver: ${glibcpp_srcdir}/@SYMVER_MAP@
+@GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE@ @LN_S@ ${glibcpp_srcdir}/@SYMVER_MAP@ ./libstdc++-symbol.ver || true
+@GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE@libstdc++-symbol.ver:
+codecvt_members.cc: ${glibcpp_srcdir}/@CCODECVT_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CCODECVT_CC@ . || true
+
+collate_members.cc: ${glibcpp_srcdir}/@CCOLLATE_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CCOLLATE_CC@ . || true
+
+ctype_members.cc: ${glibcpp_srcdir}/@CCTYPE_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CCTYPE_CC@ . || true
+
+messages_members.cc: ${glibcpp_srcdir}/@CMESSAGES_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CMESSAGES_CC@ . || true
+
+monetary_members.cc: ${glibcpp_srcdir}/@CMONEY_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CMONEY_CC@ . || true
+
+numeric_members.cc: ${glibcpp_srcdir}/@CNUMERIC_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CNUMERIC_CC@ . || true
+
+time_members.cc: ${glibcpp_srcdir}/@CTIME_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CTIME_CC@ . || true
+
+c++locale.cc: ${glibcpp_srcdir}/@CLOCALE_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CLOCALE_CC@ ./$@ || true
+
+basic_file.cc: ${glibcpp_srcdir}/@BASIC_FILE_CC@
+ @LN_S@ ${glibcpp_srcdir}/@BASIC_FILE_CC@ ./$@ || true
strstream.lo: strstream.cc
$(LTCXXCOMPILE) -I$(GLIBCPP_INCLUDE_DIR)/backward -Wno-deprecated -c $<
strstream.o: strstream.cc
@@ -541,6 +584,34 @@ concept-inst.lo: concept-inst.cc
concept-inst.o: concept-inst.cc
$(CXXCOMPILE) -D_GLIBCPP_CONCEPT_CHECKS -fimplicit-templates -c $<
+# Added bits to build debug library.
+@GLIBCPP_BUILD_DEBUG_TRUE@all-local: build_debug
+@GLIBCPP_BUILD_DEBUG_TRUE@install-data-local: install_debug
+@GLIBCPP_BUILD_DEBUG_FALSE@all-local:
+@GLIBCPP_BUILD_DEBUG_FALSE@install-data-local:
+
+# Build parallel set of debug objects here.
+stamp-debug:
+ if test ! -d ${debugdir}; then \
+ mkdir -p ${debugdir}; \
+ (cd ${debugdir}; \
+ sed -e 's/top_builddir = \.\./top_builddir = ..\/../' \
+ -e 's/srcdir = \.\./srcdir = ..\/../' \
+ -e 's/glibcpp_basedir = \.\./glibcpp_basedir = ..\/../' \
+ -e 's/all-local: build_debug/all-local:/' \
+ -e 's/install-data-local: install_debug/install-data-local:/' \
+ < ../Makefile > Makefile) ; \
+ fi; \
+ echo `date` > stamp-debug;
+
+build_debug: stamp-debug
+ (cd ${debugdir} && $(MAKE) CXXFLAGS='@DEBUG_FLAGS@' all)
+
+# Install debug library here.
+install_debug:
+ (cd ${debugdir} && $(MAKE) \
+ toolexeclibdir=@glibcpp_toolexeclibdir@/debug install)
+
# 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 --git a/contrib/libstdc++/src/bitset.cc b/contrib/libstdc++/src/bitset.cc
index 7103854..4849a6a 100644
--- a/contrib/libstdc++/src/bitset.cc
+++ b/contrib/libstdc++/src/bitset.cc
@@ -38,7 +38,7 @@
* in supporting documentation. Silicon Graphics makes no
* representations about the suitability of this software for any
* purpose. It is provided "as is" without express or implied warranty.
- */
+ */
#include <bitset>
@@ -68,7 +68,7 @@ std::_Base_bitset<1>::_M_do_find_first(std::size_t __not_found) const
}
std::size_t
-std::_Base_bitset<1>::_M_do_find_next(std::size_t __prev,
+std::_Base_bitset<1>::_M_do_find_next(std::size_t __prev,
std::size_t __not_found) const
{
// make bound inclusive
@@ -103,8 +103,9 @@ std::_Base_bitset<1>::_M_do_find_next(std::size_t __prev,
} // end _M_do_find_next
-// Lookup tables for find and count operations.
-unsigned char std::_S_bit_count[256] =
+// Lookup tables for find and count operations. In _S_bit_count, the value
+// *at* an index is the number of bits set *in* that index.
+unsigned char std::_S_bit_count[256] =
{
0, /* 0 */ 1, /* 1 */ 1, /* 2 */ 2, /* 3 */ 1, /* 4 */
2, /* 5 */ 2, /* 6 */ 3, /* 7 */ 1, /* 8 */ 2, /* 9 */
@@ -160,7 +161,7 @@ unsigned char std::_S_bit_count[256] =
8 /* 255 */
}; // end _S_bit_count
-unsigned char std::_S_first_one[256] =
+unsigned char std::_S_first_one[256] =
{
0, /* 0 */ 0, /* 1 */ 1, /* 2 */ 0, /* 3 */ 2, /* 4 */
0, /* 5 */ 1, /* 6 */ 0, /* 7 */ 3, /* 8 */ 0, /* 9 */
diff --git a/contrib/libstdc++/src/codecvt.cc b/contrib/libstdc++/src/codecvt.cc
index c536979..bc5508a 100644
--- a/contrib/libstdc++/src/codecvt.cc
+++ b/contrib/libstdc++/src/codecvt.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -82,7 +82,7 @@ namespace std
const extern_type*, const extern_type*& __from_next,
intern_type* __to, intern_type*,
intern_type*& __to_next) const
- {
+ {
// _GLIBCPP_RESOLVE_LIB_DEFECTS
// According to the resolution of DR19, "If returns noconv [...]
// there are no changes to the values in [to, to_limit)."
diff --git a/contrib/libstdc++/src/concept-inst.cc b/contrib/libstdc++/src/concept-inst.cc
index d0129e5..e173549 100644
--- a/contrib/libstdc++/src/concept-inst.cc
+++ b/contrib/libstdc++/src/concept-inst.cc
@@ -1,6 +1,6 @@
// Concept checking instantiations -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -39,6 +39,7 @@
#ifdef _GLIBCPP_CONCEPT_CHECKS
#include <memory>
+#include <iterator>
#include <ostream>
#define _Instantiate(...) template void __function_requires< __VA_ARGS__ > ()
diff --git a/contrib/libstdc++/src/fstream-inst.cc b/contrib/libstdc++/src/fstream-inst.cc
index 34f3819..8b866c0 100644
--- a/contrib/libstdc++/src/fstream-inst.cc
+++ b/contrib/libstdc++/src/fstream-inst.cc
@@ -59,4 +59,4 @@ namespace std
#ifdef _GLIBCPP_USE_WCHAR_T
template class basic_fstream<wchar_t>;
#endif
-} //std
+} // namespace std
diff --git a/contrib/libstdc++/src/fstream.cc b/contrib/libstdc++/src/fstream.cc
index be71133..2a099d6 100644
--- a/contrib/libstdc++/src/fstream.cc
+++ b/contrib/libstdc++/src/fstream.cc
@@ -1,6 +1,6 @@
// File based streams -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -50,10 +50,14 @@ namespace std
// normal buffers and jet outta here before expensive
// fileops happen...
if (_M_pback_init)
+ _M_pback_destroy();
+
+ if (_M_in_cur && _M_in_cur < _M_in_end)
{
- _M_pback_destroy();
- if (_M_in_cur < _M_in_end)
- return traits_type::to_int_type(*_M_in_cur);
+ __ret = traits_type::to_int_type(*_M_in_cur);
+ if (__bump)
+ _M_in_cur_move(1);
+ return __ret;
}
// Sync internal and external buffers.
@@ -115,10 +119,14 @@ namespace std
// normal buffers and jet outta here before expensive
// fileops happen...
if (_M_pback_init)
+ _M_pback_destroy();
+
+ if (_M_in_cur && _M_in_cur < _M_in_end)
{
- _M_pback_destroy();
- if (_M_in_cur < _M_in_end)
- return traits_type::to_int_type(*_M_in_cur);
+ __ret = traits_type::to_int_type(*_M_in_cur);
+ if (__bump)
+ _M_in_cur_move(1);
+ return __ret;
}
// Sync internal and external buffers.
@@ -154,9 +162,10 @@ namespace std
const char* __eend;
char_type* __iend;
- __res_type __r = __cvt.in(_M_state_cur, __buf,
- __buf + __elen, __eend, _M_in_beg,
- _M_in_beg + _M_buf_size, __iend);
+ codecvt_base::result __r;
+ __r = __cvt.in(_M_state_cur, __buf,
+ __buf + __elen, __eend, _M_in_beg,
+ _M_in_beg + _M_buf_size, __iend);
if (__r == codecvt_base::ok)
__ilen = __iend - _M_in_beg;
else
diff --git a/contrib/libstdc++/src/globals.cc b/contrib/libstdc++/src/globals.cc
index c6ff69c..efbfdbe 100644
--- a/contrib/libstdc++/src/globals.cc
+++ b/contrib/libstdc++/src/globals.cc
@@ -47,7 +47,7 @@
namespace __gnu_cxx
{
using namespace std;
-
+
typedef char fake_facet_name[sizeof(char*)]
__attribute__ ((aligned(__alignof__(char*))));
fake_facet_name facet_name[6 + _GLIBCPP_NUM_CATEGORIES];
@@ -84,6 +84,11 @@ namespace __gnu_cxx
fake_facet_vec facet_vec[_GLIBCPP_NUM_FACETS];
_GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9facet_vecE, _ZSt9facet_vec, GLIBCPP_3.2)
+ // To support combined facets and caches in facet array
+ typedef char fake_facet_cache_vec[sizeof(locale::facet*)]
+ __attribute__ ((aligned(__alignof__(locale::facet*))));
+ fake_facet_cache_vec facet_cache_vec[2 * _GLIBCPP_NUM_FACETS];
+
typedef char fake_ctype_c[sizeof(std::ctype<char>)]
__attribute__ ((aligned(__alignof__(std::ctype<char>))));
fake_ctype_c ctype_c;
@@ -224,6 +229,17 @@ namespace __gnu_cxx
_GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10messages_wE, _ZSt10messages_w, GLIBCPP_3.2)
#endif
+ // Storage for static C locale caches
+ typedef char fake_locale_cache_np_c[sizeof(std::__locale_cache<numpunct<char> >)]
+ __attribute__ ((aligned(__alignof__(std::__locale_cache<numpunct<char> >))));
+ fake_locale_cache_np_c locale_cache_np_c;
+
+#ifdef _GLIBCPP_USE_WCHAR_T
+ typedef char fake_locale_cache_np_w[sizeof(std::__locale_cache<numpunct<wchar_t> >)]
+ __attribute__ ((aligned(__alignof__(std::__locale_cache<numpunct<wchar_t> >))));
+ fake_locale_cache_np_w locale_cache_np_w;
+#endif
+
typedef char fake_filebuf[sizeof(stdio_filebuf<char>)]
__attribute__ ((aligned(__alignof__(stdio_filebuf<char>))));
fake_filebuf buf_cout;
@@ -243,10 +259,7 @@ namespace __gnu_cxx
_GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx8buf_wcinE, _ZSt8buf_wcin, GLIBCPP_3.2)
_GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9buf_wcerrE, _ZSt9buf_wcerr, GLIBCPP_3.2)
#endif
-} // namespace __gnu_cxx
-namespace std
-{
// Globals for once-only runtime initialization of mutex objects. This
// allows static initialization of these objects on systems that need a
// function call to initialize a mutex. For example, see stl_threads.h.
@@ -270,6 +283,17 @@ namespace std
{ __GTHREAD_MUTEX_INIT_FUNCTION (_GLIBCPP_mutex_address); }
#endif
+ // GLIBCXX_ABI.
+ struct __compat
+ {
+ static const char _S_atoms[];
+ };
+ const char __compat::_S_atoms[] = "0123456789eEabcdfABCDF";
+ _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx8__compat8_S_atomsE, _ZNSt10__num_base8_S_atomsE, GLIBCPP_3.2)
+} // namespace __gnu_cxx
+
+namespace std
+{
// Standard stream objects.
typedef char fake_istream[sizeof(istream)]
__attribute__ ((aligned(__alignof__(istream))));
diff --git a/contrib/libstdc++/src/io-inst.cc b/contrib/libstdc++/src/io-inst.cc
index f5773c9..31f53b4 100644
--- a/contrib/libstdc++/src/io-inst.cc
+++ b/contrib/libstdc++/src/io-inst.cc
@@ -57,4 +57,4 @@ namespace std
#ifdef _GLIBCPP_USE_WCHAR_T
template class basic_iostream<wchar_t>;
#endif
-} //std
+} // namespace std
diff --git a/contrib/libstdc++/src/ios.cc b/contrib/libstdc++/src/ios.cc
index 9f4c718..00dbe12 100644
--- a/contrib/libstdc++/src/ios.cc
+++ b/contrib/libstdc++/src/ios.cc
@@ -159,11 +159,12 @@ namespace std
void
ios_base::Init::_S_ios_create(bool __sync)
{
- int __out_size = __sync ? 0 : static_cast<int>(BUFSIZ);
+ size_t __out_size = __sync ? 0 : static_cast<size_t>(BUFSIZ);
#ifdef _GLIBCPP_HAVE_ISATTY
- int __in_size = (__sync || isatty (0)) ? 1 : static_cast<int>(BUFSIZ);
+ size_t __in_size =
+ (__sync || isatty (0)) ? 1 : static_cast<size_t>(BUFSIZ);
#else
- int __in_size = 1;
+ size_t __in_size = 1;
#endif
// NB: The file globals.cc creates the four standard files
@@ -172,10 +173,15 @@ namespace std
new (&buf_cout) stdio_filebuf<char>(stdout, ios_base::out, __out_size);
new (&buf_cin) stdio_filebuf<char>(stdin, ios_base::in, __in_size);
new (&buf_cerr) stdio_filebuf<char>(stderr, ios_base::out, __out_size);
+
new (&cout) ostream(&buf_cout);
new (&cin) istream(&buf_cin);
new (&cerr) ostream(&buf_cerr);
new (&clog) ostream(&buf_cerr);
+ cout.init(&buf_cout);
+ cin.init(&buf_cin);
+ cerr.init(&buf_cerr);
+ clog.init(&buf_cerr);
cin.tie(&cout);
cerr.flags(ios_base::unitbuf);
@@ -187,6 +193,10 @@ namespace std
new (&wcin) wistream(&buf_wcin);
new (&wcerr) wostream(&buf_wcerr);
new (&wclog) wostream(&buf_wcerr);
+ wcout.init(&buf_wcout);
+ wcin.init(&buf_wcin);
+ wcerr.init(&buf_wcerr);
+ wclog.init(&buf_wcerr);
wcin.tie(&wcout);
wcerr.flags(ios_base::unitbuf);
#endif
@@ -252,8 +262,6 @@ namespace std
{ words = new _Words[newsize]; }
catch (...)
{
- delete [] _M_word;
- _M_word = 0;
_M_streambuf_state |= badbit;
if (_M_streambuf_state & _M_exception)
__throw_ios_failure("ios_base::_M_grow_words failure");
@@ -270,6 +278,8 @@ namespace std
else
{
_M_streambuf_state |= badbit;
+ if (_M_streambuf_state & _M_exception)
+ __throw_ios_failure("ios_base::_M_grow_words failure");
return _M_word_zero;
}
}
@@ -286,8 +296,6 @@ namespace std
_M_precision = 6;
_M_width = 0;
_M_flags = skipws | dec;
- _M_callbacks = 0;
- _M_word_size = 0;
_M_ios_locale = locale();
}
@@ -301,7 +309,8 @@ namespace std
return __old;
}
- ios_base::ios_base() : _M_callbacks(0), _M_word(0)
+ ios_base::ios_base() : _M_callbacks(0), _M_word_size(_S_local_word_size),
+ _M_word(_M_local_word)
{
// Do nothing: basic_ios::init() does it.
// NB: _M_callbacks and _M_word must be zero for non-initialized
@@ -313,7 +322,7 @@ namespace std
{
_M_call_callbacks(erase_event);
_M_dispose_callbacks();
- if (_M_word && _M_word != _M_local_word)
+ if (_M_word != _M_local_word)
{
delete [] _M_word;
_M_word = 0;
diff --git a/contrib/libstdc++/src/istream-inst.cc b/contrib/libstdc++/src/istream-inst.cc
index 6112509..f2c72fd 100644
--- a/contrib/libstdc++/src/istream-inst.cc
+++ b/contrib/libstdc++/src/istream-inst.cc
@@ -67,4 +67,4 @@ namespace std
template wistream& operator>>(wistream&, _Setprecision);
template wistream& operator>>(wistream&, _Setw);
#endif
-} //std
+} // namespace std
diff --git a/contrib/libstdc++/src/locale-inst.cc b/contrib/libstdc++/src/locale-inst.cc
index 8f2c863..8da410f 100644
--- a/contrib/libstdc++/src/locale-inst.cc
+++ b/contrib/libstdc++/src/locale-inst.cc
@@ -1,6 +1,6 @@
// Locale support -*- C++ -*-
-// Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -34,7 +34,6 @@
#include <cstdlib>
#include <clocale>
#include <cstring>
-#include <cassert>
#include <locale>
namespace std
@@ -46,6 +45,7 @@ namespace std
template class moneypunct_byname<char, true>;
template class money_get<char, istreambuf_iterator<char> >;
template class money_put<char, ostreambuf_iterator<char> >;
+ template class __locale_cache<numpunct<char> >;
#ifdef _GLIBCPP_USE_WCHAR_T
template class moneypunct<wchar_t, false>;
@@ -54,6 +54,7 @@ namespace std
template class moneypunct_byname<wchar_t, true>;
template class money_get<wchar_t, istreambuf_iterator<wchar_t> >;
template class money_put<wchar_t, ostreambuf_iterator<wchar_t> >;
+ template class __locale_cache<numpunct<wchar_t> >;
#endif
// numpunct, numpunct_byname, num_get, and num_put
@@ -64,26 +65,26 @@ namespace std
template
ostreambuf_iterator<char>
num_put<char, ostreambuf_iterator<char> >::
- _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
+ _M_convert_int(ostreambuf_iterator<char>, ios_base&, char,
long) const;
template
ostreambuf_iterator<char>
num_put<char, ostreambuf_iterator<char> >::
- _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
+ _M_convert_int(ostreambuf_iterator<char>, ios_base&, char,
unsigned long) const;
#ifdef _GLIBCPP_USE_LONG_LONG
template
ostreambuf_iterator<char>
num_put<char, ostreambuf_iterator<char> >::
- _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
+ _M_convert_int(ostreambuf_iterator<char>, ios_base&, char,
long long) const;
template
ostreambuf_iterator<char>
num_put<char, ostreambuf_iterator<char> >::
- _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
+ _M_convert_int(ostreambuf_iterator<char>, ios_base&, char,
unsigned long long) const;
#endif
@@ -97,8 +98,8 @@ namespace std
ostreambuf_iterator<char>
num_put<char, ostreambuf_iterator<char> >::
_M_convert_float(ostreambuf_iterator<char>, ios_base&, char, char,
- long double) const;
-
+ long double) const;
+
#ifdef _GLIBCPP_USE_WCHAR_T
template class numpunct<wchar_t>;
template class numpunct_byname<wchar_t>;
@@ -108,27 +109,27 @@ namespace std
template
ostreambuf_iterator<wchar_t>
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
- _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
- char, long) const;
+ _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t,
+ long) const;
template
ostreambuf_iterator<wchar_t>
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
- _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
- char, unsigned long) const;
+ _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t,
+ unsigned long) const;
#ifdef _GLIBCPP_USE_LONG_LONG
template
ostreambuf_iterator<wchar_t>
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
- _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
- char, long long) const;
+ _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t,
+ long long) const;
template
ostreambuf_iterator<wchar_t>
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
- _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
- char, unsigned long long) const;
+ _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t,
+ unsigned long long) const;
#endif
template
@@ -144,6 +145,64 @@ namespace std
long double) const;
#endif
+#if 1
+ // XXX GLIBCXX_ABI Deprecated, compatibility only.
+ template
+ ostreambuf_iterator<char>
+ num_put<char, ostreambuf_iterator<char> >::
+ _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
+ long) const;
+
+ template
+ ostreambuf_iterator<char>
+ num_put<char, ostreambuf_iterator<char> >::
+ _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
+ unsigned long) const;
+
+#ifdef _GLIBCPP_USE_LONG_LONG
+ template
+ ostreambuf_iterator<char>
+ num_put<char, ostreambuf_iterator<char> >::
+ _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
+ long long) const;
+
+ template
+ ostreambuf_iterator<char>
+ num_put<char, ostreambuf_iterator<char> >::
+ _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
+ unsigned long long) const;
+#endif
+
+#ifdef _GLIBCPP_USE_WCHAR_T
+ template
+ ostreambuf_iterator<wchar_t>
+ num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
+ _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
+ char, long) const;
+
+ template
+ ostreambuf_iterator<wchar_t>
+ num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
+ _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
+ char, unsigned long) const;
+
+#ifdef _GLIBCPP_USE_LONG_LONG
+ template
+ ostreambuf_iterator<wchar_t>
+ num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
+ _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
+ char, long long) const;
+
+ template
+ ostreambuf_iterator<wchar_t>
+ num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
+ _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
+ char, unsigned long long) const;
+#endif
+#endif
+
+#endif
+
// time_get and time_put
template class __timepunct<char>;
template class time_put<char, ostreambuf_iterator<char> >;
@@ -406,6 +465,17 @@ namespace std
has_facet<messages<wchar_t> >(const locale&);
#endif
+ // __use_cache
+ template
+ const __locale_cache<numpunct<char> >&
+ __use_cache<numpunct<char> >(const locale& __loc);
+
+#ifdef _GLIBCPP_USE_WCHAR_T
+ template
+ const __locale_cache<numpunct<wchar_t> >&
+ __use_cache<numpunct<wchar_t> >(const locale& __loc);
+#endif
+
// locale
template
char*
@@ -451,6 +521,7 @@ namespace std
__convert_from_v(char*, const int, const char*, unsigned long,
const __c_locale&, int);
+#ifdef _GLIBCPP_USE_LONG_LONG
template
int
__convert_from_v(char*, const int, const char*, long long,
@@ -460,4 +531,31 @@ namespace std
int
__convert_from_v(char*, const int, const char*, unsigned long long,
const __c_locale&, int);
+#endif
+
+ template
+ int
+ __int_to_char(char*, const int, unsigned long, const char*,
+ ios_base::fmtflags, bool);
+
+#ifdef _GLIBCPP_USE_WCHAR_T
+ template
+ int
+ __int_to_char(wchar_t*, const int, unsigned long, const wchar_t*,
+ ios_base::fmtflags, bool);
+#endif
+
+#ifdef _GLIBCPP_USE_LONG_LONG
+ template
+ int
+ __int_to_char(char*, const int, unsigned long long, const char*,
+ ios_base::fmtflags, bool);
+
+#ifdef _GLIBCPP_USE_WCHAR_T
+ template
+ int
+ __int_to_char(wchar_t*, const int, unsigned long long, const wchar_t*,
+ ios_base::fmtflags, bool);
+#endif
+#endif
} // namespace std
diff --git a/contrib/libstdc++/src/locale.cc b/contrib/libstdc++/src/locale.cc
index f16ca0d..17ccdc2 100644
--- a/contrib/libstdc++/src/locale.cc
+++ b/contrib/libstdc++/src/locale.cc
@@ -28,7 +28,6 @@
#include <clocale>
#include <cstring>
-#include <cassert>
#include <cctype>
#include <cwctype> // For towupper, etc.
#include <locale>
@@ -208,9 +207,8 @@ namespace std
// different from LANG.
size_t __i = 0;
if (strcmp(__res, "C") == 0)
- for (__i = 0;
- __i < _S_categories_size + _S_extra_categories_size;
- ++__i)
+ for (; __i < _S_categories_size
+ + _S_extra_categories_size; ++__i)
{
__env = getenv(_S_categories[__i]);
if (__env && strcmp(__env, "") != 0
@@ -219,9 +217,8 @@ namespace std
break;
}
else
- for (__i = 0;
- __i < _S_categories_size + _S_extra_categories_size;
- ++__i)
+ for (; __i < _S_categories_size
+ + _S_extra_categories_size; ++__i)
{
__env = getenv(_S_categories[__i]);
if (__env && strcmp(__env, "") != 0
@@ -237,14 +234,14 @@ namespace std
for (size_t __j = 0; __j < __i; ++__j)
{
__str += _S_categories[__j];
- __str += "=";
+ __str += '=';
__str += __res;
- __str += ";";
+ __str += ';';
}
__str += _S_categories[__i];
- __str += "=";
+ __str += '=';
__str += __env;
- __str += ";";
+ __str += ';';
__i++;
for (; __i < _S_categories_size
+ _S_extra_categories_size; ++__i)
@@ -266,9 +263,9 @@ namespace std
else
{
__str += _S_categories[__i];
- __str += "=";
+ __str += '=';
__str += __env;
- __str += ";";
+ __str += ';';
}
}
__str.erase(__str.end() - 1);
@@ -349,15 +346,15 @@ namespace std
else
{
__ret += _S_categories[0];
- __ret += "=";
+ __ret += '=';
__ret += _M_impl->_M_names[0];
for (size_t __i = 1;
__i < _S_categories_size + _S_extra_categories_size;
++__i)
{
- __ret += ";";
+ __ret += ';';
__ret += _S_categories[__i];
- __ret += "=";
+ __ret += '=';
__ret += _M_impl->_M_names[__i];
}
}
@@ -504,13 +501,16 @@ namespace std
const money_base::pattern
money_base::_S_default_pattern = { {symbol, sign, none, value} };
- const char __num_base::_S_atoms[] = "0123456789eEabcdfABCDF";
+ const char* __num_base::_S_atoms_in = "0123456789eEabcdfABCDF";
+ const char* __num_base::_S_atoms_out ="-+xX0123456789abcdef0123456789ABCDEF";
- bool
- __num_base::_S_format_float(const ios_base& __io, char* __fptr, char __mod,
- streamsize __prec)
+ // _GLIBCPP_RESOLVE_LIB_DEFECTS
+ // According to the resolution of DR 231, about 22.2.2.2.2, p11,
+ // "str.precision() is specified in the conversion specification".
+ void
+ __num_base::_S_format_float(const ios_base& __io, char* __fptr,
+ char __mod, streamsize/* unused post DR 231 */)
{
- bool __incl_prec = false;
ios_base::fmtflags __flags = __io.flags();
*__fptr++ = '%';
// [22.2.2.2.2] Table 60
@@ -518,13 +518,12 @@ namespace std
*__fptr++ = '+';
if (__flags & ios_base::showpoint)
*__fptr++ = '#';
- // As per [22.2.2.2.2.11]
- if (__flags & ios_base::fixed || __prec > 0)
- {
- *__fptr++ = '.';
- *__fptr++ = '*';
- __incl_prec = true;
- }
+
+ // As per DR 231: _always_, not only when
+ // __flags & ios_base::fixed || __prec > 0
+ *__fptr++ = '.';
+ *__fptr++ = '*';
+
if (__mod)
*__fptr++ = __mod;
ios_base::fmtflags __fltfield = __flags & ios_base::floatfield;
@@ -536,7 +535,6 @@ namespace std
else
*__fptr++ = (__flags & ios_base::uppercase) ? 'G' : 'g';
*__fptr = '\0';
- return __incl_prec;
}
void
diff --git a/contrib/libstdc++/src/localename.cc b/contrib/libstdc++/src/localename.cc
index e9debef..ec35fdb 100644
--- a/contrib/libstdc++/src/localename.cc
+++ b/contrib/libstdc++/src/localename.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -35,7 +35,8 @@ namespace __gnu_cxx
using namespace std;
// Defined in globals.cc.
- extern locale::facet** facet_vec;
+ extern locale::facet* facet_vec[_GLIBCPP_NUM_FACETS];
+ extern locale::facet* facet_cache_vec[2 * _GLIBCPP_NUM_FACETS];
extern char* facet_name[6 + _GLIBCPP_NUM_CATEGORIES];
extern std::ctype<char> ctype_c;
@@ -68,6 +69,11 @@ namespace __gnu_cxx
extern time_put<wchar_t> time_put_w;
extern std::messages<wchar_t> messages_w;
#endif
+
+ extern std::__locale_cache<numpunct<char> > locale_cache_np_c;
+#ifdef _GLIBCPP_USE_WCHAR_T
+ extern std::__locale_cache<numpunct<wchar_t> > locale_cache_np_w;
+#endif
} // namespace __gnu_cxx
namespace std
@@ -77,9 +83,13 @@ namespace std
locale::_Impl::
~_Impl() throw()
{
+ // Clean up facets, then caches. No cache refcounts for now.
for (size_t __i = 0; __i < _M_facets_size; ++__i)
if (_M_facets[__i])
_M_facets[__i]->_M_remove_reference();
+ for (size_t __i = _M_facets_size; __i < 2*_M_facets_size; ++__i)
+ if (_M_facets[__i])
+ delete (__locale_cache_base*)_M_facets[__i];
delete [] _M_facets;
for (size_t __i = 0;
@@ -94,8 +104,9 @@ namespace std
{
try
{
- _M_facets = new facet*[_M_facets_size];
- for (size_t __i = 0; __i < _M_facets_size; ++__i)
+ // Space for facets and matching caches
+ _M_facets = new facet*[2*_M_facets_size];
+ for (size_t __i = 0; __i < 2*_M_facets_size; ++__i)
_M_facets[__i] = 0;
}
catch(...)
@@ -129,9 +140,10 @@ namespace std
locale::facet::_S_create_c_locale(__cloc, __s);
try
- {
- _M_facets = new facet*[_M_facets_size];
- for (size_t __i = 0; __i < _M_facets_size; ++__i)
+ {
+ // Space for facets and matching caches
+ _M_facets = new facet*[2*_M_facets_size];
+ for (size_t __i = 0; __i < 2*_M_facets_size; ++__i)
_M_facets[__i] = 0;
}
catch(...)
@@ -167,7 +179,7 @@ namespace std
_M_names[__i] = __new;
}
}
-
+
// Construct all standard facets and add them to _M_facets.
_M_init_facet(new std::ctype<char>(__cloc, 0, false));
_M_init_facet(new codecvt<char, char, mbstate_t>);
@@ -214,8 +226,9 @@ namespace std
locale::facet::_S_create_c_locale(locale::facet::_S_c_locale,
locale::facet::_S_c_name);
- _M_facets = new(&facet_vec) facet*[_M_facets_size];
- for (size_t __i = 0; __i < _M_facets_size; ++__i)
+ // Space for facets and matching caches
+ _M_facets = new(&facet_cache_vec) facet*[2*_M_facets_size];
+ for (size_t __i = 0; __i < 2*_M_facets_size; ++__i)
_M_facets[__i] = 0;
// Name all the categories.
@@ -263,6 +276,25 @@ namespace std
_M_init_facet(new (&time_put_w) time_put<wchar_t>(1));
_M_init_facet(new (&messages_w) std::messages<wchar_t>(1));
#endif
+
+ // Initialize the static locale caches for C locale.
+
+ locale ltmp(this); // Doesn't bump refcount
+ _M_add_reference(); // Bump so destructor doesn't trash us
+
+ // These need to be built in static allocated memory. There must
+ // be a better way to do this!
+ __locale_cache<numpunct<char> >* __lc =
+ new (&locale_cache_np_c) __locale_cache<numpunct<char> >(ltmp, true);
+ _M_facets[numpunct<char>::id._M_id() + _M_facets_size] =
+ reinterpret_cast<locale::facet*>(__lc);
+
+#ifdef _GLIBCPP_USE_WCHAR_T
+ __locale_cache<numpunct<wchar_t> >* __wlc =
+ new (&locale_cache_np_w) __locale_cache<numpunct<wchar_t> >(ltmp, true);
+ _M_facets[numpunct<wchar_t>::id._M_id() + _M_facets_size] =
+ reinterpret_cast<locale::facet*>(__wlc);
+#endif
}
void
@@ -322,11 +354,16 @@ namespace std
facet** __old = _M_facets;
facet** __new;
const size_t __new_size = __index + 4;
- __new = new facet*[__new_size];
+ __new = new facet*[2 * __new_size];
for (size_t __i = 0; __i < _M_facets_size; ++__i)
__new[__i] = _M_facets[__i];
for (size_t __i2 = _M_facets_size; __i2 < __new_size; ++__i2)
__new[__i2] = 0;
+ // Also copy caches and clear extra space
+ for (size_t __i = 0; __i < _M_facets_size; ++__i)
+ __new[__i + __new_size] = _M_facets[__i + _M_facets_size];
+ for (size_t __i2 = _M_facets_size; __i2 < __new_size; ++__i2)
+ __new[__i2 + __new_size] = 0;
_M_facets_size = __new_size;
_M_facets = __new;
diff --git a/contrib/libstdc++/src/misc-inst.cc b/contrib/libstdc++/src/misc-inst.cc
index f4f2ab1..61cb1b3 100644
--- a/contrib/libstdc++/src/misc-inst.cc
+++ b/contrib/libstdc++/src/misc-inst.cc
@@ -37,6 +37,7 @@
#include <ostream>
#include <algorithm>
#include <vector>
+#include <bits/atomicity.h>
namespace std
{
@@ -67,6 +68,9 @@ namespace std
basic_istream<wchar_t>&
getline(basic_istream<wchar_t>&, wstring&);
#endif
+#ifdef _GLIBCPP_INST_ATOMICITY_LOCK
+ template volatile int __Atomicity_lock<0>::_S_atomicity_lock;
+#endif
#if 1
// XXX
@@ -82,4 +86,22 @@ namespace std
(vector<string>::const_iterator, vector<string>::const_iterator,
string*, __false_type);
#endif
-} //std
+} // namespace std
+
+#ifdef _GLIBCPP_NEED_GENERIC_MUTEX
+namespace __gnu_cxx
+{
+#ifdef __GTHREAD_MUTEX_INIT
+ __gthread_mutex_t _Atomic_add_mutex = __GTHREAD_MUTEX_INIT;
+#else
+ // generic atomicity.h without static initialization
+ __gthread_mutex_t _Atomic_add_mutex;
+ __gthread_once_t _Atomic_add_mutex_once = __GTHREAD_ONCE_INIT;
+ void __gthread_atomic_add_mutex_once()
+ {
+ __GTHREAD_MUTEX_INIT_FUNCTION (&_Atomic_add_mutex);
+ }
+#endif
+} // namespace __gnu_cxx
+#endif // _GLIBCPP_NEED_GLOBAL_MUTEX
+
diff --git a/contrib/libstdc++/src/ostream-inst.cc b/contrib/libstdc++/src/ostream-inst.cc
index e43b0c7..b834640 100644
--- a/contrib/libstdc++/src/ostream-inst.cc
+++ b/contrib/libstdc++/src/ostream-inst.cc
@@ -73,4 +73,4 @@ namespace std
template wostream& operator<<(wostream&, _Setprecision);
template wostream& operator<<(wostream&, _Setw);
#endif
-} //std
+} // namespace std
diff --git a/contrib/libstdc++/src/sstream-inst.cc b/contrib/libstdc++/src/sstream-inst.cc
index e341f5f..6c0272b 100644
--- a/contrib/libstdc++/src/sstream-inst.cc
+++ b/contrib/libstdc++/src/sstream-inst.cc
@@ -59,4 +59,4 @@ namespace std
#ifdef _GLIBCPP_USE_WCHAR_T
template class basic_stringstream<wchar_t>;
#endif
-} //std
+} // namespace std
diff --git a/contrib/libstdc++/src/strstream.cc b/contrib/libstdc++/src/strstream.cc
index 4d58565..00f5b73 100644
--- a/contrib/libstdc++/src/strstream.cc
+++ b/contrib/libstdc++/src/strstream.cc
@@ -1,6 +1,6 @@
// strstream definitions -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -148,7 +148,7 @@ namespace std
if (pptr() == epptr() && _M_dynamic && !_M_frozen && !_M_constant)
{
ptrdiff_t old_size = epptr() - pbase();
- ptrdiff_t new_size = max(2 * old_size, ptrdiff_t(1));
+ ptrdiff_t new_size = max(ptrdiff_t(2 * old_size), ptrdiff_t(1));
char* buf = _M_alloc(new_size);
if (buf)
diff --git a/contrib/libstdc++/src/valarray-inst.cc b/contrib/libstdc++/src/valarray-inst.cc
index b56a911..a45a616 100644
--- a/contrib/libstdc++/src/valarray-inst.cc
+++ b/contrib/libstdc++/src/valarray-inst.cc
@@ -35,7 +35,7 @@
namespace std
{
- // Some explicit instanciations.
+ // Some explicit instantiations.
template void
__valarray_fill(size_t* __restrict__, size_t, const size_t&);
@@ -112,7 +112,5 @@ namespace std
const valarray<size_t>& __s)
: _M_count(1), _M_start(__o), _M_size(__l), _M_stride(__s),
_M_index(__l.size() == 0 ? 0 : __valarray_product(__l))
- { __gslice_to_index(__o, __l, __s, _M_index); }
-
+ { __gslice_to_index(__o, __l, __s, _M_index); }
} // namespace std
-
OpenPOWER on IntegriCloud