Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libsemigroups for openSUSE:Factory checked in at 2022-10-28 19:31:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libsemigroups (Old) and /work/SRC/openSUSE:Factory/.libsemigroups.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libsemigroups" Fri Oct 28 19:31:50 2022 rev:20 rq:1031937 version:2.3.2 Changes: -------- --- /work/SRC/openSUSE:Factory/libsemigroups/libsemigroups.changes 2022-10-11 18:05:43.426101680 +0200 +++ /work/SRC/openSUSE:Factory/.libsemigroups.new.2275/libsemigroups.changes 2022-10-28 19:32:24.355496563 +0200 @@ -1,0 +2,10 @@ +Fri Oct 28 11:43:26 UTC 2022 - Jan Engelhardt <jeng...@inai.de> + +- Update to release 2.3.2 + * Fix inaccurate exception information for ``replace_subword`` + * string-view: fix bug in append method This bug sometimes + caused the ``normal_form`` member function of the + ``Kambites`` class template to return incorrect results, or + sometimes to cause a crash. + +------------------------------------------------------------------- Old: ---- libsemigroups-2.3.1.tar.gz New: ---- libsemigroups-2.3.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libsemigroups.spec ++++++ --- /var/tmp/diff_new_pack.KoUr7G/_old 2022-10-28 19:32:24.851499051 +0200 +++ /var/tmp/diff_new_pack.KoUr7G/_new 2022-10-28 19:32:24.859499091 +0200 @@ -18,7 +18,7 @@ Name: libsemigroups %define lname libsemigroups2 -Version: 2.3.1 +Version: 2.3.2 Release: 0 Summary: Library with algorithms for computing finite and finitely presented semigroups License: GPL-3.0-or-later ++++++ libsemigroups-2.3.1.tar.gz -> libsemigroups-2.3.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.3.1/.VERSION new/libsemigroups-2.3.2/.VERSION --- old/libsemigroups-2.3.1/.VERSION 2022-10-10 16:44:49.590984748 +0200 +++ new/libsemigroups-2.3.2/.VERSION 2022-10-28 10:29:40.719886688 +0200 @@ -1 +1 @@ -2.3.1 \ No newline at end of file +2.3.2 \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.3.1/README.rst new/libsemigroups-2.3.2/README.rst --- old/libsemigroups-2.3.1/README.rst 2022-10-10 15:55:18.574697369 +0200 +++ new/libsemigroups-2.3.2/README.rst 2022-10-28 10:19:52.736430814 +0200 @@ -4,7 +4,7 @@ The full license is in the file LICENSE, distributed with this software. -libsemigroups - Version 2.3.1 +libsemigroups - Version 2.3.2 ============================= .. image:: https://readthedocs.org/projects/libsemigroups/badge/?version=master diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.3.1/benchmarks/uf-old.cpp new/libsemigroups-2.3.2/benchmarks/uf-old.cpp --- old/libsemigroups-2.3.1/benchmarks/uf-old.cpp 2022-09-16 10:51:27.502756219 +0200 +++ new/libsemigroups-2.3.2/benchmarks/uf-old.cpp 2022-10-28 10:15:53.519884024 +0200 @@ -1,6 +1,6 @@ // // libsemigroups - C++ library for semigroups and monoids -// Copyright (C) 2019 Michael Torpey +// Copyright (C) 2019 Michael Young // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.3.1/benchmarks/uf-old.hpp new/libsemigroups-2.3.2/benchmarks/uf-old.hpp --- old/libsemigroups-2.3.1/benchmarks/uf-old.hpp 2022-09-16 10:51:27.502841134 +0200 +++ new/libsemigroups-2.3.2/benchmarks/uf-old.hpp 2022-10-28 10:15:53.520233552 +0200 @@ -1,6 +1,6 @@ // // libsemigroups - C++ library for semigroups and monoids -// Copyright (C) 2019 Michael Torpey +// Copyright (C) 2019 Michael Young // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.3.1/configure new/libsemigroups-2.3.2/configure --- old/libsemigroups-2.3.1/configure 2022-10-10 16:44:53.336472042 +0200 +++ new/libsemigroups-2.3.2/configure 2022-10-28 10:29:44.715725932 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for libsemigroups 2.3.1. +# Generated by GNU Autoconf 2.71 for libsemigroups 2.3.2. # # Report bugs to <j...@st-andrews.ac.uk>. # @@ -621,8 +621,8 @@ # Identity of this package. PACKAGE_NAME='libsemigroups' PACKAGE_TARNAME='libsemigroups' -PACKAGE_VERSION='2.3.1' -PACKAGE_STRING='libsemigroups 2.3.1' +PACKAGE_VERSION='2.3.2' +PACKAGE_STRING='libsemigroups 2.3.2' PACKAGE_BUGREPORT='j...@st-andrews.ac.uk' PACKAGE_URL='' @@ -1430,7 +1430,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libsemigroups 2.3.1 to adapt to many kinds of systems. +\`configure' configures libsemigroups 2.3.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1502,7 +1502,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libsemigroups 2.3.1:";; + short | recursive ) echo "Configuration of libsemigroups 2.3.2:";; esac cat <<\_ACEOF @@ -1643,7 +1643,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libsemigroups configure 2.3.1 +libsemigroups configure 2.3.2 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2482,7 +2482,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libsemigroups $as_me 2.3.1, which was +It was created by libsemigroups $as_me 2.3.2, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -4091,7 +4091,7 @@ # Define the identity of the package. PACKAGE='libsemigroups' - VERSION='2.3.1' + VERSION='2.3.2' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -23424,7 +23424,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libsemigroups $as_me 2.3.1, which was +This file was extended by libsemigroups $as_me 2.3.2, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -23492,7 +23492,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -libsemigroups config.status 2.3.1 +libsemigroups config.status 2.3.2 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.3.1/docs/source/changelog.rst new/libsemigroups-2.3.2/docs/source/changelog.rst --- old/libsemigroups-2.3.1/docs/source/changelog.rst 2022-10-10 15:55:18.582601927 +0200 +++ new/libsemigroups-2.3.2/docs/source/changelog.rst 2022-10-28 10:27:20.399509422 +0200 @@ -1,6 +1,26 @@ Changelog - version 2 ===================== +v2.3.2 (released 28/10/2022) +---------------------------- + +In this release a number of bugs and other minor issues were resolved. + +* Fix inaccurate exception information for ``replace_subword`` by @MTWhyte in + https://github.com/libsemigroups/libsemigroups/pull/394 +* Fix broken link in `CONTRIBUTING.rst` by @MTWhyte in + https://github.com/libsemigroups/libsemigroups/pull/396 +* matrix: add case for some Apple clang weirdness by @james-d-mitchell in + https://github.com/libsemigroups/libsemigroups/pull/401 This might be a bug + in clang versions 13 and 14, which caused the ``identity`` static member + function of the ``StaticMatrix`` class template to not properly initialise the + matrix being constructed. +* string-view: fix bug in append method by @james-d-mitchell in + https://github.com/libsemigroups/libsemigroups/pull/399 + This bug sometimes caused the ``normal_form`` member function of the + ``Kambites`` class template to return incorrect results, or sometimes to + cause a crash. + v2.3.1 (released 10/10/2022) ---------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.3.1/docs/source/index.rst new/libsemigroups-2.3.2/docs/source/index.rst --- old/libsemigroups-2.3.1/docs/source/index.rst 2022-10-10 15:55:18.575329778 +0200 +++ new/libsemigroups-2.3.2/docs/source/index.rst 2022-10-28 10:29:23.588542275 +0200 @@ -1,4 +1,4 @@ -libsemigroups - Version 2.3.1 +libsemigroups - Version 2.3.2 ============================= C++ library for semigroups and monoids diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.3.1/docs/source/install.rst new/libsemigroups-2.3.2/docs/source/install.rst --- old/libsemigroups-2.3.1/docs/source/install.rst 2022-10-10 15:55:18.575651106 +0200 +++ new/libsemigroups-2.3.2/docs/source/install.rst 2022-10-28 10:28:57.142499309 +0200 @@ -1,4 +1,4 @@ -.. |libsemigroups-version| replace:: 2.3.1 +.. |libsemigroups-version| replace:: 2.3.2 .. _Installation: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.3.1/include/libsemigroups/config.hpp new/libsemigroups-2.3.2/include/libsemigroups/config.hpp --- old/libsemigroups-2.3.1/include/libsemigroups/config.hpp 2022-10-10 16:44:59.861350374 +0200 +++ new/libsemigroups-2.3.2/include/libsemigroups/config.hpp 2022-10-28 10:29:51.111691246 +0200 @@ -181,7 +181,7 @@ /* Define to the full name and version of this package. */ #ifndef LIBSEMIGROUPS_PACKAGE_STRING -#define LIBSEMIGROUPS_PACKAGE_STRING "libsemigroups 2.3.1" +#define LIBSEMIGROUPS_PACKAGE_STRING "libsemigroups 2.3.2" #endif /* Define to the one symbol short name of this package. */ @@ -196,7 +196,7 @@ /* Define to the version of this package. */ #ifndef LIBSEMIGROUPS_PACKAGE_VERSION -#define LIBSEMIGROUPS_PACKAGE_VERSION "2.3.1" +#define LIBSEMIGROUPS_PACKAGE_VERSION "2.3.2" #endif /* Define to necessary symbol if this constant uses a non-standard name on @@ -232,7 +232,7 @@ /* Version number of package */ #ifndef LIBSEMIGROUPS_VERSION -#define LIBSEMIGROUPS_VERSION "2.3.1" +#define LIBSEMIGROUPS_VERSION "2.3.2" #endif /* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.3.1/include/libsemigroups/felsch-tree.hpp new/libsemigroups-2.3.2/include/libsemigroups/felsch-tree.hpp --- old/libsemigroups-2.3.1/include/libsemigroups/felsch-tree.hpp 2022-09-16 13:47:20.069339316 +0200 +++ new/libsemigroups-2.3.2/include/libsemigroups/felsch-tree.hpp 2022-10-28 10:15:45.702379778 +0200 @@ -43,7 +43,11 @@ _parent(1, state_type(UNDEFINED)), _length(0) {} + FelschTree() = delete; FelschTree(FelschTree const&) = default; + FelschTree(FelschTree&&) = default; + FelschTree& operator=(FelschTree const&) = default; + FelschTree& operator=(FelschTree&&) = default; using word_iterator = typename std::vector<word_type>::const_iterator; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.3.1/include/libsemigroups/matrix.hpp new/libsemigroups-2.3.2/include/libsemigroups/matrix.hpp --- old/libsemigroups-2.3.1/include/libsemigroups/matrix.hpp 2022-09-16 13:47:20.189892766 +0200 +++ new/libsemigroups-2.3.2/include/libsemigroups/matrix.hpp 2022-10-28 10:15:45.703232412 +0200 @@ -1077,14 +1077,24 @@ ~StaticMatrix() = default; static StaticMatrix identity(size_t n = 0) { - (void) n; static_assert(C == R, "cannot create non-square identity matrix"); // If specified the value of n must equal R or otherwise weirdness will // ensue... LIBSEMIGROUPS_ASSERT(n == 0 || n == R); - StaticMatrix x(R, R); + (void) n; +#if defined(__APPLE__) && defined(__clang__) \ + && (__clang_major__ == 13 || __clang_major__ == 14) + // With Apple clang version 13.1.6 (clang-1316.0.21.2.5) something goes + // wrong and the value R is optimized away somehow, meaning that the + // values on the diagonal aren't actually set. This only occurs when + // libsemigroups is compiled with -O2 or higher. + size_t volatile m = R; +#else + size_t m = R; +#endif + StaticMatrix x(m, m); std::fill(x.begin(), x.end(), ZeroOp()()); - for (size_t r = 0; r < R; ++r) { + for (size_t r = 0; r < m; ++r) { x(r, r) = OneOp()(); } return x; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.3.1/include/libsemigroups/present.hpp new/libsemigroups-2.3.2/include/libsemigroups/present.hpp --- old/libsemigroups-2.3.1/include/libsemigroups/present.hpp 2022-10-10 14:16:54.099206161 +0200 +++ new/libsemigroups-2.3.2/include/libsemigroups/present.hpp 2022-10-28 10:15:45.703747850 +0200 @@ -761,8 +761,7 @@ //! //! \returns (None) //! - //! \exceptions - //! \no_libsemigroups_except + //! \throws LibsemigroupsException if `existing` is empty. // TODO(later) complexity template <typename W> void replace_subword(Presentation<W>& p, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.3.1/include/libsemigroups/string-view.hpp new/libsemigroups-2.3.2/include/libsemigroups/string-view.hpp --- old/libsemigroups-2.3.1/include/libsemigroups/string-view.hpp 2022-09-16 13:47:20.238926362 +0200 +++ new/libsemigroups-2.3.2/include/libsemigroups/string-view.hpp 2022-10-28 10:15:45.704764603 +0200 @@ -835,9 +835,9 @@ // append so that we concatenate adjacent ranges! append(first.get_wrapped_iter(), ptr->_container.end(first_index)); for (size_t pos = first_index + 1; pos < last_index; ++pos) { - LIBSEMIGROUPS_ASSERT(!_container.empty(pos)); - _container.emplace_back(_container.begin(pos), - _container.end(pos)); + LIBSEMIGROUPS_ASSERT(!ptr->_container.empty(pos)); + _container.emplace_back(ptr->_container.begin(pos), + ptr->_container.end(pos)); } _container.emplace_back(ptr->_container.begin(last_index), last.get_wrapped_iter()); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.3.1/include/libsemigroups/uf.hpp new/libsemigroups-2.3.2/include/libsemigroups/uf.hpp --- old/libsemigroups-2.3.1/include/libsemigroups/uf.hpp 2022-09-27 18:28:39.970399710 +0200 +++ new/libsemigroups-2.3.2/include/libsemigroups/uf.hpp 2022-10-28 10:15:53.520682160 +0200 @@ -24,7 +24,7 @@ // package for GAP (v0.2.5) by Markus Pfeiffer, Max Horn, Christopher // Jefferson, Steve Linton. -// An earlier version of the UF class was written by M. Torpey. +// An earlier version of the UF class was written by M. Young. #ifndef LIBSEMIGROUPS_UF_HPP_ #define LIBSEMIGROUPS_UF_HPP_ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.3.1/tests/test-cong-pair.cpp new/libsemigroups-2.3.2/tests/test-cong-pair.cpp --- old/libsemigroups-2.3.1/tests/test-cong-pair.cpp 2022-09-27 16:28:04.310360081 +0200 +++ new/libsemigroups-2.3.2/tests/test-cong-pair.cpp 2022-10-28 10:15:53.521233347 +0200 @@ -1,6 +1,6 @@ // // libsemigroups - C++ library for semigroups and monoids -// Copyright (C) 2019 Michael Torpey +// Copyright (C) 2019 Michael Young // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.3.1/tests/test-kambites.cpp new/libsemigroups-2.3.2/tests/test-kambites.cpp --- old/libsemigroups-2.3.1/tests/test-kambites.cpp 2022-09-27 16:28:04.380116889 +0200 +++ new/libsemigroups-2.3.2/tests/test-kambites.cpp 2022-10-28 10:15:45.707550578 +0200 @@ -1753,6 +1753,406 @@ REQUIRE(total_c4 == 307511); REQUIRE(total == 5374281); } + + LIBSEMIGROUPS_TEST_CASE("Kambites", + "079", + "(fpsemi) normal form possible bug", + "[standard][kambites][fpsemigroup][fpsemi]") { + // There was a bug in MultiStringView::append, that caused this test to + // fail, so we keep this test to check that the bug in + // MultiStringView::append is resolved. + Kambites<MultiStringView> k; + k.set_alphabet("ab"); + k.add_rule("aaabbab", "bbbaaba"); + + std::vector<std::string> words = { + "bbbaabaabbbbbaabaabaaabbaabbbbbaaabaaabababbbbaaabbabababbaabbabaabb" + "aaabbabbaaaabbabbbbbbaabbbbaabbabaaabaaaaabbaabababababaaaabaabbabba" + "bbaaabbabababbabaabbbbbbabaabbabaaaababbababbabbabbabbbabbbabbbabbbb" + "aaaaaabbabbaababbbaaababbbbababababbabaabbbbbabaaaababaaabbaaabbaaab" + "babaabbbaababbbaaabbaabbbbaabbbbaaaaababbabbbaaaaaababbbbaaabbbabbba" + "babbbbbbaabaabababbabbbbbaaaabbbbabbababbbaaaabbbbaabbbbbabbbbbabaab" + "bbaaabaaabbababbbabbaaaaaabbbbabababbaabbabbbbabbabbaabbbaaabaaabbab" + "abbbabbbbaabaaababbabbaababbbabbaababbabbbbabbbbabaabaaaabaaaabababa" + "abababbaaabbabbbbbbaaaaaabbbbabbabbabaaaaabaabbaababbbbaabaaabbabaaa" + "abaaabbbaaaabbabbababaaaabbbbaaabbababababaabbaaaabaabbababbabbaaaba" + "bbaaabbbbbabbbaababaaabbababbbbbaabbbabaaaaabbbbabbabaaaababbabbabab" + "aabbaababbaaabbabbbbabbbaaabbabbbaabbababbaabbaaaaaabaaabbbaababbaaa" + "ababaabbaaabbbaabababbbbbababbbbbbbaabbbbaabababbbaabbbbbbbaabbbbaaa" + "babaaaabaababbbaabaaabaaabaaaaabaabbbbabbabaaabbabbaabbaabbabaaabbbb" + "baaabababbaabbbaababababaababbaabbabaaaaabaaabaaababaababaaaaaababaa" + "aaaaaabaababbbbaabaabbabbabaaaaaabaabbabbbabbaabbbbbbbaaaababababbbb" + "ababbbabbbaaabbabbabbaabbbbbbbababaabaabababbaaabbaabbbaabbbabbbbbab" + "aaabbbababbbaabaaaabaabbaaaabbabbbabababbaaabbbbaabaabbababaaaabbbaa" + "aabbbaabaa", + "aaabbababbbbbaabaabaaabbaabbbbbaaabaaabababbbbaaabbabababbaabbabaabb" + "bbbaababaaaabbabbbbbbaabbbbaabbabaaabaaaaabbaabababababaaaabaabbabba" + "bbaaabbabababbabaabbbbbbabaabbabaaaababbababbabbabbabbbabbbabbbabbbb" + "aaabbbaababaababbbaaababbbbababababbabaabbbbbabaaaababaaabbaaabbaaab" + "babaabbbaababbbaaabbaabbbbaabbbbaaaaababbabbbaaaaaababbbbaaabbbabbba" + "babbbbbbaabaabababbabbbbbaaaabbbbabbababbbaaaabbbbaabbbbbabbbbbabaab" + "bbaaabbbbaabaabbbabbaaaaaabbbbabababbaabbabbbbabbabbaabbbaaabaaabbab" + "abbbabbbbaabaaababbabbaababbbabbaababbabbbbabbbbabaabaaaabaaaabababa" + "abababbaaabbabbbbbbaaaaaabbbbabbabbabaaaaabaabbaababbbbaabaaabbabaaa" + "abaaabbbabbbaababababaaaabbbbaaabbababababaabbaaaabaabbababbabbaaaba" + "bbaaabbbbbabbbaababaaabbababbbbbaabbbabaaaaabbbbabbabaaaababbabbabab" + "aabbaababbbbbaababbbabbbaaabbabbbaabbababbaabbaaaaaabaaabbbaababbaaa" + "ababaabbaaabbbaabababbbbbababbbbbbbaabbbbaabababbbaabbbbbbbaabbbbaaa" + "babaaaabaabaaaabbabaabaaabaaaaabaabbbbabbabaaabbabbaabbaabbabaaabbbb" + "baaabababbaaaaabbabbababaababbaabbabaaaaabaaabaaababaababaaaaaababaa" + "aaaaaabaababbbbaabaabbabbabaaaaaabaabbabbbabbaabbbbbbbaaaababababbbb" + "ababbbabbbaaabbabbabbaabbbbbbbababaabaabababbaaabbaabbbaabbbabbbbbab" + "aaabbbabaaaabbabaaabaabbaaaabbabbbabababbaaabbbbaabaabbababaaaabbbaa" + "aabbbaabaa", + "bbbaabaabbbbabaaaaababbbaababbabbabbaabaaabbaaabbabbbabbbaaaababaaab" + "baaabbabbbbaaabbabaaaaaaababbaaabbaabbaabaabbabbaabaabbababbbbbbbbaa" + "aaaaaabbabbbabaaababbbbbabababbbaaabbaaaaaabbbbbbabbabbbaaaaabbabbab" + "bbbaaaaabbabbabbbbababbbababbbaaabaabbabaabbaaaaabbababbaabbbababbaa" + "abbabaaabbabaaaaaaabbaababbaabbbabbabaaaabaabaaabbbbaaaabbbaaaaaaabb" + "aabaaabbbaababbaaabbbbaabbabbbbabbbababbabbbbababbbbbbaaabaabaababab" + "aabbabbbaaabbabbaaabaabbbbaabbaabaabaababbabbaabaabbabbbbbaaabbaaabb" + "abbbbababbaaabbabbbaabaaabaaaaaababbaaabbbbbababbaabbaaaabbaaaaabaaa" + "aaabbbaaaaaaaabbabbbaabaaaabaababbaaabbbbbabaaaabbbabaaaaabbaabbaabb" + "bbaaabbbbaabaabbaaabbbbaabbbaaaaaabbbabbaabbaabbabbbabaabbbbaabababa" + "abbbbbbaaaabbabbbbabbaaabbbabbabaaabbabbabbbabbbaaaabbbaaabbbaabaabb" + "aaabaabbabbbbaabaaabaabbaaababaabbabaaabaabbaaabaaababbaabbbbbababba" + "abbabbabbbaaabbabaaaabbbaaaaabbbbbbbabbbabbbababbbabaaababababaaaaba" + "aaaaaaaabbabaaabbabbbabbaaababababaaabbabbbbababbbaaaaababaaaabbabaa" + "babbaaaaabaaaaabbabbbbbbbbbaabbaabaabbabbaabbabaabaaaabaababaababbaa" + "aabaabaababbaaaaabbabbababbabbbaabbbbbaaabbbaabaaaaabaaabbbaaabbbaba" + "bbbbbabbabbaaaabbbaababbababbabaabaabbbbaaabaaabbbabbbbbabaaaabaabaa" + "bbbabbbbaabbbaaabbbbaabaababbaabbabbabaaabbaaaababbabbaabbbabaabbbba" + "aaabbbaaaaabaaabab", + "aaabbababbbbabaaaaababbbaababbabbabbaabaaabbaaabbabbbabbbaaaababaaab" + "baaabbabbbbaaabbabaaaaaaababbaaabbaabbaabaabbabbaabaabbababbbbbbbbaa" + "aaabbbaababbabaaababbbbbabababbbaaabbaaaaaabbbbbbabbabbbaaaaabbabbab" + "bbbaaaaabbabbabbbbababbbababbbaaabaabbabaabbaaaaabbababbaabbbababbaa" + "abbabbbbaabaaaaaaaabbaababbaabbbabbabaaaabaabaaabbbbaaaabbbaaaaaaabb" + "aabaaabbbaababbaaabbbbaabbabbbbabbbababbabbbbababbbbbbaaabaabaababab" + "aabbabbbaaabbabbaaabaabbbbaabbaabaabaababbabbaabaabbabbbbbaaabbaaabb" + "abbbbababbbbbaababbaabaaabaaaaaababbaaabbbbbababbaabbaaaabbaaaaabaaa" + "aaabbbaaaaaaaabbabbbaabaaaabaababbaaabbbbbabaaaabbbabaaaaabbaabbaabb" + "bbaaabbbbaabaabbaaabbbbaabbbaaaaaabbbabbaabbaabbabbbabaabbbbaabababa" + "abbbbbbabbbaababbbabbaaabbbabbabaaabbabbabbbabbbaaaabbbaaabbbaabaabb" + "aaabaabbabbbbaabaaabaabbaaababaabbabaaabaabbaaabaaababbaabbbbbababba" + "abbabbabbbbbbaabaaaaabbbaaaaabbbbbbbabbbabbbababbbabaaababababaaaaba" + "aaaaaaaabbabaaabbabbbabbaaababababaaabbabbbbababbbaaaaababaaaabbabaa" + "babbaaaaabaabbbaababbbbbbbbaabbaabaabbabbaabbabaabaaaabaababaababbaa" + "aabaabaababbaaaaabbabbababbabbbaabbbbbaaabbbaabaaaaabaaabbbaaabbbaba" + "bbbbbabbabbaaaabbbaababbababbabaabaabbbbaaabaaabbbabbbbbabaaaabaabaa" + "bbbabbbbaabbbaaabbbbaabaababbaabbabbabaaabbaaaababbabbaabbbabaabbbba" + "aaabbbaaaaabaaabab", + "bbbaababbaabbababbbaabbbbaaaaaaabbaabbbbbabaababaababbbbabaabbbaabbb" + "aabaaabbbaabbbabbabbbbabbbabbbbbaaaaaaabaabbbbaabbbbbbaabbaabaabaaba" + "aabbabbaababbbbababaaaabaababbaababbbbabaabbbabbabaababaaabaaabbbaba" + "bbbaabaababbbbaaaaabaaaababaababbababaaabaaaaaabbaabaababbbbaaabaaaa" + "bbaaabbabaaabbababbbabbbbbbababbaabbaaaababbbbaabbbaababbaabaababbbb" + "aabbbbaabababbbabaabbaaaabaabbbabbbaabaabbabbaababbbbbbbabbbbbbbabaa" + "bbbaaaaabbabbbbabbbbabbbaaabbbbaabbbabaabaabaabbaaaaabbbababaaabbaaa" + "bbbbbabaaabbabbaabbbaaabbabbbbbbabbabaaabbbabbbabaabbabbabababbabbaa" + "ababaabbbbbbaababbbbbbbaaaaaaabaababbaaababbbbbaaaaaaaabbbbabaabbbab" + "babaabababaaaabbababbabaabbaababaabbbbbabaaabbbbabaababaaaaaaababbbb" + "bbbbbbbbbaaabbabbbbaaabaabbbabaabaabaaaabaabbbbbbabbaaabbabaaabbbaba" + "abaaabbbbabbbaababaaabbaaabaabababbabababaaabbabaabbabbaaaabbbbabbab" + "abbabbababbbbbaababbaabbabaabbaaabaaaababbbbaaaabbabbaaaabaaabbbbaba" + "bbbbbaaabbaaaabbabbabaaaabbabbaaaababbbaababbabbbaababaaabababbabbab" + "babbbabbbaababbbaababbbbbbbbababbbabababbababbbaaabbaababaabbbaaabbb" + "bbaaabababaaabbbbbaabaaababababaabbbbbbabbbabaaabaabababbbabaaabaabb" + "bbaabbaababbbabaaabbabaaaaaabbaaaababbaabbbaababbaaababbbaabaabbbbbb" + "ababbbbbbbbaabaabbbaabaaaabababbaaabaabaababaabababbabbabbbaabbbbaba" + "baaababbbbabbaaa", + "aaabbabbbaabbababbbaabbbbaaaaaaabbaabbbbbabaababaababbbbabaabbbaaaaa" + "bbabaabbbaabbbabbabbbbabbbabbbbbaaaaaaabaabbbbaabbbbbbaabbaabaabaabb" + "bbaababaababbbbababaaaabaababbaababbbbabaabbbabbabaababaaabaaabbbaba" + "bbbaabaababbbbaaaaabaaaababaababbababaaabaaaaaabbaabaababbbbaaabaaaa" + "bbaaabbabaaabbababbbabbbbbbababbaabbaaaababbbbaabbbaababbaabaababbbb" + "aabbbbaabababbbabaabbaaaabaabbbabbbaabaabbabbaababbbbbbbabbbbbbbabaa" + "bbbaabbbaababbbabbbbabbbaaabbbbaabbbabaabaabaabbaaaaabbbababaaabbaaa" + "bbbbbabbbbaababaabbbaaabbabbbbbbabbabaaabbbabbbabaabbabbabababbabbaa" + "ababaabbbaaabbabbbbbbbbaaaaaaabaababbaaababbbbbaaaaaaaabbbbabaabbbab" + "babaababababbbaabaabbabaabbaababaabbbbbabaaabbbbabaababaaaaaaababbbb" + "bbbbbbbbbaaabbabbbbaaabaabbbabaabaabaaaabaabbbbbbabbaaabbabaaabbbaba" + "abaaabbbbaaaabbabbaaabbaaabaabababbabababaaabbabaabbabbaaaabbbbabbab" + "abbabbababbaaabbabbbaabbabaabbaaabaaaababbbbaaaabbabbaaaabaaabbbbaba" + "bbbbbaaabbabbbaabababaaaabbabbaaaababbbaababbabbbaababaaabababbabbab" + "babbbabbbaabaaaabbabbbbbbbbbababbbabababbababbbaaabbaababaabbbaaabbb" + "bbaaabababaaabbbbbaabaaababababaabbbbbbabbbabaaabaabababbbabaaabaabb" + "bbaabbaababbbabaaabbabaaaaaabbaaaababbaabbbaababbaaababbbaabaabbbbbb" + "ababbbbbbbbaabaaaaabbabaaabababbaaabaabaababaabababbabbabbbaabbbbaba" + "baaababbbbabbaaa", + "bbbaabaaaabababaabbbbbbbabbbaaabbbabbabbbbbabaaaabaaaabaabbbaabbbbbb" + "bbaaabbabbabaaabbaaaaaabbbabaaaaabababbbbabbbaaaabbbabbaaabbbabbbabb" + "aababbbaababaaaaabaaaaababaabbaaaaaaabbbaaaaaaaaaaaaaabbaabbababbabb" + "bababaaaabbababbabbabbbaaaabbaaaababaabaababaabbaababaaaabbbbbbbbaba" + "babbbbbabbbaabaabaabaaababbababaababaaaaaababbabaabaabbbabaaaabbbabb" + "aaabbbaabbaaabbabbbabababbabbbaaaaabbaaabaaabaabbaabbbbbbbbaaabaaaab" + "babbbbbbaaabaaabbabbbbabbbbbaabbabaabbbaaaaababaaaaababbbabbabbabbbb" + "bbababaaabbaaabbbaababaabaaabbaabababbbbaabbaabbabaaaabbbabbbaabaabb" + "baaababbbbbbbbaababbaabbbbaaaaaabababababbaababbbabaaaabbbaaabbbbaba" + "baaaaaabbbabbbbbaabaaaaabbabbaabaaaabbbaaabaaabbabaabaabbbababaaaabb" + "babbabaabababaaaaabbabbbaabbbaababbaaaababbbabbaaabababbbaaabbababab" + "baaabbbbbbbbaaabbbbaabababaaaaaabaaabbabaabbabbababbaabaaabaababaaab" + "babaabbbbbbbbbbbbbbaabaababbbababaaaaaaabababbbbababbaababababbbabbb" + "abbaabaaaabbabaaaaaaabbabbabaaabaaabbabbababbaaaaaababbababbaababbbb" + "aababbbbbbaabbbabaabaaabbabaababbabaaaaabbbabaabaaababaaaaaaaaabaaab" + "bbabbbbabaaabaaaabbaabbbaabaaabbaabbbbaaabbbbbbaabbbabbababbbabaaabb" + "baaaabbabababbababbabbabbbaababaaabaaabbabaaaabbbbabaaabaababbbaabba" + "babbbbbbabbababaabaabbbabaaabbabababbbbbabaaababbbabaabbbbaabbbbabba" + "abaabbaabaaaaabaaabaabbbaaa", + "aaabbabaaabababaabbbbbbbabbbaaabbbabbabbbbbabaaaabaaaabaabbbaabbbbbb" + "bbbbbaabababaaabbaaaaaabbbabaaaaabababbbbabbbaaaabbbabbaaabbbabbbabb" + "aababbbaababaaaaabaaaaababaabbaaaaaaabbbaaaaaaaaaaaaaabbaabbababbabb" + "babababbbaabaabbabbabbbaaaabbaaaababaabaababaabbaababaaaabbbbbbbbaba" + "babbbbbaaaabbababaabaaababbababaababaaaaaababbabaabaabbbabaaaabbbabb" + "aaabbbaabbbbbaababbabababbabbbaaaaabbaaabaaabaabbaabbbbbbbbaaabaaaab" + "babbbbbbaaabbbbaababbbabbbbbaabbabaabbbaaaaababaaaaababbbabbabbabbbb" + "bbababaaabbaaaaaabbabbaabaaabbaabababbbbaabbaabbabaaaabbbabbbaabaabb" + "baaababbbbbaaabbabbbaabbbbaaaaaabababababbaababbbabaaaabbbaaabbbbaba" + "baaaaaabbbabbbbbaabaaaaabbabbaabaaaabbbaaabaaabbabaabaabbbababaaaabb" + "babbabaabababaaaaabbabbbaabbbaababbaaaababbbabbaaabababbbaaabbababab" + "baaabbbbbbbbaaabbbbaabababaaaaaabaaabbabaabbabbababbaabaaabaababaaab" + "babaabbbbbbbbbbbbbbaabaababbbababaaaaaaabababbbbababbaababababbbabbb" + "abbaabaaaabbabaaaabbbaabababaaabaaabbabbababbaaaaaababbababbaababbbb" + "aababbbbbbaabbbabaabbbbaabaaababbabaaaaabbbabaabaaababaaaaaaaaabaaab" + "bbabbbbabaaabaaaabbaaaaabbabaabbaabbbbaaabbbbbbaabbbabbababbbabaaabb" + "baaaabbabababbababbabbaaaabbabbaaabaaabbabaaaabbbbabaaabaababbbaabba" + "babbbbbbabbababaabaabbbabaaabbabababbbbbabaaababbbabaabbbbaabbbbabba" + "abaabbaabaaaaabaaabaabbbaaa, " + "bbbaababbababbaaaabbaabbabbbbaababbabbbabbbababbbbbaaababbabbababaaa" + "abbabbabbbbaaaaaaaaabbbabaaabbbbababaaaabaabbbbbbaababbaaaaabbababab" + "aaabbabbbbbbabbbbbaababbbbaabaabaaabbababaaabaaabbbaaaaabbbaababbbba" + "abaaabbababaabababbababbbababbbabbababbabaabbbabbabbaaaabbbbabbbbbbb" + "ababbbaabaaaabaaaaaaaaabbabbabaaaabbbaabbaababababaaabbbabbaabbbbaba" + "aaabbabbabbaaaababababaabbbbaabbababbbbbabbabbbbbbaabbabaabbabbbbabb" + "abbbaabaaabbbbbbabbaaabbaaabbbababaabababbabbbaababaabbaabbabbbbaabb" + "babbbbaabaabaaaabaaabbbbaaaaaaaabbbbbbabaabbabbbaaabababbbabaaababbb" + "bbabaaabbabaabbbbbabbabaababbabbabbabaabbbaaaaabbbaabbbaaaabaabababb" + "bbabaaaaabbabaaaabbbaabbbbbbbabbabbababbaaaaabababaaabbbbbabaabbbabb" + "bbaabaaaaabbabaabbabbaabbbabaabbbaaaaabbababbbaaaabaabababaaabbbbbaa" + "abbaaababbbaabaaaaaaababbbbabbbabaaaababbaababaababaaababbabbbabbaba" + "ababbbaabbaaabbabaabaaaabbbbbababbbbabbababbbabaabaabbbabbabbabaaaaa" + "abbabaababaaaaabbabbaaaaaaabaaaabbaaabaababbaababaaabbbbaaaababaaaba" + "abbabababaababaaabbabbbaababbbabbbbabbaaaabaabbbababbbbbbabaabbbbaba" + "abbbaabbbbbabbbbbaabababbbbaabbbbbabbbbabbaaababbabaabbabababaababab" + "bbbbaaaabbaaabaaaaabbabaaaaaaaabbbaababbaaabbbabbbbaaabaababbaababbb" + "ababbaaaabbbbaaaaaaaabbabbbbbababaabbababbaabbaaaaaaaabbabbbabbbbaab" + "aabbbaabbbaaabaaaabb", + "bbbaababbababbaaaabbaabbabbbbaababbabbbabbbababbbbbaaababbabbababaaa" + "abbabbabbbbaaaaaaaaabbbabaaabbbbababaaaabaabbbbbbaababbaaaaabbababab" + "aaabbabbbbbbabbbbbaababbbbaabaabaaabbababaaabaaabbbaaaaabbbaababbbba" + "abaaabbababaabababbababbbababbbabbababbabaabbbabbabbaaaabbbbabbbbbbb" + "ababbbaabaaaabaaaaaaaaabbabbabaaaabbbaabbaababababaaabbbabbaabbbbaba" + "bbbaabababbaaaababababaabbbbaabbababbbbbabbabbbbbbaabbabaabbabbbbabb" + "abbbaabaaabbbbbbabbaaabbaaabbbababaabababbabbbaababaabbaabbabbbbaabb" + "babbbbaabaabaaaabaaabbbbaaaaaaaabbbbbbabaabbabbbaaabababbbabaaababbb" + "bbabbbbaabaaabbbbbabbabaababbabbabbabaabbbaaaaabbbaabbbaaaabaabababb" + "bbabaaaaabbabaaaabbbaabbbbbbbabbabbababbaaaaabababaaabbbbbabaabbbabb" + "bbaabaabbbaabaaabbabbaabbbabaabbbaaaaabbababbbaaaabaabababaaabbbbbaa" + "abbaaabaaaabbabaaaaaababbbbabbbabaaaababbaababaababaaababbabbbabbaba" + "ababbbaabbbbbaabaaabaaaabbbbbababbbbabbababbbabaabaabbbabbabbabaaaaa" + "abbabaababaabbbaababaaaaaaabaaaabbaaabaababbaababaaabbbbaaaababaaaba" + "abbabababaababaaabbabbbaababbbabbbbabbaaaabaabbbababbbbbbabaabbbbaba" + "abbbaabbbbbabbaaabbabbabbbbaabbbbbabbbbabbaaababbabaabbabababaababab" + "bbbbaaaabbaaabaaaaabbabaaaaaaaabbbaababbaaabbbabbbbaaabaababbaababbb" + "ababbaaaabbbbaaaaaaaabbabbbbbababaabbababbaabbaaaaaaaabbabbbabbbbaab" + "aabbbaabbbaaabaaaabb, " + "aaabbabababbbbbbbabbbbaaaabbbabbabaaabbaaaabbbbbababbabbbbbbbbbabbab" + "abbbbaabaabababaabbababaababbbaaaabbbbbbbbaaabbbaaabaaabbbbbaaaaabba" + "babaaabbabbbbabaabbabaababaabababaaabbbbbaaabaabbbbaabbbbbbabaaabbbb" + "bbaabaababaabbbbaabaabbabbbbbababaaababababbababaabaabbbbbbbbabaabaa" + "baaabbabaababbabbabbbbbbaaabababbabbbbbbababaabbaaabaabaaabababbbaba" + "babbbbaabaababaababababaabbbabababbbbabbbbabbbaaaabaaaaaaabbbbabbabb" + "abbbabbbaabaabbaabbbbaaabbaabbaabaabaababbabababbbbbabaaaaaaababaaba" + "bbababbbbbaababbaaaabaaaabbbbbbabbbabbbaabbabababbbabbbbbbbbabaabaab" + "bbaababaaaaabbabbabbbbabbbbbaababbbbbbbbaabbaabbababbbabaaabbbababaa" + "aaaaabbabbbbaabaabbabbbbabaabababbaaabbbbbaaabaaabbbaaabbbabaaabaaab" + "aabbbbaabaaaaaaaaabbbbbaabbaabbbabbaaabaabbbbababaaaaabaaabbaaababbb" + "bbbbbaaabbababbabaabaabababaabaabaaabaabbbaabaabbaabaaaabaabbbbbbbaa" + "bbaaabaaaabbabbabbabbaaabbabaaaabbbbababbbaabaaaabbbababbbbababbbaaa" + "baababbbaaaabbabababbbbbbaaaabaabaaababbaaabbaaaaabaaaaabbabbaababab" + "abaabbbabbaaabbababaaaababbbbabbabbabababaabbbbabbaabaaabbbabbabaaab" + "abbabaaaabbbbbbaabaaaabaaaaaababbbbbaaaabbabbbbbbbbabbbabbababbbabaa" + "bbbaaaaaaabaaaaaabbababbbaabbaaabaaaaaabbbababbaabbbaaaabbaabaaaaaab" + "ababbabbabbababbbbbaabaaabbabababbbabbbabbabbbabaababbbbbabbabbabaab" + "abababbabbbab, " + "bbbaabaababbbbbbbabbbbaaaabbbabbabaaabbaaaabbbbbababbabbbbbbbbbabbab" + "abaaabbababababaabbababaababbbaaaabbbbbbbbaaabbbaaabaaabbbbbaaaaabba" + "babbbbaababbbabaabbabaababaabababaaabbbbbaaabaabbbbaabbbbbbabaaabbba" + "aabbabababaabbbbaabaabbabbbbbababaaababababbababaabaabbbbbbbbabaabaa" + "bbbbaabaaababbabbabbbbbbaaabababbabbbbbbababaabbaaabaabaaabababbbaba" + "babbbbaabaababaababababaabbbabababbbbabbbbabbbaaaabaaaaaaabbbbabbabb" + "abbbaaaabbababbaabbbbaaabbaabbaabaabaababbabababbbbbabaaaaaaababaaba" + "bbababbaaabbabbbaaaabaaaabbbbbbabbbabbbaabbabababbbabbbbbbbbabaabaab" + "bbaababaabbbaabababbbbabbbbbaababbbbbbbbaabbaabbababbbabaaabbbababaa" + "aaaaabbabbbbaabaabbabbbbabaabababbaaabbbbbaaabaaabbbaaabbbabaaabaaab" + "aabaaabbabaaaaaaaabbbbbaabbaabbbabbaaabaabbbbababaaaaabaaabbaaababbb" + "bbbbbbbbaabaabbabaabaabababaabaabaaabaabbbaabaabbaabaaaabaabbbbbbbaa" + "bbaaababbbaabababbabbaaabbabaaaabbbbababbbaabaaaabbbababbbbababbbaaa" + "baababbbabbbaabaababbbbbbaaaabaabaaababbaaabbaaaaabaaaaabbabbaababab" + "abaabbbabbaaabbababaaaababbbbabbabbabababaabbbbabbaabaaabbbabbabaaab" + "abbabaaaabbbaaabbabaaabaaaaaababbbbbaaaabbabbbbbbbbabbbabbababbbabaa" + "bbbaaaaaaabaaabbbaabaabbbaabbaaabaaaaaabbbababbaabbbaaaabbaabaaaaaab" + "ababbabbabbababbbbbaabaaabbabababbbabbbabbabbbabaababbbbbabbabbabaab" + "abababbabbbab, " + "aaabbabaabbabbbbabbaabbaabaaaabbababbbbaaababbbbabbbaaabbabaaabbabba" + "babbbaababbbaabbbbaabbbbbbbbbaaabbaaabaababbabaaabaabaabaaabaabaaaba" + "abbabbbaabaababbbbabbbaaababbababaaaaaaabbbabbbbbaaaabbaaabbbbbbabab" + "bababbbbbaabababbbabbabaaabbabbabaaabbbbabaaaaababbbbabbbbabbabaabba" + "aaaaabbbbbaabaababbbabbabaabbaababbabaaaaaaabbbbbabbbbbbbbbbbaababab" + "ababbbbbbbaabababababaabbbbbaabbabbbbbaabbabbbbbaabaabbbbbabaaaaaaab" + "aabbbababbbbaabaaabbbaaaaaabbbabbabaaabbbabaababbabbbaaabababbabaaba" + "ababaabbaaaaaabbababbaaabbbabbaabaababbabaabaabaababababaaaaaaaaaaba" + "aababbaababbaaaabbabbbaabaaababaaabaabaaabbbaabbababbabaaaaaaabababb" + "abbaabbbbabbaabbbbaabaaabbaabaaaaababbabbaaaabbaabaabbabaababaabaaaa" + "aabbbbaabababbbabaaabbabaabbaababbaabaaabaababbabbbbaabbaaabbbbbabba" + "abbbaabaabaaaaaabbaaabbabaabbbbabbababaabbaabbbabbaaabaaaababbaabbab" + "babbbaabaaaabbababaabbbaababaaaabbbaaabaaaaaaaaaaaaabbabaabaaabbabbb" + "bbabbababaababaaabbbbbbaabababbabbbbbbbbabbbaaaaabbbababaabaaabbbaba" + "bbaaabaaabaaaababbaaabbabbbabbbbbbabababbbaaabbabaabbabbabaaaabbabaa" + "aaaaaabbbbbabaabbbaaaabbababbbbbabbbbbaaaaabbabbbabaabaaabaaaabbaaba" + "baabbaababaabaaabbabbbbbaabaabaaaaabbaabaababbabbabbbbbbabbbaabbbbab" + "aaababbbbbbbababbbbbbabbbaabaabaaaaaaaaaaaaabbbabbbabbbaababbbababaa" + "abaaaaaabbabbaaabaaa, " + "bbbaabaaabbabbbbabbaabbaabaaaabbababbbbaaababbbbabbbaaabbabaaabbabba" + "baaaabbabbbbaabbbbaabbbbbbbbbaaabbaaabaababbabaaabaabaabaaabaabaaaba" + "abbaaaabbabababbbbabbbaaababbababaaaaaaabbbabbbbbaaaabbaaabbbbbbabab" + "bababbaaabbabbabbbabbabaaabbabbabaaabbbbabaaaaababbbbabbbbabbabaabba" + "aaaaabbbbbaabaababbbabbabaabbaababbabaaaaaaabbbbbabbbbbbbbbbbaababab" + "ababbbbaaabbabbabababaabbbbbaabbabbbbbaabbabbbbbaabaabbbbbabaaaaaaab" + "aabbbababaaabbabaabbbaaaaaabbbabbabaaabbbabaababbabbbaaabababbabaaba" + "ababaabbaaaaaabbababbaaabbbabbaabaababbabaabaabaababababaaaaaaaaaaba" + "aababbaababbabbbaababbaabaaababaaabaabaaabbbaabbababbabaaaaaaabababb" + "abbaabbbbabbaabaaabbabaabbaabaaaaababbabbaaaabbaabaabbabaababaabaaaa" + "aabbbbaabababbbabbbbaabaaabbaababbaabaaabaababbabbbbaabbaaabbbbbabba" + "abbbaabaabaaaaaabbaaabbabaabbbbabbababaabbaabbbabbaaabaaaababbaabbab" + "babbbaabaaaabbababaaaaabbabbaaaabbbaaabaaaaaaaaaaaaabbabaabaaabbabbb" + "bbabbababaababaaabbbaaabbabbabbabbbbbbbbabbbaaaaabbbababaabaaabbbaba" + "bbaaabaaabaaaababbaaabbabbbabbbbbbabababbbaaabbabaabbabbabaaaabbabaa" + "aaaaaabbbbbabaabbbaaaabbababbbbbabbbbbaaaaabbabbbabaabaaabaaaabbaaba" + "baabbaababaabaaabbabbbbbaabaabaaaaabbaabaababbabbabbbbbbabbbaabbbbab" + "aaababbbbbbbababbbbbbabbbaabaabaaaaaaaaaaaaabbbabbbabbbaababbbababaa" + "abaaaaaabbabbaaabaaa", + "bbbaabaabbaabbababbbbabaabaaaaabaabbbbaabbbbbbbabaababbaabaabaaabaaa" + "abbbaabaaaabbaabbaaaabababbaaaaabbbbabbaabababbbbbabbaaaaabbabbbbabb" + "babbbbaababaaaaabbbbaaaabababbaaabbabaaaabaabbabaababbbabbbaaabaabba" + "abbbbaaabbababbbbabababbaabbabbaaabbbbabbabababbbbbbabbbabbbbaaabaab" + "aababbbaaabbababbbaabbaaabaabbabbaaaaaaaaaaabbbbabbaaabaabaaaababaaa" + "aabbbabaaabbababaaaaabaaaababbabaabbabbababbaabbbabbabaabbabaaaababb" + "babbbaaaabbbaabaaababbabaaaababbbbaaaaabaabbabaababaaaaaaaaabbabbbba" + "baabaaaaaaabbababbbaabbbbaabbbbaabbbbaabaababbaabbbaaaaabbaabaabbaaa" + "abaaaabbabaabbbbbabababaababbbbbabbbabbaabaabbaaaaaabbaaabbaabbbbbbb" + "baabaaaabbabbbabbbaabbababaaabbbbbbbabbaaabbbabbaaaaaabaababbaababba" + "aaaababaaabbabbaababbabbababbabaaaaabbbababbababaabaaabababbbaabaaab" + "aabbbabbbbbbaabaaaaababbbabbbabaabababbababbbabaaabbbbbbbabbaaaaaaaa" + "babbbaabaaabbabaaabaabaaabbbaaaaaaaabbbbaaabaaaabaaabaabbabbaaaabbaa" + "bbabbaaaabaaabbababbbbaababaabbbbbbababaabababbbabbbaaabbbabbbaabaab" + "bbabaabbbababbbaababaabaababaaabbbaabbabbaaaaabbbababbababbaaaaababa" + "bbbaabbbaababbbbbaababaaababbbaabaaabaabbbaaabbbbabaaabbbbabbaaabaab" + "babaaabbaaabbaaaabbabaaabbbbaabaabbbabaabbbaaabbbabaaabbbaabaaaababa" + "bbbbaabaaabbbaabaabaaabbaaaabaabbabbabaabbbaaababbbaababaaaabbaaabba" + "baaaababbab", + "aaabbababbaabbababbbbabaabaaaaabaabbbbaabbbbbbbabaababbaabaabaaabaaa" + "abbbaabaaaabbaabbaaaabababbaaaaabbbbabbaabababbbbbabbaaaaabbabbbbabb" + "babbbbaababaaaaabbbbaaaabababbaaabbabaaaabaabbabaababbbabbbaaabaabba" + "abbbbbbbaabaabbbbabababbaabbabbaaabbbbabbabababbbbbbabbbabbbbaaabaab" + "aababbbaaabbababbbaabbaaabaabbabbaaaaaaaaaaabbbbabbaaabaabaaaababaaa" + "aabbbabaaabbababaaaaabaaaababbabaabbabbababbaabbbabbabaabbabaaaababb" + "babbbaaaabbbaabaaababbabaaaababbbbaaaaabaabbabaababaaaaaaaaabbabbbba" + "baabaaaabbbaabaabbbaabbbbaabbbbaabbbbaabaababbaabbbaaaaabbaabaabbaaa" + "ababbbaabaaabbbbbabababaababbbbbabbbabbaabaabbaaaaaabbaaabbaabbbbbbb" + "baabaaaabbabbbabbbaabbababaaabbbbbbbabbaaabbbabbaaaaaabaababbaababba" + "aaaababbbbaababaababbabbababbabaaaaabbbababbababaabaaabababbbaabaaab" + "aabbbabbbbbbaabaaaaababbbabbbabaabababbababbbabaaabbbbbbbabbaaaaaaaa" + "babbbaabbbbaabaaaabaabaaabbbaaaaaaaabbbbaaabaaaabaaabaabbabbaaaabbaa" + "bbabbaaaabbbbaabaabbbbaababaabbbbbbababaabababbbabbbaaabbbabbbaabaab" + "bbabaabbbababbbaababaabaababaaabbbaabbabbaaaaabbbababbababbaaaaababa" + "bbbaabbbaababbaaabbabbaaababbbaabaaabaabbbaaabbbbabaaabbbbabbaaabaab" + "babaaabbaaabbabbbaabaaaabbbbaabaabbbabaabbbaaabbbabaaabbbaabaaaababa" + "bbbbaabaaabbbaabaabaaabbaaaabaabbabbabaabbbaaababbbaababaaaabbaaabba" + "baaaababbab", + "aaabbabbbbaaabaaaabaabbaaabbabaabababaaaaabbaabbabaabbaaabbbbabbbbbb" + "baababaaababbbbbababababaaabbbaabbbabaaabbbbbbbaaaaabbbbababbbabaaab" + "bbaabababababaaabbbaabbbbbaaabbaababbbaabbbaababaaaababbaabbaaababba" + "baaabbababbbaaaaababaabbbbbaaaabbbaaabaabaababaaabbabbbbbbabbbbbaaaa" + "bbaaabbabaabbbbbaabbbbbbbaabaabbabbbbbabbbaabbbaababababbbabaaaaabbb" + "bbaaabbabbabaabaaaaaabbaabbbaabbbaabbbbaababaaababbbaababaabaaabaaba" + "aaaaabbababaaabbbbaaabbabbabbbbbbabbaaababbbabaababbbbaaaabababbabba" + "aabbaaabbabbbbbabbaaabaaaabbbaaabbabbababababbbbbabbbbbbbbabaaababba" + "aaaabbaaabbabbababbbbbaabbaaaabaaababbbbabaabaabbbbabaaaabbbbbbbabab" + "abababaaabbabbabaaababaaabbaaababbbabaabaaaabaaaaabbabaabbabbaabbabb" + "bbabaabbbbaabaaaabbabbabbabbaaaaaababaaaaaabbabbaabaaababaaaabaaaaaa" + "aabbaabbaaaabbabaababbabbababbaabbbbababaabaaaabaaaaabaaabbabbaaabaa" + "aaaaaaaabbbaabaababaabbbbbaababaabbaaaabbbbabaabbabaabbabaabaaaaaabb" + "aababbbabaaaabbababbbbbaababbaabbbabbaabaabbbabababbaabbbaaaaaaabaaa" + "aaaababbaaabbbaabaaababaaabbbaaaaabaaaabbbbbbbabbbaaaababaababbababb" + "bbaaaabbbababbbbaabaaabbababbbabaaabbbbbaabbababbaabbbbaaababbbbbbab" + "babbababaabaaabbbbaababbbaababbabbbbabbbbbbabbbaaabbbabaaaaaabbbbaba" + "bbbbabaaaaabaababbbaababbabbbabaaababbaaabaabbbabaaaabbaabbbbaababaa" + "baabbaabaaabbaa", + "bbbaababbbaaabaaaabaabbaaabbabaabababaaaaabbaabbabaabbaaabbbbabbbbbb" + "baababaaababbbbbababababaaabbbaabbbabaaabbbbbbbaaaaabbbbababbbabaaab" + "bbaabababababaaabbbaabbbbbaaabbaababbbaabbbaababaaaababbaabbaaababba" + "baaabbababbbaaaaababaabbbbbaaaabbbaaabaabaababaaabbabbbbbbabbbbbaaaa" + "bbaaabbabaabbbbbaabbbbbbbaabaabbabbbbbabbbaabbbaababababbbabaaaaabbb" + "bbaaabbabbabaabaaaaaabbaabbbaabbbaabbbbaababaaababbbaababaabaaabaaba" + "aabbbaabaabaaabbbbaaabbabbabbbbbbabbaaababbbabaababbbbaaaabababbabba" + "aabbbbbaababbbbabbaaabaaaabbbaaabbabbababababbbbbabbbbbbbbabaaababba" + "aaaabbbbbaababababbbbbaabbaaaabaaababbbbabaabaabbbbabaaaabbbbbbbabab" + "abababaaabbabbabaaababaaabbaaababbbabaabaaaabaaaaabbabaabbabbaabbabb" + "bbabaabbbbaabaaaabbabbabbabbaaaaaababaaaaaabbabbaabaaababaaaabaaaaaa" + "aabbaabbaaaabbabaababbabbababbaabbbbababaabaaaabaaaaabaaabbabbaaabaa" + "aaaaaaaabbbaabaababaabbbbbaababaabbaaaabbbbabaabbabaabbabaabaaaaaabb" + "aababbbabaaaabbababbbbbaababbaabbbabbaabaabbbabababbaabbbaaaaaaabaaa" + "aaaababbaaaaaabbabaababaaabbbaaaaabaaaabbbbbbbabbbaaaababaababbababb" + "bbaaaabbbababbbbaabaaabbababbbabaaabbbbbaabbababbaabbbbaaababbbbbbab" + "babbababaabaaabaaabbabbbbaababbabbbbabbbbbbabbbaaabbbabaaaaaabbbbaba" + "bbbbabaaaaabaabaaaabbabbbabbbabaaababbaaabaabbbabaaaabbaabbbbaababaa" + "baabbaabaaabbaa", + "bbbaababababaabbbabbaabbbbabbabbbbbbbaaabbaabbbbbbbaaabbaabaabaaabbb" + "abbbbaabaabbbabbaaabababbaabaaaaaaaabbbbbabbbbbbababaababababbbbabba" + "baaabbbaabaabbbababbabbbaaababbbabbbbbaababbaababaaaaababaaabababbbb" + "ababaaaaabbababaabaabbaaaaabbbbbbabaabbabaaabaaaaabbabbbbbaaaaaabaaa" + "babbbbabaaabbabbbaaaabaaaabababbbbaaaabbabbbabbbbababaabbaaabbaababa" + "baaaabbbbaaaabbabbbbabbbbbbbaaabbaabbbbbabaabbbbababbabaaababbabbaab" + "bbbbbabbaaabaaabbababaabbbbaaaaababaaabaaaababaaaabbaabbaabbaaaabbbb" + "abaabaabaaaaaabbbaababababaabbbbbabaaabbbbaabaabbabaababbababbabbbbb" + "bbbabaabbabaaabaaabbabbabbbabbbabababbaaabaaabbbbbbabaabbaababbabbaa" + "aaaabaaabbbabbbbbaababbbbbabaababbababaabaaaaabbbbbaaabbbaaaabababba" + "abaaabaabbbabbaaabbabaabaabbbaaaaaabbbbaabbaabbbaababaabbaabaaaaaabb" + "bbaaababaabbaaabbbaabaabaabbbbbbbbababaaaaaabbaabaabbaabbbabaaaaabaa" + "babbbabaababababbbbaabaaaabbababbaabababbbababbabbbbbaaabaaaaabababb" + "babaaaababbabbbbabbbaababaababbaaaaaaaaaaababbababbbabaabbaaaaaabaaa" + "aaaaaaaaaabaaaabbabbbbaababaabaababbbbbbbaababaaaaaabababbabbbabbaba" + "baaabaababaaaabaabbaaaaabbababaabbabaaaabbbbaabaabbabbaabaabaabbabbb" + "abaabbbbbbaababbaabaaaabbabbababaabbaabaabbabbbbbabaababbbbaabbabaaa" + "baabaababbaaabababaabbbbaababaaababbbbbbbaaaaabbbbbaababbbaaabbbbbaa" + "bbaabbaaaabbbabaababb", + "aaabbabbababaabbbabbaabbbbabbabbbbbbbaaabbaabbbbbbbaaabbaabaabaaabbb" + "abaaabbababbbabbaaabababbaabaaaaaaaabbbbbabbbbbbababaababababbbbabba" + "baaabbbaabaabbbababbabbbaaababbbabbbbbaababbaababaaaaababaaabababbbb" + "ababaabbbaabaabaabaabbaaaaabbbbbbabaabbabaaabaaaaabbabbbbbaaaaaabaaa" + "babbbbabaaabbabbbaaaabaaaabababbbbaaaabbabbbabbbbababaabbaaabbaababa" + "baaaabbbbabbbaababbbabbbbbbbaaabbaabbbbbabaabbbbababbabaaababbabbaab" + "bbbbbabbaaabbbbaabaabaabbbbaaaaababaaabaaaababaaaabbaabbaabbaaaabbbb" + "abaabaabaaaaaabbbaababababaabbbbbabaaabbbbaabaabbabaababbababbabbbbb" + "bbbabaabbabaaabaaabbabbabbbabbbabababbaaabaaabbbbbbabaabbaababbabbaa" + "aaaabaaabbbabbbbbaababbbbbabaababbababaabaaaaabbbbbaaabbbaaaabababba" + "abaaabaabbbabbbbbaabaaabaabbbaaaaaabbbbaabbaabbbaababaabbaabaaaaaabb" + "bbaaababaabbaaabbbaabaabaabbbbbbbbababaaaaaabbaabaabbaabbbabaaaaabaa" + "babbbabaababababaaabbabaaabbababbaabababbbababbabbbbbaaabaaaaabababb" + "babaaaababbabbbbabbbaababaababbaaaaaaaaaaababbababbbabaabbaaaaaabaaa" + "aaaaaaaaaabaaaabbabaaabbabbaabaababbbbbbbaababaaaaaabababbabbbabbaba" + "baaabaababaaaabaabbaaaaabbababaabbabaaaabbbbaabaabbabbaabaabaabbabbb" + "abaabbbbbbaababbaababbbaababababaabbaabaabbabbbbbabaababbbbaabbabaaa" + "baabaababbaaabababaabaaabbabbaaababbbbbbbaaaaabbbbbaababbbaaabbbbbaa" + "bbaabbaaaabbbabaababb"}; + + for (auto const& w : words) { + REQUIRE(k.equal_to(k.normal_form(w), w)); + REQUIRE(k.equal_to(w, k.normal_form(w))); + } + } + } // namespace fpsemigroup namespace congruence {