From 84e1622f6e93b51f47c5a58e51ebc931873c45e4 Mon Sep 17 00:00:00 2001 From: "Denis V. Meltsaykin" Date: Mon, 19 Apr 2021 15:58:53 +0200 Subject: [PATCH] Update mysql-wsrep to 5.6.51 Change-Id: I0958b511eb0a4e87b394708098d34a6683c3af8f --- debian/changelog | 9 + mysql-wsrep-5.6/BUILD/SETUP.sh | 29 +- mysql-wsrep-5.6/BUILD/autorun.sh | 18 +- mysql-wsrep-5.6/BUILD/build_mccge.sh | 37 +- mysql-wsrep-5.6/BUILD/cmake_configure.sh | 18 +- mysql-wsrep-5.6/BUILD/compile-dist | 13 +- mysql-wsrep-5.6/BUILD/compile-pentium | 17 +- mysql-wsrep-5.6/BUILD/compile-pentium-debug | 17 +- .../BUILD/compile-pentium-debug-max | 17 +- .../BUILD/compile-pentium-debug-max-no-ndb | 17 +- mysql-wsrep-5.6/BUILD/compile-pentium-gcov | 17 +- mysql-wsrep-5.6/BUILD/compile-pentium-gprof | 17 +- .../BUILD/compile-pentium-valgrind-max | 17 +- .../BUILD/compile-pentium-valgrind-max-no-ndb | 18 +- mysql-wsrep-5.6/BUILD/compile-pentium64 | 18 +- mysql-wsrep-5.6/CMakeLists.txt | 67 +- mysql-wsrep-5.6/COPYING | 339 -- mysql-wsrep-5.6/LICENSE | 4116 +++++++++++++++++ mysql-wsrep-5.6/README | 61 +- mysql-wsrep-5.6/VERSION | 2 +- mysql-wsrep-5.6/WSREP_REVISION | 1 - mysql-wsrep-5.6/client/CMakeLists.txt | 22 +- mysql-wsrep-5.6/client/client_priv.h | 13 +- mysql-wsrep-5.6/client/completion_hash.cc | 13 +- mysql-wsrep-5.6/client/completion_hash.h | 18 +- mysql-wsrep-5.6/client/echo.c | 13 +- mysql-wsrep-5.6/client/get_password.c | 13 +- mysql-wsrep-5.6/client/my_readline.h | 13 +- mysql-wsrep-5.6/client/mysql.cc | 21 +- mysql-wsrep-5.6/client/mysql_config_editor.cc | 13 +- mysql-wsrep-5.6/client/mysql_plugin.c | 13 +- mysql-wsrep-5.6/client/mysql_upgrade.c | 13 +- mysql-wsrep-5.6/client/mysqladmin.cc | 13 +- mysql-wsrep-5.6/client/mysqlbinlog.cc | 13 +- mysql-wsrep-5.6/client/mysqlcheck.c | 13 +- mysql-wsrep-5.6/client/mysqldump.c | 13 +- mysql-wsrep-5.6/client/mysqlimport.c | 13 +- mysql-wsrep-5.6/client/mysqlshow.c | 13 +- mysql-wsrep-5.6/client/mysqlslap.c | 13 +- mysql-wsrep-5.6/client/mysqltest.cc | 19 +- mysql-wsrep-5.6/client/readline.cc | 13 +- mysql-wsrep-5.6/client/sql_string.cc | 13 +- mysql-wsrep-5.6/client/sql_string.h | 13 +- mysql-wsrep-5.6/cmake/abi_check.cmake | 13 +- mysql-wsrep-5.6/cmake/bison.cmake | 13 +- .../compiler_options.cmake | 31 +- .../build_configurations/feature_set.cmake | 34 +- .../build_configurations/mysql_release.cmake | 13 +- mysql-wsrep-5.6/cmake/cat.cmake | 13 +- mysql-wsrep-5.6/cmake/character_sets.cmake | 13 +- .../cmake/check_minimal_version.cmake | 13 +- .../cmake/cmake_parse_arguments.cmake | 17 +- mysql-wsrep-5.6/cmake/compile_flags.cmake | 17 +- mysql-wsrep-5.6/cmake/configure.pl | 17 +- .../cmake/cpack_source_ignore_files.cmake | 13 +- mysql-wsrep-5.6/cmake/cpu_info.cmake | 13 +- .../cmake/create_initial_db.cmake.in | 13 +- mysql-wsrep-5.6/cmake/do_abi_check.cmake | 13 +- mysql-wsrep-5.6/cmake/dtrace.cmake | 13 +- mysql-wsrep-5.6/cmake/dtrace_prelink.cmake | 13 +- mysql-wsrep-5.6/cmake/info_bin.cmake | 17 +- mysql-wsrep-5.6/cmake/info_macros.cmake.in | 13 +- mysql-wsrep-5.6/cmake/info_src.cmake | 17 +- mysql-wsrep-5.6/cmake/install_layout.cmake | 13 +- mysql-wsrep-5.6/cmake/install_macros.cmake | 13 +- mysql-wsrep-5.6/cmake/libevent.cmake | 13 +- mysql-wsrep-5.6/cmake/libutils.cmake | 17 +- mysql-wsrep-5.6/cmake/maintainer.cmake | 13 +- mysql-wsrep-5.6/cmake/make_dist.cmake.in | 13 +- .../cmake/merge_archives_unix.cmake.in | 13 +- .../cmake/mysql_add_executable.cmake | 13 +- mysql-wsrep-5.6/cmake/mysql_version.cmake | 13 +- mysql-wsrep-5.6/cmake/os/AIX.cmake | 13 +- mysql-wsrep-5.6/cmake/os/Cygwin.cmake | 13 +- mysql-wsrep-5.6/cmake/os/Darwin.cmake | 13 +- mysql-wsrep-5.6/cmake/os/FreeBSD.cmake | 13 +- mysql-wsrep-5.6/cmake/os/HP-UX.cmake | 13 +- mysql-wsrep-5.6/cmake/os/Linux.cmake | 13 +- mysql-wsrep-5.6/cmake/os/OS400.cmake | 13 +- mysql-wsrep-5.6/cmake/os/SunOS.cmake | 20 +- mysql-wsrep-5.6/cmake/os/Windows.cmake | 18 +- mysql-wsrep-5.6/cmake/os/WindowsCache.cmake | 13 +- mysql-wsrep-5.6/cmake/package_name.cmake | 13 +- mysql-wsrep-5.6/cmake/plugin.cmake | 13 +- mysql-wsrep-5.6/cmake/readline.cmake | 13 +- mysql-wsrep-5.6/cmake/run_collection.cmake.in | 13 +- mysql-wsrep-5.6/cmake/ssl.cmake | 276 +- mysql-wsrep-5.6/cmake/stack_direction.c | 13 +- mysql-wsrep-5.6/cmake/tags.cmake | 13 +- mysql-wsrep-5.6/cmake/versioninfo.rc.in | 25 +- mysql-wsrep-5.6/cmake/wsrep.cmake | 2 +- mysql-wsrep-5.6/cmake/zlib.cmake | 13 +- .../cmd-line-utils/libedit/CMakeLists.txt | 17 +- mysql-wsrep-5.6/config.h.cmake | 17 +- mysql-wsrep-5.6/configure.cmake | 17 +- mysql-wsrep-5.6/dbug/CMakeLists.txt | 17 +- mysql-wsrep-5.6/dbug/dbug_add_tags.pl | 17 +- mysql-wsrep-5.6/extra/CMakeLists.txt | 29 +- mysql-wsrep-5.6/extra/comp_err.c | 13 +- mysql-wsrep-5.6/extra/innochecksum.cc | 13 +- mysql-wsrep-5.6/extra/libevent/CMakeLists.txt | 2 +- mysql-wsrep-5.6/extra/my_print_defaults.c | 13 +- mysql-wsrep-5.6/extra/mysql_waitpid.c | 13 +- mysql-wsrep-5.6/extra/perror.c | 13 +- mysql-wsrep-5.6/extra/replace.c | 18 +- mysql-wsrep-5.6/extra/resolve_stack_dump.cc | 13 +- mysql-wsrep-5.6/extra/resolveip.c | 13 +- mysql-wsrep-5.6/extra/yassl/AUTHORS | 0 mysql-wsrep-5.6/extra/yassl/CMakeLists.txt | 38 - mysql-wsrep-5.6/extra/yassl/COPYING | 340 -- mysql-wsrep-5.6/extra/yassl/ChangeLog | 0 mysql-wsrep-5.6/extra/yassl/FLOSS-EXCEPTIONS | 121 - mysql-wsrep-5.6/extra/yassl/INSTALL | 234 - mysql-wsrep-5.6/extra/yassl/NEWS | 0 mysql-wsrep-5.6/extra/yassl/README | 786 ---- mysql-wsrep-5.6/extra/yassl/certs/ca-cert.pem | 87 - mysql-wsrep-5.6/extra/yassl/certs/ca-key.pem | 27 - .../extra/yassl/certs/client-cert.der | Bin 1198 -> 0 bytes .../extra/yassl/certs/client-cert.pem | 88 - .../extra/yassl/certs/client-key.der | Bin 1192 -> 0 bytes .../extra/yassl/certs/client-key.pem | 27 - .../extra/yassl/certs/client-keyEnc.pem | 12 - .../extra/yassl/certs/client-keyEnc3.pem | 12 - mysql-wsrep-5.6/extra/yassl/certs/dh1024.dat | 1 - .../extra/yassl/certs/dsa-cert.pem | 22 - mysql-wsrep-5.6/extra/yassl/certs/dsa1024.der | Bin 448 -> 0 bytes mysql-wsrep-5.6/extra/yassl/certs/dsa1024.pem | 12 - .../extra/yassl/certs/server-cert.pem | 173 - .../extra/yassl/certs/server-key.pem | 27 - .../extra/yassl/certs/server-keyEnc.pem | 30 - mysql-wsrep-5.6/extra/yassl/certs/taoCert.txt | 62 - .../extra/yassl/examples/client/client.cpp | 179 - .../extra/yassl/examples/client/client.dsp | 102 - .../yassl/examples/echoclient/echoclient.cpp | 120 - .../yassl/examples/echoclient/echoclient.dsp | 102 - .../extra/yassl/examples/echoclient/input | 93 - .../extra/yassl/examples/echoclient/quit | 2 - .../yassl/examples/echoserver/echoserver.cpp | 167 - .../yassl/examples/echoserver/echoserver.dsp | 102 - .../extra/yassl/examples/server/server.cpp | 155 - .../extra/yassl/examples/server/server.dsp | 109 - .../extra/yassl/include/buffer.hpp | 211 - .../extra/yassl/include/cert_wrapper.hpp | 137 - .../extra/yassl/include/crypto_wrapper.hpp | 428 -- .../extra/yassl/include/factory.hpp | 101 - .../extra/yassl/include/handshake.hpp | 69 - mysql-wsrep-5.6/extra/yassl/include/lock.hpp | 96 - mysql-wsrep-5.6/extra/yassl/include/log.hpp | 55 - .../extra/yassl/include/openssl/crypto.h | 33 - .../extra/yassl/include/openssl/des.h | 20 - .../extra/yassl/include/openssl/des_old.h | 20 - .../extra/yassl/include/openssl/engine.h | 24 - .../extra/yassl/include/openssl/err.h | 27 - .../extra/yassl/include/openssl/evp.h | 29 - .../include/openssl/generate_prefix_files.pl | 62 - .../extra/yassl/include/openssl/hmac.h | 20 - .../extra/yassl/include/openssl/lhash.h | 21 - .../extra/yassl/include/openssl/md4.h | 20 - .../extra/yassl/include/openssl/md5.h | 23 - .../extra/yassl/include/openssl/objects.h | 20 - .../extra/yassl/include/openssl/opensslv.h | 31 - .../extra/yassl/include/openssl/pem.h | 20 - .../extra/yassl/include/openssl/pkcs12.h | 24 - .../yassl/include/openssl/prefix_crypto.h | 20 - .../extra/yassl/include/openssl/prefix_ssl.h | 188 - .../extra/yassl/include/openssl/rand.h | 21 - .../extra/yassl/include/openssl/rsa.h | 29 - .../extra/yassl/include/openssl/sha.h | 20 - .../extra/yassl/include/openssl/ssl.h | 565 --- .../yassl/include/openssl/transport_types.h | 26 - .../extra/yassl/include/openssl/x509.h | 20 - .../extra/yassl/include/openssl/x509v3.h | 20 - .../extra/yassl/include/socket_wrapper.hpp | 104 - mysql-wsrep-5.6/extra/yassl/include/timer.hpp | 40 - mysql-wsrep-5.6/extra/yassl/include/yassl.hpp | 85 - .../extra/yassl/include/yassl_error.hpp | 88 - .../extra/yassl/include/yassl_imp.hpp | 748 --- .../extra/yassl/include/yassl_int.hpp | 725 --- .../extra/yassl/include/yassl_types.hpp | 540 --- mysql-wsrep-5.6/extra/yassl/lib/dummy | 1 - mysql-wsrep-5.6/extra/yassl/src/buffer.cpp | 330 -- .../extra/yassl/src/cert_wrapper.cpp | 408 -- .../extra/yassl/src/crypto_wrapper.cpp | 1016 ---- mysql-wsrep-5.6/extra/yassl/src/dummy.cpp | 4 - mysql-wsrep-5.6/extra/yassl/src/handshake.cpp | 1188 ----- mysql-wsrep-5.6/extra/yassl/src/lock.cpp | 87 - mysql-wsrep-5.6/extra/yassl/src/log.cpp | 147 - mysql-wsrep-5.6/extra/yassl/src/make.bat | 42 - .../extra/yassl/src/socket_wrapper.cpp | 238 - mysql-wsrep-5.6/extra/yassl/src/ssl.cpp | 1780 ------- .../extra/yassl/src/template_instnt.cpp | 110 - mysql-wsrep-5.6/extra/yassl/src/timer.cpp | 81 - mysql-wsrep-5.6/extra/yassl/src/yassl.cpp | 229 - .../extra/yassl/src/yassl_error.cpp | 288 -- mysql-wsrep-5.6/extra/yassl/src/yassl_imp.cpp | 2636 ----------- mysql-wsrep-5.6/extra/yassl/src/yassl_int.cpp | 2818 ----------- .../extra/yassl/taocrypt/CMakeLists.txt | 51 - mysql-wsrep-5.6/extra/yassl/taocrypt/COPYING | 340 -- mysql-wsrep-5.6/extra/yassl/taocrypt/INSTALL | 229 - mysql-wsrep-5.6/extra/yassl/taocrypt/README | 48 - .../yassl/taocrypt/benchmark/benchmark.cpp | 458 -- .../yassl/taocrypt/benchmark/benchmark.dsp | 101 - .../extra/yassl/taocrypt/benchmark/dh1024.der | Bin 140 -> 0 bytes .../yassl/taocrypt/benchmark/dsa1024.der | Bin 448 -> 0 bytes .../extra/yassl/taocrypt/benchmark/make.bat | 24 - .../yassl/taocrypt/benchmark/rsa1024.der | Bin 610 -> 0 bytes .../extra/yassl/taocrypt/certs/dh1024.dat | 1 - .../extra/yassl/taocrypt/include/aes.hpp | 155 - .../extra/yassl/taocrypt/include/algebra.hpp | 226 - .../extra/yassl/taocrypt/include/arc4.hpp | 58 - .../extra/yassl/taocrypt/include/asn.hpp | 392 -- .../extra/yassl/taocrypt/include/block.hpp | 202 - .../extra/yassl/taocrypt/include/blowfish.hpp | 88 - .../extra/yassl/taocrypt/include/coding.hpp | 91 - .../extra/yassl/taocrypt/include/des.hpp | 130 - .../extra/yassl/taocrypt/include/dh.hpp | 86 - .../extra/yassl/taocrypt/include/dsa.hpp | 126 - .../extra/yassl/taocrypt/include/error.hpp | 88 - .../extra/yassl/taocrypt/include/file.hpp | 130 - .../extra/yassl/taocrypt/include/hash.hpp | 110 - .../extra/yassl/taocrypt/include/hc128.hpp | 63 - .../extra/yassl/taocrypt/include/hmac.hpp | 138 - .../extra/yassl/taocrypt/include/integer.hpp | 332 -- .../extra/yassl/taocrypt/include/kernelc.hpp | 34 - .../extra/yassl/taocrypt/include/md2.hpp | 64 - .../extra/yassl/taocrypt/include/md4.hpp | 62 - .../extra/yassl/taocrypt/include/md5.hpp | 70 - .../extra/yassl/taocrypt/include/misc.hpp | 888 ---- .../extra/yassl/taocrypt/include/modarith.hpp | 165 - .../extra/yassl/taocrypt/include/modes.hpp | 154 - .../extra/yassl/taocrypt/include/pwdbased.hpp | 91 - .../extra/yassl/taocrypt/include/rabbit.hpp | 65 - .../extra/yassl/taocrypt/include/random.hpp | 84 - .../extra/yassl/taocrypt/include/ripemd.hpp | 69 - .../extra/yassl/taocrypt/include/rsa.hpp | 250 - .../extra/yassl/taocrypt/include/runtime.hpp | 68 - .../extra/yassl/taocrypt/include/sha.hpp | 174 - .../extra/yassl/taocrypt/include/twofish.hpp | 94 - .../yassl/taocrypt/include/type_traits.hpp | 77 - .../extra/yassl/taocrypt/include/types.hpp | 99 - .../extra/yassl/taocrypt/mySTL/algorithm.hpp | 108 - .../extra/yassl/taocrypt/mySTL/helpers.hpp | 153 - .../extra/yassl/taocrypt/mySTL/list.hpp | 367 -- .../extra/yassl/taocrypt/mySTL/memory.hpp | 136 - .../yassl/taocrypt/mySTL/memory_array.hpp | 135 - .../extra/yassl/taocrypt/mySTL/pair.hpp | 58 - .../extra/yassl/taocrypt/mySTL/stdexcept.hpp | 76 - .../extra/yassl/taocrypt/mySTL/vector.hpp | 153 - .../extra/yassl/taocrypt/src/aes.cpp | 1885 -------- .../extra/yassl/taocrypt/src/aestables.cpp | 36 - .../extra/yassl/taocrypt/src/algebra.cpp | 336 -- .../extra/yassl/taocrypt/src/arc4.cpp | 243 - .../extra/yassl/taocrypt/src/asn.cpp | 1348 ------ .../extra/yassl/taocrypt/src/bftables.cpp | 303 -- .../extra/yassl/taocrypt/src/blowfish.cpp | 364 -- .../extra/yassl/taocrypt/src/coding.cpp | 266 -- .../extra/yassl/taocrypt/src/des.cpp | 778 ---- .../extra/yassl/taocrypt/src/dh.cpp | 103 - .../extra/yassl/taocrypt/src/dsa.cpp | 274 -- .../extra/yassl/taocrypt/src/file.cpp | 115 - .../extra/yassl/taocrypt/src/hash.cpp | 191 - .../extra/yassl/taocrypt/src/hc128.cpp | 317 -- .../extra/yassl/taocrypt/src/integer.cpp | 3899 ---------------- .../extra/yassl/taocrypt/src/make.bat | 53 - .../extra/yassl/taocrypt/src/md2.cpp | 125 - .../extra/yassl/taocrypt/src/md4.cpp | 157 - .../extra/yassl/taocrypt/src/md5.cpp | 506 -- .../extra/yassl/taocrypt/src/misc.cpp | 295 -- .../extra/yassl/taocrypt/src/rabbit.cpp | 255 - .../extra/yassl/taocrypt/src/random.cpp | 139 - .../extra/yassl/taocrypt/src/ripemd.cpp | 844 ---- .../extra/yassl/taocrypt/src/rsa.cpp | 215 - .../extra/yassl/taocrypt/src/sha.cpp | 1033 ----- .../yassl/taocrypt/src/template_instnt.cpp | 81 - .../extra/yassl/taocrypt/src/tftables.cpp | 349 -- .../extra/yassl/taocrypt/src/twofish.cpp | 582 --- .../extra/yassl/taocrypt/taocrypt.dsp | 321 -- .../extra/yassl/taocrypt/taocrypt.dsw | 59 - mysql-wsrep-5.6/extra/yassl/taocrypt/test.dsw | 29 - .../extra/yassl/taocrypt/test/make.bat | 24 - .../extra/yassl/taocrypt/test/memory.cpp | 359 -- .../extra/yassl/taocrypt/test/test.cpp | 1354 ------ .../extra/yassl/taocrypt/test/test.dsp | 102 - .../extra/yassl/testsuite/cipher-test.sh | 131 - mysql-wsrep-5.6/extra/yassl/testsuite/input | 107 - .../extra/yassl/testsuite/make.bat | 29 - mysql-wsrep-5.6/extra/yassl/testsuite/quit | 2 - .../extra/yassl/testsuite/test.hpp | 550 --- .../extra/yassl/testsuite/testsuite.cpp | 174 - .../extra/yassl/testsuite/testsuite.dsp | 127 - mysql-wsrep-5.6/extra/yassl/yassl.dsp | 192 - mysql-wsrep-5.6/extra/yassl/yassl.dsw | 149 - mysql-wsrep-5.6/include/CMakeLists.txt | 17 +- mysql-wsrep-5.6/include/atomic/gcc_builtins.h | 13 +- mysql-wsrep-5.6/include/atomic/generic-msvc.h | 13 +- mysql-wsrep-5.6/include/atomic/nolock.h | 13 +- mysql-wsrep-5.6/include/atomic/rwlock.h | 13 +- mysql-wsrep-5.6/include/atomic/solaris.h | 13 +- mysql-wsrep-5.6/include/base64.h | 13 +- mysql-wsrep-5.6/include/big_endian.h | 13 +- mysql-wsrep-5.6/include/byte_order_generic.h | 13 +- .../include/byte_order_generic_x86.h | 13 +- .../include/byte_order_generic_x86_64.h | 18 +- mysql-wsrep-5.6/include/crypt_genhash_impl.h | 13 +- mysql-wsrep-5.6/include/decimal.h | 13 +- mysql-wsrep-5.6/include/errmsg.h | 13 +- mysql-wsrep-5.6/include/ft_global.h | 13 +- mysql-wsrep-5.6/include/hash.h | 13 +- mysql-wsrep-5.6/include/heap.h | 13 +- mysql-wsrep-5.6/include/keycache.h | 13 +- mysql-wsrep-5.6/include/lf.h | 13 +- mysql-wsrep-5.6/include/little_endian.h | 18 +- mysql-wsrep-5.6/include/m_ctype.h | 13 +- mysql-wsrep-5.6/include/m_string.h | 13 +- mysql-wsrep-5.6/include/mutex_lock.h | 53 + mysql-wsrep-5.6/include/my_aes.h | 21 +- mysql-wsrep-5.6/include/my_alarm.h | 13 +- mysql-wsrep-5.6/include/my_alloc.h | 18 +- mysql-wsrep-5.6/include/my_atomic.h | 13 +- mysql-wsrep-5.6/include/my_attribute.h | 18 +- mysql-wsrep-5.6/include/my_base.h | 18 +- mysql-wsrep-5.6/include/my_bit.h | 13 +- mysql-wsrep-5.6/include/my_bitmap.h | 13 +- mysql-wsrep-5.6/include/my_byteorder.h | 18 +- mysql-wsrep-5.6/include/my_check_opt.h | 13 +- mysql-wsrep-5.6/include/my_compare.h | 13 +- mysql-wsrep-5.6/include/my_compiler.h | 18 +- mysql-wsrep-5.6/include/my_dbug.h | 18 +- mysql-wsrep-5.6/include/my_default.h | 13 +- mysql-wsrep-5.6/include/my_dir.h | 13 +- mysql-wsrep-5.6/include/my_getopt.h | 13 +- mysql-wsrep-5.6/include/my_global.h | 18 +- mysql-wsrep-5.6/include/my_libwrap.h | 13 +- mysql-wsrep-5.6/include/my_list.h | 18 +- mysql-wsrep-5.6/include/my_md5.h | 13 +- mysql-wsrep-5.6/include/my_murmur3.h | 13 +- mysql-wsrep-5.6/include/my_net.h | 13 +- mysql-wsrep-5.6/include/my_nosys.h | 13 +- mysql-wsrep-5.6/include/my_pthread.h | 13 +- mysql-wsrep-5.6/include/my_rdtsc.h | 13 +- mysql-wsrep-5.6/include/my_rnd.h | 17 +- mysql-wsrep-5.6/include/my_stacktrace.h | 13 +- mysql-wsrep-5.6/include/my_sys.h | 13 +- mysql-wsrep-5.6/include/my_time.h | 13 +- mysql-wsrep-5.6/include/my_tree.h | 13 +- mysql-wsrep-5.6/include/my_uctype.h | 13 +- mysql-wsrep-5.6/include/my_user.h | 13 +- mysql-wsrep-5.6/include/my_xml.h | 13 +- mysql-wsrep-5.6/include/myisam.h | 13 +- mysql-wsrep-5.6/include/myisammrg.h | 13 +- mysql-wsrep-5.6/include/myisampack.h | 13 +- mysql-wsrep-5.6/include/mysql.h | 18 +- mysql-wsrep-5.6/include/mysql/client_plugin.h | 13 +- mysql-wsrep-5.6/include/mysql/get_password.h | 13 +- mysql-wsrep-5.6/include/mysql/innodb_priv.h | 13 +- mysql-wsrep-5.6/include/mysql/plugin.h | 17 +- mysql-wsrep-5.6/include/mysql/plugin_audit.h | 18 +- mysql-wsrep-5.6/include/mysql/plugin_auth.h | 13 +- .../include/mysql/plugin_auth_common.h | 13 +- .../include/mysql/plugin_ftparser.h | 13 +- .../include/mysql/plugin_validate_password.h | 13 +- .../include/mysql/psi/mysql_file.h | 13 +- .../include/mysql/psi/mysql_idle.h | 13 +- .../include/mysql/psi/mysql_socket.h | 18 +- .../include/mysql/psi/mysql_stage.h | 13 +- .../include/mysql/psi/mysql_statement.h | 13 +- .../include/mysql/psi/mysql_table.h | 13 +- .../include/mysql/psi/mysql_thread.h | 13 +- mysql-wsrep-5.6/include/mysql/psi/psi.h | 13 +- .../include/mysql/psi/psi_abi_v0.h | 13 +- .../include/mysql/psi/psi_abi_v1.h | 13 +- .../include/mysql/psi/psi_abi_v2.h | 13 +- .../include/mysql/service_my_plugin_log.h | 22 +- .../include/mysql/service_my_snprintf.h | 13 +- .../include/mysql/service_mysql_string.h | 13 +- .../include/mysql/service_thd_alloc.h | 13 +- .../include/mysql/service_thd_wait.h | 13 +- .../include/mysql/service_thread_scheduler.h | 13 +- mysql-wsrep-5.6/include/mysql/services.h | 13 +- .../include/mysql/thread_pool_priv.h | 13 +- mysql-wsrep-5.6/include/mysql_com.h | 18 +- mysql-wsrep-5.6/include/mysql_com_server.h | 13 +- mysql-wsrep-5.6/include/mysql_embed.h | 13 +- mysql-wsrep-5.6/include/mysql_time.h | 18 +- mysql-wsrep-5.6/include/mysys_err.h | 13 +- mysql-wsrep-5.6/include/password.h | 13 +- mysql-wsrep-5.6/include/probes_mysql.d.base | 13 +- mysql-wsrep-5.6/include/probes_mysql.h | 13 +- mysql-wsrep-5.6/include/queues.h | 13 +- mysql-wsrep-5.6/include/service_versions.h | 13 +- mysql-wsrep-5.6/include/sha1.h | 15 +- mysql-wsrep-5.6/include/sha2.h | 61 +- mysql-wsrep-5.6/include/sql_common.h | 17 +- mysql-wsrep-5.6/include/sslopt-case.h | 18 +- mysql-wsrep-5.6/include/sslopt-longopts.h | 13 +- mysql-wsrep-5.6/include/sslopt-vars.h | 13 +- mysql-wsrep-5.6/include/t_ctype.h | 13 +- mysql-wsrep-5.6/include/thr_alarm.h | 13 +- mysql-wsrep-5.6/include/thr_lock.h | 13 +- mysql-wsrep-5.6/include/typelib.h | 18 +- mysql-wsrep-5.6/include/violite.h | 23 +- mysql-wsrep-5.6/include/waiting_threads.h | 13 +- .../include/welcome_copyright_notice.h | 17 +- mysql-wsrep-5.6/libmysql/CMakeLists.txt | 53 +- .../authentication_win/CMakeLists.txt | 17 +- .../libmysql/authentication_win/common.cc | 13 +- .../libmysql/authentication_win/common.h | 13 +- .../libmysql/authentication_win/handshake.cc | 13 +- .../libmysql/authentication_win/handshake.h | 13 +- .../authentication_win/handshake_client.cc | 13 +- .../libmysql/authentication_win/log_client.cc | 13 +- .../authentication_win/plugin_client.cc | 13 +- mysql-wsrep-5.6/libmysql/client_settings.h | 22 +- mysql-wsrep-5.6/libmysql/conf_to_src.c | 14 +- mysql-wsrep-5.6/libmysql/errmsg.c | 19 +- mysql-wsrep-5.6/libmysql/get_password.c | 19 +- mysql-wsrep-5.6/libmysql/libmysql.c | 18 +- mysql-wsrep-5.6/libmysql/libmysql.ver.in | 13 +- mysql-wsrep-5.6/libmysql/libmysql.ver16.in | 13 +- mysql-wsrep-5.6/libmysqld/CMakeLists.txt | 17 +- mysql-wsrep-5.6/libmysqld/emb_qcache.cc | 13 +- mysql-wsrep-5.6/libmysqld/emb_qcache.h | 17 +- mysql-wsrep-5.6/libmysqld/embedded_priv.h | 13 +- .../libmysqld/examples/CMakeLists.txt | 17 +- .../examples/builder-sample/emb_sample.bpr | 17 +- .../examples/builder-sample/emb_sample.cpp | 17 +- .../examples/builder-sample/emb_samples.cpp | 17 +- .../examples/builder-sample/emb_samples.h | 17 +- mysql-wsrep-5.6/libmysqld/examples/test-run | 13 +- mysql-wsrep-5.6/libmysqld/libmysqld.c | 13 +- mysql-wsrep-5.6/libservices/CMakeLists.txt | 17 +- .../libservices/my_plugin_log_service.c | 22 +- .../libservices/my_snprintf_service.c | 13 +- .../libservices/my_thread_scheduler_service.c | 13 +- .../libservices/mysql_string_service.c | 22 +- .../libservices/thd_alloc_service.c | 13 +- .../libservices/thd_wait_service.c | 19 +- mysql-wsrep-5.6/man/CMakeLists.txt | 17 +- mysql-wsrep-5.6/man/comp_err.1 | 35 +- mysql-wsrep-5.6/man/innochecksum.1 | 6 +- mysql-wsrep-5.6/man/msql2mysql.1 | 6 +- mysql-wsrep-5.6/man/my_print_defaults.1 | 18 +- mysql-wsrep-5.6/man/myisam_ftdump.1 | 12 +- mysql-wsrep-5.6/man/myisamchk.1 | 61 +- mysql-wsrep-5.6/man/myisamlog.1 | 6 +- mysql-wsrep-5.6/man/myisampack.1 | 37 +- mysql-wsrep-5.6/man/mysql.1 | 347 +- mysql-wsrep-5.6/man/mysql.server.1 | 18 +- mysql-wsrep-5.6/man/mysql_config.1 | 17 +- mysql-wsrep-5.6/man/mysql_config_editor.1 | 25 +- .../man/mysql_convert_table_format.1 | 16 +- mysql-wsrep-5.6/man/mysql_find_rows.1 | 11 +- mysql-wsrep-5.6/man/mysql_fix_extensions.1 | 6 +- mysql-wsrep-5.6/man/mysql_install_db.1 | 34 +- mysql-wsrep-5.6/man/mysql_plugin.1 | 17 +- .../man/mysql_secure_installation.1 | 6 +- mysql-wsrep-5.6/man/mysql_setpermission.1 | 12 +- mysql-wsrep-5.6/man/mysql_tzinfo_to_sql.1 | 10 +- mysql-wsrep-5.6/man/mysql_upgrade.1 | 58 +- mysql-wsrep-5.6/man/mysql_waitpid.1 | 9 +- mysql-wsrep-5.6/man/mysql_zap.1 | 6 +- mysql-wsrep-5.6/man/mysqlaccess.1 | 33 +- mysql-wsrep-5.6/man/mysqladmin.1 | 143 +- mysql-wsrep-5.6/man/mysqlbinlog.1 | 187 +- mysql-wsrep-5.6/man/mysqlbug.1 | 6 +- mysql-wsrep-5.6/man/mysqlcheck.1 | 94 +- mysql-wsrep-5.6/man/mysqld.8 | 10 +- mysql-wsrep-5.6/man/mysqld_multi.1 | 20 +- mysql-wsrep-5.6/man/mysqld_safe.1 | 48 +- mysql-wsrep-5.6/man/mysqldump.1 | 241 +- mysql-wsrep-5.6/man/mysqldumpslow.1 | 14 +- mysql-wsrep-5.6/man/mysqlhotcopy.1 | 39 +- mysql-wsrep-5.6/man/mysqlimport.1 | 95 +- mysql-wsrep-5.6/man/mysqlshow.1 | 72 +- mysql-wsrep-5.6/man/mysqlslap.1 | 92 +- mysql-wsrep-5.6/man/ndb_mgmd.8 | 464 +- mysql-wsrep-5.6/man/ndbd.8 | 417 +- mysql-wsrep-5.6/man/ndbmtd.8 | 6 +- mysql-wsrep-5.6/man/perror.1 | 11 +- mysql-wsrep-5.6/man/replace.1 | 6 +- mysql-wsrep-5.6/man/resolve_stack_dump.1 | 12 +- mysql-wsrep-5.6/man/resolveip.1 | 9 +- mysql-wsrep-5.6/mysql-test/CMakeLists.txt | 17 +- .../extra/binlog_tests/drop_temp_table.test | 4 +- .../mysql-test/include/allowed_ciphers.inc | 10 + .../include/assert_binlog_events.inc | 329 ++ .../mysql-test/include/audit_log_events.inc | 97 + .../include/check_ftwrl_incompatible.inc | 16 +- .../mysql-test/include/default_my.cnf | 13 +- .../mysql-test/include/default_mysqld.cnf | 13 +- .../include/default_mysqld_autosize.cnf | 13 +- .../mysql-test/include/escape_sql.inc | 60 + .../include/have_example_plugin.inc | 4 +- .../mysql-test/include/have_openssl.inc | 1 + .../mysql-test/include/have_perfschema.inc | 13 +- .../mysql-test/include/have_ssl.inc | 1 + .../include/have_ssl_communication.inc | 1 + .../mysql-test/include/mtr_check.sql | 13 +- .../mysql-test/include/mtr_warnings.sql | 27 +- .../mysql-test/include/mysql_have_debug.inc | 33 + .../include/not_sha256_rsa_auth.inc | 5 - .../mysql-test/include/plugin.defs | 1 + .../include/save_binlog_position.inc | 20 + .../include/set_binlog_format_mixed.sql | 13 +- .../include/set_binlog_format_row.sql | 13 +- .../include/set_binlog_format_statement.sql | 13 +- .../mysql-test/include/show_slave_status.inc | 9 + .../include/wait_until_connected_again.inc | 5 +- mysql-wsrep-5.6/mysql-test/lib/My/Config.pm | 17 +- .../mysql-test/lib/My/ConfigFactory.pm | 18 +- mysql-wsrep-5.6/mysql-test/lib/My/CoreDump.pm | 13 +- .../mysql-test/lib/My/File/Path.pm | 13 +- mysql-wsrep-5.6/mysql-test/lib/My/Find.pm | 13 +- mysql-wsrep-5.6/mysql-test/lib/My/Handles.pm | 13 +- mysql-wsrep-5.6/mysql-test/lib/My/Memcache.pm | 13 +- mysql-wsrep-5.6/mysql-test/lib/My/Options.pm | 13 +- mysql-wsrep-5.6/mysql-test/lib/My/Platform.pm | 13 +- .../mysql-test/lib/My/SafeProcess.pm | 18 +- .../mysql-test/lib/My/SafeProcess/Base.pm | 13 +- .../lib/My/SafeProcess/CMakeLists.txt | 17 +- .../lib/My/SafeProcess/safe_kill_win.cc | 13 +- .../lib/My/SafeProcess/safe_process.cc | 13 +- .../lib/My/SafeProcess/safe_process_win.cc | 13 +- mysql-wsrep-5.6/mysql-test/lib/My/SysInfo.pm | 13 +- mysql-wsrep-5.6/mysql-test/lib/My/Test.pm | 13 +- mysql-wsrep-5.6/mysql-test/lib/mtr_cases.pm | 13 +- mysql-wsrep-5.6/mysql-test/lib/mtr_gcov.pl | 17 +- mysql-wsrep-5.6/mysql-test/lib/mtr_gprof.pl | 17 +- mysql-wsrep-5.6/mysql-test/lib/mtr_io.pl | 17 +- mysql-wsrep-5.6/mysql-test/lib/mtr_match.pm | 17 +- mysql-wsrep-5.6/mysql-test/lib/mtr_misc.pl | 18 +- mysql-wsrep-5.6/mysql-test/lib/mtr_process.pl | 17 +- mysql-wsrep-5.6/mysql-test/lib/mtr_report.pm | 17 +- .../mysql-test/lib/mtr_report_junit.pm | 225 + mysql-wsrep-5.6/mysql-test/lib/mtr_results.pm | 13 +- mysql-wsrep-5.6/mysql-test/lib/mtr_stress.pl | 17 +- mysql-wsrep-5.6/mysql-test/lib/mtr_unique.pm | 17 +- mysql-wsrep-5.6/mysql-test/lib/t/Base.t | 17 +- mysql-wsrep-5.6/mysql-test/lib/t/Find.t | 17 +- mysql-wsrep-5.6/mysql-test/lib/t/Options.t | 17 +- mysql-wsrep-5.6/mysql-test/lib/t/Platform.t | 17 +- .../mysql-test/lib/t/SafeProcess.t | 17 +- .../mysql-test/lib/t/SafeProcessStress.pl | 17 +- mysql-wsrep-5.6/mysql-test/lib/t/copytree.t | 17 +- mysql-wsrep-5.6/mysql-test/lib/t/dummyd.pl | 17 +- mysql-wsrep-5.6/mysql-test/lib/t/rmtree.t | 17 +- .../mysql-test/lib/t/testMyConfig.t | 17 +- .../mysql-test/lib/t/testMyConfigFactory.t | 17 +- .../mysql-test/lib/t/test_child.pl | 17 +- .../mysql-test/lib/v1/My/Config.pm | 17 +- .../mysql-test/lib/v1/mtr_cases.pl | 17 +- mysql-wsrep-5.6/mysql-test/lib/v1/mtr_gcov.pl | 17 +- .../mysql-test/lib/v1/mtr_gprof.pl | 17 +- mysql-wsrep-5.6/mysql-test/lib/v1/mtr_im.pl | 17 +- mysql-wsrep-5.6/mysql-test/lib/v1/mtr_io.pl | 17 +- .../mysql-test/lib/v1/mtr_match.pl | 17 +- mysql-wsrep-5.6/mysql-test/lib/v1/mtr_misc.pl | 17 +- .../mysql-test/lib/v1/mtr_process.pl | 17 +- .../mysql-test/lib/v1/mtr_report.pl | 17 +- .../mysql-test/lib/v1/mtr_stress.pl | 17 +- .../mysql-test/lib/v1/mtr_timer.pl | 17 +- .../mysql-test/lib/v1/mtr_unique.pl | 17 +- .../mysql-test/lib/v1/mysql-test-run.pl | 17 +- .../mysql-test/mysql-stress-test.pl | 18 +- mysql-wsrep-5.6/mysql-test/mysql-test-run.pl | 127 +- mysql-wsrep-5.6/mysql-test/purify.supp | 18 +- .../r/audit_log_buffer_size_overflow.result | 12 + .../mysql-test/r/audit_log_charset.result | 70 + .../mysql-test/r/audit_log_csv.result | 100 + .../mysql-test/r/audit_log_default_db.result | 85 + .../r/audit_log_filter_commands.result | 208 + .../r/audit_log_filter_users.result | 227 + .../mysql-test/r/audit_log_install.result | 4 + .../r/audit_log_install_bug1435606.result | 4 + .../mysql-test/r/audit_log_json.result | 166 + .../r/audit_log_long_records.result | 3 + .../r/audit_log_many_connections.result | 7 + .../mysql-test/r/audit_log_new.result | 100 + .../mysql-test/r/audit_log_old.result | 100 + .../mysql-test/r/audit_log_rotate.result | 14 + .../mysql-test/r/audit_log_startup.result | 12 + .../mysql-test/r/audit_log_syslog.result | 97 + mysql-wsrep-5.6/mysql-test/r/events_1.result | 4 +- .../mysql-test/r/events_bugs.result | 16 +- mysql-wsrep-5.6/mysql-test/r/func_str.result | 18 + mysql-wsrep-5.6/mysql-test/r/grant4.result | 4 +- .../mysql-test/r/insert_debug.result | 24 + .../mysql-test/r/mysql_config_editor.result | 2 +- mysql-wsrep-5.6/mysql-test/r/openssl_1.result | 24 +- mysql-wsrep-5.6/mysql-test/r/partition.result | 21 + .../r/plugin_auth_sha256_tls.result | 2 +- mysql-wsrep-5.6/mysql-test/r/ssl.result | 4 +- .../mysql-test/r/ssl_8k_key.result | 2 +- mysql-wsrep-5.6/mysql-test/r/ssl_ca.result | 8 +- .../mysql-test/r/ssl_compress.result | 4 +- .../mysql-test/std_data/checkDBI_DBD-mysql.pl | 18 +- .../mysql-test/std_data/crl-ca-cert.pem | 112 +- .../std_data/crl-certificate-readme.txt | 89 +- .../mysql-test/std_data/crl-client-cert.pem | 116 +- .../mysql-test/std_data/crl-client-key.pem | 38 +- .../std_data/crl-client-revoked-cert.pem | 116 +- .../std_data/crl-client-revoked-key.pem | 38 +- .../std_data/crl-client-revoked.crl | 47 +- .../mysql-test/std_data/crl-server-cert.pem | 116 +- .../mysql-test/std_data/crl-server-key.pem | 38 +- .../mysql-test/std_data/crldir/5df06fcb.r0 | 13 + .../mysql-test/std_data/crldir/ab8a3803.r0 | 10 - .../mysql-test/std_data/latin1.xml | 13 +- .../mysql-test/std_data/wsrep_notify.sh | 5 +- .../auth_sec/include/not_sha256_rsa_auth.inc | 5 - ...server_withoutssl_client_withoutssl.result | 400 -- .../r/server_withoutssl_client_withssl.result | 226 - .../suite/auth_sec/t/cert_verify.test | 4 +- .../server_withoutssl_client_withoutssl.test | 722 --- .../t/server_withoutssl_client_withssl.test | 762 --- .../suite/binlog/r/binlog_stm_do_db.result | 2 +- .../binlog/t/binlog_spurious_ddl_errors.test | 6 + .../galera/include/galera_load_provider.inc | 1 - .../galera/include/galera_unload_provider.inc | 3 +- .../galera/r/galera_as_master_gtid.result | 53 +- .../galera_bf_abort_committing_by_ddl.result | 207 + .../suite/galera/r/galera_defaults.result | 5 +- .../galera/r/galera_ist_restart_joiner.result | 4 +- .../suite/galera/r/galera_ist_rsync.result | 2 +- .../galera/r/galera_ist_xtrabackup-v2.result | 2 +- .../suite/galera/r/galera_log_bin.result | 37 +- .../galera/r/galera_log_output_csv.result | 18 +- .../suite/galera/r/galera_migrate.result | 6 +- .../suite/galera/r/galera_slave_replay.result | 77 + .../galera/r/galera_sst_mysqldump.result | 2 +- .../r/galera_sst_mysqldump_with_key.result | 4 +- .../galera/r/galera_var_notify_cmd.result | 17 +- .../suite/galera/r/mysql-wsrep#216.result | 8 +- .../suite/galera/r/mysql-wsrep#33.result | 4 +- .../mysql-test/suite/galera/t/MW-369.test | 4 +- .../mysql-test/suite/galera/t/MW-388.test | 1 + .../mysql-test/suite/galera/t/disabled.def | 2 + .../suite/galera/t/galera_as_master_gtid.test | 16 +- .../t/galera_bf_abort_committing_by_ddl.inc | 70 + .../t/galera_bf_abort_committing_by_ddl.test | 101 + .../suite/galera/t/galera_gcs_fragment.test | 2 + .../t/galera_ist_innodb_flush_logs.test | 1 + .../suite/galera/t/galera_ist_mysqldump.cnf | 3 +- .../suite/galera/t/galera_ist_mysqldump.test | 5 + .../galera/t/galera_ist_restart_joiner.test | 3 +- .../suite/galera/t/galera_ist_rsync.test | 1 + .../galera/t/galera_ist_xtrabackup-v2.test | 1 + .../suite/galera/t/galera_log_bin.test | 11 +- .../suite/galera/t/galera_log_output_csv.test | 16 +- .../suite/galera/t/galera_migrate.test | 27 +- .../suite/galera/t/galera_slave_replay.cnf | 5 + .../suite/galera/t/galera_slave_replay.test | 204 + .../suite/galera/t/galera_sp_bf_abort.test | 1 + .../suite/galera/t/galera_sst_mysqldump.test | 5 + .../t/galera_sst_mysqldump_with_key.test | 7 - .../suite/galera/t/galera_sst_rsync.test | 1 + .../galera/t/galera_sst_xtrabackup-v2.test | 1 + .../suite/galera/t/galera_sync_wait_show.test | 1 + .../suite/galera/t/galera_var_notify_cmd.test | 28 +- .../suite/galera/t/mysql-wsrep#216.test | 23 +- .../suite/galera/t/mysql-wsrep#33.test | 8 - .../r/galera_ipv6_mysqldump.result | 2 +- .../r/galera_ist_gcache_rollover.result | 6 +- .../r/galera_join_with_cc_A.result | 40 + .../r/galera_join_with_cc_B.result | 44 + .../r/galera_join_with_cc_C.result | 51 + .../t/galera_ipv6_xtrabackup-v2.test | 4 +- .../t/galera_ist_gcache_rollover.test | 6 +- .../t/galera_join_with_cc_A.test | 262 ++ .../t/galera_join_with_cc_B.test | 275 ++ .../t/galera_join_with_cc_C.test | 298 ++ .../import_tablespace_schema_missmatch.result | 58 + .../innodb/r/innodb_sys_var_valgrind.result | 70 + .../mysql-test/suite/innodb/t/galera.skip | 4 + .../t/import_tablespace_schema_missmatch.test | 119 + .../innodb/t/innodb_sys_var_valgrind.test | 67 + .../mysql-test/suite/innodb_fts/r/sync.result | 34 +- .../mysql-test/suite/innodb_fts/t/sync.test | 28 + .../r/ndb_rpl_binlog_format_errors.result | 151 +- .../t/ndb_rpl_binlog_format_errors.test | 253 +- .../perfschema/r/stage_mdl_procedure.result | 2 +- .../perfschema/t/ddl_esms_by_digest.test | 13 +- .../perfschema/t/dml_esms_by_digest.test | 13 +- .../mysql-test/suite/rpl/extension/bhs.pl | 13 +- .../suite/rpl/extension/checksum.pl | 13 +- .../rpl/r/rpl_binlog_format_errors.result | 195 + ...ete_memory_table_after_start_server.result | 98 + ...gtid_deleted_binlog_fail_to_connect.result | 67 + .../rpl/r/rpl_gtid_drop_mem_table.result | 135 + .../r/rpl_gtid_purged_fail_to_connect.result | 63 +- .../r/rpl_gtid_validate_slave_gtids.result | 8 +- ...ete_memory_table_after_start_server.result | 37 + .../suite/rpl/r/rpl_plugin_load.result | 2 + ...l_row_image_check_for_insert_select.result | 58 + .../t/rpl_binlog_format_errors-master.opt} | 0 .../t/rpl_binlog_format_errors-slave.opt} | 0 .../suite/rpl/t/rpl_binlog_format_errors.test | 442 ++ ...elete_memory_table_after_start_server.test | 178 + ...l_gtid_deleted_binlog_fail_to_connect.test | 146 + .../suite/rpl/t/rpl_gtid_drop_mem_table.cnf | 11 + .../suite/rpl/t/rpl_gtid_drop_mem_table.test | 260 ++ .../t/rpl_gtid_purged_fail_to_connect.test | 142 +- .../rpl/t/rpl_gtid_validate_slave_gtids.test | 15 +- ...elete_memory_table_after_start_server.test | 89 + ...rpl_row_image_check_for_insert_select.test | 84 + .../mysql-test/suite/rpl/t/rpl_ssl.test | 2 - .../sys_vars/t/pfs_digests_size_basic.test | 13 +- .../pfs_session_connect_attrs_size_basic.test | 13 +- mysql-wsrep-5.6/mysql-test/suite/wsrep/my.cnf | 1 + .../wsrep/r/wsrep-recover-v25-binlog.result | 26 + .../suite/wsrep/r/wsrep-recover-v25.result | 27 + .../suite/wsrep/t/wsrep-recover-step.inc | 41 + .../wsrep/t/wsrep-recover-v25-binlog.cnf | 9 + .../wsrep/t/wsrep-recover-v25-binlog.test | 90 + .../suite/wsrep/t/wsrep-recover-v25.cnf | 7 + .../suite/wsrep/t/wsrep-recover-v25.test | 86 + .../t/audit_log_buffer_size_overflow.test | 31 + .../mysql-test/t/audit_log_charset-master.opt | 6 + .../mysql-test/t/audit_log_charset.test | 66 + .../mysql-test/t/audit_log_csv-master.opt | 5 + .../mysql-test/t/audit_log_csv.test | 25 + .../t/audit_log_default_db-master.opt | 6 + .../mysql-test/t/audit_log_default_db.test | 91 + .../mysql-test/t/audit_log_echo.inc | 35 + .../t/audit_log_filter_commands-master.opt | 6 + .../t/audit_log_filter_commands.test | 71 + .../t/audit_log_filter_commands_events.inc | 31 + .../mysql-test/t/audit_log_filter_events.inc | 43 + .../t/audit_log_filter_users-master.opt | 6 + .../mysql-test/t/audit_log_filter_users.test | 145 + .../mysql-test/t/audit_log_install-master.opt | 1 + .../mysql-test/t/audit_log_install.test | 14 + .../t/audit_log_install_bug1435606-master.opt | 1 + .../t/audit_log_install_bug1435606.test | 18 + .../mysql-test/t/audit_log_json-master.opt | 5 + .../mysql-test/t/audit_log_json.test | 47 + .../t/audit_log_long_records-master.opt | 6 + .../mysql-test/t/audit_log_long_records.test | 42 + .../t/audit_log_many_connections-master.opt | 5 + .../t/audit_log_many_connections.test | 31 + .../mysql-test/t/audit_log_new-master.opt | 6 + .../mysql-test/t/audit_log_new.test | 20 + .../mysql-test/t/audit_log_old-master.opt | 5 + .../mysql-test/t/audit_log_old.test | 20 + .../mysql-test/t/audit_log_rotate-master.opt | 8 + .../mysql-test/t/audit_log_rotate.test | 69 + .../mysql-test/t/audit_log_startup-master.opt | 2 + .../mysql-test/t/audit_log_startup.test | 56 + .../mysql-test/t/audit_log_syslog-master.opt | 7 + .../mysql-test/t/audit_log_syslog.test | 3 + mysql-wsrep-5.6/mysql-test/t/events_1.test | 4 +- mysql-wsrep-5.6/mysql-test/t/events_bugs.test | 12 +- .../mysql-test/t/flush_read_lock.test | 1 + mysql-wsrep-5.6/mysql-test/t/func_str.test | 17 + mysql-wsrep-5.6/mysql-test/t/grant4.test | 6 +- .../mysql-test/t/insert_debug-master.opt | 1 + .../mysql-test/t/insert_debug.test | 52 + mysql-wsrep-5.6/mysql-test/t/openssl_1.test | 34 +- mysql-wsrep-5.6/mysql-test/t/partition.test | 16 + .../mysql-test/t/plugin_auth_sha256_tls.test | 1 + mysql-wsrep-5.6/mysql-test/t/ssl-sha512.test | 3 +- mysql-wsrep-5.6/mysql-test/t/ssl.test | 2 + mysql-wsrep-5.6/mysql-test/t/ssl_8k_key.test | 1 + mysql-wsrep-5.6/mysql-test/t/ssl_ca.test | 4 + .../mysql-test/t/ssl_compress.test | 2 + .../mysql-test/t/ssl_verify_identity.test | 8 +- .../mysql-test/t/symlink_windows.test | 18 +- mysql-wsrep-5.6/mysql-test/valgrind.supp | 41 +- mysql-wsrep-5.6/mysys/CMakeLists.txt | 26 +- mysql-wsrep-5.6/mysys/array.c | 18 +- mysql-wsrep-5.6/mysys/base64.c | 18 +- mysql-wsrep-5.6/mysys/charset-def.c | 18 +- mysql-wsrep-5.6/mysys/charset.c | 18 +- mysql-wsrep-5.6/mysys/checksum.c | 18 +- mysql-wsrep-5.6/mysys/errors.c | 18 +- mysql-wsrep-5.6/mysys/hash.c | 18 +- mysql-wsrep-5.6/mysys/lf_alloc-pin.c | 18 +- mysql-wsrep-5.6/mysys/lf_dynarray.c | 18 +- mysql-wsrep-5.6/mysys/lf_hash.c | 18 +- mysql-wsrep-5.6/mysys/list.c | 18 +- mysql-wsrep-5.6/mysys/mf_arr_appstr.c | 18 +- mysql-wsrep-5.6/mysys/mf_cache.c | 18 +- mysql-wsrep-5.6/mysys/mf_dirname.c | 18 +- mysql-wsrep-5.6/mysys/mf_fn_ext.c | 18 +- mysql-wsrep-5.6/mysys/mf_format.c | 18 +- mysql-wsrep-5.6/mysys/mf_getdate.c | 18 +- mysql-wsrep-5.6/mysys/mf_iocache.c | 18 +- mysql-wsrep-5.6/mysys/mf_iocache2.c | 18 +- mysql-wsrep-5.6/mysys/mf_keycache.c | 18 +- mysql-wsrep-5.6/mysys/mf_keycaches.c | 18 +- mysql-wsrep-5.6/mysys/mf_loadpath.c | 18 +- mysql-wsrep-5.6/mysys/mf_pack.c | 18 +- mysql-wsrep-5.6/mysys/mf_path.c | 18 +- mysql-wsrep-5.6/mysys/mf_qsort.c | 18 +- mysql-wsrep-5.6/mysys/mf_qsort2.c | 18 +- mysql-wsrep-5.6/mysys/mf_radix.c | 18 +- mysql-wsrep-5.6/mysys/mf_same.c | 18 +- mysql-wsrep-5.6/mysys/mf_sort.c | 18 +- mysql-wsrep-5.6/mysys/mf_soundex.c | 18 +- mysql-wsrep-5.6/mysys/mf_tempdir.c | 18 +- mysql-wsrep-5.6/mysys/mf_tempfile.c | 18 +- mysql-wsrep-5.6/mysys/mf_unixpath.c | 18 +- mysql-wsrep-5.6/mysys/mf_wcomp.c | 18 +- mysql-wsrep-5.6/mysys/mulalloc.c | 18 +- mysql-wsrep-5.6/mysys/my_access.c | 18 +- mysql-wsrep-5.6/mysys/my_alarm.c | 18 +- mysql-wsrep-5.6/mysys/my_alloc.c | 18 +- mysql-wsrep-5.6/mysys/my_atomic.c | 18 +- mysql-wsrep-5.6/mysys/my_bit.c | 18 +- mysql-wsrep-5.6/mysys/my_bitmap.c | 18 +- mysql-wsrep-5.6/mysys/my_chsize.c | 18 +- mysql-wsrep-5.6/mysys/my_compare.c | 18 +- mysql-wsrep-5.6/mysys/my_compress.c | 18 +- mysql-wsrep-5.6/mysys/my_conio.c | 13 +- mysql-wsrep-5.6/mysys/my_copy.c | 18 +- mysql-wsrep-5.6/mysys/my_crc32.c | 13 +- mysql-wsrep-5.6/mysys/my_create.c | 18 +- mysql-wsrep-5.6/mysys/my_delete.c | 18 +- mysql-wsrep-5.6/mysys/my_div.c | 18 +- mysql-wsrep-5.6/mysys/my_error.c | 18 +- mysql-wsrep-5.6/mysys/my_file.c | 18 +- mysql-wsrep-5.6/mysys/my_fopen.c | 18 +- mysql-wsrep-5.6/mysys/my_fstream.c | 18 +- mysql-wsrep-5.6/mysys/my_gethwaddr.c | 18 +- mysql-wsrep-5.6/mysys/my_getncpus.c | 18 +- mysql-wsrep-5.6/mysys/my_getpagesize.c | 18 +- mysql-wsrep-5.6/mysys/my_getsystime.c | 18 +- mysql-wsrep-5.6/mysys/my_getwd.c | 18 +- mysql-wsrep-5.6/mysys/my_handler_errors.h | 23 +- mysql-wsrep-5.6/mysys/my_init.c | 18 +- mysql-wsrep-5.6/mysys/my_largepage.c | 18 +- mysql-wsrep-5.6/mysys/my_lib.c | 18 +- mysql-wsrep-5.6/mysys/my_libwrap.c | 13 +- mysql-wsrep-5.6/mysys/my_lock.c | 18 +- mysql-wsrep-5.6/mysys/my_lockmem.c | 18 +- mysql-wsrep-5.6/mysys/my_malloc.c | 18 +- mysql-wsrep-5.6/mysys/my_memmem.c | 18 +- mysql-wsrep-5.6/mysys/my_mess.c | 18 +- mysql-wsrep-5.6/mysys/my_mkdir.c | 18 +- mysql-wsrep-5.6/mysys/my_mmap.c | 18 +- mysql-wsrep-5.6/mysys/my_once.c | 18 +- mysql-wsrep-5.6/mysys/my_open.c | 18 +- mysql-wsrep-5.6/mysys/my_pread.c | 18 +- mysql-wsrep-5.6/mysys/my_pthread.c | 18 +- mysql-wsrep-5.6/mysys/my_quick.c | 18 +- mysql-wsrep-5.6/mysys/my_rdtsc.c | 18 +- mysql-wsrep-5.6/mysys/my_read.c | 18 +- mysql-wsrep-5.6/mysys/my_redel.c | 18 +- mysql-wsrep-5.6/mysys/my_rename.c | 18 +- mysql-wsrep-5.6/mysys/my_seek.c | 18 +- mysql-wsrep-5.6/mysys/my_sleep.c | 18 +- mysql-wsrep-5.6/mysys/my_static.c | 18 +- mysql-wsrep-5.6/mysys/my_static.h | 18 +- mysql-wsrep-5.6/mysys/my_symlink.c | 18 +- mysql-wsrep-5.6/mysys/my_symlink2.c | 18 +- mysql-wsrep-5.6/mysys/my_sync.c | 18 +- mysql-wsrep-5.6/mysys/my_thr_init.c | 18 +- mysql-wsrep-5.6/mysys/my_timer_cycles.il | 13 +- mysql-wsrep-5.6/mysys/my_wincond.c | 13 +- mysql-wsrep-5.6/mysys/my_windac.c | 13 +- mysql-wsrep-5.6/mysys/my_winerr.c | 13 +- mysql-wsrep-5.6/mysys/my_winfile.c | 13 +- mysql-wsrep-5.6/mysys/my_winthread.c | 13 +- mysql-wsrep-5.6/mysys/my_write.c | 18 +- mysql-wsrep-5.6/mysys/mysys_priv.h | 18 +- mysql-wsrep-5.6/mysys/psi_noop.c | 18 +- mysql-wsrep-5.6/mysys/ptr_cmp.c | 18 +- mysql-wsrep-5.6/mysys/queues.c | 98 +- mysql-wsrep-5.6/mysys/stacktrace.c | 18 +- mysql-wsrep-5.6/mysys/string.c | 18 +- mysql-wsrep-5.6/mysys/test_charset.c | 13 +- mysql-wsrep-5.6/mysys/test_dir.c | 13 +- mysql-wsrep-5.6/mysys/test_xml.c | 13 +- mysql-wsrep-5.6/mysys/testhash.c | 13 +- mysql-wsrep-5.6/mysys/thr_alarm.c | 18 +- mysql-wsrep-5.6/mysys/thr_lock.c | 18 +- mysql-wsrep-5.6/mysys/thr_mutex.c | 18 +- mysql-wsrep-5.6/mysys/thr_rwlock.c | 18 +- mysql-wsrep-5.6/mysys/tree.c | 18 +- mysql-wsrep-5.6/mysys/typelib.c | 18 +- mysql-wsrep-5.6/mysys/waiting_threads.c | 18 +- mysql-wsrep-5.6/mysys_ssl/CMakeLists.txt | 48 +- .../mysys_ssl/crypt_genhash_impl.cc | 64 +- mysql-wsrep-5.6/mysys_ssl/my_aes.cc | 22 +- mysql-wsrep-5.6/mysys_ssl/my_aes_impl.h | 18 +- mysql-wsrep-5.6/mysys_ssl/my_aes_openssl.cc | 90 +- mysql-wsrep-5.6/mysys_ssl/my_aes_yassl.cc | 240 - mysql-wsrep-5.6/mysys_ssl/my_default.cc | 18 +- mysql-wsrep-5.6/mysys_ssl/my_default_priv.h | 18 +- mysql-wsrep-5.6/mysys_ssl/my_getopt.cc | 18 +- mysql-wsrep-5.6/mysys_ssl/my_md5.cc | 44 +- mysql-wsrep-5.6/mysys_ssl/my_murmur3.cc | 18 +- mysql-wsrep-5.6/mysys_ssl/my_rnd.cc | 43 +- mysql-wsrep-5.6/mysys_ssl/my_sha1.cc | 79 +- mysql-wsrep-5.6/mysys_ssl/my_sha2.cc | 68 - mysql-wsrep-5.6/packaging/WiX/CMakeLists.txt | 54 +- .../packaging/WiX/CPackWixConfig.cmake | 25 +- .../packaging/WiX/create_msi.cmake.in | 29 +- mysql-wsrep-5.6/packaging/WiX/custom_ui.wxs | 29 +- mysql-wsrep-5.6/packaging/WiX/extra.wxs.in | 25 +- .../packaging/WiX/mysql_server.wxs.in | 35 +- .../packaging/WiX/mysql_server_extra.wxs.in | 25 +- .../packaging/deb-in/CMakeLists.txt | 19 +- mysql-wsrep-5.6/packaging/deb-in/README | 13 +- .../packaging/deb-in/README.Maintainer | 13 +- .../packaging/deb-in/copyright.com.in | 64 +- .../packaging/deb-in/copyright.gpl.in | 43 +- .../packaging/deb-in/deb_debug.cmake | 16 +- .../packaging/deb-in/extra/conf.d/mysql.cnf | 13 +- .../packaging/deb-in/extra/my.cnf.fallback | 13 +- .../packaging/deb-in/extra/mysql-helpers | 13 +- .../deb-in/extra/mysql-systemd-start | 13 +- .../packaging/deb-in/extra/mysql.cnf | 13 +- .../packaging/deb-in/extra/mysqld.cnf | 13 +- .../deb-in/libmysqlclient-dev.install.in | 13 +- .../libmysqlclient-dev.lintian-overrides.in | 18 +- .../deb-in/libmysqlclient18.install.in | 13 +- .../libmysqlclient18.lintian-overrides.in | 17 +- .../packaging/deb-in/libmysqld-dev.install.in | 13 +- .../packaging/deb-in/mysql-client.install.in | 25 + .../mysql-packagesource-bench.install.in | 13 +- ...l-packagesource-bench.lintian-overrides.in | 25 + ...esource-client-SERIES.lintian-overrides.in | 15 +- .../mysql-packagesource-client.install.in | 13 +- .../mysql-packagesource-common-SERIES.dirs.in | 13 +- ...sql-packagesource-common-SERIES.install.in | 13 +- ...esource-common-SERIES.lintian-overrides.in | 15 +- ...ql-packagesource-common-SERIES.postinst.in | 13 +- ...ysql-packagesource-common-SERIES.postrm.in | 13 +- ...ysql-packagesource-server-SERIES.config.in | 13 +- .../mysql-packagesource-server-SERIES.dirs.in | 13 +- ...sql-packagesource-server-SERIES.install.in | 14 +- ...ckagesource-server-SERIES.mysql.service.in | 13 +- ...ql-packagesource-server-SERIES.postinst.in | 13 +- ...ysql-packagesource-server-SERIES.postrm.in | 13 +- ...sql-packagesource-server-SERIES.preinst.in | 13 +- ...mysql-packagesource-server-SERIES.prerm.in | 13 +- ...-packagesource-server.lintian-overrides.in | 29 + .../mysql-packagesource-server.mysql.init.in | 122 + ...sql-packagesource-source-SERIES.install.in | 13 +- ...esource-source-SERIES.lintian-overrides.in | 15 +- ...-packagesource-source.lintian-overrides.in | 25 + .../mysql-packagesource-test-SERIES.links.in | 13 +- ...agesource-test-SERIES.lintian-overrides.in | 15 +- .../mysql-packagesource-test.install.in | 14 +- ...ql-packagesource-test.lintian-overrides.in | 25 + .../packaging/deb-in/mysql-server.install.in | 13 +- .../deb-in/mysql-server.lintian-overrides.in | 18 +- .../deb-in/mysql-testsuite.install.in | 13 +- .../mysql-testsuite.lintian-overrides.in | 18 +- .../packaging/deb-in/patches/series | 22 + mysql-wsrep-5.6/packaging/deb-in/rules.in | 17 +- .../packaging/deb-in/source/include-binaries | 13 +- .../packaging/deb-in/source/lintian-overrides | 13 +- .../packaging/rpm-docker/CMakeLists.txt | 17 +- .../packaging/rpm-docker/mysql.spec.in | 27 +- .../packaging/rpm-fedora/CMakeLists.txt | 17 +- .../packaging/rpm-fedora/mysql.spec.in | 30 +- .../packaging/rpm-oel/CMakeLists.txt | 17 +- .../packaging/rpm-oel/mysql.spec.in | 33 +- .../packaging/rpm-sles/CMakeLists.txt | 17 +- .../packaging/rpm-sles/filter-provides.sh | 0 .../packaging/rpm-sles/filter-requires.sh | 0 mysql-wsrep-5.6/packaging/rpm-sles/mysql.init | 13 +- .../packaging/rpm-sles/mysql.spec.in | 31 +- .../packaging/solaris/CMakeLists.txt | 17 +- .../packaging/solaris/postinstall-solaris.sh | 17 +- .../plugin/audit_log/CMakeLists.txt | 25 + mysql-wsrep-5.6/plugin/audit_log/audit_file.c | 213 + .../plugin/audit_log/audit_handler.h | 116 + mysql-wsrep-5.6/plugin/audit_log/audit_log.c | 1786 +++++++ mysql-wsrep-5.6/plugin/audit_log/audit_log.h | 36 + .../plugin/audit_log/audit_syslog.c | 94 + mysql-wsrep-5.6/plugin/audit_log/buffer.c | 224 + mysql-wsrep-5.6/plugin/audit_log/buffer.h | 45 + .../plugin/audit_log/file_logger.c | 302 ++ mysql-wsrep-5.6/plugin/audit_log/filter.c | 398 ++ mysql-wsrep-5.6/plugin/audit_log/filter.h | 45 + mysql-wsrep-5.6/plugin/audit_log/logger.h | 85 + .../audit_log/security_context_wrapper.cc | 27 + .../audit_log/security_context_wrapper.h | 32 + .../plugin/audit_null/CMakeLists.txt | 17 +- .../plugin/audit_null/audit_null.c | 18 +- mysql-wsrep-5.6/plugin/auth/CMakeLists.txt | 22 +- mysql-wsrep-5.6/plugin/auth/auth_socket.c | 22 +- mysql-wsrep-5.6/plugin/auth/dialog.c | 18 +- mysql-wsrep-5.6/plugin/auth/mysql_no_login.c | 18 +- mysql-wsrep-5.6/plugin/auth/qa_auth_client.c | 22 +- .../plugin/auth/qa_auth_interface.c | 22 +- mysql-wsrep-5.6/plugin/auth/qa_auth_server.c | 22 +- mysql-wsrep-5.6/plugin/auth/test_plugin.c | 22 +- .../plugin/connection_control/CMakeLists.txt | 13 +- .../connection_control/connection_control.cc | 13 +- .../connection_control/connection_control.h | 13 +- .../connection_control_coordinator.cc | 13 +- .../connection_control_coordinator.h | 13 +- .../connection_control_data.h | 13 +- .../connection_control_interfaces.h | 13 +- .../connection_control_memory.h | 13 +- .../connection_control/connection_delay.cc | 13 +- .../connection_control/connection_delay.h | 13 +- .../connection_control/connection_delay_api.h | 13 +- .../security_context_wrapper.cc | 13 +- .../security_context_wrapper.h | 13 +- .../plugin/daemon_example/CMakeLists.txt | 17 +- .../plugin/daemon_example/daemon_example.cc | 13 +- .../plugin/fulltext/CMakeLists.txt | 17 +- .../plugin/fulltext/plugin_example.c | 13 +- .../plugin/innodb_memcached/CMakeLists.txt | 13 +- .../daemon_memcached/.gitignore | 57 + .../daemon_memcached/CMakeLists.txt | 13 +- .../daemon/memcached_mysql.cc | 23 +- .../daemon_memcached/daemon/memcached_mysql.h | 23 +- .../innodb_memcache/.gitignore | 38 + .../innodb_memcache/CMakeLists.txt | 13 +- .../innodb_memcache/include/handler_api.h | 22 +- .../innodb_memcache/include/innodb_api.h | 23 +- .../innodb_memcache/include/innodb_cb_api.h | 23 +- .../innodb_memcache/include/innodb_config.h | 23 +- .../innodb_memcache/include/innodb_engine.h | 23 +- .../innodb_memcache/include/innodb_utility.h | 23 +- .../innodb_memcache/src/handler_api.cc | 22 +- .../innodb_memcache/src/innodb_api.c | 23 +- .../innodb_memcache/src/innodb_config.c | 23 +- .../innodb_memcache/src/innodb_engine.c | 24 +- .../src/innodb_engine_private.h | 23 +- .../innodb_memcache/src/innodb_utility.c | 22 +- .../plugin/password_validation/CMakeLists.txt | 17 +- .../password_validation/validate_password.cc | 13 +- .../plugin/semisync/CMakeLists.txt | 17 +- mysql-wsrep-5.6/plugin/semisync/semisync.cc | 13 +- mysql-wsrep-5.6/plugin/semisync/semisync.h | 13 +- .../plugin/semisync/semisync_master.cc | 13 +- .../plugin/semisync/semisync_master.h | 13 +- .../plugin/semisync/semisync_master_plugin.cc | 13 +- .../plugin/semisync/semisync_slave.cc | 13 +- .../plugin/semisync/semisync_slave.h | 13 +- .../plugin/semisync/semisync_slave_plugin.cc | 13 +- .../plugin/udf_services/CMakeLists.txt | 13 +- .../plugin/udf_services/test_udf_services.cc | 13 +- mysql-wsrep-5.6/regex/CMakeLists.txt | 17 +- mysql-wsrep-5.6/scripts/CMakeLists.txt | 25 +- mysql-wsrep-5.6/scripts/comp_sql.c | 13 +- mysql-wsrep-5.6/scripts/fill_help_tables.sql | 17 +- .../scripts/invoke-with-relative-paths.pl | 13 +- mysql-wsrep-5.6/scripts/msql2mysql.sh | 17 +- mysql-wsrep-5.6/scripts/mysql_config.pl.in | 13 +- mysql-wsrep-5.6/scripts/mysql_config.sh | 17 +- .../scripts/mysql_convert_table_format.sh | 17 +- mysql-wsrep-5.6/scripts/mysql_find_rows.sh | 17 +- .../scripts/mysql_fix_extensions.sh | 18 +- .../scripts/mysql_install_db.pl.in | 13 +- mysql-wsrep-5.6/scripts/mysql_install_db.sh | 17 +- .../scripts/mysql_secure_installation.pl.in | 13 +- .../scripts/mysql_secure_installation.sh | 17 +- .../scripts/mysql_security_commands.sql | 13 +- .../scripts/mysql_setpermission.sh | 18 +- .../scripts/mysql_system_tables.sql | 13 +- .../scripts/mysql_system_tables_data.sql | 17 +- .../scripts/mysql_system_tables_fix.sql | 13 +- .../scripts/mysql_test_data_timezone.sql | 17 +- mysql-wsrep-5.6/scripts/mysql_zap.sh | 17 +- mysql-wsrep-5.6/scripts/mysqlaccess.sh | 18 +- mysql-wsrep-5.6/scripts/mysqlbug.sh | 17 +- mysql-wsrep-5.6/scripts/mysqld_multi.sh | 18 +- mysql-wsrep-5.6/scripts/mysqld_safe.sh | 23 +- mysql-wsrep-5.6/scripts/mysqldumpslow.sh | 18 +- mysql-wsrep-5.6/scripts/mysqlhotcopy.sh | 18 +- .../scripts/wsrep_sst_mysqldump.sh | 33 +- mysql-wsrep-5.6/scripts/wsrep_sst_rsync.sh | 31 +- .../scripts/wsrep_sst_xtrabackup-v2.sh | 26 +- .../scripts/wsrep_sst_xtrabackup.sh | 5 +- mysql-wsrep-5.6/sql-bench/CMakeLists.txt | 17 +- mysql-wsrep-5.6/sql-common/client.c | 77 +- .../sql-common/client_authentication.cc | 41 +- mysql-wsrep-5.6/sql-common/client_plugin.c | 49 +- .../sql-common/my_path_permissions.cc | 23 +- mysql-wsrep-5.6/sql-common/my_time.c | 18 +- mysql-wsrep-5.6/sql-common/my_user.c | 13 +- mysql-wsrep-5.6/sql-common/pack.c | 18 +- mysql-wsrep-5.6/sql/CMakeLists.txt | 17 +- mysql-wsrep-5.6/sql/abstract_query_plan.cc | 13 +- mysql-wsrep-5.6/sql/abstract_query_plan.h | 13 +- mysql-wsrep-5.6/sql/binlog.cc | 234 +- mysql-wsrep-5.6/sql/binlog.h | 82 +- mysql-wsrep-5.6/sql/bounded_queue.h | 13 +- mysql-wsrep-5.6/sql/client_settings.h | 22 +- mysql-wsrep-5.6/sql/custom_conf.h | 18 +- mysql-wsrep-5.6/sql/datadict.cc | 13 +- mysql-wsrep-5.6/sql/datadict.h | 13 +- mysql-wsrep-5.6/sql/debug_sync.cc | 13 +- mysql-wsrep-5.6/sql/debug_sync.h | 13 +- .../sql/delayable_insert_operation.h | 13 +- mysql-wsrep-5.6/sql/derror.cc | 13 +- mysql-wsrep-5.6/sql/derror.h | 13 +- mysql-wsrep-5.6/sql/des_key_file.cc | 13 +- mysql-wsrep-5.6/sql/des_key_file.h | 13 +- mysql-wsrep-5.6/sql/discover.cc | 13 +- mysql-wsrep-5.6/sql/discover.h | 13 +- mysql-wsrep-5.6/sql/dynamic_ids.h | 13 +- mysql-wsrep-5.6/sql/event_data_objects.cc | 13 +- mysql-wsrep-5.6/sql/event_data_objects.h | 13 +- mysql-wsrep-5.6/sql/event_db_repository.cc | 13 +- mysql-wsrep-5.6/sql/event_db_repository.h | 13 +- mysql-wsrep-5.6/sql/event_parse_data.cc | 13 +- mysql-wsrep-5.6/sql/event_parse_data.h | 13 +- mysql-wsrep-5.6/sql/event_queue.cc | 13 +- mysql-wsrep-5.6/sql/event_queue.h | 13 +- mysql-wsrep-5.6/sql/event_scheduler.cc | 16 +- mysql-wsrep-5.6/sql/event_scheduler.h | 13 +- mysql-wsrep-5.6/sql/events.cc | 13 +- mysql-wsrep-5.6/sql/events.h | 13 +- mysql-wsrep-5.6/sql/examples/CMakeLists.txt | 20 +- mysql-wsrep-5.6/sql/field.cc | 17 +- mysql-wsrep-5.6/sql/field.h | 17 +- mysql-wsrep-5.6/sql/field_conv.cc | 13 +- mysql-wsrep-5.6/sql/filesort.cc | 17 +- mysql-wsrep-5.6/sql/filesort.h | 13 +- mysql-wsrep-5.6/sql/filesort_utils.cc | 13 +- mysql-wsrep-5.6/sql/filesort_utils.h | 13 +- mysql-wsrep-5.6/sql/frm_crypt.cc | 13 +- mysql-wsrep-5.6/sql/frm_crypt.h | 13 +- mysql-wsrep-5.6/sql/gcalc_slicescan.cc | 13 +- mysql-wsrep-5.6/sql/gcalc_slicescan.h | 13 +- mysql-wsrep-5.6/sql/gcalc_tools.cc | 13 +- mysql-wsrep-5.6/sql/gcalc_tools.h | 13 +- mysql-wsrep-5.6/sql/gen_lex_hash.cc | 13 +- mysql-wsrep-5.6/sql/gen_lex_token.cc | 13 +- mysql-wsrep-5.6/sql/global_threads.h | 13 +- mysql-wsrep-5.6/sql/gstream.cc | 13 +- mysql-wsrep-5.6/sql/gstream.h | 13 +- mysql-wsrep-5.6/sql/ha_ndb_index_stat.cc | 13 +- mysql-wsrep-5.6/sql/ha_ndb_index_stat.h | 13 +- mysql-wsrep-5.6/sql/ha_ndbcluster.cc | 13 +- mysql-wsrep-5.6/sql/ha_ndbcluster.h | 13 +- mysql-wsrep-5.6/sql/ha_ndbcluster_binlog.cc | 13 +- mysql-wsrep-5.6/sql/ha_ndbcluster_binlog.h | 13 +- mysql-wsrep-5.6/sql/ha_ndbcluster_cond.cc | 13 +- mysql-wsrep-5.6/sql/ha_ndbcluster_cond.h | 13 +- .../sql/ha_ndbcluster_connection.cc | 13 +- .../sql/ha_ndbcluster_connection.h | 13 +- mysql-wsrep-5.6/sql/ha_ndbcluster_glue.h | 13 +- mysql-wsrep-5.6/sql/ha_ndbcluster_push.cc | 13 +- mysql-wsrep-5.6/sql/ha_ndbcluster_push.h | 13 +- mysql-wsrep-5.6/sql/ha_ndbcluster_tables.h | 13 +- mysql-wsrep-5.6/sql/ha_ndbinfo.cc | 13 +- mysql-wsrep-5.6/sql/ha_ndbinfo.h | 13 +- mysql-wsrep-5.6/sql/ha_partition.cc | 31 +- mysql-wsrep-5.6/sql/ha_partition.h | 13 +- mysql-wsrep-5.6/sql/handler.cc | 71 +- mysql-wsrep-5.6/sql/handler.h | 18 +- mysql-wsrep-5.6/sql/hash_filo.cc | 13 +- mysql-wsrep-5.6/sql/hash_filo.h | 13 +- mysql-wsrep-5.6/sql/hostname.cc | 13 +- mysql-wsrep-5.6/sql/hostname.h | 13 +- mysql-wsrep-5.6/sql/init.cc | 13 +- mysql-wsrep-5.6/sql/init.h | 13 +- mysql-wsrep-5.6/sql/item.cc | 21 +- mysql-wsrep-5.6/sql/item.h | 13 +- mysql-wsrep-5.6/sql/item_buff.cc | 13 +- mysql-wsrep-5.6/sql/item_cmpfunc.cc | 13 +- mysql-wsrep-5.6/sql/item_cmpfunc.h | 13 +- mysql-wsrep-5.6/sql/item_create.cc | 13 +- mysql-wsrep-5.6/sql/item_create.h | 13 +- mysql-wsrep-5.6/sql/item_func.cc | 13 +- mysql-wsrep-5.6/sql/item_func.h | 13 +- mysql-wsrep-5.6/sql/item_geofunc.cc | 13 +- mysql-wsrep-5.6/sql/item_geofunc.h | 13 +- mysql-wsrep-5.6/sql/item_inetfunc.cc | 13 +- mysql-wsrep-5.6/sql/item_inetfunc.h | 13 +- mysql-wsrep-5.6/sql/item_row.cc | 13 +- mysql-wsrep-5.6/sql/item_row.h | 13 +- mysql-wsrep-5.6/sql/item_strfunc.cc | 335 +- mysql-wsrep-5.6/sql/item_strfunc.h | 24 +- mysql-wsrep-5.6/sql/item_subselect.cc | 23 +- mysql-wsrep-5.6/sql/item_subselect.h | 13 +- mysql-wsrep-5.6/sql/item_sum.cc | 13 +- mysql-wsrep-5.6/sql/item_sum.h | 13 +- mysql-wsrep-5.6/sql/item_timefunc.cc | 13 +- mysql-wsrep-5.6/sql/item_timefunc.h | 13 +- mysql-wsrep-5.6/sql/item_xmlfunc.cc | 13 +- mysql-wsrep-5.6/sql/item_xmlfunc.h | 13 +- mysql-wsrep-5.6/sql/key.cc | 13 +- mysql-wsrep-5.6/sql/key.h | 13 +- mysql-wsrep-5.6/sql/keycaches.cc | 13 +- mysql-wsrep-5.6/sql/keycaches.h | 13 +- mysql-wsrep-5.6/sql/lex.h | 13 +- mysql-wsrep-5.6/sql/lex_symbol.h | 13 +- mysql-wsrep-5.6/sql/lock.cc | 13 +- mysql-wsrep-5.6/sql/lock.h | 13 +- mysql-wsrep-5.6/sql/log.cc | 19 +- mysql-wsrep-5.6/sql/log.h | 19 +- mysql-wsrep-5.6/sql/log_event.cc | 23 +- mysql-wsrep-5.6/sql/log_event.h | 13 +- mysql-wsrep-5.6/sql/log_event_old.cc | 13 +- mysql-wsrep-5.6/sql/log_event_old.h | 13 +- mysql-wsrep-5.6/sql/main.cc | 13 +- mysql-wsrep-5.6/sql/mdl.cc | 13 +- mysql-wsrep-5.6/sql/mdl.h | 13 +- mysql-wsrep-5.6/sql/mem_root_array.h | 13 +- mysql-wsrep-5.6/sql/merge_sort.h | 13 +- mysql-wsrep-5.6/sql/message.h | 25 +- mysql-wsrep-5.6/sql/mf_iocache.cc | 13 +- mysql-wsrep-5.6/sql/my_decimal.cc | 13 +- mysql-wsrep-5.6/sql/my_decimal.h | 13 +- mysql-wsrep-5.6/sql/mysqld.cc | 97 +- mysql-wsrep-5.6/sql/mysqld.h | 13 +- mysql-wsrep-5.6/sql/mysqld_suffix.h | 13 +- mysql-wsrep-5.6/sql/named_pipe.cc | 16 +- mysql-wsrep-5.6/sql/named_pipe.h | 16 +- mysql-wsrep-5.6/sql/ndb_dist_priv_util.h | 13 +- mysql-wsrep-5.6/sql/ndb_global_schema_lock.cc | 13 +- mysql-wsrep-5.6/sql/ndb_global_schema_lock.h | 13 +- .../sql/ndb_global_schema_lock_guard.h | 13 +- mysql-wsrep-5.6/sql/ndb_local_connection.cc | 13 +- mysql-wsrep-5.6/sql/ndb_local_connection.h | 13 +- mysql-wsrep-5.6/sql/ndb_mi.cc | 13 +- mysql-wsrep-5.6/sql/ndb_mi.h | 13 +- mysql-wsrep-5.6/sql/ndb_share.cc | 13 +- mysql-wsrep-5.6/sql/ndb_share.h | 13 +- mysql-wsrep-5.6/sql/ndb_table_guard.h | 13 +- mysql-wsrep-5.6/sql/ndb_thd.cc | 13 +- mysql-wsrep-5.6/sql/ndb_thd.h | 13 +- mysql-wsrep-5.6/sql/ndb_thd_ndb.cc | 13 +- mysql-wsrep-5.6/sql/ndb_thd_ndb.h | 13 +- mysql-wsrep-5.6/sql/net_serv.cc | 41 +- mysql-wsrep-5.6/sql/opt_explain.cc | 13 +- mysql-wsrep-5.6/sql/opt_explain.h | 13 +- mysql-wsrep-5.6/sql/opt_explain_format.h | 13 +- mysql-wsrep-5.6/sql/opt_explain_json.cc | 13 +- mysql-wsrep-5.6/sql/opt_explain_json.h | 13 +- .../sql/opt_explain_traditional.cc | 13 +- mysql-wsrep-5.6/sql/opt_explain_traditional.h | 13 +- mysql-wsrep-5.6/sql/opt_range.cc | 23 +- mysql-wsrep-5.6/sql/opt_range.h | 13 +- mysql-wsrep-5.6/sql/opt_sum.cc | 13 +- mysql-wsrep-5.6/sql/opt_trace.cc | 13 +- mysql-wsrep-5.6/sql/opt_trace.h | 13 +- mysql-wsrep-5.6/sql/opt_trace2server.cc | 13 +- mysql-wsrep-5.6/sql/opt_trace_Doxyfile | 13 +- mysql-wsrep-5.6/sql/opt_trace_context.h | 13 +- mysql-wsrep-5.6/sql/parse_file.cc | 13 +- mysql-wsrep-5.6/sql/parse_file.h | 13 +- mysql-wsrep-5.6/sql/partition_element.h | 13 +- mysql-wsrep-5.6/sql/partition_info.cc | 13 +- mysql-wsrep-5.6/sql/partition_info.h | 13 +- mysql-wsrep-5.6/sql/password.c | 18 +- mysql-wsrep-5.6/sql/plistsort.c | 13 +- mysql-wsrep-5.6/sql/procedure.cc | 13 +- mysql-wsrep-5.6/sql/procedure.h | 13 +- mysql-wsrep-5.6/sql/protocol.cc | 13 +- mysql-wsrep-5.6/sql/protocol.h | 13 +- mysql-wsrep-5.6/sql/records.cc | 13 +- mysql-wsrep-5.6/sql/records.h | 13 +- mysql-wsrep-5.6/sql/replication.h | 13 +- mysql-wsrep-5.6/sql/rpl_constants.h | 13 +- mysql-wsrep-5.6/sql/rpl_filter.cc | 13 +- mysql-wsrep-5.6/sql/rpl_filter.h | 13 +- mysql-wsrep-5.6/sql/rpl_gtid.h | 26 +- mysql-wsrep-5.6/sql/rpl_gtid_cache.cc | 24 +- mysql-wsrep-5.6/sql/rpl_gtid_execution.cc | 24 +- mysql-wsrep-5.6/sql/rpl_gtid_misc.cc | 24 +- .../sql/rpl_gtid_mutex_cond_array.cc | 22 +- mysql-wsrep-5.6/sql/rpl_gtid_owned.cc | 24 +- mysql-wsrep-5.6/sql/rpl_gtid_set.cc | 33 +- mysql-wsrep-5.6/sql/rpl_gtid_sid_map.cc | 24 +- mysql-wsrep-5.6/sql/rpl_gtid_specification.cc | 24 +- mysql-wsrep-5.6/sql/rpl_gtid_state.cc | 24 +- mysql-wsrep-5.6/sql/rpl_handler.cc | 13 +- mysql-wsrep-5.6/sql/rpl_handler.h | 13 +- mysql-wsrep-5.6/sql/rpl_info.cc | 13 +- mysql-wsrep-5.6/sql/rpl_info.h | 13 +- mysql-wsrep-5.6/sql/rpl_info_dummy.cc | 13 +- mysql-wsrep-5.6/sql/rpl_info_dummy.h | 13 +- mysql-wsrep-5.6/sql/rpl_info_factory.cc | 13 +- mysql-wsrep-5.6/sql/rpl_info_factory.h | 13 +- mysql-wsrep-5.6/sql/rpl_info_file.cc | 13 +- mysql-wsrep-5.6/sql/rpl_info_file.h | 13 +- mysql-wsrep-5.6/sql/rpl_info_handler.cc | 13 +- mysql-wsrep-5.6/sql/rpl_info_handler.h | 13 +- mysql-wsrep-5.6/sql/rpl_info_table.cc | 51 +- mysql-wsrep-5.6/sql/rpl_info_table.h | 13 +- mysql-wsrep-5.6/sql/rpl_info_table_access.cc | 13 +- mysql-wsrep-5.6/sql/rpl_info_table_access.h | 13 +- mysql-wsrep-5.6/sql/rpl_info_values.cc | 13 +- mysql-wsrep-5.6/sql/rpl_info_values.h | 13 +- mysql-wsrep-5.6/sql/rpl_injector.cc | 13 +- mysql-wsrep-5.6/sql/rpl_injector.h | 13 +- mysql-wsrep-5.6/sql/rpl_master.cc | 25 +- mysql-wsrep-5.6/sql/rpl_master.h | 13 +- mysql-wsrep-5.6/sql/rpl_mi.cc | 13 +- mysql-wsrep-5.6/sql/rpl_mi.h | 13 +- mysql-wsrep-5.6/sql/rpl_record.cc | 13 +- mysql-wsrep-5.6/sql/rpl_record.h | 13 +- mysql-wsrep-5.6/sql/rpl_record_old.cc | 13 +- mysql-wsrep-5.6/sql/rpl_record_old.h | 13 +- mysql-wsrep-5.6/sql/rpl_reporting.cc | 13 +- mysql-wsrep-5.6/sql/rpl_reporting.h | 13 +- mysql-wsrep-5.6/sql/rpl_rli.cc | 16 +- mysql-wsrep-5.6/sql/rpl_rli.h | 13 +- mysql-wsrep-5.6/sql/rpl_rli_pdb.cc | 13 +- mysql-wsrep-5.6/sql/rpl_rli_pdb.h | 13 +- mysql-wsrep-5.6/sql/rpl_slave.cc | 89 +- mysql-wsrep-5.6/sql/rpl_slave.h | 13 +- mysql-wsrep-5.6/sql/rpl_tblmap.cc | 13 +- mysql-wsrep-5.6/sql/rpl_tblmap.h | 13 +- mysql-wsrep-5.6/sql/rpl_utility.cc | 13 +- mysql-wsrep-5.6/sql/rpl_utility.h | 13 +- mysql-wsrep-5.6/sql/scheduler.cc | 13 +- mysql-wsrep-5.6/sql/scheduler.h | 13 +- mysql-wsrep-5.6/sql/set_var.cc | 13 +- mysql-wsrep-5.6/sql/set_var.h | 13 +- mysql-wsrep-5.6/sql/share/CMakeLists.txt | 17 +- mysql-wsrep-5.6/sql/share/charsets/Index.xml | 18 +- .../sql/share/charsets/armscii8.xml | 13 +- mysql-wsrep-5.6/sql/share/charsets/ascii.xml | 13 +- mysql-wsrep-5.6/sql/share/charsets/cp1250.xml | 13 +- mysql-wsrep-5.6/sql/share/charsets/cp1251.xml | 13 +- mysql-wsrep-5.6/sql/share/charsets/cp1256.xml | 13 +- mysql-wsrep-5.6/sql/share/charsets/cp1257.xml | 13 +- mysql-wsrep-5.6/sql/share/charsets/cp850.xml | 13 +- mysql-wsrep-5.6/sql/share/charsets/cp852.xml | 13 +- mysql-wsrep-5.6/sql/share/charsets/cp866.xml | 13 +- mysql-wsrep-5.6/sql/share/charsets/dec8.xml | 13 +- .../sql/share/charsets/geostd8.xml | 13 +- mysql-wsrep-5.6/sql/share/charsets/greek.xml | 13 +- mysql-wsrep-5.6/sql/share/charsets/hebrew.xml | 13 +- mysql-wsrep-5.6/sql/share/charsets/hp8.xml | 13 +- .../sql/share/charsets/keybcs2.xml | 13 +- mysql-wsrep-5.6/sql/share/charsets/koi8r.xml | 13 +- mysql-wsrep-5.6/sql/share/charsets/koi8u.xml | 13 +- .../sql/share/charsets/languages.html | 13 +- mysql-wsrep-5.6/sql/share/charsets/latin1.xml | 13 +- mysql-wsrep-5.6/sql/share/charsets/latin2.xml | 13 +- mysql-wsrep-5.6/sql/share/charsets/latin5.xml | 13 +- mysql-wsrep-5.6/sql/share/charsets/latin7.xml | 13 +- mysql-wsrep-5.6/sql/share/charsets/macce.xml | 13 +- .../sql/share/charsets/macroman.xml | 13 +- mysql-wsrep-5.6/sql/share/charsets/swe7.xml | 13 +- mysql-wsrep-5.6/sql/share/errmsg-utf8.txt | 24 +- mysql-wsrep-5.6/sql/signal_handler.cc | 13 +- mysql-wsrep-5.6/sql/sp.cc | 13 +- mysql-wsrep-5.6/sql/sp.h | 13 +- mysql-wsrep-5.6/sql/sp_cache.cc | 13 +- mysql-wsrep-5.6/sql/sp_cache.h | 13 +- mysql-wsrep-5.6/sql/sp_head.cc | 13 +- mysql-wsrep-5.6/sql/sp_head.h | 13 +- mysql-wsrep-5.6/sql/sp_instr.cc | 23 +- mysql-wsrep-5.6/sql/sp_instr.h | 13 +- mysql-wsrep-5.6/sql/sp_pcontext.cc | 13 +- mysql-wsrep-5.6/sql/sp_pcontext.h | 13 +- mysql-wsrep-5.6/sql/sp_rcontext.cc | 13 +- mysql-wsrep-5.6/sql/sp_rcontext.h | 13 +- mysql-wsrep-5.6/sql/spatial.cc | 13 +- mysql-wsrep-5.6/sql/spatial.h | 13 +- mysql-wsrep-5.6/sql/sql_acl.cc | 64 +- mysql-wsrep-5.6/sql/sql_acl.h | 13 +- mysql-wsrep-5.6/sql/sql_admin.cc | 13 +- mysql-wsrep-5.6/sql/sql_admin.h | 13 +- mysql-wsrep-5.6/sql/sql_alloc.h | 13 +- .../sql/sql_alloc_error_handler.cc | 13 +- mysql-wsrep-5.6/sql/sql_alter.cc | 13 +- mysql-wsrep-5.6/sql/sql_alter.h | 13 +- mysql-wsrep-5.6/sql/sql_analyse.cc | 13 +- mysql-wsrep-5.6/sql/sql_analyse.h | 13 +- mysql-wsrep-5.6/sql/sql_array.h | 13 +- mysql-wsrep-5.6/sql/sql_audit.cc | 13 +- mysql-wsrep-5.6/sql/sql_audit.h | 13 +- mysql-wsrep-5.6/sql/sql_base.cc | 98 +- mysql-wsrep-5.6/sql/sql_base.h | 13 +- mysql-wsrep-5.6/sql/sql_binlog.cc | 13 +- mysql-wsrep-5.6/sql/sql_binlog.h | 13 +- mysql-wsrep-5.6/sql/sql_bitmap.h | 13 +- mysql-wsrep-5.6/sql/sql_bootstrap.cc | 13 +- mysql-wsrep-5.6/sql/sql_bootstrap.h | 13 +- mysql-wsrep-5.6/sql/sql_builtin.cc.in | 13 +- mysql-wsrep-5.6/sql/sql_cache.cc | 13 +- mysql-wsrep-5.6/sql/sql_cache.h | 13 +- mysql-wsrep-5.6/sql/sql_callback.h | 13 +- mysql-wsrep-5.6/sql/sql_class.cc | 46 +- mysql-wsrep-5.6/sql/sql_class.h | 54 +- mysql-wsrep-5.6/sql/sql_client.cc | 13 +- mysql-wsrep-5.6/sql/sql_cmd.h | 13 +- mysql-wsrep-5.6/sql/sql_connect.cc | 15 +- mysql-wsrep-5.6/sql/sql_connect.h | 13 +- mysql-wsrep-5.6/sql/sql_const.h | 13 +- mysql-wsrep-5.6/sql/sql_crypt.cc | 13 +- mysql-wsrep-5.6/sql/sql_crypt.h | 13 +- mysql-wsrep-5.6/sql/sql_cursor.cc | 13 +- mysql-wsrep-5.6/sql/sql_cursor.h | 13 +- mysql-wsrep-5.6/sql/sql_data_change.cc | 13 +- mysql-wsrep-5.6/sql/sql_data_change.h | 13 +- mysql-wsrep-5.6/sql/sql_db.cc | 13 +- mysql-wsrep-5.6/sql/sql_db.h | 13 +- mysql-wsrep-5.6/sql/sql_delete.cc | 13 +- mysql-wsrep-5.6/sql/sql_delete.h | 13 +- mysql-wsrep-5.6/sql/sql_derived.cc | 13 +- mysql-wsrep-5.6/sql/sql_derived.h | 13 +- mysql-wsrep-5.6/sql/sql_digest.cc | 13 +- mysql-wsrep-5.6/sql/sql_digest.h | 13 +- mysql-wsrep-5.6/sql/sql_digest_stream.h | 13 +- mysql-wsrep-5.6/sql/sql_do.cc | 13 +- mysql-wsrep-5.6/sql/sql_do.h | 13 +- mysql-wsrep-5.6/sql/sql_error.cc | 13 +- mysql-wsrep-5.6/sql/sql_error.h | 13 +- mysql-wsrep-5.6/sql/sql_executor.cc | 13 +- mysql-wsrep-5.6/sql/sql_executor.h | 13 +- mysql-wsrep-5.6/sql/sql_get_diagnostics.cc | 13 +- mysql-wsrep-5.6/sql/sql_get_diagnostics.h | 13 +- mysql-wsrep-5.6/sql/sql_handler.cc | 13 +- mysql-wsrep-5.6/sql/sql_handler.h | 13 +- mysql-wsrep-5.6/sql/sql_help.cc | 13 +- mysql-wsrep-5.6/sql/sql_help.h | 13 +- mysql-wsrep-5.6/sql/sql_hset.h | 13 +- mysql-wsrep-5.6/sql/sql_insert.cc | 24 +- mysql-wsrep-5.6/sql/sql_insert.h | 13 +- mysql-wsrep-5.6/sql/sql_join_buffer.cc | 13 +- mysql-wsrep-5.6/sql/sql_join_buffer.h | 13 +- mysql-wsrep-5.6/sql/sql_lex.cc | 42 +- mysql-wsrep-5.6/sql/sql_lex.h | 17 +- mysql-wsrep-5.6/sql/sql_list.cc | 13 +- mysql-wsrep-5.6/sql/sql_list.h | 13 +- mysql-wsrep-5.6/sql/sql_load.cc | 13 +- mysql-wsrep-5.6/sql/sql_load.h | 13 +- mysql-wsrep-5.6/sql/sql_locale.cc | 13 +- mysql-wsrep-5.6/sql/sql_locale.h | 13 +- mysql-wsrep-5.6/sql/sql_manager.cc | 13 +- mysql-wsrep-5.6/sql/sql_manager.h | 13 +- mysql-wsrep-5.6/sql/sql_optimizer.cc | 13 +- mysql-wsrep-5.6/sql/sql_optimizer.h | 13 +- mysql-wsrep-5.6/sql/sql_parse.cc | 154 +- mysql-wsrep-5.6/sql/sql_parse.h | 17 +- mysql-wsrep-5.6/sql/sql_partition.cc | 13 +- mysql-wsrep-5.6/sql/sql_partition.h | 13 +- mysql-wsrep-5.6/sql/sql_partition_admin.cc | 13 +- mysql-wsrep-5.6/sql/sql_partition_admin.h | 13 +- mysql-wsrep-5.6/sql/sql_planner.cc | 13 +- mysql-wsrep-5.6/sql/sql_planner.h | 13 +- mysql-wsrep-5.6/sql/sql_plist.h | 13 +- mysql-wsrep-5.6/sql/sql_plugin.cc | 39 +- mysql-wsrep-5.6/sql/sql_plugin.h | 15 +- mysql-wsrep-5.6/sql/sql_plugin_services.h | 13 +- mysql-wsrep-5.6/sql/sql_prepare.cc | 13 +- mysql-wsrep-5.6/sql/sql_prepare.h | 13 +- mysql-wsrep-5.6/sql/sql_priv.h | 13 +- mysql-wsrep-5.6/sql/sql_profile.cc | 13 +- mysql-wsrep-5.6/sql/sql_profile.h | 13 +- mysql-wsrep-5.6/sql/sql_reload.cc | 13 +- mysql-wsrep-5.6/sql/sql_reload.h | 13 +- mysql-wsrep-5.6/sql/sql_rename.cc | 13 +- mysql-wsrep-5.6/sql/sql_rename.h | 13 +- mysql-wsrep-5.6/sql/sql_resolver.cc | 13 +- mysql-wsrep-5.6/sql/sql_resolver.h | 13 +- mysql-wsrep-5.6/sql/sql_rewrite.cc | 18 +- mysql-wsrep-5.6/sql/sql_rewrite.h | 18 +- mysql-wsrep-5.6/sql/sql_select.cc | 52 +- mysql-wsrep-5.6/sql/sql_select.h | 13 +- mysql-wsrep-5.6/sql/sql_servers.cc | 13 +- mysql-wsrep-5.6/sql/sql_servers.h | 13 +- mysql-wsrep-5.6/sql/sql_show.cc | 67 +- mysql-wsrep-5.6/sql/sql_show.h | 13 +- mysql-wsrep-5.6/sql/sql_signal.cc | 13 +- mysql-wsrep-5.6/sql/sql_signal.h | 13 +- mysql-wsrep-5.6/sql/sql_sort.h | 13 +- mysql-wsrep-5.6/sql/sql_state.c | 13 +- mysql-wsrep-5.6/sql/sql_string.cc | 13 +- mysql-wsrep-5.6/sql/sql_string.h | 18 +- mysql-wsrep-5.6/sql/sql_table.cc | 13 +- mysql-wsrep-5.6/sql/sql_table.h | 13 +- mysql-wsrep-5.6/sql/sql_tablespace.cc | 13 +- mysql-wsrep-5.6/sql/sql_tablespace.h | 13 +- mysql-wsrep-5.6/sql/sql_test.cc | 13 +- mysql-wsrep-5.6/sql/sql_test.h | 13 +- mysql-wsrep-5.6/sql/sql_time.cc | 13 +- mysql-wsrep-5.6/sql/sql_time.h | 13 +- mysql-wsrep-5.6/sql/sql_tmp_table.cc | 13 +- mysql-wsrep-5.6/sql/sql_tmp_table.h | 13 +- mysql-wsrep-5.6/sql/sql_trigger.cc | 13 +- mysql-wsrep-5.6/sql/sql_trigger.h | 13 +- mysql-wsrep-5.6/sql/sql_truncate.cc | 13 +- mysql-wsrep-5.6/sql/sql_truncate.h | 13 +- mysql-wsrep-5.6/sql/sql_udf.cc | 13 +- mysql-wsrep-5.6/sql/sql_udf.h | 13 +- mysql-wsrep-5.6/sql/sql_union.cc | 13 +- mysql-wsrep-5.6/sql/sql_union.h | 13 +- mysql-wsrep-5.6/sql/sql_update.cc | 13 +- mysql-wsrep-5.6/sql/sql_update.h | 13 +- mysql-wsrep-5.6/sql/sql_view.cc | 52 +- mysql-wsrep-5.6/sql/sql_view.h | 13 +- mysql-wsrep-5.6/sql/sql_yacc.yy | 16 +- mysql-wsrep-5.6/sql/strfunc.cc | 13 +- mysql-wsrep-5.6/sql/strfunc.h | 13 +- mysql-wsrep-5.6/sql/string_service.cc | 13 +- mysql-wsrep-5.6/sql/string_service.h | 13 +- mysql-wsrep-5.6/sql/structs.h | 13 +- mysql-wsrep-5.6/sql/sys_vars.cc | 18 +- mysql-wsrep-5.6/sql/sys_vars.h | 13 +- mysql-wsrep-5.6/sql/sys_vars_shared.h | 13 +- mysql-wsrep-5.6/sql/table.cc | 13 +- mysql-wsrep-5.6/sql/table.h | 13 +- mysql-wsrep-5.6/sql/table_cache.cc | 13 +- mysql-wsrep-5.6/sql/table_cache.h | 13 +- mysql-wsrep-5.6/sql/table_id.h | 13 +- mysql-wsrep-5.6/sql/thr_malloc.cc | 13 +- mysql-wsrep-5.6/sql/thr_malloc.h | 13 +- mysql-wsrep-5.6/sql/transaction.cc | 13 +- mysql-wsrep-5.6/sql/transaction.h | 13 +- mysql-wsrep-5.6/sql/tzfile.h | 13 +- mysql-wsrep-5.6/sql/tztime.cc | 13 +- mysql-wsrep-5.6/sql/tztime.h | 13 +- mysql-wsrep-5.6/sql/udf_example.cc | 13 +- mysql-wsrep-5.6/sql/uniques.cc | 13 +- mysql-wsrep-5.6/sql/unireg.cc | 13 +- mysql-wsrep-5.6/sql/unireg.h | 13 +- mysql-wsrep-5.6/sql/uuid.cc | 22 +- mysql-wsrep-5.6/sql/wsrep_applier.cc | 4 +- mysql-wsrep-5.6/sql/wsrep_hton.cc | 9 +- mysql-wsrep-5.6/sql/wsrep_mysqld.cc | 21 +- mysql-wsrep-5.6/sql/wsrep_sst.cc | 85 +- mysql-wsrep-5.6/sql/wsrep_sst.h | 26 +- mysql-wsrep-5.6/sql/wsrep_xid.cc | 32 + mysql-wsrep-5.6/sql/wsrep_xid.h | 2 + mysql-wsrep-5.6/sql/xa.h | 13 +- .../storage/archive/CMakeLists.txt | 17 +- .../storage/archive/archive_reader.c | 13 +- .../storage/archive/archive_test.c | 13 +- mysql-wsrep-5.6/storage/archive/ha_archive.cc | 18 +- mysql-wsrep-5.6/storage/archive/ha_archive.h | 13 +- .../storage/blackhole/CMakeLists.txt | 17 +- .../storage/blackhole/ha_blackhole.cc | 13 +- .../storage/blackhole/ha_blackhole.h | 13 +- mysql-wsrep-5.6/storage/csv/CMakeLists.txt | 17 +- mysql-wsrep-5.6/storage/csv/ha_tina.cc | 13 +- mysql-wsrep-5.6/storage/csv/ha_tina.h | 13 +- .../storage/csv/transparent_file.cc | 13 +- .../storage/csv/transparent_file.h | 13 +- .../storage/example/CMakeLists.txt | 25 +- mysql-wsrep-5.6/storage/example/ha_example.cc | 13 +- mysql-wsrep-5.6/storage/example/ha_example.h | 13 +- .../storage/federated/CMakeLists.txt | 17 +- .../storage/federated/ha_federated.cc | 13 +- .../storage/federated/ha_federated.h | 13 +- mysql-wsrep-5.6/storage/heap/CMakeLists.txt | 17 +- mysql-wsrep-5.6/storage/heap/_check.c | 13 +- mysql-wsrep-5.6/storage/heap/_rectest.c | 13 +- mysql-wsrep-5.6/storage/heap/ha_heap.cc | 13 +- mysql-wsrep-5.6/storage/heap/ha_heap.h | 13 +- mysql-wsrep-5.6/storage/heap/heapdef.h | 13 +- mysql-wsrep-5.6/storage/heap/hp_block.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_clear.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_close.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_create.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_delete.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_extra.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_hash.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_info.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_open.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_panic.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_rename.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_rfirst.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_rkey.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_rlast.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_rnext.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_rprev.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_rrnd.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_rsame.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_scan.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_static.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_test1.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_test2.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_update.c | 13 +- mysql-wsrep-5.6/storage/heap/hp_write.c | 13 +- .../storage/innobase/CMakeLists.txt | 13 +- .../storage/innobase/api/api0api.cc | 22 +- .../storage/innobase/api/api0misc.cc | 22 +- .../storage/innobase/btr/btr0btr.cc | 22 +- .../storage/innobase/btr/btr0cur.cc | 22 +- .../storage/innobase/btr/btr0pcur.cc | 22 +- .../storage/innobase/btr/btr0sea.cc | 22 +- .../storage/innobase/buf/buf0buddy.cc | 22 +- .../storage/innobase/buf/buf0buf.cc | 22 +- .../storage/innobase/buf/buf0checksum.cc | 22 +- .../storage/innobase/buf/buf0dblwr.cc | 22 +- .../storage/innobase/buf/buf0dump.cc | 22 +- .../storage/innobase/buf/buf0flu.cc | 22 +- .../storage/innobase/buf/buf0lru.cc | 22 +- .../storage/innobase/buf/buf0rea.cc | 22 +- .../storage/innobase/compile-innodb | 20 +- .../storage/innobase/data/data0data.cc | 22 +- .../storage/innobase/data/data0type.cc | 22 +- .../storage/innobase/dict/dict0boot.cc | 22 +- .../storage/innobase/dict/dict0crea.cc | 22 +- .../storage/innobase/dict/dict0dict.cc | 22 +- .../storage/innobase/dict/dict0load.cc | 22 +- .../storage/innobase/dict/dict0mem.cc | 22 +- .../storage/innobase/dict/dict0stats.cc | 22 +- .../storage/innobase/dict/dict0stats_bg.cc | 22 +- .../storage/innobase/dyn/dyn0dyn.cc | 22 +- .../storage/innobase/eval/eval0eval.cc | 22 +- .../storage/innobase/eval/eval0proc.cc | 22 +- .../storage/innobase/fil/fil0fil.cc | 22 +- .../storage/innobase/fsp/fsp0fsp.cc | 22 +- .../storage/innobase/fts/fts0ast.cc | 22 +- .../storage/innobase/fts/fts0blex.cc | 30 +- .../storage/innobase/fts/fts0blex.l | 22 +- .../storage/innobase/fts/fts0config.cc | 22 +- .../storage/innobase/fts/fts0fts.cc | 23 +- .../storage/innobase/fts/fts0opt.cc | 22 +- .../storage/innobase/fts/fts0pars.cc | 16 +- .../storage/innobase/fts/fts0pars.y | 22 +- .../storage/innobase/fts/fts0que.cc | 35 +- .../storage/innobase/fts/fts0sql.cc | 22 +- .../storage/innobase/fts/fts0tlex.cc | 30 +- .../storage/innobase/fts/fts0tlex.l | 22 +- .../storage/innobase/fts/make_parser.sh | 20 +- .../storage/innobase/fut/fut0fut.cc | 22 +- .../storage/innobase/fut/fut0lst.cc | 22 +- mysql-wsrep-5.6/storage/innobase/ha/ha0ha.cc | 22 +- .../storage/innobase/ha/ha0storage.cc | 22 +- .../storage/innobase/ha/hash0hash.cc | 22 +- .../storage/innobase/handler/ha_innodb.cc | 217 +- .../storage/innobase/handler/ha_innodb.h | 22 +- .../storage/innobase/handler/handler0alter.cc | 22 +- .../storage/innobase/handler/i_s.cc | 95 +- .../storage/innobase/handler/i_s.h | 20 +- .../storage/innobase/ibuf/ibuf0ibuf.cc | 22 +- .../storage/innobase/include/api0api.h | 22 +- .../storage/innobase/include/api0misc.h | 22 +- .../storage/innobase/include/btr0btr.h | 22 +- .../storage/innobase/include/btr0btr.ic | 22 +- .../storage/innobase/include/btr0cur.h | 22 +- .../storage/innobase/include/btr0cur.ic | 22 +- .../storage/innobase/include/btr0pcur.h | 20 +- .../storage/innobase/include/btr0pcur.ic | 22 +- .../storage/innobase/include/btr0sea.h | 20 +- .../storage/innobase/include/btr0sea.ic | 22 +- .../storage/innobase/include/btr0types.h | 22 +- .../storage/innobase/include/buf0buddy.h | 20 +- .../storage/innobase/include/buf0buddy.ic | 22 +- .../storage/innobase/include/buf0buf.h | 22 +- .../storage/innobase/include/buf0buf.ic | 22 +- .../storage/innobase/include/buf0checksum.h | 22 +- .../storage/innobase/include/buf0dblwr.h | 22 +- .../storage/innobase/include/buf0dump.h | 20 +- .../storage/innobase/include/buf0flu.h | 20 +- .../storage/innobase/include/buf0flu.ic | 22 +- .../storage/innobase/include/buf0lru.h | 20 +- .../storage/innobase/include/buf0lru.ic | 22 +- .../storage/innobase/include/buf0rea.h | 20 +- .../storage/innobase/include/buf0types.h | 22 +- .../storage/innobase/include/data0data.h | 20 +- .../storage/innobase/include/data0data.ic | 22 +- .../storage/innobase/include/data0type.h | 22 +- .../storage/innobase/include/data0type.ic | 22 +- .../storage/innobase/include/data0types.h | 22 +- .../storage/innobase/include/db0err.h | 24 +- .../storage/innobase/include/dict0boot.h | 20 +- .../storage/innobase/include/dict0boot.ic | 22 +- .../storage/innobase/include/dict0crea.h | 22 +- .../storage/innobase/include/dict0crea.ic | 22 +- .../storage/innobase/include/dict0dict.h | 20 +- .../storage/innobase/include/dict0dict.ic | 22 +- .../storage/innobase/include/dict0load.h | 20 +- .../storage/innobase/include/dict0load.ic | 22 +- .../storage/innobase/include/dict0mem.h | 22 +- .../storage/innobase/include/dict0mem.ic | 20 +- .../storage/innobase/include/dict0priv.h | 20 +- .../storage/innobase/include/dict0priv.ic | 22 +- .../storage/innobase/include/dict0stats.h | 22 +- .../storage/innobase/include/dict0stats.ic | 22 +- .../storage/innobase/include/dict0stats_bg.h | 22 +- .../storage/innobase/include/dict0stats_bg.ic | 22 +- .../storage/innobase/include/dict0types.h | 22 +- .../storage/innobase/include/dyn0dyn.h | 22 +- .../storage/innobase/include/dyn0dyn.ic | 22 +- .../storage/innobase/include/eval0eval.h | 20 +- .../storage/innobase/include/eval0eval.ic | 22 +- .../storage/innobase/include/eval0proc.h | 20 +- .../storage/innobase/include/eval0proc.ic | 22 +- .../storage/innobase/include/fil0fil.h | 22 +- .../storage/innobase/include/fsp0fsp.h | 22 +- .../storage/innobase/include/fsp0fsp.ic | 22 +- .../storage/innobase/include/fsp0types.h | 22 +- .../storage/innobase/include/fts0ast.h | 22 +- .../storage/innobase/include/fts0fts.h | 25 +- .../storage/innobase/include/fts0opt.h | 22 +- .../storage/innobase/include/fts0pars.h | 20 +- .../storage/innobase/include/fts0priv.h | 22 +- .../storage/innobase/include/fts0priv.ic | 22 +- .../storage/innobase/include/fts0types.h | 22 +- .../storage/innobase/include/fts0types.ic | 22 +- .../storage/innobase/include/fts0vlc.ic | 22 +- .../storage/innobase/include/fut0fut.h | 22 +- .../storage/innobase/include/fut0fut.ic | 20 +- .../storage/innobase/include/fut0lst.h | 22 +- .../storage/innobase/include/fut0lst.ic | 22 +- .../storage/innobase/include/ha0ha.h | 20 +- .../storage/innobase/include/ha0ha.ic | 22 +- .../storage/innobase/include/ha0storage.h | 22 +- .../storage/innobase/include/ha0storage.ic | 22 +- .../storage/innobase/include/ha_prototypes.h | 22 +- .../storage/innobase/include/handler0alter.h | 22 +- .../storage/innobase/include/hash0hash.h | 22 +- .../storage/innobase/include/hash0hash.ic | 22 +- .../storage/innobase/include/ibuf0ibuf.h | 20 +- .../storage/innobase/include/ibuf0ibuf.ic | 22 +- .../storage/innobase/include/ibuf0types.h | 22 +- .../storage/innobase/include/lock0iter.h | 20 +- .../storage/innobase/include/lock0lock.h | 22 +- .../storage/innobase/include/lock0lock.ic | 20 +- .../storage/innobase/include/lock0priv.h | 22 +- .../storage/innobase/include/lock0priv.ic | 20 +- .../storage/innobase/include/lock0types.h | 22 +- .../storage/innobase/include/log0log.h | 22 +- .../storage/innobase/include/log0log.ic | 22 +- .../storage/innobase/include/log0recv.h | 20 +- .../storage/innobase/include/log0recv.ic | 22 +- .../storage/innobase/include/mach0data.h | 20 +- .../storage/innobase/include/mach0data.ic | 22 +- .../storage/innobase/include/mem0dbg.h | 20 +- .../storage/innobase/include/mem0dbg.ic | 22 +- .../storage/innobase/include/mem0mem.h | 22 +- .../storage/innobase/include/mem0mem.ic | 22 +- .../storage/innobase/include/mem0pool.h | 22 +- .../storage/innobase/include/mem0pool.ic | 20 +- .../storage/innobase/include/mtr0log.h | 20 +- .../storage/innobase/include/mtr0log.ic | 22 +- .../storage/innobase/include/mtr0mtr.h | 20 +- .../storage/innobase/include/mtr0mtr.ic | 22 +- .../storage/innobase/include/mtr0types.h | 22 +- .../storage/innobase/include/os0file.h | 23 +- .../storage/innobase/include/os0file.ic | 22 +- .../storage/innobase/include/os0once.h | 22 +- .../storage/innobase/include/os0proc.h | 20 +- .../storage/innobase/include/os0proc.ic | 22 +- .../storage/innobase/include/os0sync.h | 22 +- .../storage/innobase/include/os0sync.ic | 22 +- .../storage/innobase/include/os0thread.h | 22 +- .../storage/innobase/include/os0thread.ic | 20 +- .../storage/innobase/include/page0cur.h | 20 +- .../storage/innobase/include/page0cur.ic | 22 +- .../storage/innobase/include/page0page.h | 20 +- .../storage/innobase/include/page0page.ic | 22 +- .../storage/innobase/include/page0types.h | 22 +- .../storage/innobase/include/page0zip.h | 22 +- .../storage/innobase/include/page0zip.ic | 22 +- .../storage/innobase/include/pars0grm.h | 14 +- .../storage/innobase/include/pars0opt.h | 20 +- .../storage/innobase/include/pars0opt.ic | 20 +- .../storage/innobase/include/pars0pars.h | 22 +- .../storage/innobase/include/pars0pars.ic | 20 +- .../storage/innobase/include/pars0sym.h | 20 +- .../storage/innobase/include/pars0sym.ic | 20 +- .../storage/innobase/include/pars0types.h | 22 +- .../storage/innobase/include/que0que.h | 20 +- .../storage/innobase/include/que0que.ic | 22 +- .../storage/innobase/include/que0types.h | 20 +- .../storage/innobase/include/read0read.h | 22 +- .../storage/innobase/include/read0read.ic | 22 +- .../storage/innobase/include/read0types.h | 22 +- .../storage/innobase/include/rem0cmp.h | 20 +- .../storage/innobase/include/rem0cmp.ic | 22 +- .../storage/innobase/include/rem0rec.h | 22 +- .../storage/innobase/include/rem0rec.ic | 22 +- .../storage/innobase/include/rem0types.h | 20 +- .../storage/innobase/include/row0ext.h | 20 +- .../storage/innobase/include/row0ext.ic | 22 +- .../storage/innobase/include/row0ftsort.h | 20 +- .../storage/innobase/include/row0import.h | 20 +- .../storage/innobase/include/row0import.ic | 22 +- .../storage/innobase/include/row0ins.h | 22 +- .../storage/innobase/include/row0ins.ic | 22 +- .../storage/innobase/include/row0log.h | 22 +- .../storage/innobase/include/row0log.ic | 20 +- .../storage/innobase/include/row0merge.h | 20 +- .../storage/innobase/include/row0mysql.h | 22 +- .../storage/innobase/include/row0mysql.ic | 20 +- .../storage/innobase/include/row0purge.h | 22 +- .../storage/innobase/include/row0purge.ic | 22 +- .../storage/innobase/include/row0quiesce.h | 22 +- .../storage/innobase/include/row0quiesce.ic | 22 +- .../storage/innobase/include/row0row.h | 20 +- .../storage/innobase/include/row0row.ic | 22 +- .../storage/innobase/include/row0sel.h | 20 +- .../storage/innobase/include/row0sel.ic | 22 +- .../storage/innobase/include/row0types.h | 22 +- .../storage/innobase/include/row0uins.h | 22 +- .../storage/innobase/include/row0uins.ic | 22 +- .../storage/innobase/include/row0umod.h | 22 +- .../storage/innobase/include/row0umod.ic | 20 +- .../storage/innobase/include/row0undo.h | 22 +- .../storage/innobase/include/row0undo.ic | 20 +- .../storage/innobase/include/row0upd.h | 20 +- .../storage/innobase/include/row0upd.ic | 22 +- .../storage/innobase/include/row0vers.h | 20 +- .../storage/innobase/include/row0vers.ic | 22 +- .../storage/innobase/include/srv0conc.h | 22 +- .../storage/innobase/include/srv0mon.h | 23 +- .../storage/innobase/include/srv0mon.ic | 22 +- .../storage/innobase/include/srv0srv.h | 22 +- .../storage/innobase/include/srv0srv.ic | 20 +- .../storage/innobase/include/srv0start.h | 22 +- .../storage/innobase/include/sync0arr.h | 22 +- .../storage/innobase/include/sync0arr.ic | 20 +- .../storage/innobase/include/sync0rw.h | 22 +- .../storage/innobase/include/sync0rw.ic | 22 +- .../storage/innobase/include/sync0sync.h | 22 +- .../storage/innobase/include/sync0sync.ic | 22 +- .../storage/innobase/include/sync0types.h | 22 +- .../storage/innobase/include/trx0i_s.h | 22 +- .../storage/innobase/include/trx0purge.h | 22 +- .../storage/innobase/include/trx0purge.ic | 20 +- .../storage/innobase/include/trx0rec.h | 20 +- .../storage/innobase/include/trx0rec.ic | 22 +- .../storage/innobase/include/trx0roll.h | 20 +- .../storage/innobase/include/trx0roll.ic | 22 +- .../storage/innobase/include/trx0rseg.h | 22 +- .../storage/innobase/include/trx0rseg.ic | 22 +- .../storage/innobase/include/trx0sys.h | 22 +- .../storage/innobase/include/trx0sys.ic | 22 +- .../storage/innobase/include/trx0trx.h | 22 +- .../storage/innobase/include/trx0trx.ic | 22 +- .../storage/innobase/include/trx0types.h | 22 +- .../storage/innobase/include/trx0undo.h | 20 +- .../storage/innobase/include/trx0undo.ic | 22 +- .../storage/innobase/include/trx0xa.h | 20 +- .../storage/innobase/include/univ.i | 22 +- .../storage/innobase/include/usr0sess.h | 20 +- .../storage/innobase/include/usr0sess.ic | 20 +- .../storage/innobase/include/usr0types.h | 22 +- .../storage/innobase/include/ut0bh.h | 22 +- .../storage/innobase/include/ut0bh.ic | 22 +- .../storage/innobase/include/ut0byte.h | 20 +- .../storage/innobase/include/ut0byte.ic | 22 +- .../storage/innobase/include/ut0counter.h | 22 +- .../storage/innobase/include/ut0crc32.h | 22 +- .../storage/innobase/include/ut0dbg.h | 22 +- .../storage/innobase/include/ut0list.h | 22 +- .../storage/innobase/include/ut0list.ic | 20 +- .../storage/innobase/include/ut0lst.h | 22 +- .../storage/innobase/include/ut0mem.h | 22 +- .../storage/innobase/include/ut0mem.ic | 22 +- .../storage/innobase/include/ut0rbt.h | 20 +- .../storage/innobase/include/ut0rnd.h | 22 +- .../storage/innobase/include/ut0rnd.ic | 22 +- .../storage/innobase/include/ut0sort.h | 20 +- .../storage/innobase/include/ut0ut.h | 22 +- .../storage/innobase/include/ut0ut.ic | 22 +- .../storage/innobase/include/ut0vec.h | 22 +- .../storage/innobase/include/ut0vec.ic | 22 +- .../storage/innobase/include/ut0wqueue.h | 22 +- .../storage/innobase/lock/lock0iter.cc | 22 +- .../storage/innobase/lock/lock0lock.cc | 22 +- .../storage/innobase/lock/lock0wait.cc | 22 +- .../storage/innobase/log/log0log.cc | 22 +- .../storage/innobase/log/log0recv.cc | 22 +- .../storage/innobase/mach/mach0data.cc | 22 +- .../storage/innobase/mem/mem0dbg.cc | 22 +- .../storage/innobase/mem/mem0mem.cc | 22 +- .../storage/innobase/mem/mem0pool.cc | 22 +- .../storage/innobase/mtr/mtr0log.cc | 22 +- .../storage/innobase/mtr/mtr0mtr.cc | 22 +- .../storage/innobase/os/os0file.cc | 23 +- .../storage/innobase/os/os0proc.cc | 22 +- .../storage/innobase/os/os0sync.cc | 22 +- .../storage/innobase/os/os0thread.cc | 22 +- .../storage/innobase/page/page0cur.cc | 22 +- .../storage/innobase/page/page0page.cc | 22 +- .../storage/innobase/page/page0zip.cc | 22 +- .../storage/innobase/pars/lexyy.cc | 30 +- .../storage/innobase/pars/make_bison.sh | 20 +- .../storage/innobase/pars/make_flex.sh | 20 +- .../storage/innobase/pars/pars0grm.cc | 14 +- .../storage/innobase/pars/pars0grm.y | 22 +- .../storage/innobase/pars/pars0lex.l | 22 +- .../storage/innobase/pars/pars0opt.cc | 22 +- .../storage/innobase/pars/pars0pars.cc | 22 +- .../storage/innobase/pars/pars0sym.cc | 22 +- .../storage/innobase/que/que0que.cc | 22 +- .../storage/innobase/read/read0read.cc | 22 +- .../storage/innobase/rem/rem0cmp.cc | 22 +- .../storage/innobase/rem/rem0rec.cc | 22 +- .../storage/innobase/row/row0ext.cc | 22 +- .../storage/innobase/row/row0ftsort.cc | 22 +- .../storage/innobase/row/row0import.cc | 64 +- .../storage/innobase/row/row0ins.cc | 22 +- .../storage/innobase/row/row0log.cc | 22 +- .../storage/innobase/row/row0merge.cc | 22 +- .../storage/innobase/row/row0mysql.cc | 22 +- .../storage/innobase/row/row0purge.cc | 22 +- .../storage/innobase/row/row0quiesce.cc | 22 +- .../storage/innobase/row/row0row.cc | 22 +- .../storage/innobase/row/row0sel.cc | 23 +- .../storage/innobase/row/row0uins.cc | 22 +- .../storage/innobase/row/row0umod.cc | 22 +- .../storage/innobase/row/row0undo.cc | 22 +- .../storage/innobase/row/row0upd.cc | 22 +- .../storage/innobase/row/row0vers.cc | 22 +- .../storage/innobase/srv/srv0conc.cc | 22 +- .../storage/innobase/srv/srv0mon.cc | 22 +- .../storage/innobase/srv/srv0srv.cc | 22 +- .../storage/innobase/srv/srv0start.cc | 22 +- .../storage/innobase/sync/sync0arr.cc | 22 +- .../storage/innobase/sync/sync0rw.cc | 22 +- .../storage/innobase/sync/sync0sync.cc | 22 +- .../storage/innobase/trx/trx0i_s.cc | 22 +- .../storage/innobase/trx/trx0purge.cc | 22 +- .../storage/innobase/trx/trx0rec.cc | 22 +- .../storage/innobase/trx/trx0roll.cc | 22 +- .../storage/innobase/trx/trx0rseg.cc | 22 +- .../storage/innobase/trx/trx0sys.cc | 22 +- .../storage/innobase/trx/trx0trx.cc | 31 +- .../storage/innobase/trx/trx0undo.cc | 22 +- .../storage/innobase/usr/usr0sess.cc | 22 +- mysql-wsrep-5.6/storage/innobase/ut/ut0bh.cc | 22 +- .../storage/innobase/ut/ut0byte.cc | 22 +- .../storage/innobase/ut/ut0crc32.cc | 22 +- mysql-wsrep-5.6/storage/innobase/ut/ut0dbg.cc | 22 +- .../storage/innobase/ut/ut0list.cc | 22 +- mysql-wsrep-5.6/storage/innobase/ut/ut0mem.cc | 22 +- mysql-wsrep-5.6/storage/innobase/ut/ut0rbt.cc | 22 +- mysql-wsrep-5.6/storage/innobase/ut/ut0rnd.cc | 22 +- mysql-wsrep-5.6/storage/innobase/ut/ut0ut.cc | 24 +- mysql-wsrep-5.6/storage/innobase/ut/ut0vec.cc | 22 +- .../storage/innobase/ut/ut0wqueue.cc | 22 +- mysql-wsrep-5.6/storage/myisam/CMakeLists.txt | 17 +- .../storage/myisam/ft_boolean_search.c | 13 +- .../storage/myisam/ft_nlq_search.c | 13 +- mysql-wsrep-5.6/storage/myisam/ft_parser.c | 13 +- mysql-wsrep-5.6/storage/myisam/ft_static.c | 13 +- mysql-wsrep-5.6/storage/myisam/ft_stopwords.c | 13 +- mysql-wsrep-5.6/storage/myisam/ft_update.c | 13 +- .../storage/myisam/ftbench/Ecompare.pl | 17 +- .../storage/myisam/ftbench/Ecreate.pl | 17 +- .../storage/myisam/ftbench/Ereport.pl | 17 +- .../storage/myisam/ftbench/ft-test-run.sh | 18 +- mysql-wsrep-5.6/storage/myisam/ftdefs.h | 13 +- mysql-wsrep-5.6/storage/myisam/fulltext.h | 13 +- mysql-wsrep-5.6/storage/myisam/ha_myisam.cc | 13 +- mysql-wsrep-5.6/storage/myisam/ha_myisam.h | 13 +- mysql-wsrep-5.6/storage/myisam/mi_cache.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_changed.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_check.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_checksum.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_close.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_create.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_dbug.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_delete.c | 13 +- .../storage/myisam/mi_delete_all.c | 13 +- .../storage/myisam/mi_delete_table.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_dynrec.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_extra.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_extrafunc.h | 13 +- mysql-wsrep-5.6/storage/myisam/mi_info.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_key.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_keycache.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_locking.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_log.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_open.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_packrec.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_page.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_panic.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_preload.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_range.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_rename.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_rfirst.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_rkey.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_rlast.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_rnext.c | 13 +- .../storage/myisam/mi_rnext_same.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_rprev.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_rrnd.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_rsame.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_rsamepos.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_scan.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_search.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_static.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_statrec.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_test1.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_test2.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_test3.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_test_all.sh | 18 +- mysql-wsrep-5.6/storage/myisam/mi_unique.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_update.c | 13 +- mysql-wsrep-5.6/storage/myisam/mi_write.c | 13 +- .../storage/myisam/myisam_ftdump.c | 13 +- mysql-wsrep-5.6/storage/myisam/myisamchk.c | 13 +- mysql-wsrep-5.6/storage/myisam/myisamdef.h | 13 +- mysql-wsrep-5.6/storage/myisam/myisamlog.c | 13 +- mysql-wsrep-5.6/storage/myisam/myisampack.c | 13 +- mysql-wsrep-5.6/storage/myisam/rt_index.c | 17 +- mysql-wsrep-5.6/storage/myisam/rt_index.h | 17 +- mysql-wsrep-5.6/storage/myisam/rt_key.c | 17 +- mysql-wsrep-5.6/storage/myisam/rt_key.h | 17 +- mysql-wsrep-5.6/storage/myisam/rt_mbr.c | 17 +- mysql-wsrep-5.6/storage/myisam/rt_mbr.h | 17 +- mysql-wsrep-5.6/storage/myisam/rt_split.c | 17 +- mysql-wsrep-5.6/storage/myisam/rt_test.c | 17 +- mysql-wsrep-5.6/storage/myisam/sort.cc | 13 +- mysql-wsrep-5.6/storage/myisam/sp_defs.h | 17 +- mysql-wsrep-5.6/storage/myisam/sp_key.c | 17 +- mysql-wsrep-5.6/storage/myisam/sp_test.c | 17 +- .../storage/myisammrg/CMakeLists.txt | 17 +- .../storage/myisammrg/ha_myisammrg.cc | 13 +- .../storage/myisammrg/ha_myisammrg.h | 13 +- .../storage/myisammrg/myrg_close.c | 13 +- .../storage/myisammrg/myrg_create.c | 13 +- mysql-wsrep-5.6/storage/myisammrg/myrg_def.h | 13 +- .../storage/myisammrg/myrg_delete.c | 13 +- .../storage/myisammrg/myrg_extra.c | 13 +- mysql-wsrep-5.6/storage/myisammrg/myrg_info.c | 13 +- .../storage/myisammrg/myrg_locking.c | 13 +- mysql-wsrep-5.6/storage/myisammrg/myrg_open.c | 13 +- .../storage/myisammrg/myrg_panic.c | 13 +- .../storage/myisammrg/myrg_queue.c | 13 +- .../storage/myisammrg/myrg_range.c | 13 +- .../storage/myisammrg/myrg_records.c | 13 +- .../storage/myisammrg/myrg_rfirst.c | 13 +- mysql-wsrep-5.6/storage/myisammrg/myrg_rkey.c | 13 +- .../storage/myisammrg/myrg_rlast.c | 13 +- .../storage/myisammrg/myrg_rnext.c | 13 +- .../storage/myisammrg/myrg_rnext_same.c | 13 +- .../storage/myisammrg/myrg_rprev.c | 13 +- mysql-wsrep-5.6/storage/myisammrg/myrg_rrnd.c | 13 +- .../storage/myisammrg/myrg_rsame.c | 13 +- .../storage/myisammrg/myrg_static.c | 13 +- .../storage/myisammrg/myrg_update.c | 13 +- .../storage/myisammrg/myrg_write.c | 13 +- mysql-wsrep-5.6/storage/ndb/CMakeLists.txt | 13 +- .../storage/ndb/clusterj/CMakeLists.txt | 13 +- .../ndb/clusterj/clusterj-api/CMakeLists.txt | 13 +- .../storage/ndb/clusterj/clusterj-api/pom.xml | 13 +- .../clusterj/ClusterJDatastoreException.java | 13 +- .../com/mysql/clusterj/ClusterJException.java | 13 +- .../clusterj/ClusterJFatalException.java | 13 +- .../ClusterJFatalInternalException.java | 13 +- .../clusterj/ClusterJFatalUserException.java | 13 +- .../com/mysql/clusterj/ClusterJHelper.java | 13 +- .../mysql/clusterj/ClusterJUserException.java | 13 +- .../com/mysql/clusterj/ColumnMetadata.java | 13 +- .../java/com/mysql/clusterj/ColumnType.java | 13 +- .../java/com/mysql/clusterj/Constants.java | 13 +- .../com/mysql/clusterj/DynamicObject.java | 13 +- .../mysql/clusterj/DynamicObjectDelegate.java | 13 +- .../java/com/mysql/clusterj/LockMode.java | 13 +- .../main/java/com/mysql/clusterj/Query.java | 13 +- .../main/java/com/mysql/clusterj/Results.java | 13 +- .../main/java/com/mysql/clusterj/Session.java | 13 +- .../com/mysql/clusterj/SessionFactory.java | 13 +- .../mysql/clusterj/SessionFactoryService.java | 13 +- .../java/com/mysql/clusterj/Transaction.java | 13 +- .../com/mysql/clusterj/annotation/Column.java | 13 +- .../mysql/clusterj/annotation/Columns.java | 13 +- .../mysql/clusterj/annotation/Extension.java | 13 +- .../mysql/clusterj/annotation/Extensions.java | 13 +- .../com/mysql/clusterj/annotation/Index.java | 13 +- .../mysql/clusterj/annotation/Indices.java | 13 +- .../com/mysql/clusterj/annotation/Lob.java | 13 +- .../clusterj/annotation/NotPersistent.java | 13 +- .../mysql/clusterj/annotation/NullValue.java | 13 +- .../clusterj/annotation/PartitionKey.java | 13 +- .../annotation/PersistenceCapable.java | 13 +- .../annotation/PersistenceModifier.java | 13 +- .../mysql/clusterj/annotation/Persistent.java | 13 +- .../mysql/clusterj/annotation/PrimaryKey.java | 13 +- .../mysql/clusterj/annotation/package.html | 13 +- .../main/java/com/mysql/clusterj/package.html | 13 +- .../com/mysql/clusterj/query/Predicate.java | 13 +- .../clusterj/query/PredicateOperand.java | 13 +- .../mysql/clusterj/query/QueryBuilder.java | 13 +- .../mysql/clusterj/query/QueryDefinition.java | 13 +- .../mysql/clusterj/query/QueryDomainType.java | 13 +- .../com/mysql/clusterj/query/package.html | 13 +- .../ndb/clusterj/clusterj-bindings/pom.xml | 13 +- .../com/mysql/clusterj/bindings/BlobImpl.java | 13 +- .../bindings/ClusterConnectionImpl.java | 13 +- .../ClusterConnectionServiceImpl.java | 13 +- .../bindings/ClusterTransactionImpl.java | 13 +- .../mysql/clusterj/bindings/ColumnImpl.java | 13 +- .../com/mysql/clusterj/bindings/DbImpl.java | 13 +- .../clusterj/bindings/DictionaryImpl.java | 13 +- .../mysql/clusterj/bindings/IndexImpl.java | 13 +- .../clusterj/bindings/IndexOperationImpl.java | 13 +- .../bindings/IndexScanOperationImpl.java | 13 +- .../clusterj/bindings/OperationImpl.java | 13 +- .../clusterj/bindings/ResultDataImpl.java | 13 +- .../clusterj/bindings/ScanFilterImpl.java | 13 +- .../clusterj/bindings/ScanOperationImpl.java | 13 +- .../mysql/clusterj/bindings/TableImpl.java | 13 +- .../mysql/clusterj/bindings/Bundle.properties | 13 +- .../clusterj/bindings/AutoCommitTest.java | 13 +- .../clusterj/bindings/BinaryTypesTest.java | 13 +- .../testsuite/clusterj/bindings/BlobTest.java | 13 +- .../clusterj/bindings/CharsetTest.java | 13 +- .../clusterj/bindings/DateTypesTest.java | 13 +- .../clusterj/bindings/DatetimeTypesTest.java | 13 +- .../clusterj/bindings/DecimalTypesTest.java | 13 +- .../bindings/DeleteAllByClassTest.java | 13 +- .../clusterj/bindings/DeleteInsertTest.java | 13 +- .../DomainTypeHandlerFactoryTest.java | 13 +- .../bindings/FindByPrimaryKeyTest.java | 13 +- .../bindings/LongLongStringPKTest.java | 13 +- .../clusterj/bindings/MultiplePKTest.java | 13 +- .../bindings/NegativeMetadataTest.java | 13 +- .../clusterj/bindings/NotPersistentTest.java | 13 +- .../clusterj/bindings/NullValuesTest.java | 13 +- .../clusterj/bindings/ObjectNotFoundTest.java | 13 +- .../bindings/QueryAllPrimitivesTest.java | 13 +- .../bindings/QueryBtreeIndexScanTest.java | 13 +- .../bindings/QueryByteArrayTypesTest.java | 13 +- .../bindings/QueryDateTimeTypesTest.java | 13 +- .../clusterj/bindings/QueryDateTypesTest.java | 13 +- .../bindings/QueryDecimalTypesTest.java | 13 +- .../bindings/QueryDoubleTypesTest.java | 13 +- .../bindings/QueryFloatTypesTest.java | 13 +- .../bindings/QueryHashIndexScanTest.java | 13 +- .../bindings/QueryPrimaryKeyTest.java | 13 +- .../clusterj/bindings/QueryTableScanTest.java | 13 +- .../clusterj/bindings/QueryTimeTypesTest.java | 13 +- .../bindings/QueryTimestampTypesTest.java | 13 +- .../clusterj/bindings/QueryUniqueKeyTest.java | 13 +- .../clusterj/bindings/QueryYearTypesTest.java | 13 +- .../testsuite/clusterj/bindings/SaveTest.java | 13 +- .../bindings/SerialTransactionsTest.java | 13 +- .../clusterj/bindings/TimeTypesTest.java | 13 +- .../clusterj/bindings/TimestampTypesTest.java | 13 +- .../bindings/TransactionStateTest.java | 13 +- .../clusterj/bindings/UpdateTest.java | 13 +- .../ndb/clusterj/clusterj-core/CMakeLists.txt | 13 +- .../clusterj/clusterj-core/logging.properties | 13 +- .../ndb/clusterj/clusterj-core/pom.xml | 13 +- .../com/mysql/clusterj/core/CacheManager.java | 13 +- .../clusterj/core/SessionFactoryImpl.java | 13 +- .../core/SessionFactoryServiceImpl.java | 13 +- .../com/mysql/clusterj/core/SessionImpl.java | 13 +- .../com/mysql/clusterj/core/StateManager.java | 13 +- .../com/mysql/clusterj/core/StoreManager.java | 13 +- .../mysql/clusterj/core/TransactionImpl.java | 13 +- .../AbstractDomainFieldHandlerImpl.java | 13 +- .../AbstractDomainTypeHandlerImpl.java | 13 +- .../core/metadata/DomainFieldHandlerImpl.java | 13 +- .../DomainTypeHandlerFactoryImpl.java | 13 +- .../core/metadata/DomainTypeHandlerImpl.java | 13 +- .../core/metadata/IndexHandlerImpl.java | 13 +- .../core/metadata/InvocationHandlerImpl.java | 13 +- .../core/metadata/KeyValueHandlerImpl.java | 13 +- .../clusterj/core/query/AndPredicateImpl.java | 13 +- .../core/query/BetweenPredicateImpl.java | 13 +- .../core/query/CandidateIndexImpl.java | 13 +- .../core/query/ComparativePredicateImpl.java | 13 +- .../core/query/EqualPredicateImpl.java | 13 +- .../core/query/GreaterEqualPredicateImpl.java | 13 +- .../core/query/GreaterThanPredicateImpl.java | 13 +- .../clusterj/core/query/InPredicateImpl.java | 13 +- .../core/query/LessEqualPredicateImpl.java | 13 +- .../core/query/LessThanPredicateImpl.java | 13 +- .../core/query/LikePredicateImpl.java | 13 +- .../clusterj/core/query/NotPredicateImpl.java | 13 +- .../clusterj/core/query/OrPredicateImpl.java | 13 +- .../clusterj/core/query/ParameterImpl.java | 13 +- .../clusterj/core/query/PredicateImpl.java | 13 +- .../clusterj/core/query/PropertyImpl.java | 13 +- .../clusterj/core/query/QueryBuilderImpl.java | 13 +- .../core/query/QueryDomainTypeImpl.java | 13 +- .../core/query/QueryExecutionContextImpl.java | 13 +- .../mysql/clusterj/core/query/QueryImpl.java | 13 +- .../clusterj/core/spi/DomainFieldHandler.java | 13 +- .../clusterj/core/spi/DomainTypeHandler.java | 13 +- .../core/spi/DomainTypeHandlerFactory.java | 13 +- .../mysql/clusterj/core/spi/SessionSPI.java | 13 +- .../mysql/clusterj/core/spi/ValueHandler.java | 13 +- .../com/mysql/clusterj/core/store/Blob.java | 13 +- .../core/store/ClusterConnection.java | 13 +- .../core/store/ClusterConnectionService.java | 13 +- .../core/store/ClusterTransaction.java | 13 +- .../com/mysql/clusterj/core/store/Column.java | 13 +- .../com/mysql/clusterj/core/store/Db.java | 13 +- .../mysql/clusterj/core/store/Dictionary.java | 13 +- .../com/mysql/clusterj/core/store/Index.java | 13 +- .../clusterj/core/store/IndexOperation.java | 13 +- .../core/store/IndexScanOperation.java | 13 +- .../mysql/clusterj/core/store/Operation.java | 13 +- .../clusterj/core/store/PartitionKey.java | 13 +- .../mysql/clusterj/core/store/ResultData.java | 13 +- .../mysql/clusterj/core/store/ScanFilter.java | 13 +- .../clusterj/core/store/ScanOperation.java | 13 +- .../com/mysql/clusterj/core/store/Table.java | 13 +- .../mysql/clusterj/core/util/I18NHelper.java | 13 +- .../core/util/JDK14LoggerFactoryImpl.java | 13 +- .../clusterj/core/util/JDK14LoggerImpl.java | 13 +- .../com/mysql/clusterj/core/util/Logger.java | 13 +- .../clusterj/core/util/LoggerFactory.java | 13 +- .../core/util/LoggerFactoryService.java | 13 +- .../com/mysql/clusterj/core/Bundle.properties | 13 +- .../clusterj/AbstractClusterJCoreTest.java | 13 +- ...eClusterConnectionServicePropertyTest.java | 13 +- ...sNotImplementClusterConnectionService.java | 13 +- .../testsuite/clusterj/util/I18NTest.java | 13 +- .../testsuite/clusterj/util/LoggerTest.java | 13 +- ...icConstructorClusterConnectionService.java | 13 +- .../clusterj/util/deeper/I18NDeeperTest.java | 13 +- .../testsuite/clusterj/util/Bundle.properties | 13 +- .../ndb/clusterj/clusterj-jdbc/pom.xml | 13 +- .../mysql/clusterj/jdbc/antlr/MySQL51Lexer.g | 13 +- .../mysql/clusterj/jdbc/antlr/MySQL51Parser.g | 13 +- .../main/antlr3/imports/MySQL51Functions.g | 13 +- .../AbstractResultSetInternalMethods.java | 13 +- .../jdbc/ConnectionLifecycleInterceptor.java | 13 +- .../clusterj/jdbc/DomainFieldHandlerImpl.java | 13 +- .../clusterj/jdbc/DomainTypeHandlerImpl.java | 13 +- .../mysql/clusterj/jdbc/InterceptorImpl.java | 13 +- .../jdbc/QueryExecutionContextJDBCImpl.java | 13 +- .../jdbc/ResultSetInternalMethodsImpl.java | 13 +- .../ResultSetInternalMethodsUpdateCount.java | 13 +- .../com/mysql/clusterj/jdbc/SQLExecutor.java | 13 +- .../clusterj/jdbc/StatementInterceptor.java | 13 +- .../mysql/clusterj/jdbc/ValueHandlerImpl.java | 13 +- .../jdbc/antlr/ANTLRNoCaseFileStream.java | 13 +- .../jdbc/antlr/ANTLRNoCaseStringStream.java | 13 +- .../jdbc/antlr/BaseErrorListener.java | 13 +- .../clusterj/jdbc/antlr/ErrorListener.java | 13 +- .../mysql/clusterj/jdbc/antlr/MySQLLexer.java | 13 +- .../clusterj/jdbc/antlr/MySQLParser.java | 13 +- .../jdbc/antlr/QueuingErrorListener.java | 13 +- .../jdbc/antlr/RecognizerErrorDelegate.java | 13 +- .../clusterj/jdbc/antlr/node/AndNode.java | 13 +- .../clusterj/jdbc/antlr/node/BetweenNode.java | 13 +- .../jdbc/antlr/node/BinaryOperatorNode.java | 13 +- .../jdbc/antlr/node/BooleanOperatorNode.java | 13 +- .../clusterj/jdbc/antlr/node/CommandNode.java | 13 +- .../clusterj/jdbc/antlr/node/DeleteNode.java | 13 +- .../clusterj/jdbc/antlr/node/EqualsNode.java | 13 +- .../jdbc/antlr/node/GreaterEqualsNode.java | 13 +- .../jdbc/antlr/node/GreaterThanNode.java | 13 +- .../clusterj/jdbc/antlr/node/InsertNode.java | 13 +- .../jdbc/antlr/node/LessEqualsNode.java | 13 +- .../jdbc/antlr/node/LessThanNode.java | 13 +- .../mysql/clusterj/jdbc/antlr/node/Node.java | 13 +- .../clusterj/jdbc/antlr/node/NotNode.java | 13 +- .../clusterj/jdbc/antlr/node/OrNode.java | 13 +- .../clusterj/jdbc/antlr/node/ParensNode.java | 13 +- .../jdbc/antlr/node/PlaceholderNode.java | 13 +- .../jdbc/antlr/node/PredicateNode.java | 13 +- .../clusterj/jdbc/antlr/node/SelectNode.java | 13 +- .../clusterj/jdbc/antlr/node/WhereNode.java | 13 +- .../BadConnectionLifecycleInterceptor.java | 13 +- .../BatchDeleteQueryAllPrimitivesTest.java | 13 +- .../src/test/java/jdbctest/BatchTest.java | 13 +- .../java/jdbctest/BigIntegerTypesTest.java | 13 +- .../CoordinatedTransactionIdVariableTest.java | 13 +- .../test/java/jdbctest/DecimalTypesTest.java | 13 +- .../DeleteQueryAllPrimitivesTest.java | 13 +- ...BadConnectionLifecycleInterceptorTest.java | 13 +- ...ingConnectionLifecycleInterceptorTest.java | 13 +- ...gativeMissingStatementInterceptorTest.java | 13 +- .../clusterj/clusterj-jpatest/CMakeLists.txt | 13 +- .../ndb/clusterj/clusterj-jpatest/pom.xml | 13 +- .../clusterj/jpatest/AbstractJPABaseTest.java | 13 +- .../clusterj/jpatest/BigIntegerTypesTest.java | 13 +- .../com/mysql/clusterj/jpatest/BlobTest.java | 13 +- .../com/mysql/clusterj/jpatest/ClobTest.java | 13 +- .../clusterj/jpatest/DateAsSqlDateTest.java | 13 +- .../clusterj/jpatest/DateAsUtilDateTest.java | 13 +- .../jpatest/DatetimeAsSqlTimestampTest.java | 13 +- .../jpatest/DatetimeAsUtilDateTest.java | 13 +- .../clusterj/jpatest/DecimalTypesTest.java | 13 +- .../com/mysql/clusterj/jpatest/Driver.java | 13 +- .../mysql/clusterj/jpatest/EmbeddedTest.java | 13 +- .../com/mysql/clusterj/jpatest/Ignore.java | 13 +- .../com/mysql/clusterj/jpatest/JpaLoad.java | 13 +- .../com/mysql/clusterj/jpatest/LazyTest.java | 13 +- .../clusterj/jpatest/PersistenceTestCase.java | 13 +- .../clusterj/jpatest/SingleEMFTestCase.java | 13 +- .../clusterj/jpatest/SingleEMTestCase.java | 13 +- .../com/mysql/clusterj/jpatest/SlowTest.java | 13 +- .../clusterj/jpatest/TimeAsSqlTimeTest.java | 13 +- .../clusterj/jpatest/TimeAsUtilDateTest.java | 13 +- .../jpatest/TimestampAsSqlTimestampTest.java | 13 +- .../jpatest/TimestampAsUtilDateTest.java | 13 +- .../com/mysql/clusterj/jpatest/model/A.java | 13 +- .../com/mysql/clusterj/jpatest/model/B0.java | 13 +- .../jpatest/model/BigIntegerTypes.java | 13 +- .../clusterj/jpatest/model/BlobTypes.java | 13 +- .../clusterj/jpatest/model/ClobTypes.java | 13 +- .../jpatest/model/DateAsSqlDateTypes.java | 13 +- .../jpatest/model/DateAsUtilDateTypes.java | 13 +- .../model/DatetimeAsSqlTimestampTypes.java | 13 +- .../model/DatetimeAsUtilDateTypes.java | 13 +- .../clusterj/jpatest/model/DecimalTypes.java | 13 +- .../clusterj/jpatest/model/Embedded.java | 13 +- .../clusterj/jpatest/model/Embedding.java | 13 +- .../clusterj/jpatest/model/Employee.java | 13 +- .../mysql/clusterj/jpatest/model/IdBase.java | 13 +- .../clusterj/jpatest/model/LazyEmployee.java | 13 +- .../jpatest/model/LongIntStringConstants.java | 13 +- .../jpatest/model/LongIntStringFKOneOne.java | 13 +- .../jpatest/model/LongIntStringOid.java | 13 +- .../jpatest/model/LongIntStringPKOneOne.java | 13 +- .../model/LongLongStringConstants.java | 13 +- .../model/LongLongStringFKManyOne.java | 13 +- .../jpatest/model/LongLongStringOid.java | 13 +- .../jpatest/model/LongLongStringPK.java | 13 +- .../model/LongLongStringPKOneMany.java | 13 +- .../jpatest/model/TimeAsSqlTimeTypes.java | 13 +- .../jpatest/model/TimeAsUtilDateTypes.java | 13 +- .../model/TimestampAsSqlTimestampTypes.java | 13 +- .../model/TimestampAsUtilDateTypes.java | 13 +- .../main/resources/META-INF/persistence.xml | 13 +- .../clusterj/clusterj-openjpa/CMakeLists.txt | 13 +- .../crundOpenjpaClusterj.properties | 13 +- .../crundOpenjpaMysql.properties | 13 +- .../clusterj-openjpa/crundRun.properties | 13 +- .../clusterj-openjpa/logging.properties | 13 +- .../ndb/clusterj/clusterj-openjpa/pom.xml | 13 +- .../openjpa/NdbOpenJPABrokerFactory.java | 13 +- .../openjpa/NdbOpenJPAConfiguration.java | 13 +- .../openjpa/NdbOpenJPAConfigurationImpl.java | 13 +- .../NdbOpenJPADomainFieldHandlerImpl.java | 13 +- .../NdbOpenJPADomainTypeHandlerImpl.java | 13 +- .../openjpa/NdbOpenJPAProductDerivation.java | 13 +- .../clusterj/openjpa/NdbOpenJPAResult.java | 13 +- .../openjpa/NdbOpenJPAStoreManager.java | 13 +- .../openjpa/NdbOpenJPAStoreQuery.java | 13 +- .../clusterj/openjpa/NdbOpenJPAUtility.java | 13 +- .../openjpa/NdbOpenJPAValueHandler.java | 13 +- .../mysql/clusterj/openjpa/Bundle.properties | 13 +- .../mysql/clusterj/openjpatest/BasicTest.java | 13 +- .../openjpatest/BigIntegerTypesTest.java | 13 +- .../mysql/clusterj/openjpatest/BlobTest.java | 13 +- .../mysql/clusterj/openjpatest/ClobTest.java | 13 +- .../mysql/clusterj/openjpatest/CrundTest.java | 13 +- .../openjpatest/DateAsSqlDateTest.java | 13 +- .../openjpatest/DateAsUtilDateTest.java | 13 +- .../DatetimeAsSqlTimestampTest.java | 13 +- .../openjpatest/DatetimeAsUtilDateTest.java | 13 +- .../openjpatest/DecimalTypesTest.java | 13 +- .../clusterj/openjpatest/EmbeddedTest.java | 13 +- .../mysql/clusterj/openjpatest/LazyTest.java | 13 +- .../LongIntStringPKOneOneTest.java | 13 +- .../LongLongStringPKOneManyTest.java | 13 +- .../openjpatest/LongLongStringPKTest.java | 13 +- .../OneToManyRelationshipTest.java | 13 +- ...TestBadPersistenceUnitNoConnectString.java | 17 +- .../openjpatest/TimeAsSqlTimeTest.java | 13 +- .../openjpatest/TimeAsUtilDateTest.java | 13 +- .../TimestampAsSqlTimestampTest.java | 13 +- .../openjpatest/TimestampAsUtilDateTest.java | 13 +- .../test/resources/META-INF/persistence.xml | 13 +- .../ndb/clusterj/clusterj-test/CMakeLists.txt | 13 +- .../clusterj/clusterj-test/logging.properties | 13 +- .../ndb/clusterj/clusterj-test/pom.xml | 13 +- .../src/main/java/regression/Bug54619.java | 25 +- .../clusterj/AbstractClusterJModelTest.java | 13 +- .../clusterj/AbstractClusterJTest.java | 13 +- .../testsuite/clusterj/AbstractQueryTest.java | 13 +- .../java/testsuite/clusterj/AllTests.java | 13 +- .../testsuite/clusterj/AutoCommitTest.java | 13 +- .../clusterj/BigIntegerTypesTest.java | 13 +- .../java/testsuite/clusterj/BinaryPKTest.java | 13 +- .../testsuite/clusterj/BinaryTypesTest.java | 13 +- .../java/testsuite/clusterj/BitTypesTest.java | 15 +- .../java/testsuite/clusterj/BlobTest.java | 13 +- .../java/testsuite/clusterj/CharsetTest.java | 13 +- .../clusterj/ConnectionPoolTest.java | 13 +- .../CoordinatedTransactionIdVariableTest.java | 13 +- .../clusterj/DateAsSqlDateTypesTest.java | 13 +- .../clusterj/DateAsUtilDateTypesTest.java | 13 +- .../DatetimeAsSqlTimestampTypesTest.java | 13 +- .../clusterj/DatetimeAsUtilDateTypesTest.java | 13 +- .../testsuite/clusterj/DecimalTypesTest.java | 13 +- .../clusterj/DefaultConnectValuesTest.java | 13 +- .../clusterj/DeleteAllByClassTest.java | 13 +- .../testsuite/clusterj/DeleteInsertTest.java | 13 +- .../DeleteQueryAllPrimitivesTest.java | 13 +- .../DomainTypeHandlerFactoryTest.java | 13 +- .../clusterj/DynamicBinaryPKTest.java | 13 +- .../testsuite/clusterj/DynamicObjectTest.java | 13 +- .../clusterj/FindByPrimaryKey2Test.java | 13 +- .../clusterj/FindByPrimaryKeyTest.java | 13 +- .../clusterj/HashOnlyLongIntStringPKTest.java | 13 +- .../java/testsuite/clusterj/LoadTest.java | 13 +- .../clusterj/LongIntStringPKTest.java | 13 +- .../clusterj/LongLongStringPKTest.java | 13 +- .../clusterj/LongvarbinaryPKTest.java | 13 +- .../testsuite/clusterj/MultiplePKTest.java | 13 +- .../clusterj/MultithreadedFindTest.java | 13 +- .../testsuite/clusterj/MultithreadedTest.java | 13 +- .../clusterj/NegativeMetadataTest.java | 13 +- .../testsuite/clusterj/NotPersistentTest.java | 13 +- .../testsuite/clusterj/NullValuesTest.java | 13 +- .../clusterj/ObjectNotFoundTest.java | 13 +- .../testsuite/clusterj/PartitionKeyTest.java | 13 +- .../clusterj/QueryAllPrimitivesTest.java | 13 +- .../clusterj/QueryBigIntegerTypesTest.java | 13 +- .../clusterj/QueryBtreeIndexScanTest.java | 13 +- .../clusterj/QueryByteArrayTypesTest.java | 13 +- .../clusterj/QueryDateAsSqlDateTypesTest.java | 13 +- .../QueryDateAsUtilDateTypesTest.java | 13 +- .../QueryDatetimeAsSqlTimestampTypesTest.java | 13 +- .../QueryDatetimeAsUtilDateTypesTest.java | 13 +- .../clusterj/QueryDecimalTypesTest.java | 13 +- .../clusterj/QueryDoubleTypesTest.java | 13 +- .../testsuite/clusterj/QueryExplainTest.java | 13 +- .../clusterj/QueryExtraConditionsTest.java | 13 +- .../clusterj/QueryFloatTypesTest.java | 13 +- .../clusterj/QueryHashIndexScanTest.java | 13 +- .../java/testsuite/clusterj/QueryInTest.java | 13 +- .../clusterj/QueryLikeByteArrayTypesTest.java | 13 +- .../testsuite/clusterj/QueryLikeTest.java | 13 +- .../clusterj/QueryMultiColumnIndexInTest.java | 13 +- .../clusterj/QueryMultipleParameterTest.java | 13 +- .../testsuite/clusterj/QueryNotNullTest.java | 13 +- .../java/testsuite/clusterj/QueryNotTest.java | 13 +- .../testsuite/clusterj/QueryNullTest.java | 13 +- .../java/testsuite/clusterj/QueryOrTest.java | 13 +- .../clusterj/QueryPrimaryKeyTest.java | 13 +- .../clusterj/QueryStringTypesTest.java | 13 +- .../clusterj/QueryTableScanTest.java | 13 +- .../clusterj/QueryTimeAsSqlTimeTypesTest.java | 13 +- .../QueryTimeAsUtilDateTypesTest.java | 13 +- ...QueryTimestampAsSqlTimestampTypesTest.java | 13 +- .../QueryTimestampAsUtilDateTypesTest.java | 13 +- .../clusterj/QueryUniqueKeyTest.java | 13 +- .../clusterj/QueryYearTypesTest.java | 13 +- .../java/testsuite/clusterj/SaveTest.java | 13 +- .../clusterj/SerialTransactionsTest.java | 13 +- .../clusterj/TimeAsSqlTimeTypesTest.java | 13 +- .../clusterj/TimeAsUtilDateTypesTest.java | 13 +- .../TimestampAsSqlTimestampTypesTest.java | 13 +- .../TimestampAsUtilDateTypesTest.java | 13 +- .../clusterj/TransactionStateTest.java | 13 +- .../java/testsuite/clusterj/UpdateTest.java | 13 +- .../testsuite/clusterj/VarbinaryPKTest.java | 13 +- .../clusterj/VarbinaryTypesTest.java | 13 +- .../clusterj/VarcharStringLengthTest.java | 13 +- .../CrazyDomainTypeHandlerFactoryImpl.java | 13 +- .../clusterj/model/AllPrimitives.java | 13 +- ...EmployeeNoPrimaryKeyAnnotationOnClass.java | 13 +- ...ePrimaryKeyAnnotationColumnAndColumns.java | 13 +- ...PrimaryKeyAnnotationNoColumnOrColumns.java | 13 +- ...ryKeyAnnotationOnClassMisspelledField.java | 13 +- ...loyeeWrongPrimaryKeyAnnotationOnClass.java | 13 +- .../model/BadIndexDuplicateColumn.java | 13 +- .../model/BadIndexDuplicateIndexName.java | 13 +- .../clusterj/model/BadIndexMissingColumn.java | 13 +- .../clusterj/model/BigIntegerTypes.java | 13 +- .../testsuite/clusterj/model/BinaryPK.java | 13 +- .../testsuite/clusterj/model/BinaryTypes.java | 13 +- .../testsuite/clusterj/model/BitTypes.java | 15 +- .../testsuite/clusterj/model/BlobTypes.java | 13 +- .../clusterj/model/ByteArrayTypes.java | 13 +- .../testsuite/clusterj/model/CharsetBig5.java | 13 +- .../clusterj/model/CharsetLatin1.java | 13 +- .../clusterj/model/CharsetModel.java | 13 +- .../testsuite/clusterj/model/CharsetSjis.java | 13 +- .../testsuite/clusterj/model/CharsetUtf8.java | 13 +- .../clusterj/model/CrazyDelegate.java | 13 +- .../testsuite/clusterj/model/Customer.java | 13 +- .../clusterj/model/DateAsSqlDateTypes.java | 13 +- .../clusterj/model/DateAsUtilDateTypes.java | 13 +- .../model/DatetimeAsSqlTimestampTypes.java | 13 +- .../model/DatetimeAsUtilDateTypes.java | 13 +- .../clusterj/model/DecimalTypes.java | 13 +- .../java/testsuite/clusterj/model/Dn2id.java | 13 +- .../testsuite/clusterj/model/DoubleTypes.java | 13 +- .../testsuite/clusterj/model/DynamicPK.java | 13 +- .../testsuite/clusterj/model/Employee.java | 13 +- .../testsuite/clusterj/model/Employee2.java | 13 +- .../testsuite/clusterj/model/FloatTypes.java | 13 +- .../model/HashOnlyLongIntStringPK.java | 13 +- .../java/testsuite/clusterj/model/IdBase.java | 13 +- .../testsuite/clusterj/model/IndexesRUs.java | 13 +- .../clusterj/model/LongIntStringIndex.java | 13 +- .../clusterj/model/LongIntStringPK.java | 13 +- .../clusterj/model/LongLongStringPK.java | 13 +- .../clusterj/model/LongvarbinaryPK.java | 13 +- .../clusterj/model/NotPersistentTypes.java | 13 +- .../testsuite/clusterj/model/NullValues.java | 13 +- .../java/testsuite/clusterj/model/Order.java | 13 +- .../testsuite/clusterj/model/OrderLine.java | 13 +- .../testsuite/clusterj/model/StringTypes.java | 13 +- .../model/ThrowNullPointerException.java | 13 +- .../clusterj/model/TimeAsSqlTimeTypes.java | 13 +- .../clusterj/model/TimeAsUtilDateTypes.java | 13 +- .../model/TimestampAsSqlTimestampTypes.java | 13 +- .../model/TimestampAsUtilDateTypes.java | 13 +- .../testsuite/clusterj/model/VarbinaryPK.java | 13 +- .../clusterj/model/VarbinaryTypes.java | 13 +- .../testsuite/clusterj/model/YearTypes.java | 13 +- .../ndb/clusterj/clusterj-tie/CMakeLists.txt | 13 +- .../clusterj/clusterj-tie/logging.properties | 13 +- .../storage/ndb/clusterj/clusterj-tie/pom.xml | 13 +- .../java/com/mysql/clusterj/tie/BlobImpl.java | 13 +- .../clusterj/tie/ClusterConnectionImpl.java | 13 +- .../tie/ClusterConnectionServiceImpl.java | 13 +- .../clusterj/tie/ClusterTransactionImpl.java | 13 +- .../com/mysql/clusterj/tie/ColumnImpl.java | 13 +- .../java/com/mysql/clusterj/tie/DbImpl.java | 13 +- .../mysql/clusterj/tie/DictionaryImpl.java | 13 +- .../com/mysql/clusterj/tie/IndexImpl.java | 13 +- .../clusterj/tie/IndexOperationImpl.java | 13 +- .../clusterj/tie/IndexScanOperationImpl.java | 13 +- .../java/com/mysql/clusterj/tie/KeyPart.java | 13 +- .../com/mysql/clusterj/tie/OperationImpl.java | 13 +- .../mysql/clusterj/tie/PartitionKeyImpl.java | 13 +- .../mysql/clusterj/tie/ResultDataImpl.java | 13 +- .../mysql/clusterj/tie/ScanFilterImpl.java | 13 +- .../mysql/clusterj/tie/ScanOperationImpl.java | 13 +- .../clusterj/tie/ScanResultDataImpl.java | 13 +- .../com/mysql/clusterj/tie/TableImpl.java | 13 +- .../java/com/mysql/clusterj/tie/Utility.java | 13 +- .../com/mysql/clusterj/tie/Bundle.properties | 13 +- .../com/mysql/clusterj/tie/UtilityTest.java | 13 +- .../clusterj/tie/AutoCommitTest.java | 13 +- .../clusterj/tie/BigIntegerTypesTest.java | 13 +- .../testsuite/clusterj/tie/BinaryPKTest.java | 13 +- .../clusterj/tie/BinaryTypesTest.java | 13 +- .../testsuite/clusterj/tie/BitTypesTest.java | 13 +- .../java/testsuite/clusterj/tie/BlobTest.java | 13 +- .../testsuite/clusterj/tie/Bug54619Test.java | 13 +- .../testsuite/clusterj/tie/CharsetTest.java | 13 +- .../clusterj/tie/ConnectionPoolTest.java | 13 +- .../CoordinatedTransactionIdVariableTest.java | 13 +- .../clusterj/tie/DateAsSqlDateTypesTest.java | 13 +- .../clusterj/tie/DateAsUtilDateTypesTest.java | 13 +- .../tie/DatetimeAsSqlTimestampTypesTest.java | 13 +- .../tie/DatetimeAsUtilDateTypesTest.java | 13 +- .../clusterj/tie/DecimalTypesTest.java | 13 +- .../tie/DefaultConnectValuesTest.java | 13 +- .../clusterj/tie/DeleteAllByClassTest.java | 13 +- .../clusterj/tie/DeleteInsertTest.java | 13 +- .../tie/DomainTypeHandlerFactoryTest.java | 13 +- .../clusterj/tie/DynamicBinaryPKTest.java | 13 +- .../clusterj/tie/DynamicObjectTest.java | 13 +- .../clusterj/tie/FindByPrimaryKey2Test.java | 13 +- .../clusterj/tie/FindByPrimaryKeyTest.java | 13 +- .../tie/HashOnlyLongIntStringPKTest.java | 13 +- .../java/testsuite/clusterj/tie/LoadTest.java | 13 +- .../clusterj/tie/LongIntStringPKTest.java | 13 +- .../clusterj/tie/LongLongStringPKTest.java | 13 +- .../clusterj/tie/LongvarbinaryPKTest.java | 13 +- .../clusterj/tie/MultiplePKTest.java | 13 +- .../clusterj/tie/MultithreadedFindTest.java | 13 +- .../clusterj/tie/MultithreadedTest.java | 13 +- .../clusterj/tie/NegativeMetadataTest.java | 13 +- .../clusterj/tie/NotPersistentTest.java | 13 +- .../clusterj/tie/NullValuesTest.java | 13 +- .../clusterj/tie/ObjectNotFoundTest.java | 13 +- .../clusterj/tie/PartitionKeyTest.java | 13 +- .../clusterj/tie/QueryAllPrimitivesTest.java | 13 +- .../tie/QueryBigIntegerTypesTest.java | 13 +- .../clusterj/tie/QueryBtreeIndexScanTest.java | 13 +- .../clusterj/tie/QueryByteArrayTypesTest.java | 13 +- .../tie/QueryDateAsSqlDateTypesTest.java | 13 +- .../tie/QueryDateAsUtilDateTypesTest.java | 13 +- .../QueryDatetimeAsSqlTimestampTypesTest.java | 13 +- .../tie/QueryDatetimeAsUtilDateTypesTest.java | 13 +- .../clusterj/tie/QueryDecimalTypesTest.java | 13 +- .../clusterj/tie/QueryDoubleTypesTest.java | 13 +- .../clusterj/tie/QueryExplainTest.java | 13 +- .../tie/QueryExtraConditionsTest.java | 13 +- .../clusterj/tie/QueryFloatTypesTest.java | 13 +- .../clusterj/tie/QueryHashIndexScanTest.java | 13 +- .../testsuite/clusterj/tie/QueryInTest.java | 13 +- .../tie/QueryLikeByteArrayTypesTest.java | 13 +- .../testsuite/clusterj/tie/QueryLikeTest.java | 13 +- .../tie/QueryMultiColumnIndexInTest.java | 13 +- .../tie/QueryMultipleParameterTest.java | 13 +- .../clusterj/tie/QueryNotNullTest.java | 13 +- .../testsuite/clusterj/tie/QueryNotTest.java | 13 +- .../testsuite/clusterj/tie/QueryNullTest.java | 13 +- .../testsuite/clusterj/tie/QueryOrTest.java | 13 +- .../clusterj/tie/QueryPrimaryKeyTest.java | 13 +- .../clusterj/tie/QueryStringTypesTest.java | 13 +- .../clusterj/tie/QueryTableScanTest.java | 13 +- .../tie/QueryTimeAsSqlTimeTypesTest.java | 13 +- .../tie/QueryTimeAsUtilDateTypesTest.java | 13 +- ...QueryTimestampAsSqlTimestampTypesTest.java | 13 +- .../QueryTimestampAsUtilDateTypesTest.java | 13 +- .../clusterj/tie/QueryUniqueKeyTest.java | 13 +- .../clusterj/tie/QueryYearTypesTest.java | 13 +- .../java/testsuite/clusterj/tie/SaveTest.java | 13 +- .../clusterj/tie/SerialTransactionsTest.java | 13 +- .../clusterj/tie/TimeAsSqlTimeTypesTest.java | 13 +- .../clusterj/tie/TimeAsUtilDateTypesTest.java | 13 +- .../tie/TimestampAsSqlTimestampTypesTest.java | 13 +- .../tie/TimestampAsUtilDateTypesTest.java | 13 +- .../clusterj/tie/TransactionStateTest.java | 13 +- .../testsuite/clusterj/tie/UpdateTest.java | 13 +- .../clusterj/tie/VarbinaryPKTest.java | 13 +- .../clusterj/tie/VarbinaryTypesTest.java | 13 +- .../clusterj/tie/VarcharStringLengthTest.java | 13 +- .../src/test/resources/clusterj.properties | 13 +- mysql-wsrep-5.6/storage/ndb/clusterj/pom.xml | 13 +- .../ndb/cmake/ndb_require_variable.cmake | 13 +- .../storage/ndb/cmake/os/Windows.cmake | 13 +- .../storage/ndb/cmake/os/WindowsCache.cmake | 13 +- mysql-wsrep-5.6/storage/ndb/compile-cluster | 13 +- .../storage/ndb/config/type_JAVA.cmake | 13 +- .../storage/ndb/config/type_kernel.cmake | 13 +- .../ndb/config/type_mgmapiclient.cmake | 13 +- .../ndb/config/type_ndbapiclient.cmake | 13 +- .../storage/ndb/config/type_ndbapitest.cmake | 13 +- .../storage/ndb/config/type_ndbapitools.cmake | 13 +- .../storage/ndb/config/type_util.cmake | 13 +- .../storage/ndb/docs/doxygen/Doxyfile.mgmapi | 13 +- .../storage/ndb/docs/doxygen/Doxyfile.ndb | 13 +- .../storage/ndb/docs/doxygen/Doxyfile.ndbapi | 13 +- .../storage/ndb/docs/doxygen/Doxyfile.odbc | 13 +- .../storage/ndb/docs/doxygen/Doxyfile.test | 13 +- .../storage/ndb/docs/doxygen/postdoxy.pl | 13 +- .../storage/ndb/docs/doxygen/predoxy.pl | 13 +- .../storage/ndb/include/CMakeLists.txt | 13 +- .../ndb/include/debugger/DebuggerNames.hpp | 13 +- .../ndb/include/debugger/EventLogger.hpp | 13 +- .../include/debugger/SignalLoggerManager.hpp | 13 +- .../include/kernel/AttributeDescriptor.hpp | 13 +- .../ndb/include/kernel/AttributeHeader.hpp | 13 +- .../ndb/include/kernel/AttributeList.hpp | 13 +- .../storage/ndb/include/kernel/BlockNumbers.h | 13 +- .../ndb/include/kernel/GlobalSignalNumbers.h | 13 +- .../ndb/include/kernel/Interpreter.hpp | 13 +- .../storage/ndb/include/kernel/LogLevel.hpp | 13 +- .../ndb/include/kernel/NodeBitmask.hpp | 13 +- .../storage/ndb/include/kernel/NodeInfo.hpp | 13 +- .../storage/ndb/include/kernel/NodeState.hpp | 13 +- .../storage/ndb/include/kernel/RefConvert.hpp | 13 +- .../include/kernel/kernel_config_parameters.h | 13 +- .../storage/ndb/include/kernel/kernel_types.h | 13 +- .../storage/ndb/include/kernel/ndb_limits.h | 13 +- .../include/kernel/signaldata/AbortAll.hpp | 13 +- .../ndb/include/kernel/signaldata/AccFrag.hpp | 13 +- .../ndb/include/kernel/signaldata/AccLock.hpp | 13 +- .../ndb/include/kernel/signaldata/AccScan.hpp | 13 +- .../kernel/signaldata/AccSizeAltReq.hpp | 13 +- .../include/kernel/signaldata/AllocMem.hpp | 13 +- .../include/kernel/signaldata/AllocNodeId.hpp | 13 +- .../include/kernel/signaldata/AlterIndx.hpp | 13 +- .../kernel/signaldata/AlterIndxImpl.hpp | 13 +- .../include/kernel/signaldata/AlterTab.hpp | 13 +- .../include/kernel/signaldata/AlterTable.hpp | 13 +- .../kernel/signaldata/ApiBroadcast.hpp | 13 +- .../kernel/signaldata/ApiRegSignalData.hpp | 13 +- .../include/kernel/signaldata/ApiVersion.hpp | 13 +- .../kernel/signaldata/ArbitSignalData.hpp | 13 +- .../include/kernel/signaldata/AttrInfo.hpp | 13 +- .../kernel/signaldata/BackupContinueB.hpp | 13 +- .../include/kernel/signaldata/BackupImpl.hpp | 13 +- .../kernel/signaldata/BackupLockTab.hpp | 13 +- .../kernel/signaldata/BackupSignalData.hpp | 13 +- .../kernel/signaldata/BlockCommitOrd.hpp | 13 +- .../include/kernel/signaldata/BuildIndx.hpp | 13 +- .../kernel/signaldata/BuildIndxImpl.hpp | 13 +- .../kernel/signaldata/CallbackSignal.hpp | 13 +- .../kernel/signaldata/CheckNodeGroups.hpp | 13 +- .../kernel/signaldata/CloseComReqConf.hpp | 13 +- .../ndb/include/kernel/signaldata/CmInit.hpp | 13 +- .../kernel/signaldata/CmRegSignalData.hpp | 13 +- .../kernel/signaldata/CmvmiCfgConf.hpp | 13 +- .../kernel/signaldata/CntrMasterConf.hpp | 13 +- .../kernel/signaldata/CntrMasterReq.hpp | 13 +- .../include/kernel/signaldata/CntrStart.hpp | 13 +- .../kernel/signaldata/ConfigChange.hpp | 13 +- .../kernel/signaldata/ConfigParamId.hpp | 13 +- .../kernel/signaldata/ContinueFragmented.hpp | 13 +- .../include/kernel/signaldata/CopyActive.hpp | 13 +- .../include/kernel/signaldata/CopyData.hpp | 13 +- .../include/kernel/signaldata/CopyFrag.hpp | 13 +- .../include/kernel/signaldata/CopyGCIReq.hpp | 13 +- .../include/kernel/signaldata/CreateEvnt.hpp | 13 +- .../kernel/signaldata/CreateFilegroup.hpp | 13 +- .../kernel/signaldata/CreateFilegroupImpl.hpp | 13 +- .../kernel/signaldata/CreateFragmentation.hpp | 13 +- .../kernel/signaldata/CreateHashMap.hpp | 13 +- .../include/kernel/signaldata/CreateIndx.hpp | 13 +- .../kernel/signaldata/CreateIndxImpl.hpp | 13 +- .../kernel/signaldata/CreateNodegroup.hpp | 13 +- .../kernel/signaldata/CreateNodegroupImpl.hpp | 13 +- .../include/kernel/signaldata/CreateObj.hpp | 13 +- .../include/kernel/signaldata/CreateTab.hpp | 13 +- .../include/kernel/signaldata/CreateTable.hpp | 13 +- .../include/kernel/signaldata/CreateTrig.hpp | 13 +- .../kernel/signaldata/CreateTrigImpl.hpp | 13 +- .../include/kernel/signaldata/DataFileOrd.hpp | 13 +- .../include/kernel/signaldata/DbinfoScan.hpp | 13 +- .../include/kernel/signaldata/DbspjErr.hpp | 13 +- .../include/kernel/signaldata/DiAddTab.hpp | 13 +- .../include/kernel/signaldata/DiGetNodes.hpp | 13 +- .../include/kernel/signaldata/DictLock.hpp | 13 +- .../include/kernel/signaldata/DictObjOp.hpp | 13 +- .../kernel/signaldata/DictSchemaInfo.hpp | 13 +- .../include/kernel/signaldata/DictSignal.hpp | 13 +- .../kernel/signaldata/DictSizeAltReq.hpp | 13 +- .../include/kernel/signaldata/DictStart.hpp | 13 +- .../include/kernel/signaldata/DictTabInfo.hpp | 13 +- .../kernel/signaldata/DictTakeover.hpp | 13 +- .../include/kernel/signaldata/DihAddFrag.hpp | 13 +- .../kernel/signaldata/DihContinueB.hpp | 13 +- .../kernel/signaldata/DihFragCount.hpp | 13 +- .../kernel/signaldata/DihGetTabInfo.hpp | 13 +- .../include/kernel/signaldata/DihRestart.hpp | 13 +- .../include/kernel/signaldata/DihScanTab.hpp | 13 +- .../kernel/signaldata/DihSizeAltReq.hpp | 13 +- .../include/kernel/signaldata/DihStartTab.hpp | 13 +- .../kernel/signaldata/DihSwitchReplica.hpp | 13 +- .../kernel/signaldata/DisconnectRep.hpp | 13 +- .../kernel/signaldata/DropFilegroup.hpp | 13 +- .../kernel/signaldata/DropFilegroupImpl.hpp | 13 +- .../include/kernel/signaldata/DropIndx.hpp | 13 +- .../kernel/signaldata/DropIndxImpl.hpp | 13 +- .../kernel/signaldata/DropNodegroup.hpp | 13 +- .../kernel/signaldata/DropNodegroupImpl.hpp | 13 +- .../ndb/include/kernel/signaldata/DropObj.hpp | 13 +- .../ndb/include/kernel/signaldata/DropTab.hpp | 13 +- .../include/kernel/signaldata/DropTabFile.hpp | 13 +- .../include/kernel/signaldata/DropTable.hpp | 13 +- .../include/kernel/signaldata/DropTrig.hpp | 13 +- .../kernel/signaldata/DropTrigImpl.hpp | 13 +- .../kernel/signaldata/DumpStateOrd.hpp | 13 +- .../include/kernel/signaldata/EmptyLcp.hpp | 13 +- .../include/kernel/signaldata/EnableCom.hpp | 13 +- .../include/kernel/signaldata/EventReport.hpp | 13 +- .../kernel/signaldata/EventSubscribeReq.hpp | 13 +- .../include/kernel/signaldata/ExecFragReq.hpp | 13 +- .../ndb/include/kernel/signaldata/Extent.hpp | 13 +- .../ndb/include/kernel/signaldata/FailRep.hpp | 13 +- .../include/kernel/signaldata/FireTrigOrd.hpp | 13 +- .../include/kernel/signaldata/FsAppendReq.hpp | 13 +- .../include/kernel/signaldata/FsCloseReq.hpp | 13 +- .../ndb/include/kernel/signaldata/FsConf.hpp | 13 +- .../include/kernel/signaldata/FsOpenReq.hpp | 13 +- .../kernel/signaldata/FsReadWriteReq.hpp | 13 +- .../ndb/include/kernel/signaldata/FsRef.hpp | 13 +- .../include/kernel/signaldata/FsRemoveReq.hpp | 13 +- .../ndb/include/kernel/signaldata/GCP.hpp | 13 +- .../include/kernel/signaldata/GetConfig.hpp | 13 +- .../include/kernel/signaldata/GetTabInfo.hpp | 13 +- .../include/kernel/signaldata/GetTableId.hpp | 13 +- .../include/kernel/signaldata/HashMapImpl.hpp | 13 +- .../include/kernel/signaldata/HotSpareRep.hpp | 13 +- .../kernel/signaldata/IndexStatSignal.hpp | 13 +- .../kernel/signaldata/IndxAttrInfo.hpp | 13 +- .../include/kernel/signaldata/IndxKeyInfo.hpp | 13 +- .../signaldata/InvalidateNodeLCPConf.hpp | 13 +- .../signaldata/InvalidateNodeLCPReq.hpp | 13 +- .../ndb/include/kernel/signaldata/KeyInfo.hpp | 13 +- .../ndb/include/kernel/signaldata/LCP.hpp | 13 +- .../kernel/signaldata/LgmanContinueB.hpp | 13 +- .../include/kernel/signaldata/ListTables.hpp | 13 +- .../kernel/signaldata/LocalRouteOrd.hpp | 13 +- .../ndb/include/kernel/signaldata/LqhFrag.hpp | 13 +- .../ndb/include/kernel/signaldata/LqhKey.hpp | 13 +- .../kernel/signaldata/LqhSizeAltReq.hpp | 13 +- .../kernel/signaldata/LqhTransConf.hpp | 13 +- .../include/kernel/signaldata/LqhTransReq.hpp | 13 +- .../include/kernel/signaldata/MasterGCP.hpp | 13 +- .../include/kernel/signaldata/MasterLCP.hpp | 13 +- .../kernel/signaldata/NFCompleteRep.hpp | 13 +- .../include/kernel/signaldata/NdbSttor.hpp | 13 +- .../kernel/signaldata/NdbfsContinueB.hpp | 13 +- .../include/kernel/signaldata/NextScan.hpp | 13 +- .../include/kernel/signaldata/NodeFailRep.hpp | 13 +- .../include/kernel/signaldata/NodePing.hpp | 13 +- .../kernel/signaldata/NodeStateSignalData.hpp | 13 +- .../kernel/signaldata/PackedSignal.hpp | 13 +- .../kernel/signaldata/PgmanContinueB.hpp | 13 +- .../include/kernel/signaldata/PrepDropTab.hpp | 13 +- .../kernel/signaldata/PrepFailReqRef.hpp | 13 +- .../include/kernel/signaldata/QueryTree.hpp | 13 +- .../include/kernel/signaldata/ReadConfig.hpp | 13 +- .../kernel/signaldata/ReadNodesConf.hpp | 13 +- .../include/kernel/signaldata/RelTabMem.hpp | 13 +- .../kernel/signaldata/ReleasePages.hpp | 13 +- .../kernel/signaldata/RestoreContinueB.hpp | 13 +- .../include/kernel/signaldata/RestoreImpl.hpp | 13 +- .../include/kernel/signaldata/ResumeReq.hpp | 13 +- .../include/kernel/signaldata/RouteOrd.hpp | 13 +- .../include/kernel/signaldata/ScanFrag.hpp | 13 +- .../ndb/include/kernel/signaldata/ScanTab.hpp | 13 +- .../include/kernel/signaldata/SchemaTrans.hpp | 13 +- .../kernel/signaldata/SchemaTransImpl.hpp | 13 +- .../kernel/signaldata/SetLogLevelOrd.hpp | 13 +- .../include/kernel/signaldata/SetVarReq.hpp | 13 +- .../include/kernel/signaldata/SignalData.hpp | 13 +- .../kernel/signaldata/SignalDataPrint.hpp | 13 +- .../kernel/signaldata/SignalDroppedRep.hpp | 13 +- .../kernel/signaldata/SrFragidConf.hpp | 13 +- .../kernel/signaldata/StartFragReq.hpp | 13 +- .../include/kernel/signaldata/StartInfo.hpp | 13 +- .../ndb/include/kernel/signaldata/StartMe.hpp | 13 +- .../include/kernel/signaldata/StartOrd.hpp | 13 +- .../include/kernel/signaldata/StartPerm.hpp | 13 +- .../include/kernel/signaldata/StartRec.hpp | 13 +- .../kernel/signaldata/StopForCrash.hpp | 13 +- .../ndb/include/kernel/signaldata/StopMe.hpp | 13 +- .../include/kernel/signaldata/StopPerm.hpp | 13 +- .../ndb/include/kernel/signaldata/StopReq.hpp | 13 +- .../include/kernel/signaldata/SumaImpl.hpp | 13 +- .../ndb/include/kernel/signaldata/Sync.hpp | 13 +- .../include/kernel/signaldata/SystemError.hpp | 13 +- .../include/kernel/signaldata/TabCommit.hpp | 13 +- .../include/kernel/signaldata/TakeOver.hpp | 13 +- .../include/kernel/signaldata/TamperOrd.hpp | 13 +- .../include/kernel/signaldata/TcCommit.hpp | 13 +- .../include/kernel/signaldata/TcContinueB.hpp | 13 +- .../ndb/include/kernel/signaldata/TcHbRep.hpp | 13 +- .../ndb/include/kernel/signaldata/TcIndx.hpp | 13 +- .../include/kernel/signaldata/TcKeyConf.hpp | 13 +- .../kernel/signaldata/TcKeyFailConf.hpp | 13 +- .../include/kernel/signaldata/TcKeyRef.hpp | 13 +- .../include/kernel/signaldata/TcKeyReq.hpp | 13 +- .../kernel/signaldata/TcRollbackRep.hpp | 13 +- .../kernel/signaldata/TcSizeAltReq.hpp | 13 +- .../ndb/include/kernel/signaldata/TestOrd.hpp | 13 +- .../include/kernel/signaldata/TransIdAI.hpp | 13 +- .../kernel/signaldata/TrigAttrInfo.hpp | 13 +- .../kernel/signaldata/TsmanContinueB.hpp | 13 +- .../include/kernel/signaldata/TupCommit.hpp | 13 +- .../ndb/include/kernel/signaldata/TupFrag.hpp | 13 +- .../ndb/include/kernel/signaldata/TupKey.hpp | 13 +- .../kernel/signaldata/TupSizeAltReq.hpp | 13 +- .../include/kernel/signaldata/TuxBound.hpp | 13 +- .../kernel/signaldata/TuxContinueB.hpp | 13 +- .../include/kernel/signaldata/TuxMaint.hpp | 13 +- .../kernel/signaldata/TuxSizeAltReq.hpp | 13 +- .../ndb/include/kernel/signaldata/Upgrade.hpp | 13 +- .../include/kernel/signaldata/UtilDelete.hpp | 13 +- .../include/kernel/signaldata/UtilExecute.hpp | 13 +- .../include/kernel/signaldata/UtilLock.hpp | 13 +- .../include/kernel/signaldata/UtilPrepare.hpp | 13 +- .../include/kernel/signaldata/UtilRelease.hpp | 13 +- .../kernel/signaldata/UtilSequence.hpp | 13 +- .../ndb/include/kernel/signaldata/WaitGCP.hpp | 13 +- .../ndb/include/kernel/trigger_definitions.h | 13 +- .../ndb/include/logger/ConsoleLogHandler.hpp | 13 +- .../ndb/include/logger/FileLogHandler.hpp | 13 +- .../storage/ndb/include/logger/LogHandler.hpp | 13 +- .../storage/ndb/include/logger/Logger.hpp | 13 +- .../ndb/include/logger/SysLogHandler.hpp | 13 +- .../storage/ndb/include/mgmapi/mgmapi.h | 13 +- .../include/mgmapi/mgmapi_config_parameters.h | 13 +- .../mgmapi/mgmapi_config_parameters_debug.h | 13 +- .../storage/ndb/include/mgmapi/mgmapi_debug.h | 13 +- .../storage/ndb/include/mgmapi/mgmapi_error.h | 13 +- .../storage/ndb/include/mgmapi/ndb_logevent.h | 13 +- .../ndb/include/mgmapi/ndbd_exit_codes.h | 13 +- .../ndb/include/mgmcommon/ConfigRetriever.hpp | 13 +- .../ndb/include/mgmcommon/IPCConfig.hpp | 13 +- .../storage/ndb/include/ndb_config.h.in | 13 +- .../storage/ndb/include/ndb_constants.h | 13 +- .../storage/ndb/include/ndb_global.h | 13 +- .../storage/ndb/include/ndb_init.h | 13 +- mysql-wsrep-5.6/storage/ndb/include/ndb_net.h | 13 +- .../storage/ndb/include/ndb_types.h.in | 13 +- .../storage/ndb/include/ndb_version.h.in | 13 +- .../storage/ndb/include/ndbapi/Ndb.hpp | 13 +- .../storage/ndb/include/ndbapi/NdbApi.hpp | 13 +- .../storage/ndb/include/ndbapi/NdbBlob.hpp | 13 +- .../ndb/include/ndbapi/NdbDictionary.hpp | 13 +- .../storage/ndb/include/ndbapi/NdbError.hpp | 13 +- .../ndb/include/ndbapi/NdbEventOperation.hpp | 13 +- .../ndb/include/ndbapi/NdbIndexOperation.hpp | 13 +- .../include/ndbapi/NdbIndexScanOperation.hpp | 13 +- .../ndb/include/ndbapi/NdbIndexStat.hpp | 13 +- .../ndb/include/ndbapi/NdbInterpretedCode.hpp | 13 +- .../ndb/include/ndbapi/NdbOperation.hpp | 13 +- .../storage/ndb/include/ndbapi/NdbPool.hpp | 13 +- .../storage/ndb/include/ndbapi/NdbRecAttr.hpp | 13 +- .../ndb/include/ndbapi/NdbReceiver.hpp | 13 +- .../ndb/include/ndbapi/NdbScanFilter.hpp | 13 +- .../ndb/include/ndbapi/NdbScanOperation.hpp | 13 +- .../ndb/include/ndbapi/NdbTransaction.hpp | 13 +- .../include/ndbapi/ndb_cluster_connection.hpp | 13 +- .../ndb/include/ndbapi/ndb_opt_defaults.h | 13 +- .../ndb/include/ndbapi/ndbapi_limits.h | 13 +- .../storage/ndb/include/ndbapi/ndberror.h | 13 +- .../storage/ndb/include/newtonapi/dba.h | 13 +- .../ndb/include/newtonapi/defs/pcn_types.h | 13 +- .../ndb/include/portlib/NdbCondition.h | 13 +- .../storage/ndb/include/portlib/NdbConfig.h | 13 +- .../storage/ndb/include/portlib/NdbDir.hpp | 13 +- .../storage/ndb/include/portlib/NdbEnv.h | 13 +- .../storage/ndb/include/portlib/NdbHost.h | 13 +- .../storage/ndb/include/portlib/NdbMain.h | 13 +- .../storage/ndb/include/portlib/NdbMem.h | 13 +- .../storage/ndb/include/portlib/NdbMutex.h | 13 +- .../storage/ndb/include/portlib/NdbNuma.h | 13 +- .../storage/ndb/include/portlib/NdbSleep.h | 13 +- .../storage/ndb/include/portlib/NdbTCP.h | 13 +- .../storage/ndb/include/portlib/NdbThread.h | 13 +- .../storage/ndb/include/portlib/NdbTick.h | 13 +- .../storage/ndb/include/portlib/ndb_daemon.h | 13 +- .../ndb/include/portlib/ndb_prefetch.h | 13 +- .../storage/ndb/include/portlib/ndb_socket.h | 13 +- .../ndb/include/portlib/ndb_socket_poller.h | 13 +- .../ndb/include/portlib/ndb_socket_posix.h | 13 +- .../ndb/include/portlib/ndb_socket_win32.h | 13 +- .../transporter/TransporterCallback.hpp | 13 +- .../transporter/TransporterDefinitions.hpp | 13 +- .../transporter/TransporterRegistry.hpp | 13 +- .../storage/ndb/include/util/BaseString.hpp | 13 +- .../storage/ndb/include/util/Bitmask.hpp | 13 +- .../storage/ndb/include/util/ConfigValues.hpp | 13 +- .../storage/ndb/include/util/File.hpp | 13 +- .../storage/ndb/include/util/HashMap.hpp | 13 +- .../storage/ndb/include/util/InputStream.hpp | 13 +- .../storage/ndb/include/util/NdbAutoPtr.hpp | 13 +- .../storage/ndb/include/util/NdbOut.hpp | 13 +- .../storage/ndb/include/util/NdbPack.hpp | 13 +- .../storage/ndb/include/util/NdbSqlUtil.hpp | 13 +- .../storage/ndb/include/util/NdbTap.hpp | 13 +- .../storage/ndb/include/util/NdbTypesUtil.hpp | 13 +- .../storage/ndb/include/util/OutputStream.hpp | 13 +- .../storage/ndb/include/util/Parser.hpp | 13 +- .../storage/ndb/include/util/Properties.hpp | 13 +- .../ndb/include/util/SimpleProperties.hpp | 13 +- .../ndb/include/util/SocketAuthenticator.hpp | 13 +- .../storage/ndb/include/util/SocketClient.hpp | 13 +- .../storage/ndb/include/util/SocketServer.hpp | 13 +- .../ndb/include/util/SparseBitmask.hpp | 13 +- .../storage/ndb/include/util/UtilBuffer.hpp | 13 +- .../storage/ndb/include/util/Vector.hpp | 13 +- .../ndb/include/util/basestring_vsnprintf.h | 13 +- .../storage/ndb/include/util/md5_hash.hpp | 13 +- .../storage/ndb/include/util/ndb_base64.h | 13 +- .../storage/ndb/include/util/ndb_opts.h | 13 +- .../storage/ndb/include/util/ndb_rand.h | 13 +- .../storage/ndb/include/util/ndbzio.h | 13 +- .../storage/ndb/include/util/random.h | 13 +- .../storage/ndb/include/util/socket_io.h | 13 +- .../storage/ndb/include/util/uucode.h | 13 +- .../storage/ndb/include/util/version.h | 13 +- .../storage/ndb/ndb_configure.cmake | 17 +- .../storage/ndb/ndbapi-examples/Makefile | 13 +- .../ndbapi-examples/mgmapi_logevent/Makefile | 13 +- .../ndbapi-examples/mgmapi_logevent/main.cpp | 13 +- .../ndbapi-examples/mgmapi_logevent2/Makefile | 13 +- .../ndbapi-examples/mgmapi_logevent2/main.cpp | 13 +- .../ndb/ndbapi-examples/ndbapi_async/Makefile | 13 +- .../ndbapi_async/ndbapi_async.cpp | 13 +- .../ndbapi-examples/ndbapi_async1/Makefile | 13 +- .../ndbapi_async1/ndbapi_async1.cpp | 13 +- .../ndb/ndbapi-examples/ndbapi_blob/Makefile | 13 +- .../ndbapi_blob/ndbapi_blob.cpp | 13 +- .../ndbapi_blob_ndbrecord/Makefile | 13 +- .../ndbapi_blob_ndbrecord/main.cpp | 13 +- .../ndb/ndbapi-examples/ndbapi_event/Makefile | 13 +- .../ndbapi_event/ndbapi_event.cpp | 13 +- .../ndbapi_multi_cursor/main.cpp | 13 +- .../ndbapi_recattr_vs_record/Makefile | 13 +- .../ndbapi_recattr_vs_record/main.cpp | 13 +- .../ndbapi-examples/ndbapi_retries/Makefile | 13 +- .../ndbapi_retries/ndbapi_retries.cpp | 13 +- .../ndbapi_s_i_ndbrecord/Makefile | 13 +- .../ndbapi_s_i_ndbrecord/main.cpp | 13 +- .../ndb/ndbapi-examples/ndbapi_scan/Makefile | 13 +- .../ndbapi_scan/ndbapi_scan.cpp | 13 +- .../ndbapi-examples/ndbapi_simple/Makefile | 13 +- .../ndbapi_simple/ndbapi_simple.cpp | 13 +- .../ndbapi_simple_dual/Makefile | 13 +- .../ndbapi_simple_dual/main.cpp | 13 +- .../ndbapi_simple_index/Makefile | 13 +- .../ndbapi_simple_index/main.cpp | 13 +- .../storage/ndb/src/CMakeLists.txt | 13 +- .../storage/ndb/src/common/CMakeLists.txt | 13 +- .../ndb/src/common/debugger/BlockNames.cpp | 13 +- .../ndb/src/common/debugger/CMakeLists.txt | 13 +- .../ndb/src/common/debugger/DebuggerNames.cpp | 13 +- .../ndb/src/common/debugger/EventLogger.cpp | 13 +- .../common/debugger/SignalLoggerManager.cpp | 13 +- .../common/debugger/signaldata/AccLock.cpp | 13 +- .../common/debugger/signaldata/AlterIndx.cpp | 13 +- .../debugger/signaldata/AlterIndxImpl.cpp | 13 +- .../common/debugger/signaldata/AlterTab.cpp | 13 +- .../common/debugger/signaldata/AlterTable.cpp | 13 +- .../common/debugger/signaldata/ApiVersion.cpp | 13 +- .../common/debugger/signaldata/BackupImpl.cpp | 13 +- .../debugger/signaldata/BackupSignalData.cpp | 13 +- .../common/debugger/signaldata/BuildIndx.cpp | 13 +- .../debugger/signaldata/BuildIndxImpl.cpp | 13 +- .../common/debugger/signaldata/CMakeLists.txt | 13 +- .../debugger/signaldata/CloseComReqConf.cpp | 13 +- .../common/debugger/signaldata/CntrStart.cpp | 13 +- .../common/debugger/signaldata/ContinueB.cpp | 13 +- .../common/debugger/signaldata/CopyGCI.cpp | 13 +- .../common/debugger/signaldata/CreateEvnt.cpp | 13 +- .../signaldata/CreateFragmentation.cpp | 13 +- .../common/debugger/signaldata/CreateIndx.cpp | 13 +- .../debugger/signaldata/CreateIndxImpl.cpp | 13 +- .../common/debugger/signaldata/CreateTab.cpp | 13 +- .../debugger/signaldata/CreateTable.cpp | 13 +- .../common/debugger/signaldata/CreateTrig.cpp | 13 +- .../debugger/signaldata/CreateTrigImpl.cpp | 13 +- .../common/debugger/signaldata/DbinfoScan.cpp | 13 +- .../debugger/signaldata/DictTabInfo.cpp | 13 +- .../debugger/signaldata/DihContinueB.cpp | 13 +- .../signaldata/DihSwitchReplicaReq.cpp | 13 +- .../debugger/signaldata/DisconnectRep.cpp | 13 +- .../common/debugger/signaldata/DropIndx.cpp | 13 +- .../debugger/signaldata/DropIndxImpl.cpp | 13 +- .../common/debugger/signaldata/DropTab.cpp | 13 +- .../common/debugger/signaldata/DropTable.cpp | 13 +- .../common/debugger/signaldata/DropTrig.cpp | 13 +- .../debugger/signaldata/DropTrigImpl.cpp | 13 +- .../common/debugger/signaldata/FailRep.cpp | 13 +- .../debugger/signaldata/FireTrigOrd.cpp | 13 +- .../debugger/signaldata/FsAppendReq.cpp | 13 +- .../common/debugger/signaldata/FsCloseReq.cpp | 13 +- .../src/common/debugger/signaldata/FsConf.cpp | 13 +- .../common/debugger/signaldata/FsOpenReq.cpp | 13 +- .../debugger/signaldata/FsReadWriteReq.cpp | 13 +- .../src/common/debugger/signaldata/FsRef.cpp | 13 +- .../src/common/debugger/signaldata/GCP.cpp | 13 +- .../common/debugger/signaldata/GetConfig.cpp | 13 +- .../common/debugger/signaldata/GetTabInfo.cpp | 13 +- .../debugger/signaldata/IndexStatSignal.cpp | 13 +- .../debugger/signaldata/IndxAttrInfo.cpp | 13 +- .../debugger/signaldata/IndxKeyInfo.cpp | 13 +- .../src/common/debugger/signaldata/LCP.cpp | 13 +- .../debugger/signaldata/LocalRouteOrd.cpp | 13 +- .../common/debugger/signaldata/LqhFrag.cpp | 13 +- .../src/common/debugger/signaldata/LqhKey.cpp | 13 +- .../common/debugger/signaldata/LqhTrans.cpp | 13 +- .../common/debugger/signaldata/MasterLCP.cpp | 13 +- .../debugger/signaldata/NFCompleteRep.cpp | 13 +- .../common/debugger/signaldata/NdbSttor.cpp | 13 +- .../debugger/signaldata/NdbfsContinueB.cpp | 13 +- .../common/debugger/signaldata/NodePing.cpp | 13 +- .../debugger/signaldata/PackedSignal.cpp | 13 +- .../debugger/signaldata/PrepDropTab.cpp | 13 +- .../debugger/signaldata/PrepFailReqRef.cpp | 13 +- .../debugger/signaldata/ReadNodesConf.cpp | 13 +- .../common/debugger/signaldata/ScanFrag.cpp | 13 +- .../common/debugger/signaldata/ScanTab.cpp | 13 +- .../debugger/signaldata/SchemaTrans.cpp | 13 +- .../debugger/signaldata/SchemaTransImpl.cpp | 13 +- .../debugger/signaldata/SignalDataPrint.cpp | 13 +- .../debugger/signaldata/SignalDroppedRep.cpp | 13 +- .../debugger/signaldata/SignalNames.cpp | 13 +- .../common/debugger/signaldata/StartRec.cpp | 13 +- .../common/debugger/signaldata/SumaImpl.cpp | 13 +- .../debugger/signaldata/SystemError.cpp | 13 +- .../src/common/debugger/signaldata/TcIndx.cpp | 13 +- .../common/debugger/signaldata/TcKeyConf.cpp | 13 +- .../common/debugger/signaldata/TcKeyRef.cpp | 13 +- .../common/debugger/signaldata/TcKeyReq.cpp | 13 +- .../debugger/signaldata/TcRollbackRep.cpp | 13 +- .../debugger/signaldata/TrigAttrInfo.cpp | 13 +- .../common/debugger/signaldata/TupCommit.cpp | 13 +- .../src/common/debugger/signaldata/TupKey.cpp | 13 +- .../common/debugger/signaldata/TuxMaint.cpp | 13 +- .../common/debugger/signaldata/UtilDelete.cpp | 13 +- .../debugger/signaldata/UtilExecute.cpp | 13 +- .../common/debugger/signaldata/UtilLock.cpp | 13 +- .../debugger/signaldata/UtilPrepare.cpp | 13 +- .../debugger/signaldata/UtilSequence.cpp | 13 +- .../src/common/debugger/signaldata/print.awk | 13 +- .../ndb/src/common/logger/CMakeLists.txt | 13 +- .../src/common/logger/ConsoleLogHandler.cpp | 13 +- .../ndb/src/common/logger/EventLogHandler.cpp | 13 +- .../ndb/src/common/logger/EventLogHandler.hpp | 13 +- .../ndb/src/common/logger/FileLogHandler.cpp | 13 +- .../ndb/src/common/logger/LogHandler.cpp | 13 +- .../ndb/src/common/logger/LogHandlerList.cpp | 13 +- .../ndb/src/common/logger/LogHandlerList.hpp | 13 +- .../storage/ndb/src/common/logger/Logger.cpp | 13 +- .../ndb/src/common/logger/SysLogHandler.cpp | 13 +- .../storage/ndb/src/common/logger/message.h | 25 +- .../ndb/src/common/mgmcommon/CMakeLists.txt | 13 +- .../src/common/mgmcommon/ConfigRetriever.cpp | 13 +- .../ndb/src/common/mgmcommon/IPCConfig.cpp | 13 +- .../src/common/mgmcommon/printConfig/Makefile | 13 +- .../mgmcommon/printConfig/printConfig.cpp | 13 +- .../ndb/src/common/portlib/CMakeLists.txt | 13 +- .../ndb/src/common/portlib/NdbCondition.c | 13 +- .../ndb/src/common/portlib/NdbConfig.c | 13 +- .../storage/ndb/src/common/portlib/NdbDir.cpp | 13 +- .../storage/ndb/src/common/portlib/NdbEnv.c | 13 +- .../storage/ndb/src/common/portlib/NdbHost.c | 13 +- .../storage/ndb/src/common/portlib/NdbMem.c | 13 +- .../storage/ndb/src/common/portlib/NdbMutex.c | 13 +- .../ndb/src/common/portlib/NdbNuma.cpp | 13 +- .../ndb/src/common/portlib/NdbPortLibTest.cpp | 13 +- .../storage/ndb/src/common/portlib/NdbTCP.cpp | 13 +- .../ndb/src/common/portlib/NdbThread.c | 13 +- .../storage/ndb/src/common/portlib/NdbTick.c | 13 +- .../storage/ndb/src/common/portlib/memtest.c | 13 +- .../ndb/src/common/portlib/mmstest.cpp | 13 +- .../ndb/src/common/portlib/munmaptest.cpp | 13 +- .../ndb/src/common/portlib/ndb_daemon.cc | 13 +- .../ndb/src/common/portlib/ndb_socket.cpp | 13 +- .../ndb/src/common/transporter/CMakeLists.txt | 13 +- .../transporter/Loopback_Transporter.cpp | 13 +- .../transporter/Loopback_Transporter.hpp | 13 +- .../ndb/src/common/transporter/Packer.cpp | 13 +- .../ndb/src/common/transporter/Packer.hpp | 13 +- .../common/transporter/SCI_Transporter.cpp | 13 +- .../common/transporter/SCI_Transporter.hpp | 13 +- .../ndb/src/common/transporter/SHM_Buffer.hpp | 13 +- .../common/transporter/SHM_Transporter.cpp | 13 +- .../common/transporter/SHM_Transporter.hpp | 13 +- .../transporter/SHM_Transporter.unix.cpp | 13 +- .../transporter/SHM_Transporter.win32.cpp | 13 +- .../common/transporter/TCP_Transporter.cpp | 13 +- .../common/transporter/TCP_Transporter.hpp | 13 +- .../src/common/transporter/Transporter.cpp | 13 +- .../src/common/transporter/Transporter.hpp | 13 +- .../TransporterInternalDefinitions.hpp | 13 +- .../transporter/TransporterRegistry.cpp | 13 +- .../src/common/transporter/basictest/Makefile | 13 +- .../basictest/basicTransporterTest.cpp | 13 +- .../ndb/src/common/transporter/buddy.cpp | 13 +- .../ndb/src/common/transporter/buddy.hpp | 13 +- .../common/transporter/failoverSCI/Makefile | 13 +- .../transporter/failoverSCI/failoverSCI.cpp | 13 +- .../src/common/transporter/perftest/Makefile | 13 +- .../perftest/perfTransporterTest.cpp | 13 +- .../src/common/transporter/priotest/Makefile | 13 +- .../transporter/priotest/prioSCI/Makefile | 13 +- .../transporter/priotest/prioSCI/prioSCI.cpp | 13 +- .../transporter/priotest/prioSHM/Makefile | 13 +- .../transporter/priotest/prioSHM/prioSHM.cpp | 13 +- .../transporter/priotest/prioTCP/Makefile | 13 +- .../transporter/priotest/prioTCP/prioTCP.cpp | 13 +- .../priotest/prioTransporterTest.cpp | 13 +- .../priotest/prioTransporterTest.hpp | 13 +- .../ndb/src/common/util/BaseString.cpp | 13 +- .../storage/ndb/src/common/util/Bitmask.cpp | 13 +- .../ndb/src/common/util/CMakeLists.txt | 13 +- .../ndb/src/common/util/ConfigValues.cpp | 13 +- .../storage/ndb/src/common/util/File.cpp | 13 +- .../storage/ndb/src/common/util/HashMap.cpp | 13 +- .../ndb/src/common/util/InputStream.cpp | 13 +- .../storage/ndb/src/common/util/NdbOut.cpp | 13 +- .../storage/ndb/src/common/util/NdbPack.cpp | 13 +- .../ndb/src/common/util/NdbSqlUtil.cpp | 13 +- .../ndb/src/common/util/OutputStream.cpp | 13 +- .../storage/ndb/src/common/util/Parser.cpp | 13 +- .../ndb/src/common/util/Properties.cpp | 13 +- .../ndb/src/common/util/SimpleProperties.cpp | 13 +- .../src/common/util/SocketAuthenticator.cpp | 13 +- .../ndb/src/common/util/SocketClient.cpp | 13 +- .../ndb/src/common/util/SocketServer.cpp | 13 +- .../ndb/src/common/util/SparseBitmask.cpp | 13 +- .../storage/ndb/src/common/util/Vector.cpp | 13 +- .../src/common/util/basestring_vsnprintf.c | 13 +- .../storage/ndb/src/common/util/md5_hash.cpp | 13 +- .../storage/ndb/src/common/util/ndb_init.cpp | 13 +- .../storage/ndb/src/common/util/ndb_opts.c | 13 +- .../storage/ndb/src/common/util/ndb_rand.c | 13 +- .../ndb/src/common/util/ndb_show_compat.cpp | 13 +- .../storage/ndb/src/common/util/ndbzio.c | 13 +- .../ndb/src/common/util/parse_mask.hpp | 13 +- .../storage/ndb/src/common/util/random.c | 13 +- .../storage/ndb/src/common/util/require.c | 13 +- .../storage/ndb/src/common/util/socket_io.cpp | 13 +- .../storage/ndb/src/common/util/strdup.c | 13 +- .../src/common/util/testConfigValues/Makefile | 13 +- .../testConfigValues/testConfigValues.cpp | 13 +- .../src/common/util/testProperties/Makefile | 13 +- .../util/testProperties/testProperties.cpp | 13 +- .../common/util/testSimpleProperties/Makefile | 13 +- .../util/testSimpleProperties/sp_test.cpp | 13 +- .../storage/ndb/src/common/util/uucode.c | 13 +- .../storage/ndb/src/common/util/version.cpp | 13 +- .../storage/ndb/src/cw/cpcd/APIService.cpp | 13 +- .../storage/ndb/src/cw/cpcd/APIService.hpp | 13 +- .../storage/ndb/src/cw/cpcd/CMakeLists.txt | 13 +- .../storage/ndb/src/cw/cpcd/CPCD.cpp | 13 +- .../storage/ndb/src/cw/cpcd/CPCD.hpp | 13 +- .../storage/ndb/src/cw/cpcd/Monitor.cpp | 13 +- .../storage/ndb/src/cw/cpcd/Process.cpp | 13 +- .../storage/ndb/src/cw/cpcd/common.cpp | 13 +- .../storage/ndb/src/cw/cpcd/common.hpp | 13 +- .../storage/ndb/src/cw/cpcd/main.cpp | 13 +- .../storage/ndb/src/kernel/CMakeLists.txt | 13 +- .../storage/ndb/src/kernel/SimBlockList.cpp | 13 +- .../storage/ndb/src/kernel/angel.cpp | 13 +- .../storage/ndb/src/kernel/angel.hpp | 13 +- .../ndb/src/kernel/blocks/CMakeLists.txt | 13 +- .../ndb/src/kernel/blocks/ERROR_codes.txt | 13 +- .../ndb/src/kernel/blocks/LocalProxy.cpp | 13 +- .../ndb/src/kernel/blocks/LocalProxy.hpp | 13 +- .../ndb/src/kernel/blocks/PgmanProxy.cpp | 13 +- .../ndb/src/kernel/blocks/PgmanProxy.hpp | 13 +- .../ndb/src/kernel/blocks/RestoreProxy.cpp | 13 +- .../ndb/src/kernel/blocks/RestoreProxy.hpp | 13 +- .../ndb/src/kernel/blocks/backup/Backup.cpp | 13 +- .../ndb/src/kernel/blocks/backup/Backup.hpp | 13 +- .../src/kernel/blocks/backup/BackupFormat.hpp | 13 +- .../src/kernel/blocks/backup/BackupInit.cpp | 13 +- .../src/kernel/blocks/backup/BackupProxy.cpp | 13 +- .../src/kernel/blocks/backup/BackupProxy.hpp | 13 +- .../src/kernel/blocks/backup/CMakeLists.txt | 13 +- .../ndb/src/kernel/blocks/backup/FsBuffer.hpp | 13 +- .../ndb/src/kernel/blocks/backup/read.cpp | 13 +- .../ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp | 13 +- .../ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp | 13 +- .../ndb/src/kernel/blocks/dbacc/Dbacc.hpp | 13 +- .../ndb/src/kernel/blocks/dbacc/DbaccInit.cpp | 13 +- .../ndb/src/kernel/blocks/dbacc/DbaccMain.cpp | 13 +- .../src/kernel/blocks/dbacc/DbaccProxy.cpp | 13 +- .../src/kernel/blocks/dbacc/DbaccProxy.hpp | 13 +- .../src/kernel/blocks/dbdict/CMakeLists.txt | 13 +- .../ndb/src/kernel/blocks/dbdict/Dbdict.cpp | 13 +- .../ndb/src/kernel/blocks/dbdict/Dbdict.hpp | 13 +- .../kernel/blocks/dbdict/Master_AddTable.sfl | 13 +- .../src/kernel/blocks/dbdict/SchemaFile.hpp | 13 +- .../kernel/blocks/dbdict/Slave_AddTable.sfl | 13 +- .../kernel/blocks/dbdict/printSchemaFile.cpp | 13 +- .../src/kernel/blocks/dbdih/CMakeLists.txt | 13 +- .../ndb/src/kernel/blocks/dbdih/Dbdih.hpp | 13 +- .../ndb/src/kernel/blocks/dbdih/DbdihInit.cpp | 13 +- .../ndb/src/kernel/blocks/dbdih/DbdihMain.cpp | 13 +- .../ndb/src/kernel/blocks/dbdih/Sysfile.hpp | 13 +- .../src/kernel/blocks/dbdih/printSysfile.cpp | 13 +- .../ndb/src/kernel/blocks/dbinfo/Dbinfo.cpp | 13 +- .../ndb/src/kernel/blocks/dbinfo/Dbinfo.hpp | 13 +- .../src/kernel/blocks/dblqh/CMakeLists.txt | 13 +- .../ndb/src/kernel/blocks/dblqh/Dblqh.hpp | 13 +- .../src/kernel/blocks/dblqh/DblqhCommon.cpp | 13 +- .../src/kernel/blocks/dblqh/DblqhCommon.hpp | 13 +- .../ndb/src/kernel/blocks/dblqh/DblqhInit.cpp | 13 +- .../ndb/src/kernel/blocks/dblqh/DblqhMain.cpp | 13 +- .../src/kernel/blocks/dblqh/DblqhProxy.cpp | 13 +- .../src/kernel/blocks/dblqh/DblqhProxy.hpp | 13 +- .../blocks/dblqh/redoLogReader/reader.cpp | 13 +- .../blocks/dblqh/redoLogReader/records.cpp | 13 +- .../blocks/dblqh/redoLogReader/records.hpp | 13 +- .../ndb/src/kernel/blocks/dbspj/Dbspj.hpp | 13 +- .../ndb/src/kernel/blocks/dbspj/DbspjInit.cpp | 13 +- .../ndb/src/kernel/blocks/dbspj/DbspjMain.cpp | 13 +- .../src/kernel/blocks/dbspj/DbspjProxy.cpp | 13 +- .../src/kernel/blocks/dbspj/DbspjProxy.hpp | 13 +- .../ndb/src/kernel/blocks/dbtc/Dbtc.hpp | 13 +- .../ndb/src/kernel/blocks/dbtc/DbtcInit.cpp | 13 +- .../ndb/src/kernel/blocks/dbtc/DbtcMain.cpp | 13 +- .../ndb/src/kernel/blocks/dbtc/DbtcProxy.cpp | 13 +- .../ndb/src/kernel/blocks/dbtc/DbtcProxy.hpp | 13 +- .../kernel/blocks/dbtup/AttributeOffset.hpp | 13 +- .../src/kernel/blocks/dbtup/CMakeLists.txt | 13 +- .../ndb/src/kernel/blocks/dbtup/Dbtup.hpp | 13 +- .../src/kernel/blocks/dbtup/DbtupAbort.cpp | 13 +- .../src/kernel/blocks/dbtup/DbtupBuffer.cpp | 13 +- .../src/kernel/blocks/dbtup/DbtupClient.cpp | 13 +- .../src/kernel/blocks/dbtup/DbtupCommit.cpp | 13 +- .../src/kernel/blocks/dbtup/DbtupDebug.cpp | 13 +- .../kernel/blocks/dbtup/DbtupDiskAlloc.cpp | 13 +- .../kernel/blocks/dbtup/DbtupExecQuery.cpp | 13 +- .../src/kernel/blocks/dbtup/DbtupFixAlloc.cpp | 13 +- .../ndb/src/kernel/blocks/dbtup/DbtupGen.cpp | 13 +- .../src/kernel/blocks/dbtup/DbtupIndex.cpp | 13 +- .../ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp | 13 +- .../src/kernel/blocks/dbtup/DbtupPagMan.cpp | 13 +- .../src/kernel/blocks/dbtup/DbtupPageMap.cpp | 13 +- .../src/kernel/blocks/dbtup/DbtupProxy.cpp | 13 +- .../src/kernel/blocks/dbtup/DbtupProxy.hpp | 13 +- .../src/kernel/blocks/dbtup/DbtupRoutines.cpp | 13 +- .../ndb/src/kernel/blocks/dbtup/DbtupScan.cpp | 13 +- .../blocks/dbtup/DbtupStoredProcDef.cpp | 13 +- .../kernel/blocks/dbtup/DbtupTabDesMan.cpp | 13 +- .../src/kernel/blocks/dbtup/DbtupTrigger.cpp | 13 +- .../src/kernel/blocks/dbtup/DbtupVarAlloc.cpp | 13 +- .../src/kernel/blocks/dbtup/Undo_buffer.cpp | 13 +- .../src/kernel/blocks/dbtup/Undo_buffer.hpp | 13 +- .../ndb/src/kernel/blocks/dbtup/test_dynbm.c | 13 +- .../src/kernel/blocks/dbtup/test_varpage.cpp | 13 +- .../ndb/src/kernel/blocks/dbtup/tuppage.cpp | 13 +- .../ndb/src/kernel/blocks/dbtup/tuppage.hpp | 13 +- .../ndb/src/kernel/blocks/dbtux/Dbtux.hpp | 13 +- .../src/kernel/blocks/dbtux/DbtuxBuild.cpp | 13 +- .../ndb/src/kernel/blocks/dbtux/DbtuxCmp.cpp | 13 +- .../src/kernel/blocks/dbtux/DbtuxDebug.cpp | 13 +- .../ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp | 13 +- .../src/kernel/blocks/dbtux/DbtuxMaint.cpp | 13 +- .../ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp | 13 +- .../ndb/src/kernel/blocks/dbtux/DbtuxNode.cpp | 13 +- .../src/kernel/blocks/dbtux/DbtuxProxy.cpp | 13 +- .../src/kernel/blocks/dbtux/DbtuxProxy.hpp | 13 +- .../ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp | 13 +- .../src/kernel/blocks/dbtux/DbtuxSearch.cpp | 13 +- .../ndb/src/kernel/blocks/dbtux/DbtuxStat.cpp | 13 +- .../ndb/src/kernel/blocks/dbtux/DbtuxTree.cpp | 13 +- .../src/kernel/blocks/dbtux/tuxstatus.html | 13 +- .../ndb/src/kernel/blocks/dbutil/DbUtil.cpp | 13 +- .../ndb/src/kernel/blocks/dbutil/DbUtil.hpp | 13 +- .../ndb/src/kernel/blocks/diskpage.cpp | 13 +- .../ndb/src/kernel/blocks/diskpage.hpp | 13 +- .../storage/ndb/src/kernel/blocks/lgman.cpp | 13 +- .../storage/ndb/src/kernel/blocks/lgman.hpp | 13 +- .../storage/ndb/src/kernel/blocks/mutexes.hpp | 13 +- .../ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp | 13 +- .../src/kernel/blocks/ndbcntr/NdbcntrInit.cpp | 13 +- .../src/kernel/blocks/ndbcntr/NdbcntrMain.cpp | 13 +- .../kernel/blocks/ndbcntr/NdbcntrSysTable.cpp | 13 +- .../ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp | 13 +- .../ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp | 13 +- .../ndbfs/AsyncFileTest/AsyncFileTest.cpp | 13 +- .../blocks/ndbfs/AsyncFileTest/Makefile | 13 +- .../src/kernel/blocks/ndbfs/AsyncIoThread.cpp | 13 +- .../src/kernel/blocks/ndbfs/AsyncIoThread.hpp | 13 +- .../ndb/src/kernel/blocks/ndbfs/Filename.cpp | 13 +- .../ndb/src/kernel/blocks/ndbfs/Filename.hpp | 13 +- .../src/kernel/blocks/ndbfs/MemoryChannel.cpp | 13 +- .../src/kernel/blocks/ndbfs/MemoryChannel.hpp | 13 +- .../blocks/ndbfs/MemoryChannelTest/Makefile | 13 +- .../MemoryChannelTest/MemoryChannelTest.cpp | 13 +- .../ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp | 13 +- .../ndb/src/kernel/blocks/ndbfs/Ndbfs.hpp | 13 +- .../ndb/src/kernel/blocks/ndbfs/OpenFiles.hpp | 13 +- .../ndb/src/kernel/blocks/ndbfs/Pool.hpp | 13 +- .../kernel/blocks/ndbfs/PosixAsyncFile.cpp | 13 +- .../kernel/blocks/ndbfs/PosixAsyncFile.hpp | 13 +- .../ndb/src/kernel/blocks/ndbfs/VoidFs.cpp | 13 +- .../kernel/blocks/ndbfs/Win32AsyncFile.cpp | 13 +- .../kernel/blocks/ndbfs/Win32AsyncFile.hpp | 13 +- .../storage/ndb/src/kernel/blocks/pgman.cpp | 13 +- .../storage/ndb/src/kernel/blocks/pgman.hpp | 13 +- .../ndb/src/kernel/blocks/print_file.cpp | 13 +- .../ndb/src/kernel/blocks/qmgr/Qmgr.hpp | 13 +- .../ndb/src/kernel/blocks/qmgr/QmgrInit.cpp | 13 +- .../ndb/src/kernel/blocks/qmgr/QmgrMain.cpp | 13 +- .../ndb/src/kernel/blocks/qmgr/timer.hpp | 13 +- .../ndb/src/kernel/blocks/record_types.hpp | 13 +- .../storage/ndb/src/kernel/blocks/restore.cpp | 13 +- .../storage/ndb/src/kernel/blocks/restore.hpp | 13 +- .../ndb/src/kernel/blocks/suma/Suma.cpp | 13 +- .../ndb/src/kernel/blocks/suma/Suma.hpp | 13 +- .../ndb/src/kernel/blocks/suma/SumaInit.cpp | 13 +- .../ndb/src/kernel/blocks/trix/Trix.cpp | 13 +- .../ndb/src/kernel/blocks/trix/Trix.hpp | 13 +- .../storage/ndb/src/kernel/blocks/tsman.cpp | 13 +- .../storage/ndb/src/kernel/blocks/tsman.hpp | 13 +- .../ndb/src/kernel/error/CMakeLists.txt | 13 +- .../src/kernel/error/ErrorHandlingMacros.hpp | 13 +- .../ndb/src/kernel/error/ErrorReporter.cpp | 13 +- .../ndb/src/kernel/error/ErrorReporter.hpp | 13 +- .../ndb/src/kernel/error/TimeModule.cpp | 13 +- .../ndb/src/kernel/error/TimeModule.hpp | 13 +- .../ndb/src/kernel/error/ndbd_exit_codes.c | 13 +- .../storage/ndb/src/kernel/main.cpp | 13 +- .../storage/ndb/src/kernel/ndbd.cpp | 13 +- .../storage/ndb/src/kernel/ndbd.hpp | 13 +- .../storage/ndb/src/kernel/vm/ArenaPool.cpp | 13 +- .../storage/ndb/src/kernel/vm/ArenaPool.hpp | 13 +- .../storage/ndb/src/kernel/vm/Array.hpp | 13 +- .../storage/ndb/src/kernel/vm/ArrayPool.hpp | 13 +- .../storage/ndb/src/kernel/vm/CArray.hpp | 13 +- .../storage/ndb/src/kernel/vm/CMakeLists.txt | 13 +- .../storage/ndb/src/kernel/vm/Callback.hpp | 13 +- .../src/kernel/vm/ClusterConfiguration.cpp | 13 +- .../src/kernel/vm/ClusterConfiguration.hpp | 13 +- .../ndb/src/kernel/vm/Configuration.cpp | 13 +- .../ndb/src/kernel/vm/Configuration.hpp | 13 +- .../storage/ndb/src/kernel/vm/DLCFifoList.hpp | 13 +- .../ndb/src/kernel/vm/DLCHashTable.hpp | 13 +- .../storage/ndb/src/kernel/vm/DLFifoList.hpp | 13 +- .../storage/ndb/src/kernel/vm/DLHashTable.hpp | 13 +- .../ndb/src/kernel/vm/DLHashTable2.hpp | 13 +- .../storage/ndb/src/kernel/vm/DLList.hpp | 13 +- .../storage/ndb/src/kernel/vm/DataBuffer.hpp | 13 +- .../storage/ndb/src/kernel/vm/DataBuffer2.hpp | 13 +- .../storage/ndb/src/kernel/vm/DynArr256.cpp | 13 +- .../storage/ndb/src/kernel/vm/DynArr256.hpp | 13 +- .../storage/ndb/src/kernel/vm/Emulator.cpp | 13 +- .../storage/ndb/src/kernel/vm/Emulator.hpp | 13 +- .../ndb/src/kernel/vm/FastScheduler.cpp | 13 +- .../ndb/src/kernel/vm/FastScheduler.hpp | 13 +- .../storage/ndb/src/kernel/vm/GlobalData.cpp | 13 +- .../storage/ndb/src/kernel/vm/GlobalData.hpp | 13 +- .../ndb/src/kernel/vm/KeyDescriptor.hpp | 13 +- .../storage/ndb/src/kernel/vm/KeyTable.hpp | 13 +- .../storage/ndb/src/kernel/vm/KeyTable2.hpp | 13 +- .../ndb/src/kernel/vm/KeyTable2Ref.hpp | 13 +- .../storage/ndb/src/kernel/vm/LinearPool.hpp | 13 +- .../storage/ndb/src/kernel/vm/LockQueue.cpp | 13 +- .../storage/ndb/src/kernel/vm/LockQueue.hpp | 13 +- .../storage/ndb/src/kernel/vm/LongSignal.cpp | 13 +- .../storage/ndb/src/kernel/vm/LongSignal.hpp | 13 +- .../ndb/src/kernel/vm/LongSignalImpl.hpp | 13 +- .../ndb/src/kernel/vm/LongSignal_mt.cpp | 13 +- .../ndb/src/kernel/vm/LongSignal_nonmt.cpp | 13 +- .../storage/ndb/src/kernel/vm/Mutex.cpp | 13 +- .../storage/ndb/src/kernel/vm/Mutex.hpp | 13 +- .../storage/ndb/src/kernel/vm/NdbSeqLock.hpp | 13 +- .../ndb/src/kernel/vm/NdbdSuperPool.cpp | 13 +- .../ndb/src/kernel/vm/NdbdSuperPool.hpp | 13 +- .../storage/ndb/src/kernel/vm/Ndbinfo.cpp | 13 +- .../storage/ndb/src/kernel/vm/Ndbinfo.hpp | 13 +- .../ndb/src/kernel/vm/NdbinfoTables.cpp | 13 +- .../storage/ndb/src/kernel/vm/Pool.cpp | 13 +- .../storage/ndb/src/kernel/vm/Pool.hpp | 13 +- .../storage/ndb/src/kernel/vm/Prio.hpp | 13 +- .../storage/ndb/src/kernel/vm/RWPool.cpp | 13 +- .../storage/ndb/src/kernel/vm/RWPool.hpp | 13 +- .../ndb/src/kernel/vm/RequestTracker.hpp | 13 +- .../storage/ndb/src/kernel/vm/Rope.cpp | 13 +- .../storage/ndb/src/kernel/vm/Rope.hpp | 13 +- .../storage/ndb/src/kernel/vm/SLFifoList.hpp | 13 +- .../storage/ndb/src/kernel/vm/SLList.hpp | 13 +- .../storage/ndb/src/kernel/vm/SafeCounter.cpp | 13 +- .../storage/ndb/src/kernel/vm/SafeCounter.hpp | 13 +- .../storage/ndb/src/kernel/vm/SafeMutex.cpp | 13 +- .../storage/ndb/src/kernel/vm/SafeMutex.hpp | 13 +- .../ndb/src/kernel/vm/SectionReader.cpp | 13 +- .../ndb/src/kernel/vm/SectionReader.hpp | 13 +- .../ndb/src/kernel/vm/SignalCounter.hpp | 13 +- .../ndb/src/kernel/vm/SimBlockList.hpp | 13 +- .../src/kernel/vm/SimplePropertiesSection.cpp | 13 +- .../kernel/vm/SimplePropertiesSection_mt.cpp | 13 +- .../vm/SimplePropertiesSection_nonmt.cpp | 13 +- .../ndb/src/kernel/vm/SimulatedBlock.cpp | 13 +- .../ndb/src/kernel/vm/SimulatedBlock.hpp | 13 +- .../ndb/src/kernel/vm/SimulatedBlock_mt.cpp | 13 +- .../src/kernel/vm/SimulatedBlock_nonmt.cpp | 13 +- .../storage/ndb/src/kernel/vm/SuperPool.cpp | 13 +- .../storage/ndb/src/kernel/vm/SuperPool.hpp | 13 +- .../ndb/src/kernel/vm/ThreadConfig.cpp | 13 +- .../ndb/src/kernel/vm/ThreadConfig.hpp | 13 +- .../storage/ndb/src/kernel/vm/TimeQueue.cpp | 13 +- .../storage/ndb/src/kernel/vm/TimeQueue.hpp | 13 +- .../ndb/src/kernel/vm/TransporterCallback.cpp | 13 +- .../kernel/vm/TransporterCallbackKernel.hpp | 13 +- .../src/kernel/vm/TransporterCallback_mt.cpp | 13 +- .../kernel/vm/TransporterCallback_nonmt.cpp | 13 +- .../storage/ndb/src/kernel/vm/VMSignal.cpp | 13 +- .../storage/ndb/src/kernel/vm/VMSignal.hpp | 13 +- .../storage/ndb/src/kernel/vm/WOPool.cpp | 13 +- .../storage/ndb/src/kernel/vm/WOPool.hpp | 13 +- .../storage/ndb/src/kernel/vm/WaitQueue.hpp | 13 +- .../storage/ndb/src/kernel/vm/WatchDog.cpp | 13 +- .../storage/ndb/src/kernel/vm/WatchDog.hpp | 13 +- .../ndb/src/kernel/vm/al_test/Makefile | 13 +- .../src/kernel/vm/al_test/arrayListTest.cpp | 13 +- .../src/kernel/vm/al_test/arrayPoolTest.cpp | 13 +- .../ndb/src/kernel/vm/al_test/main.cpp | 13 +- .../storage/ndb/src/kernel/vm/bench_pool.cpp | 13 +- .../storage/ndb/src/kernel/vm/dummy_mt.cpp | 13 +- .../storage/ndb/src/kernel/vm/dummy_nonmt.cpp | 13 +- .../storage/ndb/src/kernel/vm/mt-asm.h | 13 +- .../storage/ndb/src/kernel/vm/mt.cpp | 13 +- .../storage/ndb/src/kernel/vm/mt.hpp | 13 +- .../ndb/src/kernel/vm/mt_thr_config.cpp | 13 +- .../ndb/src/kernel/vm/mt_thr_config.hpp | 13 +- .../storage/ndb/src/kernel/vm/ndbd_malloc.cpp | 13 +- .../storage/ndb/src/kernel/vm/ndbd_malloc.hpp | 13 +- .../ndb/src/kernel/vm/ndbd_malloc_impl.cpp | 13 +- .../ndb/src/kernel/vm/ndbd_malloc_impl.hpp | 13 +- .../storage/ndb/src/kernel/vm/pc.hpp | 13 +- .../ndb/src/kernel/vm/testCopy/Makefile | 13 +- .../storage/ndb/src/kernel/vm/testCopy/rr.cpp | 13 +- .../ndb/src/kernel/vm/testCopy/testCopy.cpp | 13 +- .../ndb/src/kernel/vm/testDataBuffer/Makefile | 13 +- .../vm/testDataBuffer/testDataBuffer.cpp | 13 +- .../src/kernel/vm/testLongSig/testLongSig.cpp | 13 +- .../vm/testSimplePropertiesSection/Makefile | 13 +- .../vm/testSimplePropertiesSection/test.cpp | 13 +- .../ndb/src/kernel/vm/testSuperPool.cpp | 13 +- .../storage/ndb/src/mgmapi/CMakeLists.txt | 13 +- .../storage/ndb/src/mgmapi/LocalConfig.cpp | 13 +- .../storage/ndb/src/mgmapi/LocalConfig.hpp | 13 +- .../storage/ndb/src/mgmapi/mgmapi.cpp | 13 +- .../ndb/src/mgmapi/mgmapi_configuration.cpp | 13 +- .../ndb/src/mgmapi/mgmapi_configuration.hpp | 13 +- .../storage/ndb/src/mgmapi/mgmapi_error.c | 13 +- .../storage/ndb/src/mgmapi/mgmapi_internal.h | 13 +- .../storage/ndb/src/mgmapi/ndb_logevent.cpp | 13 +- .../storage/ndb/src/mgmapi/ndb_logevent.hpp | 13 +- .../storage/ndb/src/mgmapi/test/keso.c | 13 +- .../storage/ndb/src/mgmapi/test/mgmSrvApi.cpp | 13 +- .../storage/ndb/src/mgmclient/CMakeLists.txt | 13 +- .../ndb/src/mgmclient/CommandInterpreter.cpp | 13 +- .../storage/ndb/src/mgmclient/main.cpp | 13 +- .../ndb/src/mgmclient/ndb_mgmclient.hpp | 13 +- .../ndb/src/mgmclient/test_cpcd/Makefile | 13 +- .../ndb/src/mgmclient/test_cpcd/test_cpcd.cpp | 13 +- .../storage/ndb/src/mgmsrv/CMakeLists.txt | 13 +- .../storage/ndb/src/mgmsrv/Config.cpp | 13 +- .../storage/ndb/src/mgmsrv/Config.hpp | 13 +- .../storage/ndb/src/mgmsrv/ConfigInfo.cpp | 13 +- .../storage/ndb/src/mgmsrv/ConfigInfo.hpp | 13 +- .../storage/ndb/src/mgmsrv/ConfigManager.cpp | 13 +- .../storage/ndb/src/mgmsrv/ConfigManager.hpp | 13 +- .../ndb/src/mgmsrv/ConfigSubscriber.hpp | 13 +- .../storage/ndb/src/mgmsrv/Defragger.hpp | 13 +- .../ndb/src/mgmsrv/InitConfigFileParser.cpp | 13 +- .../ndb/src/mgmsrv/InitConfigFileParser.hpp | 13 +- .../storage/ndb/src/mgmsrv/MgmtSrvr.cpp | 13 +- .../storage/ndb/src/mgmsrv/MgmtSrvr.hpp | 13 +- .../storage/ndb/src/mgmsrv/MgmtThread.hpp | 13 +- .../storage/ndb/src/mgmsrv/Services.cpp | 13 +- .../storage/ndb/src/mgmsrv/Services.hpp | 13 +- .../storage/ndb/src/mgmsrv/main.cpp | 13 +- .../storage/ndb/src/mgmsrv/mkconfig/Makefile | 13 +- .../ndb/src/mgmsrv/mkconfig/mkconfig.cpp | 13 +- .../storage/ndb/src/mgmsrv/ndb_mgmd_error.h | 13 +- .../storage/ndb/src/mgmsrv/testConfig.cpp | 13 +- .../storage/ndb/src/ndbapi/API.hpp | 13 +- .../storage/ndb/src/ndbapi/CMakeLists.txt | 13 +- .../storage/ndb/src/ndbapi/ClusterMgr.cpp | 13 +- .../storage/ndb/src/ndbapi/ClusterMgr.hpp | 13 +- .../storage/ndb/src/ndbapi/DictCache.cpp | 13 +- .../storage/ndb/src/ndbapi/DictCache.hpp | 13 +- .../storage/ndb/src/ndbapi/Ndb.cpp | 13 +- .../storage/ndb/src/ndbapi/NdbApiSignal.cpp | 13 +- .../storage/ndb/src/ndbapi/NdbApiSignal.hpp | 13 +- .../storage/ndb/src/ndbapi/NdbBlob.cpp | 13 +- .../storage/ndb/src/ndbapi/NdbBlobImpl.hpp | 13 +- .../storage/ndb/src/ndbapi/NdbDictionary.cpp | 13 +- .../ndb/src/ndbapi/NdbDictionaryImpl.cpp | 13 +- .../ndb/src/ndbapi/NdbDictionaryImpl.hpp | 13 +- .../storage/ndb/src/ndbapi/NdbErrorOut.cpp | 13 +- .../ndb/src/ndbapi/NdbEventOperation.cpp | 13 +- .../ndb/src/ndbapi/NdbEventOperationImpl.cpp | 13 +- .../ndb/src/ndbapi/NdbEventOperationImpl.hpp | 13 +- .../storage/ndb/src/ndbapi/NdbImpl.hpp | 13 +- .../ndb/src/ndbapi/NdbIndexOperation.cpp | 13 +- .../storage/ndb/src/ndbapi/NdbIndexStat.cpp | 13 +- .../ndb/src/ndbapi/NdbIndexStatFrmData.cpp | 13 +- .../ndb/src/ndbapi/NdbIndexStatImpl.cpp | 13 +- .../ndb/src/ndbapi/NdbIndexStatImpl.hpp | 13 +- .../storage/ndb/src/ndbapi/NdbInfo.cpp | 13 +- .../storage/ndb/src/ndbapi/NdbInfo.hpp | 13 +- .../storage/ndb/src/ndbapi/NdbInfoRecAttr.hpp | 13 +- .../ndb/src/ndbapi/NdbInfoScanOperation.cpp | 13 +- .../ndb/src/ndbapi/NdbInfoScanOperation.hpp | 13 +- .../ndb/src/ndbapi/NdbInterpretedCode.cpp | 13 +- .../storage/ndb/src/ndbapi/NdbLinHash.hpp | 13 +- .../storage/ndb/src/ndbapi/NdbOperation.cpp | 13 +- .../ndb/src/ndbapi/NdbOperationDefine.cpp | 13 +- .../ndb/src/ndbapi/NdbOperationExec.cpp | 13 +- .../ndb/src/ndbapi/NdbOperationInt.cpp | 13 +- .../ndb/src/ndbapi/NdbOperationScan.cpp | 13 +- .../ndb/src/ndbapi/NdbOperationSearch.cpp | 13 +- .../storage/ndb/src/ndbapi/NdbPool.cpp | 13 +- .../storage/ndb/src/ndbapi/NdbPoolImpl.cpp | 13 +- .../storage/ndb/src/ndbapi/NdbPoolImpl.hpp | 13 +- .../ndb/src/ndbapi/NdbQueryBuilder.cpp | 13 +- .../ndb/src/ndbapi/NdbQueryBuilder.hpp | 13 +- .../ndb/src/ndbapi/NdbQueryBuilderImpl.hpp | 13 +- .../ndb/src/ndbapi/NdbQueryOperation.cpp | 13 +- .../ndb/src/ndbapi/NdbQueryOperation.hpp | 13 +- .../ndb/src/ndbapi/NdbQueryOperationImpl.hpp | 13 +- .../storage/ndb/src/ndbapi/NdbRecAttr.cpp | 13 +- .../storage/ndb/src/ndbapi/NdbReceiver.cpp | 13 +- .../storage/ndb/src/ndbapi/NdbRecord.hpp | 13 +- .../storage/ndb/src/ndbapi/NdbScanFilter.cpp | 13 +- .../ndb/src/ndbapi/NdbScanOperation.cpp | 13 +- .../storage/ndb/src/ndbapi/NdbTransaction.cpp | 13 +- .../ndb/src/ndbapi/NdbTransactionScan.cpp | 13 +- .../storage/ndb/src/ndbapi/NdbUtil.cpp | 13 +- .../storage/ndb/src/ndbapi/NdbUtil.hpp | 13 +- .../storage/ndb/src/ndbapi/NdbWaiter.hpp | 13 +- .../storage/ndb/src/ndbapi/Ndberr.cpp | 13 +- .../storage/ndb/src/ndbapi/Ndbif.cpp | 13 +- .../storage/ndb/src/ndbapi/Ndbinit.cpp | 13 +- .../storage/ndb/src/ndbapi/Ndblist.cpp | 13 +- .../storage/ndb/src/ndbapi/ObjectMap.cpp | 13 +- .../storage/ndb/src/ndbapi/ObjectMap.hpp | 13 +- .../storage/ndb/src/ndbapi/SignalSender.cpp | 13 +- .../storage/ndb/src/ndbapi/SignalSender.hpp | 13 +- .../ndb/src/ndbapi/TransporterFacade.cpp | 13 +- .../ndb/src/ndbapi/TransporterFacade.hpp | 13 +- .../ndb/src/ndbapi/ndb_cluster_connection.cpp | 13 +- .../ndbapi/ndb_cluster_connection_impl.hpp | 13 +- .../storage/ndb/src/ndbapi/ndb_internal.cpp | 13 +- .../storage/ndb/src/ndbapi/ndb_internal.hpp | 13 +- .../storage/ndb/src/ndbapi/ndberror.c | 13 +- .../storage/ndb/src/ndbapi/ndberror_check.cpp | 13 +- .../storage/ndb/src/ndbapi/trp_buffer.cpp | 13 +- .../storage/ndb/src/ndbapi/trp_buffer.hpp | 13 +- .../storage/ndb/src/ndbapi/trp_client.cpp | 13 +- .../storage/ndb/src/ndbapi/trp_client.hpp | 13 +- .../storage/ndb/src/ndbapi/trp_node.cpp | 13 +- .../storage/ndb/src/ndbapi/trp_node.hpp | 13 +- .../storage/ndb/src/ndbjtie/CMakeLists.txt | 13 +- .../ndb/src/ndbjtie/MysqlUtilsWrapper.hpp | 13 +- .../storage/ndb/src/ndbjtie/NdbApiWrapper.hpp | 13 +- .../com/mysql/ndbjtie/mgmapi/MGMAPI.java | 13 +- .../com/mysql/ndbjtie/mysql/CharsetMap.java | 13 +- .../mysql/ndbjtie/mysql/CharsetMapConst.java | 13 +- .../com/mysql/ndbjtie/mysql/Utils.java | 13 +- .../com/mysql/ndbjtie/ndbapi/NDBAPI.java | 13 +- .../ndbjtie/com/mysql/ndbjtie/ndbapi/Ndb.java | 13 +- .../com/mysql/ndbjtie/ndbapi/NdbBlob.java | 13 +- .../mysql/ndbjtie/ndbapi/NdbBlobConst.java | 13 +- .../com/mysql/ndbjtie/ndbapi/NdbConst.java | 13 +- .../mysql/ndbjtie/ndbapi/NdbDictionary.java | 13 +- .../com/mysql/ndbjtie/ndbapi/NdbError.java | 13 +- .../mysql/ndbjtie/ndbapi/NdbErrorConst.java | 13 +- .../ndbjtie/ndbapi/NdbEventOperation.java | 13 +- .../ndbapi/NdbEventOperationConst.java | 13 +- .../ndbjtie/ndbapi/NdbIndexOperation.java | 13 +- .../ndbapi/NdbIndexOperationConst.java | 13 +- .../ndbjtie/ndbapi/NdbIndexScanOperation.java | 13 +- .../ndbapi/NdbIndexScanOperationConst.java | 13 +- .../ndbjtie/ndbapi/NdbInterpretedCode.java | 13 +- .../ndbapi/NdbInterpretedCodeConst.java | 13 +- .../mysql/ndbjtie/ndbapi/NdbLockHandle.java | 13 +- .../ndbjtie/ndbapi/NdbLockHandleConst.java | 13 +- .../mysql/ndbjtie/ndbapi/NdbOperation.java | 13 +- .../ndbjtie/ndbapi/NdbOperationConst.java | 13 +- .../com/mysql/ndbjtie/ndbapi/NdbRecAttr.java | 13 +- .../mysql/ndbjtie/ndbapi/NdbRecAttrConst.java | 13 +- .../com/mysql/ndbjtie/ndbapi/NdbRecord.java | 13 +- .../mysql/ndbjtie/ndbapi/NdbRecordConst.java | 13 +- .../mysql/ndbjtie/ndbapi/NdbScanFilter.java | 13 +- .../ndbjtie/ndbapi/NdbScanFilterConst.java | 13 +- .../ndbjtie/ndbapi/NdbScanOperation.java | 13 +- .../ndbjtie/ndbapi/NdbScanOperationConst.java | 13 +- .../mysql/ndbjtie/ndbapi/NdbTransaction.java | 13 +- .../ndbjtie/ndbapi/NdbTransactionConst.java | 13 +- .../ndbapi/Ndb_cluster_connection.java | 13 +- .../ndbapi/Ndb_cluster_connectionConst.java | 13 +- .../ndb/src/ndbjtie/jtie/CMakeLists.txt | 13 +- .../jtie/com/mysql/jtie/ArrayWrapper.java | 13 +- .../ndbjtie/jtie/com/mysql/jtie/Wrapper.java | 13 +- .../storage/ndb/src/ndbjtie/jtie/jtie.hpp | 13 +- .../ndb/src/ndbjtie/jtie/jtie_gcalls.hpp | 13 +- .../storage/ndb/src/ndbjtie/jtie/jtie_lib.hpp | 13 +- .../ndb/src/ndbjtie/jtie/jtie_stdint.h | 13 +- .../ndb/src/ndbjtie/jtie/jtie_tconv.hpp | 13 +- .../ndbjtie/jtie/jtie_tconv_array_impl.hpp | 13 +- .../ndb/src/ndbjtie/jtie/jtie_tconv_enum.hpp | 13 +- .../src/ndbjtie/jtie/jtie_tconv_enum_impl.hpp | 13 +- .../ndbjtie/jtie/jtie_tconv_idcache_impl.hpp | 13 +- .../ndb/src/ndbjtie/jtie/jtie_tconv_impl.hpp | 13 +- .../ndbjtie/jtie/jtie_tconv_impl_default.hpp | 13 +- .../src/ndbjtie/jtie/jtie_tconv_object.hpp | 13 +- .../ndbjtie/jtie/jtie_tconv_object_impl.hpp | 13 +- .../src/ndbjtie/jtie/jtie_tconv_ptrbybb.hpp | 13 +- .../ndbjtie/jtie/jtie_tconv_ptrbybb_impl.hpp | 13 +- .../src/ndbjtie/jtie/jtie_tconv_ptrbyval.hpp | 13 +- .../ndbjtie/jtie/jtie_tconv_ptrbyval_impl.hpp | 13 +- .../src/ndbjtie/jtie/jtie_tconv_refbybb.hpp | 13 +- .../ndbjtie/jtie/jtie_tconv_refbybb_impl.hpp | 13 +- .../src/ndbjtie/jtie/jtie_tconv_refbyval.hpp | 13 +- .../ndbjtie/jtie/jtie_tconv_refbyval_impl.hpp | 13 +- .../src/ndbjtie/jtie/jtie_tconv_string.hpp | 13 +- .../ndbjtie/jtie/jtie_tconv_string_impl.hpp | 13 +- .../ndbjtie/jtie/jtie_tconv_utils_impl.hpp | 13 +- .../ndb/src/ndbjtie/jtie/jtie_tconv_value.hpp | 13 +- .../ndbjtie/jtie/jtie_tconv_value_impl.hpp | 13 +- .../src/ndbjtie/jtie/jtie_tconv_vwidth.hpp | 13 +- .../src/ndbjtie/jtie/jtie_tconv_xwidth.hpp | 13 +- .../ndb/src/ndbjtie/jtie/test/CMakeLists.txt | 13 +- .../src/ndbjtie/jtie/test/jtie_unit_tests-t | 13 +- .../ndb/src/ndbjtie/jtie/test/myapi/myapi.cpp | 13 +- .../ndb/src/ndbjtie/jtie/test/myapi/myapi.hpp | 13 +- .../ndbjtie/jtie/test/myapi/myapi_test.cpp | 13 +- .../ndbjtie/jtie/test/myjapi/CMakeLists.txt | 13 +- .../ndbjtie/jtie/test/myjapi/MyApiWrapper.hpp | 13 +- .../ndbjtie/jtie/test/myjapi/myjapi/A.java | 13 +- .../ndbjtie/jtie/test/myjapi/myjapi/B0.java | 13 +- .../ndbjtie/jtie/test/myjapi/myjapi/B1.java | 13 +- .../ndbjtie/jtie/test/myjapi/myjapi/CI.java | 13 +- .../ndbjtie/jtie/test/myjapi/myjapi/D0.java | 13 +- .../ndbjtie/jtie/test/myjapi/myjapi/D1.java | 13 +- .../ndbjtie/jtie/test/myjapi/myjapi/D2.java | 13 +- .../ndbjtie/jtie/test/myjapi/myjapi/E.java | 13 +- .../jtie/test/myjapi/myjapi/MyJapi.java | 13 +- .../jtie/test/myjapi/myjapi/MyJapiCtypes.java | 13 +- .../jtie/test/myjapi/myjapi_MyJapi.hpp | 13 +- .../jtie/test/myjapi/myjapi_MyJapiCtypes.hpp | 13 +- .../jtie/test/myjapi/myjapi_classes.hpp | 13 +- .../ndbjtie/jtie/test/myjapi/myjapi_lib.cpp | 13 +- .../jtie/test/myjapi/test/MyJapiTest.java | 13 +- .../ndbjtie/jtie/test/unload/CMakeLists.txt | 13 +- .../test/unload/test/MyLoadUnloadTest.java | 13 +- .../storage/ndb/src/ndbjtie/mgmapi_jtie.hpp | 13 +- .../ndb/src/ndbjtie/mysql/CMakeLists.txt | 13 +- .../ndb/src/ndbjtie/mysql/CharsetMap.cpp | 17 +- .../ndb/src/ndbjtie/mysql/CharsetMap.hpp | 13 +- .../ndb/src/ndbjtie/mysql/CharsetMapImpl.cpp | 17 +- .../ndb/src/ndbjtie/mysql/CharsetMapImpl.h | 17 +- .../ndb/src/ndbjtie/mysql/decimal_utils.cpp | 13 +- .../ndb/src/ndbjtie/mysql/decimal_utils.hpp | 13 +- .../ndbjtie/mysql/test/mysql_utils_test.cpp | 13 +- .../mysql/test/mysql_utils_unit_tests-t | 13 +- .../ndb/src/ndbjtie/mysql_utils_jtie.hpp | 13 +- .../storage/ndb/src/ndbjtie/ndbapi_jtie.hpp | 13 +- .../storage/ndb/src/ndbjtie/ndbjtie_defs.hpp | 13 +- .../storage/ndb/src/ndbjtie/ndbjtie_lib.cpp | 13 +- .../ndb/src/ndbjtie/test/CMakeLists.txt | 13 +- .../ndb/src/ndbjtie/test/ndbjtie_unit_tests-t | 13 +- .../src/ndbjtie/test/test/JTieTestBase.java | 13 +- .../test/test/MySqlUtilsCharsetMapTest.java | 13 +- .../test/test/MySqlUtilsDecimalTest.java | 13 +- .../test/test/NdbJTieLibraryLoadingTest.java | 13 +- .../ndbjtie/test/test/NdbJTieSmokeTest.java | 13 +- .../storage/ndb/src/ndbjtie/utils/helpers.hpp | 13 +- .../storage/ndb/src/ndbjtie/utils/mystdint.h | 13 +- .../storage/ndb/test/CMakeLists.txt | 13 +- .../storage/ndb/test/crund/Makefile.defaults | 13 +- .../storage/ndb/test/crund/build.xml | 13 +- .../config_samples/crundClusterj.properties | 13 +- .../config_samples/crundDerby.properties | 13 +- .../config_samples/crundMysql.properties | 13 +- .../config_samples/crundNdbapi.properties | 13 +- .../crund/config_samples/crundNdbj.properties | 13 +- .../config_samples/crundNdbjtie.properties | 13 +- .../crundOpenjpaClusterj.properties | 13 +- .../crundOpenjpaDerby.properties | 13 +- .../crundOpenjpaMysql.properties | 13 +- .../config_samples/crundResult.properties | 13 +- .../crund/config_samples/crundRun.properties | 13 +- .../test/crund/config_samples/env.properties | 13 +- .../src/utils/HrtProfiler.java | 13 +- .../src/utils/HrtStopwatch.java | 13 +- .../src/utils/HrtStopwatchTest.java | 13 +- .../src/utils/JniInstrumentationTest.java | 13 +- .../src/utils/Properties.hpp | 13 +- .../src/utils/Properties_test.cpp | 13 +- .../src/utils/Properties_test.properties | 13 +- .../src/utils/helpers.hpp | 13 +- .../src/utils/hrt_gstopwatch.c | 13 +- .../src/utils/hrt_gstopwatch.h | 13 +- .../src/utils/hrt_stopwatch.c | 13 +- .../src/utils/hrt_stopwatch.h | 13 +- .../src/utils/hrt_stopwatch_test.c | 13 +- .../src/utils/hrt_utils.c | 13 +- .../src/utils/hrt_utils.h | 13 +- .../src/utils/hrt_utils_test.c | 13 +- .../src/utils/string_helpers.hpp | 13 +- .../src/utils/utils_HrtStopwatch.c | 13 +- .../src/utils/utils_JniInstrumentationTest.c | 13 +- .../storage/ndb/test/crund/process.sh | 13 +- .../ndb/test/crund/scripts/load_shema.sh | 13 +- .../storage/ndb/test/crund/scripts/mycrund.sh | 13 +- .../ndb/test/crund/scripts/mycrundcxx.sh | 13 +- .../ndb/test/crund/scripts/mycrundjava.sh | 13 +- .../ndb/test/crund/scripts/mytwscxx.sh | 13 +- .../ndb/test/crund/scripts/mytwsjava.sh | 13 +- .../ndb/test/crund/scripts/restart_cluster.sh | 13 +- .../ndb/test/crund/scripts/restart_mysqld.sh | 13 +- .../ndb/test/crund/scripts/restart_ndb.sh | 13 +- .../storage/ndb/test/crund/scripts/slay.sh | 13 +- .../ndb/test/crund/scripts/start_cluster.sh | 13 +- .../ndb/test/crund/scripts/start_mysqld.sh | 13 +- .../ndb/test/crund/scripts/start_ndb.sh | 13 +- .../ndb/test/crund/scripts/stop_cluster.sh | 13 +- .../ndb/test/crund/scripts/stop_mysqld.sh | 13 +- .../ndb/test/crund/scripts/stop_ndb.sh | 13 +- .../crund/src/com/mysql/cluster/crund/A.java | 13 +- .../crund/src/com/mysql/cluster/crund/B0.java | 13 +- .../crund/src/com/mysql/cluster/crund/B1.java | 13 +- .../com/mysql/cluster/crund/ClusterjLoad.java | 13 +- .../com/mysql/cluster/crund/CrundDriver.java | 13 +- .../src/com/mysql/cluster/crund/Driver.java | 13 +- .../crund/src/com/mysql/cluster/crund/IA.java | 13 +- .../src/com/mysql/cluster/crund/IB0.java | 13 +- .../mysql/cluster/crund/JdbcDriverTest.java | 13 +- .../src/com/mysql/cluster/crund/JdbcLoad.java | 13 +- .../src/com/mysql/cluster/crund/JpaLoad.java | 13 +- .../com/mysql/cluster/crund/NdbApiLoad.java | 13 +- .../src/com/mysql/cluster/crund/NdbBase.java | 13 +- .../com/mysql/cluster/crund/NdbJTieLoad.java | 13 +- .../src/com/mysql/cluster/crund/NdbjLoad.java | 13 +- .../mysql/cluster/crund/ResultProcessor.java | 22 +- .../test/crund/src/crundndb/CrundDriver.cpp | 13 +- .../test/crund/src/crundndb/CrundDriver.hpp | 13 +- .../src/crundndb/CrundNdbApiOperations.cpp | 13 +- .../src/crundndb/CrundNdbApiOperations.hpp | 13 +- .../ndb/test/crund/src/crundndb/Driver.cpp | 13 +- .../ndb/test/crund/src/crundndb/Driver.hpp | 13 +- .../test/crund/src/crundndb/NdbApiDriver.cpp | 13 +- .../test/crund/src/crundndb/NdbApiDriver.hpp | 13 +- .../com_mysql_cluster_crund_NdbApiLoad.cpp | 13 +- .../ndb/test/crund/src/tables_derby.sql | 13 +- .../ndb/test/crund/src/tables_mysql.sql | 13 +- .../ndb/test/crund/src/tables_ora8.sql | 25 +- .../storage/ndb/test/crund/tws/schema.sql | 13 +- .../ndb/test/crund/tws/tws_cpp/Driver.cpp | 13 +- .../ndb/test/crund/tws/tws_cpp/Driver.hpp | 13 +- .../crund/tws/tws_cpp/NdbApiTwsDriver.cpp | 13 +- .../crund/tws/tws_cpp/NdbApiTwsDriver.hpp | 13 +- .../ndb/test/crund/tws/tws_cpp/TwsDriver.cpp | 13 +- .../ndb/test/crund/tws/tws_cpp/TwsDriver.hpp | 13 +- .../ndb/test/crund/tws/tws_java/build.xml | 13 +- .../tws/tws_java/nbproject/build-impl.xml | 13 +- .../configs_sample/server-dbg.properties | 13 +- .../configs_sample/server-opt.properties | 13 +- .../tws_java/nbproject/genfiles.properties | 13 +- .../private_sample/config.properties | 13 +- .../configs/server-dbg.properties | 13 +- .../configs/server-opt.properties | 13 +- .../private_sample/private.properties | 13 +- .../nbproject/private_sample/private.xml | 13 +- .../profiler/configurations.xml | 13 +- .../nbproject/profiler-build-impl.xml | 13 +- .../tws/tws_java/nbproject/project.properties | 13 +- .../crund/tws/tws_java/nbproject/project.xml | 13 +- .../cluster/benchmark/tws/ClusterjLoad.java | 13 +- .../mysql/cluster/benchmark/tws/Driver.java | 13 +- .../mysql/cluster/benchmark/tws/JdbcLoad.java | 13 +- .../cluster/benchmark/tws/NdbjtieLoad.java | 13 +- .../cluster/benchmark/tws/TwsDriver.java | 13 +- .../mysql/cluster/benchmark/tws/TwsLoad.java | 13 +- .../storage/ndb/test/include/AtrtClient.hpp | 13 +- .../ndb/test/include/ConfigFactory.hpp | 13 +- .../storage/ndb/test/include/CpcClient.hpp | 13 +- .../storage/ndb/test/include/DbUtil.hpp | 13 +- .../test/include/HugoAsynchTransactions.hpp | 13 +- .../ndb/test/include/HugoCalculator.hpp | 13 +- .../ndb/test/include/HugoOperations.hpp | 13 +- .../storage/ndb/test/include/HugoQueries.hpp | 13 +- .../ndb/test/include/HugoQueryBuilder.hpp | 13 +- .../ndb/test/include/HugoTransactions.hpp | 13 +- .../storage/ndb/test/include/NDBT.hpp | 13 +- .../storage/ndb/test/include/NDBT_DataSet.hpp | 13 +- .../test/include/NDBT_DataSetTransaction.hpp | 13 +- .../storage/ndb/test/include/NDBT_Error.hpp | 13 +- .../storage/ndb/test/include/NDBT_Find.hpp | 13 +- .../storage/ndb/test/include/NDBT_Output.hpp | 13 +- .../ndb/test/include/NDBT_ResultRow.hpp | 13 +- .../ndb/test/include/NDBT_ReturnCodes.h | 13 +- .../storage/ndb/test/include/NDBT_Stats.hpp | 13 +- .../storage/ndb/test/include/NDBT_Table.hpp | 13 +- .../storage/ndb/test/include/NDBT_Tables.hpp | 13 +- .../storage/ndb/test/include/NDBT_Test.hpp | 13 +- .../storage/ndb/test/include/NDBT_Thread.hpp | 13 +- .../ndb/test/include/NDBT_Workingdir.hpp | 13 +- .../storage/ndb/test/include/NdbBackup.hpp | 13 +- .../storage/ndb/test/include/NdbConfig.hpp | 13 +- .../storage/ndb/test/include/NdbMgmd.hpp | 13 +- .../ndb/test/include/NdbMixRestarter.hpp | 13 +- .../storage/ndb/test/include/NdbProcess.hpp | 13 +- .../storage/ndb/test/include/NdbRestarter.hpp | 13 +- .../storage/ndb/test/include/NdbRestarts.hpp | 13 +- .../storage/ndb/test/include/NdbSchemaCon.hpp | 13 +- .../storage/ndb/test/include/NdbSchemaOp.hpp | 13 +- .../storage/ndb/test/include/NdbTest.hpp | 13 +- .../storage/ndb/test/include/NdbTimer.hpp | 13 +- .../ndb/test/include/SocketInputStream2.hpp | 13 +- .../storage/ndb/test/include/SqlClient.hpp | 13 +- .../test/include/TestNdbEventOperation.hpp | 13 +- .../ndb/test/include/UtilTransactions.hpp | 13 +- .../storage/ndb/test/include/getarg.h | 13 +- .../storage/ndb/test/ndbapi/CMakeLists.txt | 13 +- .../storage/ndb/test/ndbapi/InsertRecs.cpp | 13 +- .../storage/ndb/test/ndbapi/ScanFilter.hpp | 13 +- .../storage/ndb/test/ndbapi/ScanFunctions.hpp | 13 +- .../ndb/test/ndbapi/ScanInterpretTest.hpp | 13 +- .../storage/ndb/test/ndbapi/TraceNdbApi.cpp | 13 +- .../storage/ndb/test/ndbapi/VerifyNdbApi.cpp | 13 +- .../storage/ndb/test/ndbapi/acid.cpp | 13 +- .../storage/ndb/test/ndbapi/acid2.cpp | 13 +- .../ndb/test/ndbapi/acrt/NdbRepStress.cpp | 13 +- .../storage/ndb/test/ndbapi/adoInsertRecs.cpp | 13 +- .../ndb/test/ndbapi/asyncGenerator.cpp | 13 +- .../storage/ndb/test/ndbapi/bank/Bank.cpp | 13 +- .../storage/ndb/test/ndbapi/bank/Bank.hpp | 13 +- .../storage/ndb/test/ndbapi/bank/BankLoad.cpp | 13 +- .../ndb/test/ndbapi/bank/CMakeLists.txt | 13 +- .../ndb/test/ndbapi/bank/bankCreator.cpp | 13 +- .../ndb/test/ndbapi/bank/bankMakeGL.cpp | 13 +- .../ndb/test/ndbapi/bank/bankSumAccounts.cpp | 13 +- .../ndb/test/ndbapi/bank/bankTimer.cpp | 13 +- .../test/ndbapi/bank/bankTransactionMaker.cpp | 13 +- .../test/ndbapi/bank/bankValidateAllGLs.cpp | 13 +- .../storage/ndb/test/ndbapi/bank/testBank.cpp | 13 +- .../ndb/test/ndbapi/bench/asyncGenerator.cpp | 13 +- .../ndb/test/ndbapi/bench/dbGenerator.h | 13 +- .../ndb/test/ndbapi/bench/dbPopulate.cpp | 13 +- .../ndb/test/ndbapi/bench/dbPopulate.h | 13 +- .../storage/ndb/test/ndbapi/bench/macros.h | 13 +- .../test/ndbapi/bench/mainAsyncGenerator.cpp | 13 +- .../ndb/test/ndbapi/bench/mainPopulate.cpp | 13 +- .../ndb/test/ndbapi/bench/ndb_async1.cpp | 13 +- .../ndb/test/ndbapi/bench/ndb_async2.cpp | 13 +- .../ndb/test/ndbapi/bench/ndb_error.hpp | 13 +- .../ndb/test/ndbapi/bench/ndb_schema.hpp | 13 +- .../ndbapi/bench/ndb_user_transaction.cpp | 13 +- .../ndbapi/bench/ndb_user_transaction2.cpp | 13 +- .../ndbapi/bench/ndb_user_transaction3.cpp | 13 +- .../ndbapi/bench/ndb_user_transaction4.cpp | 13 +- .../ndbapi/bench/ndb_user_transaction5.cpp | 13 +- .../ndbapi/bench/ndb_user_transaction6.cpp | 13 +- .../storage/ndb/test/ndbapi/bench/testData.h | 13 +- .../ndb/test/ndbapi/bench/testDefinitions.h | 13 +- .../ndb/test/ndbapi/bench/userInterface.cpp | 13 +- .../ndb/test/ndbapi/bench/userInterface.h | 13 +- .../storage/ndb/test/ndbapi/benchronja.cpp | 13 +- .../storage/ndb/test/ndbapi/bulk_copy.cpp | 13 +- .../storage/ndb/test/ndbapi/cdrserver.cpp | 13 +- .../storage/ndb/test/ndbapi/celloDb.cpp | 13 +- .../ndb/test/ndbapi/create_all_tabs.cpp | 13 +- .../storage/ndb/test/ndbapi/create_tab.cpp | 13 +- .../storage/ndb/test/ndbapi/drop_all_tabs.cpp | 13 +- .../storage/ndb/test/ndbapi/flexAsynch.cpp | 13 +- .../storage/ndb/test/ndbapi/flexBench.cpp | 13 +- .../storage/ndb/test/ndbapi/flexHammer.cpp | 13 +- .../storage/ndb/test/ndbapi/flexScan.cpp | 13 +- .../storage/ndb/test/ndbapi/flexTT.cpp | 13 +- .../ndb/test/ndbapi/flexTimedAsynch.cpp | 13 +- .../ndb/test/ndbapi/flex_bench_mysql.cpp | 13 +- .../storage/ndb/test/ndbapi/index.cpp | 13 +- .../storage/ndb/test/ndbapi/index2.cpp | 13 +- .../storage/ndb/test/ndbapi/initronja.cpp | 13 +- .../ndb/test/ndbapi/interpreterInTup.cpp | 13 +- .../ndb/test/ndbapi/mainAsyncGenerator.cpp | 13 +- .../storage/ndb/test/ndbapi/msa.cpp | 13 +- .../storage/ndb/test/ndbapi/ndb_async1.cpp | 13 +- .../storage/ndb/test/ndbapi/ndb_async2.cpp | 13 +- .../ndb/test/ndbapi/ndb_user_populate.cpp | 13 +- .../ndb/test/ndbapi/ndb_user_transaction.cpp | 13 +- .../ndb/test/ndbapi/ndb_user_transaction2.cpp | 13 +- .../ndb/test/ndbapi/ndb_user_transaction3.cpp | 13 +- .../ndb/test/ndbapi/ndb_user_transaction4.cpp | 13 +- .../ndb/test/ndbapi/ndb_user_transaction5.cpp | 13 +- .../ndb/test/ndbapi/ndb_user_transaction6.cpp | 13 +- .../ndb/test/ndbapi/ndbapi_50compat0.cpp | 13 +- .../ndb/test/ndbapi/ndbapi_50compat1.cpp | 13 +- .../storage/ndb/test/ndbapi/reorg_tab.cpp | 13 +- .../storage/ndb/test/ndbapi/restarter.cpp | 13 +- .../storage/ndb/test/ndbapi/restarter2.cpp | 13 +- .../storage/ndb/test/ndbapi/restarts.cpp | 13 +- .../storage/ndb/test/ndbapi/size.cpp | 13 +- .../storage/ndb/test/ndbapi/slow_select.cpp | 13 +- .../storage/ndb/test/ndbapi/testBackup.cpp | 13 +- .../storage/ndb/test/ndbapi/testBasic.cpp | 13 +- .../ndb/test/ndbapi/testBasicAsynch.cpp | 13 +- .../storage/ndb/test/ndbapi/testBitfield.cpp | 13 +- .../storage/ndb/test/ndbapi/testBlobs.cpp | 13 +- .../ndb/test/ndbapi/testDataBuffers.cpp | 13 +- .../storage/ndb/test/ndbapi/testDeadlock.cpp | 13 +- .../storage/ndb/test/ndbapi/testDict.cpp | 13 +- .../storage/ndb/test/ndbapi/testIndex.cpp | 13 +- .../storage/ndb/test/ndbapi/testIndexStat.cpp | 13 +- .../ndb/test/ndbapi/testInterpreter.cpp | 13 +- .../storage/ndb/test/ndbapi/testLcp.cpp | 13 +- .../storage/ndb/test/ndbapi/testLimits.cpp | 13 +- .../storage/ndb/test/ndbapi/testMgm.cpp | 13 +- .../ndb/test/ndbapi/testMgmDisconnect.c | 13 +- .../storage/ndb/test/ndbapi/testMgmd.cpp | 13 +- .../storage/ndb/test/ndbapi/testNDBT.cpp | 13 +- .../ndb/test/ndbapi/testNativeDefault.cpp | 13 +- .../storage/ndb/test/ndbapi/testNdbApi.cpp | 13 +- .../storage/ndb/test/ndbapi/testNdbinfo.cpp | 13 +- .../ndb/test/ndbapi/testNodeRestart.cpp | 13 +- .../storage/ndb/test/ndbapi/testOIBasic.cpp | 13 +- .../ndb/test/ndbapi/testOperations.cpp | 13 +- .../ndb/test/ndbapi/testOrderedIndex.cpp | 13 +- .../ndb/test/ndbapi/testPartitioning.cpp | 13 +- .../storage/ndb/test/ndbapi/testReadPerf.cpp | 13 +- .../storage/ndb/test/ndbapi/testReconnect.cpp | 13 +- .../ndb/test/ndbapi/testRestartGci.cpp | 13 +- .../storage/ndb/test/ndbapi/testSRBank.cpp | 13 +- .../storage/ndb/test/ndbapi/testScan.cpp | 13 +- .../ndb/test/ndbapi/testScanFilter.cpp | 13 +- .../ndb/test/ndbapi/testScanInterpreter.cpp | 13 +- .../storage/ndb/test/ndbapi/testScanPerf.cpp | 13 +- .../ndb/test/ndbapi/testSingleUserMode.cpp | 13 +- .../storage/ndb/test/ndbapi/testSpj.cpp | 13 +- .../ndb/test/ndbapi/testSystemRestart.cpp | 13 +- .../storage/ndb/test/ndbapi/testTimeout.cpp | 13 +- .../ndb/test/ndbapi/testTransactions.cpp | 13 +- .../storage/ndb/test/ndbapi/testUpgrade.cpp | 13 +- .../storage/ndb/test/ndbapi/test_event.cpp | 13 +- .../ndb/test/ndbapi/test_event_merge.cpp | 13 +- .../test/ndbapi/test_event_multi_table.cpp | 13 +- .../storage/ndb/test/ndbapi/userInterface.cpp | 13 +- .../test/newtonapi/basic_test/basic/basic.cpp | 13 +- .../basic_test/bulk_read/br_test.cpp | 13 +- .../ndb/test/newtonapi/basic_test/common.cpp | 13 +- .../ndb/test/newtonapi/basic_test/common.hpp | 13 +- .../ptr_binding/ptr_binding_test.cpp | 13 +- .../test/newtonapi/basic_test/too_basic.cpp | 13 +- .../ndb/test/newtonapi/perf_test/perf.cpp | 13 +- .../storage/ndb/test/rqg/spj_test.yy | 19 +- .../ndb/test/run-test/16node-tests.txt | 13 +- .../storage/ndb/test/run-test/CMakeLists.txt | 13 +- .../ndb/test/run-test/atrt-analyze-result.sh | 13 +- .../ndb/test/run-test/atrt-backtrace.sh | 13 +- .../ndb/test/run-test/atrt-gather-result.sh | 13 +- .../ndb/test/run-test/atrt-mysql-test-run | 13 +- .../storage/ndb/test/run-test/atrt-mysqltest | 13 +- .../storage/ndb/test/run-test/atrt-setup.sh | 13 +- .../storage/ndb/test/run-test/atrt-testBackup | 13 +- .../storage/ndb/test/run-test/atrt.hpp | 13 +- .../ndb/test/run-test/autotest-boot.sh | 13 +- .../storage/ndb/test/run-test/autotest-run.sh | 13 +- .../storage/ndb/test/run-test/basic.txt | 13 +- .../storage/ndb/test/run-test/check-tests.sh | 13 +- .../storage/ndb/test/run-test/command.cpp | 13 +- .../ndb/test/run-test/create_mtr_suites.pl | 13 +- .../ndb/test/run-test/daily-basic-tests.txt | 13 +- .../ndb/test/run-test/daily-devel-tests.txt | 13 +- .../storage/ndb/test/run-test/db.cpp | 13 +- .../storage/ndb/test/run-test/files.cpp | 13 +- .../storage/ndb/test/run-test/main.cpp | 13 +- .../storage/ndb/test/run-test/make-config.sh | 13 +- .../ndb/test/run-test/make-html-reports.sh | 13 +- .../storage/ndb/test/run-test/make-index.sh | 13 +- .../storage/ndb/test/run-test/ndb-autotest.sh | 13 +- .../storage/ndb/test/run-test/setup.cpp | 13 +- .../storage/ndb/test/run-test/upgrade-boot.sh | 13 +- .../storage/ndb/test/src/AtrtClient.cpp | 13 +- .../storage/ndb/test/src/CMakeLists.txt | 13 +- .../storage/ndb/test/src/CpcClient.cpp | 13 +- .../storage/ndb/test/src/DbUtil.cpp | 13 +- .../ndb/test/src/HugoAsynchTransactions.cpp | 13 +- .../storage/ndb/test/src/HugoCalculator.cpp | 13 +- .../storage/ndb/test/src/HugoOperations.cpp | 13 +- .../storage/ndb/test/src/HugoQueries.cpp | 13 +- .../storage/ndb/test/src/HugoQueryBuilder.cpp | 13 +- .../storage/ndb/test/src/HugoTransactions.cpp | 13 +- .../storage/ndb/test/src/NDBT_Error.cpp | 13 +- .../storage/ndb/test/src/NDBT_Find.cpp | 13 +- .../storage/ndb/test/src/NDBT_Output.cpp | 13 +- .../storage/ndb/test/src/NDBT_ResultRow.cpp | 13 +- .../storage/ndb/test/src/NDBT_ReturnCodes.cpp | 13 +- .../storage/ndb/test/src/NDBT_Table.cpp | 13 +- .../storage/ndb/test/src/NDBT_Tables.cpp | 13 +- .../storage/ndb/test/src/NDBT_Test.cpp | 13 +- .../storage/ndb/test/src/NDBT_Thread.cpp | 13 +- .../storage/ndb/test/src/NdbBackup.cpp | 13 +- .../storage/ndb/test/src/NdbConfig.cpp | 13 +- .../storage/ndb/test/src/NdbMixRestarter.cpp | 13 +- .../storage/ndb/test/src/NdbRestarter.cpp | 13 +- .../storage/ndb/test/src/NdbRestarts.cpp | 13 +- .../storage/ndb/test/src/NdbSchemaCon.cpp | 13 +- .../storage/ndb/test/src/NdbSchemaOp.cpp | 13 +- .../ndb/test/src/SocketInputStream2.cpp | 13 +- .../storage/ndb/test/src/SqlClient.cpp | 13 +- .../storage/ndb/test/src/UtilTransactions.cpp | 13 +- .../storage/ndb/test/tools/CMakeLists.txt | 13 +- .../storage/ndb/test/tools/connect.cpp | 13 +- .../storage/ndb/test/tools/copy_tab.cpp | 13 +- .../storage/ndb/test/tools/cpcc.cpp | 13 +- .../storage/ndb/test/tools/create_index.cpp | 13 +- .../storage/ndb/test/tools/hugoCalculator.cpp | 13 +- .../storage/ndb/test/tools/hugoFill.cpp | 13 +- .../storage/ndb/test/tools/hugoJoin.cpp | 13 +- .../storage/ndb/test/tools/hugoLoad.cpp | 13 +- .../ndb/test/tools/hugoLockRecords.cpp | 13 +- .../storage/ndb/test/tools/hugoPkDelete.cpp | 13 +- .../storage/ndb/test/tools/hugoPkRead.cpp | 13 +- .../ndb/test/tools/hugoPkReadRecord.cpp | 13 +- .../storage/ndb/test/tools/hugoPkUpdate.cpp | 13 +- .../storage/ndb/test/tools/hugoScanRead.cpp | 13 +- .../storage/ndb/test/tools/hugoScanUpdate.cpp | 13 +- .../storage/ndb/test/tools/listen.cpp | 13 +- .../storage/ndb/test/tools/log_listner.cpp | 13 +- .../storage/ndb/test/tools/rep_latency.cpp | 13 +- .../storage/ndb/test/tools/restart.cpp | 13 +- .../ndb/test/tools/spj_performance_test.cpp | 13 +- .../ndb/test/tools/spj_sanity_test.cpp | 13 +- .../storage/ndb/test/tools/test_spj.cpp | 13 +- .../storage/ndb/test/tools/verify_index.cpp | 13 +- .../storage/ndb/tools/CMakeLists.txt | 13 +- .../storage/ndb/tools/delete_all.cpp | 13 +- mysql-wsrep-5.6/storage/ndb/tools/desc.cpp | 13 +- .../storage/ndb/tools/drop_index.cpp | 13 +- .../storage/ndb/tools/drop_tab.cpp | 13 +- .../storage/ndb/tools/listTables.cpp | 13 +- .../storage/ndb/tools/ndb_config.cpp | 13 +- .../storage/ndb/tools/ndb_dist_priv.sql | 13 +- .../storage/ndb/tools/ndb_dump_frm_data.cpp | 13 +- .../storage/ndb/tools/ndb_error_reporter | 13 +- .../storage/ndb/tools/ndb_index_stat.cpp | 13 +- mysql-wsrep-5.6/storage/ndb/tools/ndb_size.pl | 13 +- .../storage/ndb/tools/ndb_test_platform.cpp | 13 +- .../storage/ndb/tools/ndbinfo_sql.cpp | 13 +- .../storage/ndb/tools/restore/Restore.cpp | 13 +- .../storage/ndb/tools/restore/Restore.hpp | 13 +- .../storage/ndb/tools/restore/consumer.cpp | 13 +- .../storage/ndb/tools/restore/consumer.hpp | 13 +- .../ndb/tools/restore/consumer_printer.cpp | 13 +- .../ndb/tools/restore/consumer_printer.hpp | 13 +- .../ndb/tools/restore/consumer_restore.cpp | 13 +- .../ndb/tools/restore/consumer_restore.hpp | 13 +- .../ndb/tools/restore/consumer_restorem.cpp | 13 +- .../ndb/tools/restore/ndb_nodegroup_map.h | 13 +- .../ndb/tools/restore/restore_main.cpp | 13 +- .../storage/ndb/tools/select_all.cpp | 13 +- .../storage/ndb/tools/select_count.cpp | 13 +- mysql-wsrep-5.6/storage/ndb/tools/waiter.cpp | 13 +- .../storage/perfschema/CMakeLists.txt | 18 +- .../storage/perfschema/cursor_by_account.cc | 13 +- .../storage/perfschema/cursor_by_account.h | 13 +- .../storage/perfschema/cursor_by_host.cc | 13 +- .../storage/perfschema/cursor_by_host.h | 13 +- .../storage/perfschema/cursor_by_thread.cc | 13 +- .../storage/perfschema/cursor_by_thread.h | 13 +- .../cursor_by_thread_connect_attr.cc | 13 +- .../cursor_by_thread_connect_attr.h | 13 +- .../storage/perfschema/cursor_by_user.cc | 13 +- .../storage/perfschema/cursor_by_user.h | 13 +- .../storage/perfschema/gen_pfs_lex_token.cc | 13 +- .../storage/perfschema/ha_perfschema.cc | 13 +- .../storage/perfschema/ha_perfschema.h | 13 +- mysql-wsrep-5.6/storage/perfschema/pfs.cc | 13 +- mysql-wsrep-5.6/storage/perfschema/pfs.h | 13 +- .../storage/perfschema/pfs_account.cc | 13 +- .../storage/perfschema/pfs_account.h | 13 +- .../storage/perfschema/pfs_atomic.cc | 13 +- .../storage/perfschema/pfs_atomic.h | 13 +- .../storage/perfschema/pfs_autosize.cc | 13 +- .../storage/perfschema/pfs_check.cc | 13 +- .../storage/perfschema/pfs_column_types.h | 13 +- .../storage/perfschema/pfs_column_values.cc | 13 +- .../storage/perfschema/pfs_column_values.h | 13 +- .../storage/perfschema/pfs_con_slice.cc | 13 +- .../storage/perfschema/pfs_con_slice.h | 13 +- .../storage/perfschema/pfs_defaults.cc | 13 +- .../storage/perfschema/pfs_defaults.h | 13 +- .../storage/perfschema/pfs_digest.cc | 13 +- .../storage/perfschema/pfs_digest.h | 13 +- .../storage/perfschema/pfs_engine_table.cc | 13 +- .../storage/perfschema/pfs_engine_table.h | 13 +- .../storage/perfschema/pfs_events.h | 13 +- .../storage/perfschema/pfs_events_stages.cc | 13 +- .../storage/perfschema/pfs_events_stages.h | 13 +- .../perfschema/pfs_events_statements.cc | 13 +- .../perfschema/pfs_events_statements.h | 13 +- .../storage/perfschema/pfs_events_waits.cc | 13 +- .../storage/perfschema/pfs_events_waits.h | 13 +- .../storage/perfschema/pfs_global.cc | 13 +- .../storage/perfschema/pfs_global.h | 13 +- .../storage/perfschema/pfs_host.cc | 13 +- mysql-wsrep-5.6/storage/perfschema/pfs_host.h | 13 +- .../storage/perfschema/pfs_instr.cc | 13 +- .../storage/perfschema/pfs_instr.h | 13 +- .../storage/perfschema/pfs_instr_class.cc | 13 +- .../storage/perfschema/pfs_instr_class.h | 13 +- mysql-wsrep-5.6/storage/perfschema/pfs_lock.h | 13 +- .../storage/perfschema/pfs_server.cc | 13 +- .../storage/perfschema/pfs_server.h | 13 +- .../storage/perfschema/pfs_setup_actor.cc | 13 +- .../storage/perfschema/pfs_setup_actor.h | 13 +- .../storage/perfschema/pfs_setup_object.cc | 13 +- .../storage/perfschema/pfs_setup_object.h | 13 +- mysql-wsrep-5.6/storage/perfschema/pfs_stat.h | 13 +- .../storage/perfschema/pfs_timer.cc | 13 +- .../storage/perfschema/pfs_timer.h | 13 +- .../storage/perfschema/pfs_user.cc | 13 +- mysql-wsrep-5.6/storage/perfschema/pfs_user.h | 13 +- .../storage/perfschema/pfs_visitor.cc | 13 +- .../storage/perfschema/pfs_visitor.h | 13 +- .../storage/perfschema/table_accounts.cc | 13 +- .../storage/perfschema/table_accounts.h | 13 +- .../storage/perfschema/table_all_instr.cc | 13 +- .../storage/perfschema/table_all_instr.h | 13 +- .../table_esgs_by_account_by_event_name.cc | 13 +- .../table_esgs_by_account_by_event_name.h | 13 +- .../table_esgs_by_host_by_event_name.cc | 13 +- .../table_esgs_by_host_by_event_name.h | 13 +- .../table_esgs_by_thread_by_event_name.cc | 13 +- .../table_esgs_by_thread_by_event_name.h | 13 +- .../table_esgs_by_user_by_event_name.cc | 13 +- .../table_esgs_by_user_by_event_name.h | 13 +- .../table_esgs_global_by_event_name.cc | 13 +- .../table_esgs_global_by_event_name.h | 13 +- .../table_esms_by_account_by_event_name.cc | 13 +- .../table_esms_by_account_by_event_name.h | 13 +- .../perfschema/table_esms_by_digest.cc | 13 +- .../storage/perfschema/table_esms_by_digest.h | 13 +- .../table_esms_by_host_by_event_name.cc | 13 +- .../table_esms_by_host_by_event_name.h | 13 +- .../table_esms_by_thread_by_event_name.cc | 13 +- .../table_esms_by_thread_by_event_name.h | 13 +- .../table_esms_by_user_by_event_name.cc | 13 +- .../table_esms_by_user_by_event_name.h | 13 +- .../table_esms_global_by_event_name.cc | 13 +- .../table_esms_global_by_event_name.h | 13 +- .../storage/perfschema/table_events_stages.cc | 13 +- .../storage/perfschema/table_events_stages.h | 13 +- .../perfschema/table_events_statements.cc | 13 +- .../perfschema/table_events_statements.h | 13 +- .../storage/perfschema/table_events_waits.cc | 13 +- .../storage/perfschema/table_events_waits.h | 13 +- .../perfschema/table_events_waits_summary.cc | 13 +- .../perfschema/table_events_waits_summary.h | 13 +- .../table_ews_by_account_by_event_name.cc | 13 +- .../table_ews_by_account_by_event_name.h | 13 +- .../table_ews_by_host_by_event_name.cc | 13 +- .../table_ews_by_host_by_event_name.h | 13 +- .../table_ews_by_thread_by_event_name.cc | 13 +- .../table_ews_by_thread_by_event_name.h | 13 +- .../table_ews_by_user_by_event_name.cc | 13 +- .../table_ews_by_user_by_event_name.h | 13 +- .../table_ews_global_by_event_name.cc | 13 +- .../table_ews_global_by_event_name.h | 13 +- .../perfschema/table_file_instances.cc | 13 +- .../storage/perfschema/table_file_instances.h | 13 +- .../table_file_summary_by_event_name.cc | 13 +- .../table_file_summary_by_event_name.h | 13 +- .../table_file_summary_by_instance.cc | 13 +- .../table_file_summary_by_instance.h | 13 +- .../storage/perfschema/table_helper.cc | 13 +- .../storage/perfschema/table_helper.h | 13 +- .../storage/perfschema/table_host_cache.cc | 13 +- .../storage/perfschema/table_host_cache.h | 13 +- .../storage/perfschema/table_hosts.cc | 13 +- .../storage/perfschema/table_hosts.h | 13 +- .../perfschema/table_os_global_by_type.cc | 13 +- .../perfschema/table_os_global_by_type.h | 13 +- .../perfschema/table_performance_timers.cc | 13 +- .../perfschema/table_performance_timers.h | 13 +- .../table_session_account_connect_attrs.cc | 13 +- .../table_session_account_connect_attrs.h | 13 +- .../perfschema/table_session_connect.cc | 13 +- .../perfschema/table_session_connect.h | 13 +- .../perfschema/table_session_connect_attrs.cc | 13 +- .../perfschema/table_session_connect_attrs.h | 13 +- .../storage/perfschema/table_setup_actors.cc | 13 +- .../storage/perfschema/table_setup_actors.h | 13 +- .../perfschema/table_setup_consumers.cc | 13 +- .../perfschema/table_setup_consumers.h | 13 +- .../perfschema/table_setup_instruments.cc | 13 +- .../perfschema/table_setup_instruments.h | 13 +- .../storage/perfschema/table_setup_objects.cc | 13 +- .../storage/perfschema/table_setup_objects.h | 13 +- .../storage/perfschema/table_setup_timers.cc | 13 +- .../storage/perfschema/table_setup_timers.h | 13 +- .../perfschema/table_socket_instances.cc | 13 +- .../perfschema/table_socket_instances.h | 13 +- .../table_socket_summary_by_event_name.cc | 13 +- .../table_socket_summary_by_event_name.h | 13 +- .../table_socket_summary_by_instance.cc | 13 +- .../table_socket_summary_by_instance.h | 13 +- .../perfschema/table_sync_instances.cc | 13 +- .../storage/perfschema/table_sync_instances.h | 13 +- .../storage/perfschema/table_threads.cc | 13 +- .../storage/perfschema/table_threads.h | 13 +- .../perfschema/table_tiws_by_index_usage.cc | 13 +- .../perfschema/table_tiws_by_index_usage.h | 13 +- .../storage/perfschema/table_tiws_by_table.cc | 13 +- .../storage/perfschema/table_tiws_by_table.h | 13 +- .../storage/perfschema/table_tlws_by_table.cc | 13 +- .../storage/perfschema/table_tlws_by_table.h | 13 +- .../storage/perfschema/table_users.cc | 13 +- .../storage/perfschema/table_users.h | 13 +- .../perfschema/unittest/CMakeLists.txt | 18 +- .../storage/perfschema/unittest/conf.txt | 13 +- .../storage/perfschema/unittest/pfs-t.cc | 13 +- .../perfschema/unittest/pfs_account-oom-t.cc | 13 +- .../perfschema/unittest/pfs_connect_attr-t.cc | 13 +- .../perfschema/unittest/pfs_host-oom-t.cc | 13 +- .../perfschema/unittest/pfs_instr-oom-t.cc | 13 +- .../perfschema/unittest/pfs_instr-t.cc | 13 +- .../unittest/pfs_instr_class-oom-t.cc | 13 +- .../perfschema/unittest/pfs_instr_class-t.cc | 13 +- .../storage/perfschema/unittest/pfs_misc-t.cc | 13 +- .../perfschema/unittest/pfs_server_stubs.cc | 13 +- .../perfschema/unittest/pfs_timer-t.cc | 13 +- .../perfschema/unittest/pfs_user-oom-t.cc | 13 +- .../perfschema/unittest/stub_pfs_defaults.h | 13 +- .../perfschema/unittest/stub_pfs_global.h | 13 +- .../perfschema/unittest/stub_print_error.h | 13 +- mysql-wsrep-5.6/strings/CMakeLists.txt | 17 +- mysql-wsrep-5.6/strings/bchange.c | 18 +- mysql-wsrep-5.6/strings/bmove_upp.c | 18 +- mysql-wsrep-5.6/strings/conf_to_src.c | 24 +- mysql-wsrep-5.6/strings/ctype-big5.c | 18 +- mysql-wsrep-5.6/strings/ctype-cp932.c | 18 +- mysql-wsrep-5.6/strings/ctype-czech.c | 18 +- mysql-wsrep-5.6/strings/ctype-euc_kr.c | 18 +- mysql-wsrep-5.6/strings/ctype-extra.c | 18 +- mysql-wsrep-5.6/strings/ctype-gb2312.c | 18 +- mysql-wsrep-5.6/strings/ctype-gbk.c | 18 +- mysql-wsrep-5.6/strings/ctype-latin1.c | 18 +- mysql-wsrep-5.6/strings/ctype-mb.c | 18 +- mysql-wsrep-5.6/strings/ctype-simple.c | 29 +- mysql-wsrep-5.6/strings/ctype-sjis.c | 18 +- mysql-wsrep-5.6/strings/ctype-tis620.c | 18 +- mysql-wsrep-5.6/strings/ctype-win1250ch.c | 18 +- mysql-wsrep-5.6/strings/ctype.c | 18 +- mysql-wsrep-5.6/strings/decimal.c | 18 +- mysql-wsrep-5.6/strings/do_ctype.c | 13 +- mysql-wsrep-5.6/strings/dump_map.c | 13 +- mysql-wsrep-5.6/strings/int2str.c | 18 +- mysql-wsrep-5.6/strings/is_prefix.c | 18 +- mysql-wsrep-5.6/strings/llstr.c | 18 +- mysql-wsrep-5.6/strings/longlong2str.c | 18 +- mysql-wsrep-5.6/strings/my_strchr.c | 18 +- mysql-wsrep-5.6/strings/my_strtoll10.c | 18 +- mysql-wsrep-5.6/strings/my_vsnprintf.c | 18 +- mysql-wsrep-5.6/strings/str2int.c | 18 +- mysql-wsrep-5.6/strings/str_alloc.c | 18 +- mysql-wsrep-5.6/strings/strappend.c | 18 +- mysql-wsrep-5.6/strings/strcend.c | 18 +- mysql-wsrep-5.6/strings/strcont.c | 18 +- mysql-wsrep-5.6/strings/strfill.c | 18 +- mysql-wsrep-5.6/strings/strmake.c | 18 +- mysql-wsrep-5.6/strings/strmov.c | 18 +- mysql-wsrep-5.6/strings/strnlen.c | 13 +- mysql-wsrep-5.6/strings/strnmov.c | 18 +- mysql-wsrep-5.6/strings/t_ctype.h | 18 +- mysql-wsrep-5.6/strings/uca-dump.c | 13 +- mysql-wsrep-5.6/strings/uctypedump.c | 13 +- mysql-wsrep-5.6/strings/utr11-dump.c | 13 +- mysql-wsrep-5.6/strings/xml.c | 18 +- mysql-wsrep-5.6/support-files/CMakeLists.txt | 17 +- .../support-files/MacOSX/Description.plist.sh | 13 +- .../support-files/MacOSX/Info.plist.sh | 13 +- mysql-wsrep-5.6/support-files/MacOSX/MySQLCOM | 17 +- .../MacOSX/StartupItem.Description.plist | 13 +- .../MacOSX/StartupItem.Info.plist | 13 +- .../MacOSX/StartupItem.postinstall | 17 +- .../MacOSX/StartupParameters.plist.sh | 13 +- .../support-files/MacOSX/mwar-wrapper | 17 +- .../support-files/MacOSX/mwcc-wrapper | 17 +- .../support-files/MacOSX/postflight.sh | 18 +- .../support-files/MacOSX/preflight.sh | 18 +- .../support-files/MySQL-shared-compat.spec.sh | 21 +- .../support-files/RHEL4-SElinux/mysql.fc | 13 +- .../support-files/RHEL4-SElinux/mysql.te | 13 +- mysql-wsrep-5.6/support-files/build-tags | 17 +- .../support-files/compiler_warnings.supp | 13 +- .../support-files/dtrace/locktime.d | 13 +- .../support-files/dtrace/query-execandqc.d | 13 +- .../dtrace/query-filesort-time.d | 13 +- .../support-files/dtrace/query-network-time.d | 13 +- .../support-files/dtrace/query-parse-time.d | 13 +- .../support-files/dtrace/query-rowops.d | 13 +- .../support-files/dtrace/query-time.d | 13 +- .../support-files/dtrace/statement-time.d | 13 +- .../dtrace/statement-type-aggregate.d | 13 +- mysql-wsrep-5.6/support-files/mysql.m4 | 21 +- mysql-wsrep-5.6/support-files/mysql.spec.sh | 33 +- mysql-wsrep-5.6/tests/CMakeLists.txt | 17 +- mysql-wsrep-5.6/tests/big_record.pl | 17 +- mysql-wsrep-5.6/tests/bug25714.c | 13 +- mysql-wsrep-5.6/tests/connect_test.c | 13 +- mysql-wsrep-5.6/tests/deadlock_test.c | 13 +- mysql-wsrep-5.6/tests/drop_test.pl | 17 +- mysql-wsrep-5.6/tests/export.pl | 17 +- mysql-wsrep-5.6/tests/fork2_test.pl | 17 +- mysql-wsrep-5.6/tests/fork_big.pl | 17 +- mysql-wsrep-5.6/tests/fork_big2.pl | 17 +- mysql-wsrep-5.6/tests/grant.pl | 17 +- mysql-wsrep-5.6/tests/index_corrupt.pl | 17 +- mysql-wsrep-5.6/tests/insert_and_repair.pl | 17 +- mysql-wsrep-5.6/tests/insert_test.c | 13 +- mysql-wsrep-5.6/tests/list_test.c | 13 +- mysql-wsrep-5.6/tests/lock_test.pl | 17 +- mysql-wsrep-5.6/tests/mysql_client_fw.c | 13 +- mysql-wsrep-5.6/tests/mysql_client_test.c | 13 +- mysql-wsrep-5.6/tests/pmail.pl | 17 +- mysql-wsrep-5.6/tests/rename_test.pl | 17 +- mysql-wsrep-5.6/tests/select_test.c | 13 +- mysql-wsrep-5.6/tests/showdb_test.c | 13 +- mysql-wsrep-5.6/tests/ssl_test.c | 13 +- mysql-wsrep-5.6/tests/table_types.pl | 17 +- mysql-wsrep-5.6/tests/test_delayed_insert.pl | 17 +- mysql-wsrep-5.6/tests/thread_test.c | 13 +- mysql-wsrep-5.6/tests/truncate.pl | 17 +- mysql-wsrep-5.6/unittest/CMakeLists.txt | 13 +- .../unittest/examples/CMakeLists.txt | 20 +- mysql-wsrep-5.6/unittest/examples/core-t.c | 13 +- mysql-wsrep-5.6/unittest/examples/no_plan-t.c | 13 +- mysql-wsrep-5.6/unittest/examples/simple-t.c | 13 +- mysql-wsrep-5.6/unittest/examples/skip-t.c | 13 +- .../unittest/examples/skip_all-t.c | 13 +- mysql-wsrep-5.6/unittest/examples/todo-t.c | 13 +- mysql-wsrep-5.6/unittest/gunit/CMakeLists.txt | 24 +- mysql-wsrep-5.6/unittest/gunit/alignment-t.cc | 13 +- .../unittest/gunit/bounded_queue-t.cc | 13 +- .../unittest/gunit/bounds_checked_array-t.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/byteorder-t.cc | 13 +- .../unittest/gunit/client_string-t.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/copy_info-t.cc | 13 +- .../unittest/gunit/cost_estimate-t.cc | 13 +- .../unittest/gunit/create_field-t.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/dbug-t.cc | 13 +- .../unittest/gunit/debug_sync-t.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/decimal-t.cc | 13 +- .../gunit/delayable_insert_operation-t.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/dynarray-t.cc | 13 +- .../unittest/gunit/explain_filename-t.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/fake_table.h | 13 +- mysql-wsrep-5.6/unittest/gunit/field-t.cc | 13 +- .../unittest/gunit/field_date-t.cc | 13 +- .../unittest/gunit/field_datetime-t.cc | 13 +- .../unittest/gunit/field_long-t.cc | 13 +- .../unittest/gunit/field_newdecimal-t.cc | 13 +- .../unittest/gunit/field_temporal_utils.h | 13 +- .../unittest/gunit/field_timestamp-t.cc | 13 +- .../unittest/gunit/filesort_buffer-t.cc | 13 +- .../unittest/gunit/filesort_compare-t.cc | 13 +- .../unittest/gunit/get_diagnostics-t.cc | 13 +- .../unittest/gunit/gunit_test_main.cc | 13 +- .../unittest/gunit/gunit_test_main_server.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/handler-t.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/handler-t.h | 13 +- mysql-wsrep-5.6/unittest/gunit/item-t.cc | 13 +- .../unittest/gunit/item_func_now_local-t.cc | 13 +- .../unittest/gunit/item_param-t.cc | 13 +- .../unittest/gunit/item_timefunc-t.cc | 13 +- .../unittest/gunit/join_tab_sort-t.cc | 13 +- .../unittest/gunit/like_range-t.cc | 13 +- .../unittest/gunit/log_throttle-t.cc | 13 +- .../unittest/gunit/make_sortkey-t.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/mdl-t.cc | 13 +- .../unittest/gunit/mock_create_field.h | 13 +- .../unittest/gunit/mock_field_datetime.h | 13 +- .../unittest/gunit/mock_field_timestamp.h | 13 +- .../unittest/gunit/mock_field_timestampf.h | 13 +- mysql-wsrep-5.6/unittest/gunit/my_bitmap-t.cc | 13 +- .../unittest/gunit/my_decimal-t.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/my_error-t.cc | 13 +- .../unittest/gunit/my_fileutils-t.cc | 13 +- .../unittest/gunit/my_murmur3-t.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/my_regex-t.cc | 13 +- .../unittest/gunit/mysys_base64-t.cc | 23 +- mysql-wsrep-5.6/unittest/gunit/mysys_lf-t.cc | 13 +- .../unittest/gunit/mysys_my_atomic-t.cc | 13 +- .../unittest/gunit/mysys_my_malloc-t.cc | 13 +- .../unittest/gunit/mysys_my_pwrite-t.cc | 13 +- .../unittest/gunit/mysys_my_rdtsc-t.cc | 13 +- .../unittest/gunit/mysys_my_vsnprintf-t.cc | 23 +- .../unittest/gunit/mysys_my_write-t.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/opt_range-t.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/opt_trace-t.cc | 13 +- .../unittest/gunit/rpl_group_set-t.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/segfault-t.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/sql_list-t.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/sql_plist-t.cc | 13 +- .../unittest/gunit/sql_string-t.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/sql_table-t.cc | 13 +- .../unittest/gunit/string-tests.cc | 13 +- .../unittest/gunit/strings_utf8-t.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/strtoll-t.cc | 13 +- .../unittest/gunit/table_cache-t.cc | 13 +- .../unittest/gunit/tap_event_listener.cc | 13 +- .../unittest/gunit/test_mdl_context_owner.h | 13 +- mysql-wsrep-5.6/unittest/gunit/test_utils.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/test_utils.h | 13 +- .../unittest/gunit/thr_template.cc | 13 +- .../unittest/gunit/thread_utils-t.cc | 13 +- .../unittest/gunit/thread_utils.cc | 13 +- mysql-wsrep-5.6/unittest/gunit/thread_utils.h | 13 +- .../unittest/gunit/yassl/CMakeLists.txt | 33 - .../unittest/gunit/yassl/yassl-t.cc | 112 - mysql-wsrep-5.6/unittest/mytap/CMakeLists.txt | 17 +- .../unittest/mytap/t/CMakeLists.txt | 17 +- mysql-wsrep-5.6/unittest/mytap/t/basic-t.c | 13 +- mysql-wsrep-5.6/unittest/mytap/tap.c | 13 +- mysql-wsrep-5.6/unittest/mytap/tap.h | 13 +- mysql-wsrep-5.6/vio/CMakeLists.txt | 17 +- mysql-wsrep-5.6/vio/test-ssl.c | 13 +- mysql-wsrep-5.6/vio/test-sslclient.c | 13 +- mysql-wsrep-5.6/vio/test-sslserver.c | 13 +- mysql-wsrep-5.6/vio/vio.c | 28 +- mysql-wsrep-5.6/vio/vio_priv.h | 18 +- mysql-wsrep-5.6/vio/viopipe.c | 18 +- mysql-wsrep-5.6/vio/vioshm.c | 18 +- mysql-wsrep-5.6/vio/viosocket.c | 30 +- mysql-wsrep-5.6/vio/viossl.c | 66 +- mysql-wsrep-5.6/vio/viosslfactories.c | 78 +- mysql-wsrep-5.6/vio/viotest-ssl.c | 13 +- mysql-wsrep-5.6/vio/viotest-sslconnect.cc | 13 +- mysql-wsrep-5.6/vio/viotest.cc | 13 +- mysql-wsrep-5.6/win/create_def_file.js | 17 +- mysql-wsrep-5.6/zlib/CMakeLists.txt | 7 + 4457 files changed, 62501 insertions(+), 66622 deletions(-) delete mode 100644 mysql-wsrep-5.6/COPYING create mode 100644 mysql-wsrep-5.6/LICENSE delete mode 100644 mysql-wsrep-5.6/WSREP_REVISION delete mode 100644 mysql-wsrep-5.6/extra/yassl/AUTHORS delete mode 100644 mysql-wsrep-5.6/extra/yassl/CMakeLists.txt delete mode 100644 mysql-wsrep-5.6/extra/yassl/COPYING delete mode 100644 mysql-wsrep-5.6/extra/yassl/ChangeLog delete mode 100644 mysql-wsrep-5.6/extra/yassl/FLOSS-EXCEPTIONS delete mode 100644 mysql-wsrep-5.6/extra/yassl/INSTALL delete mode 100644 mysql-wsrep-5.6/extra/yassl/NEWS delete mode 100644 mysql-wsrep-5.6/extra/yassl/README delete mode 100644 mysql-wsrep-5.6/extra/yassl/certs/ca-cert.pem delete mode 100644 mysql-wsrep-5.6/extra/yassl/certs/ca-key.pem delete mode 100644 mysql-wsrep-5.6/extra/yassl/certs/client-cert.der delete mode 100644 mysql-wsrep-5.6/extra/yassl/certs/client-cert.pem delete mode 100644 mysql-wsrep-5.6/extra/yassl/certs/client-key.der delete mode 100644 mysql-wsrep-5.6/extra/yassl/certs/client-key.pem delete mode 100644 mysql-wsrep-5.6/extra/yassl/certs/client-keyEnc.pem delete mode 100644 mysql-wsrep-5.6/extra/yassl/certs/client-keyEnc3.pem delete mode 100644 mysql-wsrep-5.6/extra/yassl/certs/dh1024.dat delete mode 100644 mysql-wsrep-5.6/extra/yassl/certs/dsa-cert.pem delete mode 100644 mysql-wsrep-5.6/extra/yassl/certs/dsa1024.der delete mode 100644 mysql-wsrep-5.6/extra/yassl/certs/dsa1024.pem delete mode 100644 mysql-wsrep-5.6/extra/yassl/certs/server-cert.pem delete mode 100644 mysql-wsrep-5.6/extra/yassl/certs/server-key.pem delete mode 100644 mysql-wsrep-5.6/extra/yassl/certs/server-keyEnc.pem delete mode 100644 mysql-wsrep-5.6/extra/yassl/certs/taoCert.txt delete mode 100644 mysql-wsrep-5.6/extra/yassl/examples/client/client.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/examples/client/client.dsp delete mode 100644 mysql-wsrep-5.6/extra/yassl/examples/echoclient/echoclient.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/examples/echoclient/echoclient.dsp delete mode 100644 mysql-wsrep-5.6/extra/yassl/examples/echoclient/input delete mode 100644 mysql-wsrep-5.6/extra/yassl/examples/echoclient/quit delete mode 100644 mysql-wsrep-5.6/extra/yassl/examples/echoserver/echoserver.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/examples/echoserver/echoserver.dsp delete mode 100644 mysql-wsrep-5.6/extra/yassl/examples/server/server.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/examples/server/server.dsp delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/buffer.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/cert_wrapper.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/crypto_wrapper.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/factory.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/handshake.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/lock.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/log.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/crypto.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/des.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/des_old.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/engine.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/err.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/evp.h delete mode 100755 mysql-wsrep-5.6/extra/yassl/include/openssl/generate_prefix_files.pl delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/hmac.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/lhash.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/md4.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/md5.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/objects.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/opensslv.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/pem.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/pkcs12.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/prefix_crypto.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/prefix_ssl.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/rand.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/rsa.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/sha.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/ssl.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/transport_types.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/x509.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/openssl/x509v3.h delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/socket_wrapper.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/timer.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/yassl.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/yassl_error.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/yassl_imp.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/yassl_int.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/include/yassl_types.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/lib/dummy delete mode 100644 mysql-wsrep-5.6/extra/yassl/src/buffer.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/src/cert_wrapper.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/src/crypto_wrapper.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/src/dummy.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/src/handshake.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/src/lock.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/src/log.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/src/make.bat delete mode 100644 mysql-wsrep-5.6/extra/yassl/src/socket_wrapper.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/src/ssl.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/src/template_instnt.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/src/timer.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/src/yassl.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/src/yassl_error.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/src/yassl_imp.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/src/yassl_int.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/CMakeLists.txt delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/COPYING delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/INSTALL delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/README delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/benchmark/benchmark.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/benchmark/benchmark.dsp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/benchmark/dh1024.der delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/benchmark/dsa1024.der delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/benchmark/make.bat delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/benchmark/rsa1024.der delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/certs/dh1024.dat delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/aes.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/algebra.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/arc4.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/asn.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/block.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/blowfish.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/coding.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/des.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/dh.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/dsa.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/error.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/file.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/hash.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/hc128.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/hmac.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/integer.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/kernelc.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/md2.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/md4.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/md5.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/misc.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/modarith.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/modes.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/pwdbased.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/rabbit.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/random.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/ripemd.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/rsa.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/runtime.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/sha.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/twofish.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/type_traits.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/include/types.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/algorithm.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/helpers.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/list.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/memory.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/memory_array.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/pair.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/stdexcept.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/vector.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/aes.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/aestables.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/algebra.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/arc4.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/asn.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/bftables.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/blowfish.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/coding.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/des.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/dh.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/dsa.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/file.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/hash.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/hc128.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/integer.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/make.bat delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/md2.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/md4.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/md5.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/misc.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/rabbit.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/random.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/ripemd.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/rsa.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/sha.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/template_instnt.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/tftables.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/src/twofish.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/taocrypt.dsp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/taocrypt.dsw delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/test.dsw delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/test/make.bat delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/test/memory.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/test/test.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/taocrypt/test/test.dsp delete mode 100644 mysql-wsrep-5.6/extra/yassl/testsuite/cipher-test.sh delete mode 100644 mysql-wsrep-5.6/extra/yassl/testsuite/input delete mode 100644 mysql-wsrep-5.6/extra/yassl/testsuite/make.bat delete mode 100644 mysql-wsrep-5.6/extra/yassl/testsuite/quit delete mode 100644 mysql-wsrep-5.6/extra/yassl/testsuite/test.hpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/testsuite/testsuite.cpp delete mode 100644 mysql-wsrep-5.6/extra/yassl/testsuite/testsuite.dsp delete mode 100644 mysql-wsrep-5.6/extra/yassl/yassl.dsp delete mode 100644 mysql-wsrep-5.6/extra/yassl/yassl.dsw create mode 100644 mysql-wsrep-5.6/include/mutex_lock.h create mode 100644 mysql-wsrep-5.6/mysql-test/include/allowed_ciphers.inc create mode 100644 mysql-wsrep-5.6/mysql-test/include/assert_binlog_events.inc create mode 100644 mysql-wsrep-5.6/mysql-test/include/audit_log_events.inc create mode 100644 mysql-wsrep-5.6/mysql-test/include/escape_sql.inc create mode 100644 mysql-wsrep-5.6/mysql-test/include/mysql_have_debug.inc delete mode 100644 mysql-wsrep-5.6/mysql-test/include/not_sha256_rsa_auth.inc create mode 100644 mysql-wsrep-5.6/mysql-test/include/save_binlog_position.inc create mode 100644 mysql-wsrep-5.6/mysql-test/lib/mtr_report_junit.pm create mode 100644 mysql-wsrep-5.6/mysql-test/r/audit_log_buffer_size_overflow.result create mode 100644 mysql-wsrep-5.6/mysql-test/r/audit_log_charset.result create mode 100644 mysql-wsrep-5.6/mysql-test/r/audit_log_csv.result create mode 100644 mysql-wsrep-5.6/mysql-test/r/audit_log_default_db.result create mode 100644 mysql-wsrep-5.6/mysql-test/r/audit_log_filter_commands.result create mode 100644 mysql-wsrep-5.6/mysql-test/r/audit_log_filter_users.result create mode 100644 mysql-wsrep-5.6/mysql-test/r/audit_log_install.result create mode 100644 mysql-wsrep-5.6/mysql-test/r/audit_log_install_bug1435606.result create mode 100644 mysql-wsrep-5.6/mysql-test/r/audit_log_json.result create mode 100644 mysql-wsrep-5.6/mysql-test/r/audit_log_long_records.result create mode 100644 mysql-wsrep-5.6/mysql-test/r/audit_log_many_connections.result create mode 100644 mysql-wsrep-5.6/mysql-test/r/audit_log_new.result create mode 100644 mysql-wsrep-5.6/mysql-test/r/audit_log_old.result create mode 100644 mysql-wsrep-5.6/mysql-test/r/audit_log_rotate.result create mode 100644 mysql-wsrep-5.6/mysql-test/r/audit_log_startup.result create mode 100644 mysql-wsrep-5.6/mysql-test/r/audit_log_syslog.result create mode 100644 mysql-wsrep-5.6/mysql-test/r/insert_debug.result create mode 100644 mysql-wsrep-5.6/mysql-test/std_data/crldir/5df06fcb.r0 delete mode 100644 mysql-wsrep-5.6/mysql-test/std_data/crldir/ab8a3803.r0 delete mode 100644 mysql-wsrep-5.6/mysql-test/suite/auth_sec/include/not_sha256_rsa_auth.inc delete mode 100644 mysql-wsrep-5.6/mysql-test/suite/auth_sec/r/server_withoutssl_client_withoutssl.result delete mode 100644 mysql-wsrep-5.6/mysql-test/suite/auth_sec/r/server_withoutssl_client_withssl.result delete mode 100644 mysql-wsrep-5.6/mysql-test/suite/auth_sec/t/server_withoutssl_client_withoutssl.test delete mode 100644 mysql-wsrep-5.6/mysql-test/suite/auth_sec/t/server_withoutssl_client_withssl.test create mode 100644 mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_bf_abort_committing_by_ddl.result create mode 100644 mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_slave_replay.result create mode 100644 mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_bf_abort_committing_by_ddl.inc create mode 100644 mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_bf_abort_committing_by_ddl.test create mode 100644 mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_slave_replay.cnf create mode 100644 mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_slave_replay.test create mode 100644 mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_join_with_cc_A.result create mode 100644 mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_join_with_cc_B.result create mode 100644 mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_join_with_cc_C.result create mode 100644 mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_join_with_cc_A.test create mode 100644 mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_join_with_cc_B.test create mode 100644 mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_join_with_cc_C.test create mode 100644 mysql-wsrep-5.6/mysql-test/suite/innodb/r/import_tablespace_schema_missmatch.result create mode 100644 mysql-wsrep-5.6/mysql-test/suite/innodb/r/innodb_sys_var_valgrind.result create mode 100644 mysql-wsrep-5.6/mysql-test/suite/innodb/t/import_tablespace_schema_missmatch.test create mode 100644 mysql-wsrep-5.6/mysql-test/suite/innodb/t/innodb_sys_var_valgrind.test create mode 100644 mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_binlog_format_errors.result create mode 100644 mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_delete_memory_table_after_start_server.result create mode 100644 mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_deleted_binlog_fail_to_connect.result create mode 100644 mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_drop_mem_table.result create mode 100644 mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_no_gtid_delete_memory_table_after_start_server.result create mode 100644 mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_row_image_check_for_insert_select.result rename mysql-wsrep-5.6/mysql-test/suite/{ndb_rpl/t/ndb_rpl_binlog_format_errors-master.opt => rpl/t/rpl_binlog_format_errors-master.opt} (100%) rename mysql-wsrep-5.6/mysql-test/suite/{ndb_rpl/t/ndb_rpl_binlog_format_errors-slave.opt => rpl/t/rpl_binlog_format_errors-slave.opt} (100%) create mode 100644 mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_binlog_format_errors.test create mode 100644 mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_delete_memory_table_after_start_server.test create mode 100644 mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_deleted_binlog_fail_to_connect.test create mode 100644 mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_drop_mem_table.cnf create mode 100644 mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_drop_mem_table.test create mode 100644 mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_no_gtid_delete_memory_table_after_start_server.test create mode 100644 mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_row_image_check_for_insert_select.test create mode 100644 mysql-wsrep-5.6/mysql-test/suite/wsrep/r/wsrep-recover-v25-binlog.result create mode 100644 mysql-wsrep-5.6/mysql-test/suite/wsrep/r/wsrep-recover-v25.result create mode 100644 mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-step.inc create mode 100644 mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-v25-binlog.cnf create mode 100644 mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-v25-binlog.test create mode 100644 mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-v25.cnf create mode 100644 mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-v25.test create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_buffer_size_overflow.test create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_charset-master.opt create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_charset.test create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_csv-master.opt create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_csv.test create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_default_db-master.opt create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_default_db.test create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_echo.inc create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_filter_commands-master.opt create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_filter_commands.test create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_filter_commands_events.inc create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_filter_events.inc create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_filter_users-master.opt create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_filter_users.test create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_install-master.opt create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_install.test create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_install_bug1435606-master.opt create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_install_bug1435606.test create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_json-master.opt create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_json.test create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_long_records-master.opt create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_long_records.test create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_many_connections-master.opt create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_many_connections.test create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_new-master.opt create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_new.test create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_old-master.opt create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_old.test create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_rotate-master.opt create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_rotate.test create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_startup-master.opt create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_startup.test create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_syslog-master.opt create mode 100644 mysql-wsrep-5.6/mysql-test/t/audit_log_syslog.test create mode 100644 mysql-wsrep-5.6/mysql-test/t/insert_debug-master.opt create mode 100644 mysql-wsrep-5.6/mysql-test/t/insert_debug.test delete mode 100644 mysql-wsrep-5.6/mysys_ssl/my_aes_yassl.cc delete mode 100644 mysql-wsrep-5.6/mysys_ssl/my_sha2.cc create mode 100644 mysql-wsrep-5.6/packaging/deb-in/mysql-client.install.in create mode 100644 mysql-wsrep-5.6/packaging/deb-in/mysql-packagesource-bench.lintian-overrides.in create mode 100644 mysql-wsrep-5.6/packaging/deb-in/mysql-packagesource-server.lintian-overrides.in create mode 100644 mysql-wsrep-5.6/packaging/deb-in/mysql-packagesource-server.mysql.init.in create mode 100644 mysql-wsrep-5.6/packaging/deb-in/mysql-packagesource-source.lintian-overrides.in create mode 100644 mysql-wsrep-5.6/packaging/deb-in/mysql-packagesource-test.lintian-overrides.in create mode 100644 mysql-wsrep-5.6/packaging/deb-in/patches/series mode change 100644 => 100755 mysql-wsrep-5.6/packaging/rpm-sles/filter-provides.sh mode change 100644 => 100755 mysql-wsrep-5.6/packaging/rpm-sles/filter-requires.sh create mode 100644 mysql-wsrep-5.6/plugin/audit_log/CMakeLists.txt create mode 100644 mysql-wsrep-5.6/plugin/audit_log/audit_file.c create mode 100644 mysql-wsrep-5.6/plugin/audit_log/audit_handler.h create mode 100644 mysql-wsrep-5.6/plugin/audit_log/audit_log.c create mode 100644 mysql-wsrep-5.6/plugin/audit_log/audit_log.h create mode 100644 mysql-wsrep-5.6/plugin/audit_log/audit_syslog.c create mode 100644 mysql-wsrep-5.6/plugin/audit_log/buffer.c create mode 100644 mysql-wsrep-5.6/plugin/audit_log/buffer.h create mode 100644 mysql-wsrep-5.6/plugin/audit_log/file_logger.c create mode 100644 mysql-wsrep-5.6/plugin/audit_log/filter.c create mode 100644 mysql-wsrep-5.6/plugin/audit_log/filter.h create mode 100644 mysql-wsrep-5.6/plugin/audit_log/logger.h create mode 100644 mysql-wsrep-5.6/plugin/audit_log/security_context_wrapper.cc create mode 100644 mysql-wsrep-5.6/plugin/audit_log/security_context_wrapper.h create mode 100644 mysql-wsrep-5.6/plugin/innodb_memcached/daemon_memcached/.gitignore create mode 100644 mysql-wsrep-5.6/plugin/innodb_memcached/innodb_memcache/.gitignore delete mode 100644 mysql-wsrep-5.6/unittest/gunit/yassl/CMakeLists.txt delete mode 100644 mysql-wsrep-5.6/unittest/gunit/yassl/yassl-t.cc diff --git a/debian/changelog b/debian/changelog index d6a2e1d6..3eaaacad 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +mysql-wsrep-5.6 (5.6.51-0~u14.04+mos0) mos; urgency=medium + + * Import mysql-wsrep 5.6.51 from codership + https://github.com/codership/mysql-wsrep/ + * Import wsrep-API v25 since it's now a submodule + https://github.com/codership/wsrep-API/tree/v25 + + -- Denis Meltsaykin Mon, 19 Apr 2021 16:27:00 +0200 + mysql-wsrep-5.6 (5.6.45-0~u14.04+mos0) mos; urgency=medium * Import mysql-wsrep 5.6.45 from codership diff --git a/mysql-wsrep-5.6/BUILD/SETUP.sh b/mysql-wsrep-5.6/BUILD/SETUP.sh index 5ef8807f..9567783b 100755 --- a/mysql-wsrep-5.6/BUILD/SETUP.sh +++ b/mysql-wsrep-5.6/BUILD/SETUP.sh @@ -1,16 +1,22 @@ #!/bin/sh -# Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. # -# This program 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; version 2 -# of the License. +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; if not, write to the Free @@ -100,11 +106,8 @@ path=`dirname $0` export AM_MAKEFLAGS AM_MAKEFLAGS="-j 6" -# SSL library to use.--with-ssl will select our bundled yaSSL -# implementation of SSL. To use openSSl you will nee too point out -# the location of openSSL headers and lbs on your system. -# Ex --with-ssl=/usr -SSL_LIBRARY=--with-ssl +# SSL library to use. +SSL_LIBRARY="--with-ssl=system" if [ "x$warning_mode" = "xpedantic" ]; then warnings="-W -Wall -ansi -pedantic -Wno-long-long -Wno-unused -D_POSIX_SOURCE" @@ -236,11 +239,9 @@ fi # The -fprofile-arcs and -ftest-coverage options cause GCC to instrument the # code with profiling information used by gcov. -# The -DDISABLE_TAO_ASM is needed to avoid build failures in Yassl. # The -DHAVE_gcov enables code to write out coverage info even when crashing. gcov_compile_flags="-fprofile-arcs -ftest-coverage" -gcov_compile_flags="$gcov_compile_flags -DDISABLE_TAO_ASM" gcov_compile_flags="$gcov_compile_flags -DMYSQL_SERVER_SUFFIX=-gcov -DHAVE_gcov" # GCC4 needs -fprofile-arcs -ftest-coverage on the linker command line (as well diff --git a/mysql-wsrep-5.6/BUILD/autorun.sh b/mysql-wsrep-5.6/BUILD/autorun.sh index 1d7cf556..b80ba0dc 100755 --- a/mysql-wsrep-5.6/BUILD/autorun.sh +++ b/mysql-wsrep-5.6/BUILD/autorun.sh @@ -2,15 +2,21 @@ # Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # -# This program 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; version 2 -# of the License. +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; if not, write to the Free diff --git a/mysql-wsrep-5.6/BUILD/build_mccge.sh b/mysql-wsrep-5.6/BUILD/build_mccge.sh index b2cd793f..64aa5f80 100755 --- a/mysql-wsrep-5.6/BUILD/build_mccge.sh +++ b/mysql-wsrep-5.6/BUILD/build_mccge.sh @@ -1,16 +1,22 @@ #!/bin/sh -# Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2008, 2020, Oracle and/or its affiliates. # -# This program 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; version 2 -# of the License. +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; if not, write to the Free @@ -221,7 +227,6 @@ Usage: $0 [options] --valgrind Build with valgrind --fast Optimise for CPU architecture built on --static-linking Statically link system libraries into binaries - --use-tcmalloc Link with tcmalloc instead of standard malloc (Linux only) --with-flags * Pass extra --with-xxx options to configure EOF if test "x$1" != "x" ; then @@ -338,8 +343,8 @@ extended_usage() --with-extra-charsets=all: Enable use of all character sets supported by MySQL (cannot be overridden). - --with-ssl: Enable use of yaSSL library included in the MySQL source - if possible (GCC and same CC and CXX). + --with-ssl: Enable use of SSL library if possible (GCC and same CC + and CXX). (cannot be overridden). --with-pic: Build all binaries using position independent assembler @@ -775,9 +780,6 @@ parse_options() --with-mso) with_mso="yes" ;; - --use-tcmalloc) - use_tcmalloc="yes" - ;; --with-debug) with_debug_flag="yes" fast_flag="no" @@ -1224,11 +1226,6 @@ set_ssl() # # Base options used by all packages # -# SSL library to use. --with-ssl selects the bundled yaSSL -# implementation of SSL. To use openSSL, you must point out the location -# of the openSSL headers and libs on your system. -# For example: --with-ssl=/usr -# set_base_configs() { base_configs="$base_configs --prefix=$prefix" @@ -1549,9 +1546,6 @@ set_linux_configs() usage "Only x86 and Itanium CPUs supported for Linux" exit 1 fi - if test "x$use_tcmalloc" = "xyes" ; then - base_configs="$base_configs --with-mysqld-libs=-ltcmalloc_minimal" - fi if test "x$cpu_base_type" = "xx86" ; then base_configs="$base_configs --enable-assembler" fi @@ -1849,7 +1843,6 @@ commands= engine_configs= ASFLAGS= LDFLAGS= -use_tcmalloc= without_comment="yes" with_fast_mutexes= with_perfschema="yes" diff --git a/mysql-wsrep-5.6/BUILD/cmake_configure.sh b/mysql-wsrep-5.6/BUILD/cmake_configure.sh index 668d6a81..3f68383a 100644 --- a/mysql-wsrep-5.6/BUILD/cmake_configure.sh +++ b/mysql-wsrep-5.6/BUILD/cmake_configure.sh @@ -2,15 +2,21 @@ # Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. # -# This program 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; version 2 -# of the License. +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; if not, write to the Free diff --git a/mysql-wsrep-5.6/BUILD/compile-dist b/mysql-wsrep-5.6/BUILD/compile-dist index 4adb92f6..642f8b01 100755 --- a/mysql-wsrep-5.6/BUILD/compile-dist +++ b/mysql-wsrep-5.6/BUILD/compile-dist @@ -3,13 +3,20 @@ # Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/BUILD/compile-pentium b/mysql-wsrep-5.6/BUILD/compile-pentium index 07a3faa5..51e7008c 100755 --- a/mysql-wsrep-5.6/BUILD/compile-pentium +++ b/mysql-wsrep-5.6/BUILD/compile-pentium @@ -3,14 +3,21 @@ # Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA diff --git a/mysql-wsrep-5.6/BUILD/compile-pentium-debug b/mysql-wsrep-5.6/BUILD/compile-pentium-debug index 707f7274..f059711d 100755 --- a/mysql-wsrep-5.6/BUILD/compile-pentium-debug +++ b/mysql-wsrep-5.6/BUILD/compile-pentium-debug @@ -3,14 +3,21 @@ # Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/mysql-wsrep-5.6/BUILD/compile-pentium-debug-max b/mysql-wsrep-5.6/BUILD/compile-pentium-debug-max index 4dc468eb..f21f6f2f 100755 --- a/mysql-wsrep-5.6/BUILD/compile-pentium-debug-max +++ b/mysql-wsrep-5.6/BUILD/compile-pentium-debug-max @@ -3,14 +3,21 @@ # Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/mysql-wsrep-5.6/BUILD/compile-pentium-debug-max-no-ndb b/mysql-wsrep-5.6/BUILD/compile-pentium-debug-max-no-ndb index ea5878b3..2c4ccccb 100755 --- a/mysql-wsrep-5.6/BUILD/compile-pentium-debug-max-no-ndb +++ b/mysql-wsrep-5.6/BUILD/compile-pentium-debug-max-no-ndb @@ -3,14 +3,21 @@ # Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA diff --git a/mysql-wsrep-5.6/BUILD/compile-pentium-gcov b/mysql-wsrep-5.6/BUILD/compile-pentium-gcov index 40d08287..6f374460 100755 --- a/mysql-wsrep-5.6/BUILD/compile-pentium-gcov +++ b/mysql-wsrep-5.6/BUILD/compile-pentium-gcov @@ -3,14 +3,21 @@ # Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA diff --git a/mysql-wsrep-5.6/BUILD/compile-pentium-gprof b/mysql-wsrep-5.6/BUILD/compile-pentium-gprof index 0ff56002..58004d2b 100755 --- a/mysql-wsrep-5.6/BUILD/compile-pentium-gprof +++ b/mysql-wsrep-5.6/BUILD/compile-pentium-gprof @@ -3,14 +3,21 @@ # Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA diff --git a/mysql-wsrep-5.6/BUILD/compile-pentium-valgrind-max b/mysql-wsrep-5.6/BUILD/compile-pentium-valgrind-max index b4a8f0bc..37cdf5e8 100755 --- a/mysql-wsrep-5.6/BUILD/compile-pentium-valgrind-max +++ b/mysql-wsrep-5.6/BUILD/compile-pentium-valgrind-max @@ -3,14 +3,21 @@ # Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/mysql-wsrep-5.6/BUILD/compile-pentium-valgrind-max-no-ndb b/mysql-wsrep-5.6/BUILD/compile-pentium-valgrind-max-no-ndb index 8da6c8b5..7061c717 100755 --- a/mysql-wsrep-5.6/BUILD/compile-pentium-valgrind-max-no-ndb +++ b/mysql-wsrep-5.6/BUILD/compile-pentium-valgrind-max-no-ndb @@ -2,15 +2,21 @@ # Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved. # -# This program 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; version 2 -# of the License. +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; if not, write to the Free diff --git a/mysql-wsrep-5.6/BUILD/compile-pentium64 b/mysql-wsrep-5.6/BUILD/compile-pentium64 index e62ae229..d64e0c44 100755 --- a/mysql-wsrep-5.6/BUILD/compile-pentium64 +++ b/mysql-wsrep-5.6/BUILD/compile-pentium64 @@ -2,15 +2,21 @@ # Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. # -# This program 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; version 2 -# of the License. +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; if not, write to the Free diff --git a/mysql-wsrep-5.6/CMakeLists.txt b/mysql-wsrep-5.6/CMakeLists.txt index 11d2c9a5..55e47da7 100644 --- a/mysql-wsrep-5.6/CMakeLists.txt +++ b/mysql-wsrep-5.6/CMakeLists.txt @@ -1,14 +1,21 @@ -# Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -40,6 +47,19 @@ IF(CMAKE_VERSION VERSION_EQUAL "3.0.0" OR CMAKE_POLICY(SET CMP0042 OLD) ENDIF() +# In CMake 3.12 and above, the +# +# * ``check_include_file`` macro in the ``CheckIncludeFile`` module, the +# * ``check_include_file_cxx`` macro in the +# ``CheckIncludeFileCXX`` module, and the +# * ``check_include_files`` macro in the ``CheckIncludeFiles`` module +# +# now prefer to link the check executable to the libraries listed in the +# ``CMAKE_REQUIRED_LIBRARIES`` variable. +IF(POLICY CMP0075) + CMAKE_POLICY(SET CMP0075 OLD) +ENDIF() + MESSAGE(STATUS "Running cmake version ${CMAKE_VERSION}") # Will set GIT_EXECUTABLE and GIT_FOUND @@ -113,6 +133,16 @@ ELSE() ${MYSQL_PROJECT_NAME_DOCSTRING} FORCE) MARK_AS_ADVANCED(MYSQL_PROJECT_NAME) ENDIF() + +# STRING(APPEND ...) from cmake VERSION 3.4 +MACRO(STRING_APPEND STRING_VAR INPUT) + SET(${STRING_VAR} "${${STRING_VAR}}${INPUT}") +ENDMACRO() + +MACRO(STRING_PREPEND STRING_VAR INPUT) + SET(${STRING_VAR} "${INPUT}${${STRING_VAR}}") +ENDMACRO() + PROJECT(${MYSQL_PROJECT_NAME}) # Maintainer mode is default on only for Linux debug builds using GCC/G++ @@ -182,6 +212,7 @@ ENDIF() # Add macros INCLUDE(wsrep) +INCLUDE(compile_flags) INCLUDE(character_sets) INCLUDE(cpu_info) INCLUDE(zlib) @@ -455,7 +486,7 @@ IF(BUILD_BUNDLED_ZLIB) ${CMAKE_CURRENT_BINARY_DIR}/zlib ) ENDIF() -# Add bundled yassl/taocrypt or system openssl. +# Add openssl. MYSQL_CHECK_SSL() # Add system/bundled editline. MYSQL_CHECK_EDITLINE() @@ -486,6 +517,18 @@ IF(WITH_SYMVER16) ADD_DEFINITIONS(-DEXPORT_SYMVER16) ENDIF() +# Disable -Werror=class-memaccess for gcc >= 8 +IF(CMAKE_COMPILER_IS_GNUCXX AND NOT GXX_VERSION VERSION_LESS 8) + STRING_APPEND(CMAKE_CXX_FLAGS_DEBUG " -Wno-class-memaccess") + STRING_APPEND(CMAKE_CXX_FLAGS_RELWITHDEBINFO " -Wno-class-memaccess") +ENDIF() + +# Disable -Werror=deprecated-copy for gcc >= 9) +IF(CMAKE_COMPILER_IS_GNUCXX AND NOT GXX_VERSION VERSION_LESS 9) + STRING_APPEND(CMAKE_CXX_FLAGS_DEBUG " -Wno-deprecated-copy") + STRING_APPEND(CMAKE_CXX_FLAGS_RELWITHDEBINFO " -Wno-deprecated-copy") +ENDIF() + IF(NOT WITHOUT_SERVER) SET (MYSQLD_STATIC_PLUGIN_LIBS "" CACHE INTERNAL "") # Add storage engines and plugins. @@ -609,12 +652,10 @@ ENDIF() # RPM installs documentation directly from the source tree # IF(NOT INSTALL_LAYOUT MATCHES "RPM") - INSTALL(FILES COPYING LICENSE.mysql - DESTINATION ${INSTALL_DOCREADMEDIR} - COMPONENT Readme - OPTIONAL - ) - INSTALL(FILES README DESTINATION ${INSTALL_DOCREADMEDIR} COMPONENT Readme) + INSTALL(FILES + README + LICENSE + DESTINATION ${INSTALL_DOCREADMEDIR} COMPONENT Readme) INSTALL(FILES ${CMAKE_BINARY_DIR}/Docs/INFO_SRC ${CMAKE_BINARY_DIR}/Docs/INFO_BIN DESTINATION ${INSTALL_DOCDIR}) INSTALL(FILES Docs/README-wsrep DESTINATION ${INSTALL_DOCREADMEDIR} COMPONENT Readme) # MYSQL_DOCS_LOCATON is used in "make dist", points to the documentation directory diff --git a/mysql-wsrep-5.6/COPYING b/mysql-wsrep-5.6/COPYING deleted file mode 100644 index d511905c..00000000 --- a/mysql-wsrep-5.6/COPYING +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/mysql-wsrep-5.6/LICENSE b/mysql-wsrep-5.6/LICENSE new file mode 100644 index 00000000..ba3f83d7 --- /dev/null +++ b/mysql-wsrep-5.6/LICENSE @@ -0,0 +1,4116 @@ +Licensing Information User Manual + +MySQL 5.6.46 (and later) + __________________________________________________________________ + +Introduction + + This License Information User Manual contains Oracle's product license + and other licensing information, including licensing information for + third-party software which may be included in this distribution of + MySQL 5.6.46 (and later). + + Last updated: September 2020 + +Licensing Information + + This is a release of MySQL 5.6.46 (and later), brought to you by the + MySQL team at Oracle. This software is released under version 2 of the + GNU General Public License (GPLv2), as set forth below, with the + following additional permissions: + + This distribution of MySQL 5.6.46 (and later) is distributed with + certain software (including but not limited to OpenSSL) that is + licensed under separate terms, as designated in a particular file or + component or in the license documentation. Without limiting your rights + under the GPLv2, the authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with the program. + + This distribution includes the MySQL C API client library + (libmysqlclient) otherwise known as MySQL Connector/C. Without limiting + the foregoing grant of rights under the GPLv2 and additional permission + as to separately licensed software, this Connector is also subject to + the Universal FOSS Exception, version 1.0, a copy of which is + reproduced below and can also be found along with its FAQ at + http://oss.oracle.com/licenses/universal-foss-exception. + + Copyright (c) 1997, 2020, Oracle and/or its affiliates. + +Election of GPLv2 + + For the avoidance of doubt, except that if any license choice other + than GPL or LGPL is available it will apply instead, Oracle elects to + use only the General Public License version 2 (GPLv2) at this time for + any software where a choice of GPL license versions is made available + with the language indicating that GPLv2 or any later version may be + used, or where a choice of which version of the GPL is applied is + otherwise unspecified. + +GNU General Public License Version 2.0, June 1991 + +The following applies to all products licensed under the GNU General +Public License, Version 2.0: You may not use the identified files +except in compliance with the GNU General Public License, Version +2.0 (the "License.") You may obtain a copy of the License at +http://www.gnu.org/licenses/gpl-2.0.txt. A copy of the license is +also reproduced below. Unless required by applicable law or agreed +to in writing, software distributed under the License is distributed +on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, +either express or implied. See the License for the specific language +governing permissions and limitations under the License. + + + ====================================================================== + ====================================================================== + + +GNU GENERAL PUBLIC LICENSE +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +Everyone is permitted to copy and distribute verbatim +copies of this license document, but changing it is not +allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, +and (2) offer you this license which gives you legal permission to +copy, distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, +we want its recipients to know that what they have is not the original, +so that any problems introduced by others will not reflect on the +original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software + interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as +a special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new +versions of the General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Program does not specify a +version number of this License, you may choose any version ever +published by the Free Software Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the +author to ask for permission. For software which is copyrighted by the +Free Software Foundation, write to the Free Software Foundation; we +sometimes make exceptions for this. Our decision will be guided by the +two goals of preserving the free status of all derivatives of our free +software and of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, +EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS +WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details + type 'show w'. This is free software, and you are welcome + to redistribute it under certain conditions; type 'show c' + for details. + +The hypothetical commands 'show w' and 'show c' should show the +appropriate parts of the General Public License. Of course, the +commands you use may be called something other than 'show w' and +'show c'; they could even be mouse-clicks or menu items--whatever +suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program 'Gnomovision' (which makes passes at compilers) written + by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, +you may consider it more useful to permit linking proprietary +applications with the library. If this is what you want to do, use +the GNU Lesser General Public License instead of this License. + + ====================================================================== + ====================================================================== + +The Universal FOSS Exception, Version 1.0 + + In addition to the rights set forth in the other license(s) included in + the distribution for this software, data, and/or documentation + (collectively the "Software", and such licenses collectively with this + additional permission the "Software License"), the copyright holders + wish to facilitate interoperability with other software, data, and/or + documentation distributed with complete corresponding source under a + license that is OSI-approved and/or categorized by the FSF as free + (collectively "Other FOSS"). We therefore hereby grant the following + additional permission with respect to the use and distribution of the + Software with Other FOSS, and the constants, function signatures, data + structures and other invocation methods used to run or interact with + each of them (as to each, such software's "Interfaces"): + i. The Software's Interfaces may, to the extent permitted by the + license of the Other FOSS, be copied into, used and distributed in + the Other FOSS in order to enable interoperability, without + requiring a change to the license of the Other FOSS other than as + to any Interfaces of the Software embedded therein. The Software's + Interfaces remain at all times under the Software License, + including without limitation as used in the Other FOSS (which upon + any such use also then contains a portion of the Software under the + Software License). + ii. The Other FOSS's Interfaces may, to the extent permitted by the + license of the Other FOSS, be copied into, used and distributed in + the Software in order to enable interoperability, without requiring + that such Interfaces be licensed under the terms of the Software + License or otherwise altering their original terms, if this does + not require any portion of the Software other than such Interfaces + to be licensed under the terms other than the Software License. + iii. If only Interfaces and no other code is copied between the + Software and the Other FOSS in either direction, the use and/or + distribution of the Software with the Other FOSS shall not be + deemed to require that the Other FOSS be licensed under the license + of the Software, other than as to any Interfaces of the Software + copied into the Other FOSS. This includes, by way of example and + without limitation, statically or dynamically linking the Software + together with Other FOSS after enabling interoperability using the + Interfaces of one or both, and distributing the resulting + combination under different licenses for the respective portions + thereof. For avoidance of doubt, a license which is OSI-approved or + categorized by the FSF as free, includes, for the purpose of this + permission, such licenses with additional permissions, and any + license that has previously been so approved or categorized as + free, even if now deprecated or otherwise no longer recognized as + approved or free. Nothing in this additional permission grants any + right to distribute any portion of the Software on terms other than + those of the Software License or grants any additional permission + of any kind for use or distribution of the Software in conjunction + with software other than Other FOSS. + + ====================================================================== + ====================================================================== + +Licenses for Third-Party Components + + The following sections contain licensing information for libraries that + may be included with this product. We are thankful to all individuals + that have created these. Standard licenses referenced herein are + detailed in the Standard Licenses section. + +Boost Library + + Boost C++ Libraries + + Use of any of this software is governed by the terms of the license + below: +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or +organization obtaining a copy of the software and accompanying +documentation covered by this license (the "Software") to use, +reproduce, display, distribute, execute, and transmit the Software, +and to prepare derivative works of the Software, and to permit +third-parties to whom the Software is furnished to do so, all +subject to the following: + +The copyright notices in the Software and this entire statement, +including the above license grant, this restriction and the +following disclaimer, must be included in all copies of the +Software, in whole or in part, and all derivative works of the +Software, unless such copies or derivative works are solely in the +form of machine-executable object code generated by a source +language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND +NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE +DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER +LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT +OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. + + ====================================================================== + ====================================================================== + +dtoa.c + + dtoa.c +The author of this software is David M. Gay. + +Copyright (c) 1991, 2000, 2001 by Lucent Technologies. + +Permission to use, copy, modify, and distribute this software for +any purpose without fee is hereby granted, provided that this entire +notice is included in all copies of any software which is or includes +a copy or modification of this software and in all copies of the +supporting documentation for such software. + +THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR +IMPLIED WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT +MAKES ANY REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE +MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR +PURPOSE. + + ====================================================================== + ====================================================================== + +Editline Library (libedit) + + Editline Library (libedit) + + Some files are: +Copyright (c) 1992, 1993 +The Regents of the University of California. All rights reserved. + +This code is derived from software contributed to +Berkeley by Christos Zoulas of Cornell University. + +Redistribution and use in source and binary forms, +with or without modification, are permitted provided +that the following conditions are met: + +1. Redistributions of source code must retain the + above copyright notice, this list of conditions + and the following disclaimer. +2. Redistributions in binary form must reproduce the + above copyright notice, this list of conditions and + the following disclaimer in the documentation and/or + other materials provided with the distribution. +3. Neither the name of the University nor the names of + its contributors may be used to endorse or promote + products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. + + Some files are: +Copyright (c) 2001 The NetBSD Foundation, Inc. +All rights reserved. + +This code is derived from software contributed to The NetBSD Foundation + +by Anthony Mallet. + +Redistribution and use in source and binary forms, +with or without modification, are permitted provided +that the following conditions are met: + +1. Redistributions of source code must retain the + above copyright notice, this list of conditions + and the following disclaimer. +2. Redistributions in binary form must reproduce the + above copyright notice, this list of conditions and the + following disclaimer in the documentation and/or + other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. +AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + + Some files are: +Copyright (c) 1997 The NetBSD Foundation, Inc. +All rights reserved. + +This code is derived from software contributed to The NetBSD Foundation + +by Jaromir Dolecek. + +Redistribution and use in source and binary forms, +with or without modification, are permitted provided +that the following conditions are met: + +1. Redistributions of source code must retain the + above copyright notice, this list of conditions + and the following disclaimer. +2. Redistributions in binary form must reproduce + the above copyright notice, this list of conditions + and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. +AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + + Some files are: +Copyright (c) 1998 Todd C. Miller + +Permission to use, copy, modify, and distribute this +software for any purpose with or without fee is hereby +granted, provided that the above copyright notice and +this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER +DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE +FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL +DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + ====================================================================== + ====================================================================== + +Expect.pm + + Expect.pm Perl module +Expect.pm is licensed under the Perl license, which is essentially a dual +license. + +Oracle may use, redistribute and/or modify this code under the terms of +either: + + a) the GNU General Public License as published by the Free Software +Foundation; either version 1, or (at your option) any later version, or + + b) the "Artistic License" which comes with the Expect/pr code. + +Oracle elects to use the GPLv2 for version of MySQL that are licensed under +the GPL. + +Oracle elects to use the Artistic license for all other (commercial) versions +of MySQL. + +A copy of the GPLv2 and the Artistic License (Perl) 1.0 must be included with +any distribution: + +The GNU General Public License (GPL-2.0) +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to +share and change it. By contrast, the GNU General Public License is intended +to guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program +whose authors commit to using it. (Some other Free Software Foundation +software is covered by the GNU Library General Public License instead.) You +can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom +to distribute copies of free software (and charge for this service if you +wish), that you receive source code or can get it if you want it, that you +can change the software or use pieces of it in new free programs; and that +you know you can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to +deny you these rights or to ask you to surrender the rights. These +restrictions translate to certain responsibilities for you if you distribute +copies of the software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or +for a fee, you must give the recipients all the rights that you have. You +must make sure that they, too, receive or can get the source code. And you +must show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program +proprietary. To prevent this, we have made it clear that any patent must be +licensed for everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms +of this General Public License. The "Program", below, refers to any such +program or work, and a "work based on the Program" means either the Program +or any derivative work under copyright law: that is to say, a work containing +the Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered +by this License; they are outside its scope. The act of running the Program +is not restricted, and the output from the Program is covered only if its +contents constitute a work based on the Program (independent of having been +made by running the Program). Whether that is true depends on what the +Program does. + +1. You may copy and distribute verbatim copies of the Program's source code +as you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this +License and to the absence of any warranty; and give any other recipients of +the Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, +thus forming a work based on the Program, and copy and distribute such +modifications or work under the terms of Section 1 above, provided that you +also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices stating +that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole +or in part contains or is derived from the Program or any part thereof, to be +licensed as a whole at no charge to all third parties under the terms of this +License. + + c) If the modified program normally reads commands interactively when +run, you must cause it, when started running for such interactive use in the +most ordinary way, to print or display an announcement including an +appropriate copyright notice and a notice that there is no warranty (or else, +saying that you provide a warranty) and that users may redistribute the +program under these conditions, and telling the user how to view a copy of +this License. (Exception: if the Program itself is interactive but does not +normally print such an announcement, your work based on the Program is not +required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, +and its terms, do not apply to those sections when you distribute them as +separate works. But when you distribute the same sections as part of a whole +which is a work based on the Program, the distribution of the whole must be +on the terms of this License, whose permissions for other licensees extend to +the entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with +the Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 +and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source +code, which must be distributed under the terms of Sections 1 and 2 above on +a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to +give any third party, for a charge no more than your cost of physically +performing source distribution, a complete machine-readable copy of the +corresponding source code, to be distributed under the terms of Sections 1 +and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to +distribute corresponding source code. (This alternative is allowed only for +noncommercial distribution and only if you received the program in object +code or executable form with such an offer, in accord with Subsection b +above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and +installation of the executable. However, as a special exception, the source +code distributed need not include anything that is normally distributed (in +either source or binary form) with the major components (compiler, kernel, +and so on) of the operating system on which the executable runs, unless that +component itself accompanies the executable. + +If distribution of executable or object code is made by offering access to +copy from a designated place, then offering equivalent access to copy the +source code from the same place counts as distribution of the source code, +even though third parties are not compelled to copy the source along with the +object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically +terminate your rights under this License. However, parties who have received +copies, or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the +Program or its derivative works. These actions are prohibited by law if you +do not accept this License. Therefore, by modifying or distributing the +Program (or any work based on the Program), you indicate your acceptance of +this License to do so, and all its terms and conditions for copying, +distributing or modifying the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of +the rights granted herein. You are not responsible for enforcing compliance +by third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not excuse +you from the conditions of this License. If you cannot distribute so as to +satisfy simultaneously your obligations under this License and any other +pertinent obligations, then as a consequence you may not distribute the +Program at all. For example, if a patent license would not permit +royalty-free redistribution of the Program by all those who receive copies +directly or indirectly through you, then the only way you could satisfy both +it and this License would be to refrain entirely from distribution of the +Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents +or other property right claims or to contest validity of any such claims; +this section has the sole purpose of protecting the integrity of the free +software distribution system, which is implemented by public license +practices. Many people have made generous contributions to the wide range of +software distributed through that system in reliance on consistent +application of that system; it is up to the author/donor to decide if he or +she is willing to distribute software through any other system and a licensee +cannot impose that choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an +explicit geographical distribution limitation excluding those countries, so +that distribution is permitted only in or among countries not thus excluded. +In such case, this License incorporates the limitation as if written in the +body of this License. + +9. The Free Software Foundation may publish revised and/or new versions of +the General Public License from time to time. Such new versions will be +similar in spirit to the present version, but may differ in detail to address +new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of this License, +you may choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software +Foundation, write to the Free Software Foundation; we sometimes make +exceptions for this. Our decision will be guided by the two goals of +preserving the free status of all derivatives of our free software and of +promoting the sharing and reuse of software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO +LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR +THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the +exclusion of warranty; and each file should have at least the "copyright" +line and a pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + Copyright (C) + + This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2 of the License, or (at your option) any +later version. + + This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +details. + + You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., 59 +Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when +it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision +comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free +software, and you are welcome to redistribute it under certain conditions; +type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program +`Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + +________________________________________________________ + +The "Artistic License" + +Preamble + +The intent of this document is to state the conditions under which a +Package may be copied, such that the Copyright Holder maintains some +semblance of artistic control over the development of the package, +while giving the users of the package the right to use and distribute +the Package in a more-or-less customary fashion, plus the right to make +reasonable modifications. + +Definitions: + + "Package" refers to the collection of files distributed by the + Copyright Holder, and derivatives of that collection of files + created through textual modification. + + "Standard Version" refers to such a Package if it has not been + modified, or has been modified in accordance with the wishes + of the Copyright Holder as specified below. + + "Copyright Holder" is whoever is named in the copyright or + copyrights for the package. + + "You" is you, if you're thinking about copying or distributing + this Package. + + "Reasonable copying fee" is whatever you can justify on the + basis of media cost, duplication charges, time of people involved, + and so on. (You will not be required to justify it to the + Copyright Holder, but only to the computing community at large + as a market that must bear the fee.) + + "Freely Available" means that no fee is charged for the item + itself, though there may be fees involved in handling the item. + It also means that recipients of the item may redistribute it + under the same conditions they received it. + +1. You may make and give away verbatim copies of the source form of the +Standard Version of this Package without restriction, provided that you +duplicate all of the original copyright notices and associated disclaimers. + +2. You may apply bug fixes, portability fixes and other modifications +derived from the Public Domain or from the Copyright Holder. A Package +modified in such a way shall still be considered the Standard Version. + +3. You may otherwise modify your copy of this Package in any way, provided +that you insert a prominent notice in each changed file stating how and +when you changed that file, and provided that you do at least ONE of the +following: + + a) place your modifications in the Public Domain or otherwise make them + Freely Available, such as by posting said modifications to Usenet or + an equivalent medium, or placing the modifications on a major archive + site such as uunet.uu.net, or by allowing the Copyright Holder to include + your modifications in the Standard Version of the Package. + + b) use the modified Package only within your corporation or organization. + + c) rename any non-standard executables so the names do not conflict + with standard executables, which must also be provided, and provide + a separate manual page for each non-standard executable that clearly + documents how it differs from the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +4. You may distribute the programs of this Package in object code or +executable form, provided that you do at least ONE of the following: + + a) distribute a Standard Version of the executables and library files, + together with instructions (in the manual page or equivalent) on where + to get the Standard Version. + + b) accompany the distribution with the machine-readable source of + the Package with your modifications. + + c) give non-standard executables non-standard names, and clearly + document the differences in manual pages (or equivalent), together + with instructions on where to get the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +5. You may charge a reasonable copying fee for any distribution of this +Package. You may charge any fee you choose for support of this +Package. You may not charge a fee for this Package itself. However, +you may distribute this Package in aggregate with other (possibly +commercial) programs as part of a larger (possibly commercial) software +distribution provided that you do not advertise this Package as a +product of your own. You may embed this Package's interpreter within +an executable of yours (by linking); this shall be construed as a mere +form of aggregation, provided that the complete Standard Version of the +interpreter is so embedded. + +6. The scripts and library files supplied as input to or produced as +output from the programs of this Package do not automatically fall +under the copyright of this Package, but belong to whoever generated +them, and may be sold commercially, and may be aggregated with this +Package. If such scripts or library files are aggregated with this +Package via the so-called "undump" or "unexec" methods of producing a +binary executable image, then distribution of such an image shall +neither be construed as a distribution of this Package nor shall it +fall under the restrictions of Paragraphs 3 and 4, provided that you do +not represent such an executable image as a Standard Version of this +Package. + +7. C subroutines (or comparably compiled subroutines in other +languages) supplied by you and linked into this Package in order to +emulate subroutines and variables of the language defined by this +Package shall not be considered part of this Package, but are the +equivalent of input as in Paragraph 6, provided these subroutines do +not change the language in any way that would cause it to fail the +regression tests for the language. + +8. Aggregation of this Package with a commercial distribution is always +permitted provided that the use of this Package is embedded; that is, +when no overt attempt is made to make this Package's interfaces visible +to the end user of the commercial distribution. Such use shall not be +construed as a distribution of this Package. + +9. The name of the Copyright Holder may not be used to endorse or promote +products derived from this software without specific prior written +permission. + +10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + The End + + ====================================================================== + ====================================================================== + +Facebook Fast Checksum Patch + +Facebook Fast Checksum Patch + +Copyright (C) 2009-2010 Facebook, Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY FACEBOOK, INC. "AS IS" AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL FACEBOOK, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Also included: + +crc32.c -- compute the CRC-32 of a buf stream +Copyright (C) 1995-2005 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. + +Jean-loup Gailly jloup@gzip.org +Mark Adler madler@alumni.caltech.edu + + ====================================================================== + ====================================================================== + +Facebook Patches + +Copyright (c) 2012, Facebook, Inc. +All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: +* Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + ====================================================================== + ====================================================================== + +FindGTest.cmake + +FindGTest.cmake helper script (part of CMake) + +Copyright 2009 Kitware, Inc. +Copyright 2009 Philip Lowman +Copyright 2009 Daniel Blezek + +Distributed under the OSI-approved BSD License (the "License"); +see accompanying file Copyright.txt for details. + +This software is distributed WITHOUT ANY WARRANTY; without even the +implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the License for more information. +========================================================================== +(To distributed this file outside of CMake, substitute the full + License text for the above reference.) + +Thanks to Daniel Blezek for the GTEST_ADD_TESTS code + +Text of Copyright.txt mentioned above: + +CMake - Cross Platform Makefile Generator +Copyright 2000-2009 Kitware, Inc., Insight Software Consortium +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +* Neither the names of Kitware, Inc., the Insight Software Consortium, + nor the names of their contributors may be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ====================================================================== + ====================================================================== + +Fred Fish's Dbug Library + + Fred Fish's Dbug Library + N O T I C E + + Copyright Abandoned, 1987, Fred Fish + + This previously copyrighted work has been placed into the public + domain by the author and may be freely used for any purpose, + private or commercial. + + Because of the number of inquiries I was receiving about the use + of this product in commercially developed works I have decided to + simply make it public domain to further its unrestricted use. I + specifically would be most happy to see this material become a + part of the standard Unix distributions by AT&T and the Berkeley + Computer Science Research Group, and a standard part of the GNU + system from the Free Software Foundation. + + I would appreciate it, as a courtesy, if this notice is left in + all copies and derivative works. Thank you. + + The author makes no warranty of any kind with respect to this + product and explicitly disclaims any implied warranties of mer- + chantability or fitness for any particular purpose. + +The dbug_analyze.c file is subject to the following notice: + + Copyright June 1987, Binayak Banerjee + All rights reserved. + + This program may be freely distributed under the same terms and + conditions as Fred Fish's Dbug package. + + ====================================================================== + ====================================================================== + +getarg + + getarg Function (getarg.h, getarg.c files) +Copyright (c) 1997 - 2000 Kungliga Tekniska Högskolan +(Royal Institute of Technology, Stockholm, Sweden). +All rights reserved. + +Redistribution and use in source and binary forms, with +or without modification, are permitted provided that the +following conditions are met: + +1. Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. +2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. +3. Neither the name of the Institute nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + + ====================================================================== + ====================================================================== + +Google C++ Mocking Framework (Google Mock) + + This Oracle Product includes or references Gmock (including gtest), + which is licensed to Oracle under the following terms: +Copyright 2008, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. +* Neither the name of Google Inc. nor the names of its contributors may be +used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + ====================================================================== + ====================================================================== + +Google Controlling Master Thread I/O Rate Patch + + Google Controlling master thread I/O rate patch +Copyright (c) 2009, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the Google Inc. nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + ====================================================================== + ====================================================================== + +Google Perftools (TCMalloc utility) + +Google Perftools (TCMalloc utility) + +Copyright (c) 1998-2006, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or +without modification, are permitted provided that the following +conditions are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ====================================================================== + ====================================================================== + +Google SMP Patch + +Google SMP patch + +Copyright (c) 2008, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the Google Inc. nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + ====================================================================== + ====================================================================== + +Janson + + Janson 2.6 +Include the following verbatim in the documentation: + +Licence Text: + +Copyright (c) (c) 2009-2013 Petri Lehtinen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + ====================================================================== + ====================================================================== + +lib_sql.cc + + lib_sql.cc +Copyright (c) 2000 +SWsoft company + +This material is provided "as is", with absolutely no warranty +expressed or implied. Any use is at your own risk. + +Permission to use or copy this software for any purpose is hereby +granted without fee, provided the above notices are retained on +all copies. Permission to modify the code and to distribute modified +code is granted, provided the above notices are retained, and a +notice that the code was modified is included with the above copyright +notice. + +This code was modified by the MySQL team. + + ====================================================================== + ====================================================================== + +Libaio + +libaio + + You may be receiving a copy of the Libaio library with this MySQL + product. The terms of the Oracle license do NOT apply to the Libaio + library; it is licensed under the following license, separately from + the Oracle programs you receive. If you do not wish to install this + program, you may delete its files. + + This component is licensed under GNU Lesser General Public License + Version 2.1, February 1999. See the 'Standard Licenses' section for + license text. + + ====================================================================== + ====================================================================== + +libevent + +Copyright (c) 2000-2007 Niels Provos +Copyright (c) 2007-2012 Niels Provos and Nick Mathewson + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +============================== + +Portions of Libevent are based on works by others, also made available by +them under the three-clause BSD license above. The copyright notices are +available in the corresponding source files; the license is as above. Here's +a list: + +log.c: + Copyright (c) 2000 Dug Song + Copyright (c) 1993 The Regents of the University of California. + +strlcpy.c: + Copyright (c) 1998 Todd C. Miller + +win32select.c: + Copyright (c) 2003 Michael A. Davis + +evport.c: + Copyright (c) 2007 Sun Microsystems + +ht-internal.h: + Copyright (c) 2002 Christopher Clark + +minheap-internal.h: + Copyright (c) 2006 Maxim Yegorushkin + +============================== + +The arc4module is available under the following, sometimes called the +"OpenBSD" license: + + Copyright (c) 1996, David Mazieres + Copyright (c) 2008, Damien Miller + + Permission to use, copy, modify, and distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +============================== + +The Windows timer code is based on code from libutp, which is +distributed under this license, sometimes called the "MIT" license. + +Copyright (c) 2010 BitTorrent, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + + ====================================================================== + ====================================================================== + +libgcc & libstdc++ Libraries + + libgcc & libstdc++ libraries + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. +Everyone is permitted to copy and distribute verbatim copies of +this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are +designed to take away your freedom to share and change the works. +By contrast, the GNU General Public License is intended to guarantee +your freedom to share and change all versions of a program--to make +sure it remains free software for all its users. We, the Free +Software Foundation, use the GNU General Public License for most +of our software; it applies also to any other work released this +way by its authors. You can apply it to your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and +charge for them if you wish), that you receive source code or can +get it if you want it, that you can change the software or use +pieces of it in new free programs, and that you know you can do +these things. + + To protect your rights, we need to prevent others from denying +you these rights or asking you to surrender the rights. Therefore, +you have certain responsibilities if you distribute copies of the +software, or if you modify it: responsibilities to respect the +freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, +receive or can get the source code. And you must show them these +terms so they know their rights. + + Developers that use the GNU GPL protect your rights with two +steps: (1) assert copyright on the software, and (2) offer you this +License giving you legal permission to copy, distribute and/or +modify it. + + For the developers' and authors' protection, the GPL clearly +explains that there is no warranty for this free software. For +both users' and authors' sake, the GPL requires that modified +versions be marked as changed, so that their problems will not be +attributed erroneously to authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the +manufacturer can do so. This is fundamentally incompatible with +the aim of protecting users' freedom to change the software. The +systematic pattern of such abuse occurs in the area of products for +individuals to use, which is precisely where it is most unacceptable. +Therefore, we have designed this version of the GPL to prohibit the +practice for those products. If such problems arise substantially +in other domains, we stand ready to extend this provision to those +domains in future versions of the GPL, as needed to protect the +freedom of users. + + Finally, every program is threatened constantly by software +patents. States should not allow patents to restrict development +and use of software on general-purpose computers, but in those that +do, we wish to avoid the special danger that patents applied to a +free program could make it effectively proprietary. To prevent +this, the GPL assures that patents cannot be used to render the +program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds +of works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the +work in a fashion requiring copyright permission, other than the +making of an exact copy. The resulting work is called a "modified +version" of the earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it +on a computer or modifying a private copy. Propagation includes +copying, distribution (with or without modification), making available +to the public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user +through a computer network, with no transfer of a copy, is not +conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to +the extent that warranties are provided), that licensees may convey +the work under this License, and how to view a copy of this License. +If the interface presents a list of user commands or options, such +as a menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case +of interfaces specified for a particular programming language, one +that is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form +of packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts +to control those activities. However, it does not include the +work's System Libraries, or general-purpose tools or generally +available free programs which are used unmodified in performing +those activities but which are not part of the work. For example, +Corresponding Source includes interface definition files associated +with source files for the work, and the source code for shared +libraries and dynamically linked subprograms that the work is +specifically designed to require, such as by intimate data communication +or control flow between those subprograms and other parts of the +work. + + The Corresponding Source need not include anything that users can +regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running +a covered work is covered by this License only if the output, given +its content, constitutes a covered work. This License acknowledges +your rights of fair use or other equivalent, as provided by copyright +law. + + You may make, run and propagate covered works that you do not convey, +without conditions so long as your license otherwise remains in +force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide +you with facilities for running those works, provided that you +comply with the terms of this License in conveying all material for +which you do not control copyright. Those thus making or running +the covered works for you must do so exclusively on your behalf, +under your direction and control, on terms that prohibit them from +making any copies of your copyrighted material outside their +relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section +10 makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect +to the covered work, and you disclaim any intention to limit operation +or modification of the work as a means of enforcing, against the +work's users, your or third parties' legal rights to forbid +circumvention of technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any non-permissive +terms added in accord with section 7 apply to the code; keep intact +all notices of the absence of any warranty; and give all recipients +a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications +to produce it from the Program, in the form of source code under +the terms of section 4, provided that you also meet all of these +conditions: + + a) The work must carry prominent notices stating that you + modified it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under + section 7. This requirement modifies the requirement in + section 4 to "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has + interactive interfaces that do not display Appropriate Legal + Notices, your work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called +an "aggregate" if the compilation and its resulting copyright are +not used to limit the access or legal rights of the compilation's +users beyond what the individual works permit. Inclusion of a +covered work in an aggregate does not cause this License to apply +to the other parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the machine-readable +Corresponding Source under the terms of this License, in one of +these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that + product model, to give anyone who possesses the object code + either (1) a copy of the Corresponding Source for all the + software in the product that is covered by this License, on a + durable physical medium customarily used for software + interchange, for a price no more than your reasonable cost + of physically performing this conveying of source, or (2) + access to copy the Corresponding Source from a network server + at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in + accord with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to + the Corresponding Source in the same way through the same place + at no further charge. You need not require recipients to copy + the Corresponding Source along with the object code. If the + place to copy the object code is a network server, the + Corresponding Source may be on a different server (operated + by you or a third party) that supports equivalent copying + facilities, provided you maintain clear directions next to the + object code saying where to find the Corresponding Source. + Regardless of what server hosts the Corresponding Source, you + remain obligated to ensure that it is available for as long + as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, + provided you inform other peers where the object code and + Corresponding Source of the work are being offered to the + general public at no charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means +any tangible personal property which is normally used for personal, +family, or household purposes, or (2) anything designed or sold for +incorporation into a dwelling. In determining whether a product +is a consumer product, doubtful cases shall be resolved in favor +of coverage. For a particular product received by a particular +user, "normally used" refers to a typical or common use of that +class of product, regardless of the status of the particular user +or of the way in which the particular user actually uses, or expects +or is expected to use, the product. A product is a consumer product +regardless of whether the product has substantial commercial, +industrial or non-consumer uses, unless such uses represent the +only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to +install and execute modified versions of a covered work in that +User Product from a modified version of its Corresponding Source. +The information must suffice to ensure that the continued functioning +of the modified object code is in no case prevented or interfered +with solely because modification has been made. + + If you convey an object code work under this section in, or with, +or specifically for use in, a User Product, and the conveying occurs +as part of a transaction in which the right of possession and use +of the User Product is transferred to the recipient in perpetuity +or for a fixed term (regardless of how the transaction is characterized), +the Corresponding Source conveyed under this section must be +accompanied by the Installation Information. But this requirement +does not apply if neither you nor any third party retains the ability +to install modified object code on the User Product (for example, +the work has been installed in ROM). + + The requirement to provide Installation Information does not include +a requirement to continue to provide support service, warranty, or +updates for a work that has been modified or installed by the +recipient, or for the User Product in which it has been modified +or installed. Access to a network may be denied when the modification +itself materially and adversely affects the operation of the network +or violates the rules and protocols for communication across the +network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of +this License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program +shall be treated as though they were included in this License, to +the extent that they are valid under applicable law. If additional +permissions apply only to part of the Program, that part may be +used separately under those permissions, but the entire Program +remains governed by this License without regard to the additional +permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part +of it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material +you add to a covered work, you may (if authorized by the copyright +holders of that material) supplement the terms of this License with +terms: + + a) Disclaiming warranty or limiting liability differently from + the terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices + or author attributions in that material or in the Appropriate + Legal Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, + or requiring that modified versions of such material be marked + in reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors + or authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions + of it) with contractual assumptions of liability to the + recipient, for any liability that these contractual assumptions + directly impose on those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as +you received it, or any part of it, contains a notice stating that +it is governed by this License along with a term that is a further +restriction, you may remove that term. If a license document +contains a further restriction but permits relicensing or conveying +under this License, you may add to a covered work material governed +by the terms of that license document, provided that the further +restriction does not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in +the form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate +or modify it is void, and will automatically terminate your rights +under this License (including any patent licenses granted under the +third paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from +that copyright holder, and you cure the violation prior to 30 days +after your receipt of the notice. + + Termination of your rights under this section does not terminate +the licenses of parties who have received copies or rights from you +under this License. If your rights have been terminated and not +permanently reinstated, you do not qualify to receive new licenses +for the same material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you +may not impose a license fee, royalty, or other charge for exercise +of rights granted under this License, and you may not initiate +litigation (including a cross-claim or counterclaim in a lawsuit) +alleging that any patent claim is infringed by making, using, +selling, offering for sale, or importing the Program or any portion +of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired +or hereafter acquired, that would be infringed by some manner, +permitted by this License, of making, using, or selling its contributor +version, but do not include claims that would be infringed only as +a consequence of further modification of the contributor version. +For purposes of this definition, "control" includes the right to +grant patent sublicenses in a manner consistent with the requirements +of this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify +and propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a +patent (such as an express permission to practice a patent or +covenant not to sue for patent infringement). To "grant" such a +patent license to a party means to make such an agreement or +commitment not to enforce a patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through +a publicly available network server or other readily accessible +means, then you must either (1) cause the Corresponding Source to +be so available, or (2) arrange to deprive yourself of the benefit +of the patent license for this particular work, or (3) arrange, in +a manner consistent with the requirements of this License, to extend +the patent license to downstream recipients. "Knowingly relying" +means you have actual knowledge that, but for the patent license, +your conveying the covered work in a country, or your recipient's +use of the covered work in a country, would infringe one or more +identifiable patents in that country that you have reason to believe +are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, +a covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, +modify or convey a specific copy of the covered work, then the +patent license you grant is automatically extended to all recipients +of the covered work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is conditioned +on the non-exercise of one or more of the rights that are specifically +granted under this License. You may not convey a covered work if +you are a party to an arrangement with a third party that is in the +business of distributing software, under which you make payment to +the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement +or otherwise) that contradict the conditions of this License, they +do not excuse you from the conditions of this License. If you +cannot convey a covered work so as to satisfy simultaneously your +obligations under this License and any other pertinent obligations, +then as a consequence you may not convey it at all. For example, +if you agree to terms that obligate you to collect a royalty for +further conveying from those to whom you convey the Program, the +only way you could satisfy both those terms and this License would +be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a +single combined work, and to convey the resulting work. The terms +of this License will continue to apply to the part which is the +covered work, but the special requirements of the GNU Affero General +Public License, section 13, concerning interaction through a network +will apply to the combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of +the GNU General Public License, you may choose any version ever +published by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes +you to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow +a later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT +WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT +NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE +DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR +OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR +CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING +BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE +OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE +PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make +it free software which everyone can redistribute and change under +these terms. + +To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is +found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation, either version 3 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see + . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type 'show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the +appropriate parts of the General Public License. Of course, your +program's commands might be different; for a GUI interface, you +would use an "about box". + + You should also get your employer (if you work as a programmer) or +school, if any, to sign a "copyright disclaimer" for the program, +if necessary. For more information on this, and how to apply and +follow the GNU GPL, see . + +The GNU General Public License does not permit incorporating your +program into proprietary programs. If your program is a subroutine +library, you may consider it more useful to permit linking proprietary +applications with the library. If this is what you want to do, use +the GNU Lesser General Public License instead of this License. But +first, please read . +== + +== +GCC RUNTIME LIBRARY EXCEPTION + +Version 3.1, 31 March 2009 + +Copyright (c) 2009 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of +this license document, but changing it is not allowed. + +This GCC Runtime Library Exception ("Exception") is an additional +permission under section 7 of the GNU General Public License, version +3 ("GPLv3"). It applies to a given file (the "Runtime Library") +that bears a notice placed by the copyright holder of the file +stating that the file is governed by GPLv3 along with this Exception. + +When you use GCC to compile a program, GCC may combine portions of +certain GCC header files and runtime libraries with the compiled +program. The purpose of this Exception is to allow compilation of +non-GPL (including proprietary) programs to use, in this way, the +header files and runtime libraries covered by this Exception. + +0. Definitions. + +A file is an "Independent Module" if it either requires the Runtime +Library for execution after a Compilation Process, or makes use of +an interface provided by the Runtime Library, but is not otherwise +based on the Runtime Library. + +"GCC" means a version of the GNU Compiler Collection, with or without +modifications, governed by version 3 (or a specified later version) +of the GNU General Public License (GPL) with the option of using +any subsequent versions published by the FSF. + +"GPL-compatible Software" is software whose conditions of propagation, +modification and use would permit combination with GCC in accord +with the license of GCC. + +"Target Code" refers to output from any compiler for a real or +virtual target processor architecture, in executable form or suitable +for input to an assembler, loader, linker and/or execution phase. +Notwithstanding that, Target Code does not include data in any +format that is used as a compiler intermediate representation, or +used for producing a compiler intermediate representation. + +The "Compilation Process" transforms code entirely represented in +non-intermediate languages designed for human-written code, and/or +in Java Virtual Machine byte code, into Target Code. Thus, for +example, use of source code generators and preprocessors need not +be considered part of the Compilation Process, since the Compilation +Process can be understood as starting with the output of the +generators or preprocessors. + +A Compilation Process is "Eligible" if it is done using GCC, alone +or with other GPL-compatible software, or if it is done without +using any work based on GCC. For example, using non-GPL-compatible +Software to optimize any GCC intermediate representations would not +qualify as an Eligible Compilation Process. + +1. Grant of Additional Permission. + +You have permission to propagate a work of Target Code formed by +combining the Runtime Library with Independent Modules, even if +such propagation would otherwise violate the terms of GPLv3, provided +that all Target Code was generated by Eligible Compilation Processes. +You may then convey such a combination under terms of your choice, +consistent with the licensing of the Independent Modules. + +2. No Weakening of GCC Copyleft. + +The availability of this Exception does not imply any general +presumption that third-party software is unaffected by the copyleft +requirements of the license of GCC. +== + +== + 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. +== + +== + shared_count.hpp +@ Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. + + shared_ptr.hpp + Copyright (C) 1998, 1999 Greg Colvin and Beman Dawes. + Copyright (C) 2001, 2002, 2003 Peter Dimov + + weak_ptr.hpp + Copyright (C) 2001, 2002, 2003 Peter Dimov + + enable_shared_from_this.hpp + Copyright (C) 2002 Peter Dimov + +Distributed under the Boost Software License, Version 1.0. + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or +organization obtaining a copy of the software and accompanying +documentation covered by this license (the "Software") to use, +reproduce, display, distribute, execute, and transmit the Software, +and to prepare derivative works of the Software, and to permit +third-parties to whom the Software is furnished to do so, all subject +to the following: + +The copyright notices in the Software and this entire statement, +including the above license grant, this restriction and the following +disclaimer, must be included in all copies of the Software, in whole +or in part, and all derivative works of the Software, unless such +copies or derivative works are solely in the form of machine-executable +object code generated by a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND +NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE +DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER +LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. +== + +== +Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL. + +Permission to use, copy, modify, sell, and distribute this software +is hereby granted without fee, provided that the above copyright +notice appears in all copies, and that both that copyright notice +and this permission notice appear in supporting documentation. None +of the above authors, nor IBM Haifa Research Laboratories, make any +representation about the suitability of this software for any +purpose. It is provided "as is" without express or implied warranty. +== + + ====================================================================== + ====================================================================== + +Linux-PAM + +Unless otherwise *explicitly* stated the following text describes the licensed +conditions under which the contents of this Linux-PAM release may be +distributed: + +------------------------------------------------------------------------- +Redistribution and use in source and binary forms of Linux-PAM, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain any existing copyright notice, and + this entire permission notice in its entirety, including the disclaimer of + warranties. + +2. Redistributions in binary form must reproduce all prior and current copyright + notices, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. The name of any author may not be used to endorse or promote products derived + from this software without their specific prior written permission. + +ALTERNATIVELY, this product may be distributed under the terms of the GNU +General Public License, in which case the provisions of the GNU GPL are required +INSTEAD OF the above restrictions. (This clause is necessary due to a potential +conflict between the GNU GPL and the restrictions contained in a BSD-style +copyright.) + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +------------------------------------------------------------------------- +Oracle elects the BSD-style license + + ====================================================================== + ====================================================================== + +md5 (Message-Digest Algorithm 5) + +md5 (Message-Digest Algorithm 5) + + This code implements the MD5 message-digest algorithm. + The algorithm is due to Ron Rivest. This code was + written by Colin Plumb in 1993, no copyright is claimed. + This code is in the public domain; do with it what you wish. + + Equivalent code is available from RSA Data Security, Inc. + This code has been tested against that, and is equivalent, + except that you don't need to include two pages of legalese + with every copy. + + The code has been modified by Mikael Ronstroem to handle + calculating a hash value of a key that is always a multiple + of 4 bytes long. Word 0 of the calculated 4-word hash value + is returned as the hash value. + + ====================================================================== + ====================================================================== + +memcached + + memcached +Copyright (c) 2003, Danga Interactive, Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + + * Neither the name of the Danga Interactive nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ====================================================================== + ====================================================================== + +Memcached.pm + + Memcached.pm +Memcached.pm is licensed under the Perl license. + +Oracle may use, redistribute and/or modify this code under the terms of +either: + + a) the GNU General Public License as published by the Free Software +Foundation; either version 1, or (at your option) any later version, or + + b) the "Artistic License" which comes with the Expect/pr code. + +Oracle elects to use the GPLv2 for version of MySQL that are licensed under +the GPL. + +Oracle elects to use the Artistic license for all other (commercial) versions +of MySQL. + +A copy of the GPLv2 and the Artistic License (Perl) 1.0 must be included with +any distribution. + + This component is licensed under the GNU GPL license, version 2.0. + + This component is licensed under Artistic License (Perl) 1.0 + + ====================================================================== + ====================================================================== + +mkpasswd.pl + + mkpasswd.pl Perl module +Copyright (C) 2003-2004 by Chris Grau + +This library is free software; you can redistribute it and/or modify it under +the same terms as Perl itself, either Perl version 5.8.1 or, at your option, +any later version of Perl 5 you may have available. + +The Perl 5.8.1 license (from http://www.cpan.org/src/5.0/perl-5.8.1.tar.gz +- main readme file): + + + Perl Kit, Version 5 + + Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998 + 1999, 2000, 2001, by Larry Wall and others + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of either: + +a) the GNU General Public License as published by the Free +Software Foundation; either version 1, or (at your option) any +later version, or + +b) the "Artistic License" which comes with this Kit. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either + the GNU General Public License or the Artistic License for more details. + + You should have received a copy of the Artistic License with this + Kit, in the file named "Artistic". If not, I'll be glad to provide one. + + You should also have received a copy of the GNU General Public License + along with this program in the file named "Copying". If not, write to the + + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307, USA or visit their web page on the internet at + http://www.gnu.org/copyleft/gpl.html. + + For those of you that choose to use the GNU General Public License, + my interpretation of the GNU General Public License is that no Perl + script falls under the terms of the GPL unless you explicitly put + said script under the terms of the GPL yourself. Furthermore, any + object code linked with perl does not automatically fall under the + terms of the GPL, provided such object code only adds definitions + of subroutines and variables, and does not otherwise impair the + resulting interpreter from executing any standard Perl script. I + consider linking in C subroutines in this manner to be the moral + equivalent of defining subroutines in the Perl language itself. You + may sell such an object file as proprietary provided that you provide + or offer to provide the Perl source, as specified by the GNU General + Public License. (This is merely an alternate way of specifying input + to the program.) You may also sell a binary produced by the dumping of + a running Perl script that belongs to you, provided that you provide or + offer to provide the Perl source as specified by the GPL. (The + fact that a Perl interpreter and your code are in the same binary file + is, in this case, a form of mere aggregation.) This is my interpretation + of the GPL. If you still have concerns or difficulties understanding + my intent, feel free to contact me. Of course, the Artistic License + spells all this out for your protection, so you may prefer to use that. + +-------------------------------------------------------------------------- + +Perl is a language that combines some of the features of C, sed, awk +and shell. See the manual page for more hype. There are also many Perl +books available, covering a wide variety of topics, from various publishers. +See pod/perlbook.pod for more information. + +Please read all the directions below before you proceed any further, and +then follow them carefully. + +After you have unpacked your kit, you should have all the files listed +in MANIFEST. + +Installation + +1) Detailed instructions are in the file "INSTALL", which you should +read if you are either installing on a system resembling Unix +or porting perl to another platform. For non-Unix platforms, see the +corresponding README. + +2) Read the manual entries before running perl. + +3) IMPORTANT! Help save the world! Communicate any problems and suggested +patches to perlbug@perl.org so we can keep the world in sync. +If you have a problem, there's someone else out there who either has had +or will have the same problem. It's usually helpful if you send the +output of the "myconfig" script in the main perl directory. + +If you've succeeded in compiling perl, the perlbug script in the "utils" +subdirectory can be used to help mail in a bug report. + +If possible, send in patches such that the patch program will apply them. +Context diffs are the best, then normal diffs. Don't send ed scripts-- +I've probably changed my copy since the version you have. + +The latest versions of perl are always available on the various CPAN +(Comprehensive Perl Archive Network) sites around the world. +See . + + +Just a personal note: I want you to know that I create nice things like this +because it pleases the Author of my story. If this bothers you, then your +notion of Authorship needs some revision. But you can use perl anyway. :-) + +The author. +=============================================== + +The "Artistic License" + +Preamble + +The intent of this document is to state the conditions under which a +Package may be copied, such that the Copyright Holder maintains some +semblance of artistic control over the development of the package, +while giving the users of the package the right to use and distribute +the Package in a more-or-less customary fashion, plus the right to make +reasonable modifications. + +Definitions: + +"Package" refers to the collection of files distributed by the +Copyright Holder, and derivatives of that collection of files +created through textual modification. + +"Standard Version" refers to such a Package if it has not been +modified, or has been modified in accordance with the wishes +of the Copyright Holder as specified below. + +"Copyright Holder" is whoever is named in the copyright or +copyrights for the package. + +"You" is you, if you're thinking about copying or distributing +this Package. + +"Reasonable copying fee" is whatever you can justify on the +basis of media cost, duplication charges, time of people involved, +and so on. (You will not be required to justify it to the +Copyright Holder, but only to the computing community at large +as a market that must bear the fee.) + +"Freely Available" means that no fee is charged for the item +itself, though there may be fees involved in handling the item. +It also means that recipients of the item may redistribute it +under the same conditions they received it. + +1. You may make and give away verbatim copies of the source form of the +Standard Version of this Package without restriction, provided that you +duplicate all of the original copyright notices and associated disclaimers. + +2. You may apply bug fixes, portability fixes and other modifications +derived from the Public Domain or from the Copyright Holder. A Package +modified in such a way shall still be considered the Standard Version. + +3. You may otherwise modify your copy of this Package in any way, provided +that you insert a prominent notice in each changed file stating how and +when you changed that file, and provided that you do at least ONE of the +following: + + a) place your modifications in the Public Domain or otherwise make them + Freely Available, such as by posting said modifications to Usenet or + an equivalent medium, or placing the modifications on a major archive + site such as uunet.uu.net, or by allowing the Copyright Holder to include + your modifications in the Standard Version of the Package. + + b) use the modified Package only within your corporation or organization. + + c) rename any non-standard executables so the names do not conflict + with standard executables, which must also be provided, and provide + a separate manual page for each non-standard executable that clearly + documents how it differs from the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +4. You may distribute the programs of this Package in object code or +executable form, provided that you do at least ONE of the following: + + a) distribute a Standard Version of the executables and library files, + together with instructions (in the manual page or equivalent) on where + to get the Standard Version. + + b) accompany the distribution with the machine-readable source of + the Package with your modifications. + + c) give non-standard executables non-standard names, and clearly + document the differences in manual pages (or equivalent), together + with instructions on where to get the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +5. You may charge a reasonable copying fee for any distribution of this +Package. You may charge any fee you choose for support of this +Package. You may not charge a fee for this Package itself. However, +you may distribute this Package in aggregate with other (possibly +commercial) programs as part of a larger (possibly commercial) software +distribution provided that you do not advertise this Package as a +product of your own. You may embed this Package's interpreter within +an executable of yours (by linking); this shall be construed as a mere +form of aggregation, provided that the complete Standard Version of the +interpreter is so embedded. + +6. The scripts and library files supplied as input to or produced as +output from the programs of this Package do not automatically fall +under the copyright of this Package, but belong to whoever generated +them, and may be sold commercially, and may be aggregated with this +Package. If such scripts or library files are aggregated with this +Package via the so-called "undump" or "unexec" methods of producing a +binary executable image, then distribution of such an image shall +neither be construed as a distribution of this Package nor shall it +fall under the restrictions of Paragraphs 3 and 4, provided that you do +not represent such an executable image as a Standard Version of this +Package. + +7. C subroutines (or comparably compiled subroutines in other +languages) supplied by you and linked into this Package in order to +emulate subroutines and variables of the language defined by this +Package shall not be considered part of this Package, but are the +equivalent of input as in Paragraph 6, provided these subroutines do +not change the language in any way that would cause it to fail the +regression tests for the language. + +8. Aggregation of this Package with a commercial distribution is always +permitted provided that the use of this Package is embedded; that is, +when no overt attempt is made to make this Package's interfaces visible +to the end user of the commercial distribution. Such use shall not be +construed as a distribution of this Package. + +9. The name of the Copyright Holder may not be used to endorse or promote +products derived from this software without specific prior written +permission. + +10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +The End + + ====================================================================== + ====================================================================== + +nt_servc (Windows NT Service class library) + + nt_servc (Windows NT Service class library) +Windows NT Service class library +Copyright Abandoned 1998 Irena Pancirov - Irnet Snc +This file is public domain and comes with NO WARRANTY of any kind + + ====================================================================== + ====================================================================== + +NUMA + +You are receiving a copy of libnuma as part of MySQL in object code form. +The terms of the Oracle license do NOT apply to libnuma; the libnuma source +code is licensed under the LGPLv2.1 license. + + This component is licensed under GNU Lesser General Public License + Version 2.1, February 1999. See the 'Standard Licenses' section for + license text. + + ====================================================================== + ====================================================================== + +OpenPAM + + OpenPAM +Copyright (c) 2002-2003 Networks Associates Technology, Inc. +Copyright (c) 2004-2007 Dag-Erling Smørgrav +All rights reserved. + +This software was developed for the FreeBSD Project by +ThinkSec AS and Network Associates Laboratories, the +Security Research Division of Network Associates, Inc. +under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), +as part of the DARPA CHATS research program. + +Redistribution and use in source and binary forms, +with or without modification, are permitted provided +that the following conditions are met: + +1. Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. +2. Redistributions in binary form must reproduce the + above copyright notice, this list of conditions and + the following disclaimer in the documentation and/or + other materials provided with the distribution. +3. The name of the author may not be used to endorse or + promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN +NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ====================================================================== + ====================================================================== + +OpenSSL License + + You are receiving a copy of OpenSSL as part of this product in object + code form. The terms of the Oracle license do NOT apply to OpenSSL. + OpenSSL is licensed under a double license, of the OpenSSL License and + the original SSLeay license, separate from the Oracle product. If you + do not wish to install this library, you may remove it, but the Oracle + program might not operate properly or at all without it. + LICENSE ISSUES + ============== + + The OpenSSL toolkit stays under a double license, i.e. both the conditions of + the OpenSSL License and the original SSLeay license apply to the toolkit. + See below for the actual license texts. + + OpenSSL License + --------------- + +/* ==================================================================== + * Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + + Original SSLeay License + ----------------------- + +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + + ====================================================================== + ====================================================================== + +Percona Multiple I/O Threads Patch + + Percona Multiple I/O threads patch +Copyright (c) 2008, 2009 Percona Inc +All rights reserved. + +Redistribution and use of this software in source and binary forms, +with or without modification, are permitted provided that the +following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Percona Inc. nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission of Percona Inc. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + ====================================================================== + ====================================================================== + +Pion + + This Oracle Product includes or references Pion which is licensed to + Oracle under the following terms: +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + + ====================================================================== + ====================================================================== + +Red HAT RPM Spec File + + Red Hat RPM Spec File +You are receiving a copy of the Red Hat spec file. The terms of the Oracle +license do NOT apply to the Red Hat spec file; it is licensed under the +following license, separately from the Oracle programs you receive. + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. +[for rest of text, see following link] + + This component is licensed under the GNU GPL license, version 2.0. + + ====================================================================== + ====================================================================== + +RegEX-Spencer Library + + The following software may be included in this product: Henry Spencer's + Regular-Expression Library (RegEX-Spencer) +Copyright 1992, 1993, 1994 Henry Spencer. All rights reserved. +This software is not subject to any license of the American Telephone +and Telegraph Company or of the Regents of the University of California. + +Permission is granted to anyone to use this software for any purpose on +any computer system, and to alter it and redistribute it, subject +to the following restrictions: + +1. The author is not responsible for the consequences of use of this + software, no matter how awful, even if they arise from flaws in it. + +2. The origin of this software must not be misrepresented, either by + explicit claim or by omission. Since few users ever read sources, + credits must appear in the documentation. + +3. Altered versions must be plainly marked as such, and must not be + misrepresented as being the original software. Since few users + ever read sources, credits must appear in the documentation. + +4. This notice may not be removed or altered. + + ====================================================================== + ====================================================================== + +Richard A. O'Keefe String Library + + Richard A. O'Keefe String Library +The Richard O'Keefe String Library is subject to the following notice: + +These files are in the public domain. This includes getopt.c, which +is the work of Henry Spencer, University of Toronto Zoology, who +says of it "None of this software is derived from Bell software. I +had no access to the source for Bell's versions at the time I wrote +it. This software is hereby explicitly placed in the public domain. +It may be used for any purpose on any machine by anyone." I would +greatly prefer it if *my* material received no military use. + +The t_ctype.h file is subject to the following notice: + +Copyright (C) 1998, 1999 by Pruet Boonma, all rights reserved. +Copyright (C) 1998 by Theppitak Karoonboonyanan, all rights reserved. + + 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. + + Smaphan Raruenrom and Pruet Boonma makes no representations about +the suitability of this software for any purpose. It is provided +"as is" without express or implied warranty. + + ====================================================================== + ====================================================================== + +sajson + + sajson +Copyright (c) 2012 Chad Austin + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject +to the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + ====================================================================== + ====================================================================== + +SHA-1 in C + + SHA-1 in C +SHA-1 in C +By Steve Reid +100% Public Domain + + ====================================================================== + ====================================================================== + +Time Zone Information + +Unless specified below, all files in the tz code and data (including this +LICENSE file) are in the public domain. If the files date.c, +newstrftime.3, and strftime.c are present, they contain material derived +from BSD and use the BSD 3-clause license. tzdata: + # This file is in the public domain, so clarified as of + # 2009-05-17 by Arthur David Olson. +/* Copyright 1985, 1987, 1988 The Regents of the University of California. + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. */ + + ====================================================================== + ====================================================================== + +Unicode Data Files + + Unicode Data Files +COPYRIGHT AND PERMISSION NOTICE + +Copyright (c) 1991-2014 Unicode, Inc. All rights reserved. Distributed under +the Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of the Unicode data files and any associated documentation (the "Data Files") +or Unicode software and any associated documentation (the "Software") to deal +in the Data Files or Software without restriction, including without +limitation the rights to use, copy, modify, merge, publish, distribute, +and/or sell copies of the Data Files or Software, and to permit persons to +whom the Data Files or Software are furnished to do so, provided that (a) the +above copyright notice(s) and this permission notice appear with all copies +of the Data Files or Software, (b) both the above copyright notice(s) and +this permission notice appear in associated documentation, and (c) there is +clear notice in each modified Data File or in the Software as well as in the +documentation associated with the Data File(s) or Software that the data or +software has been modified. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD +PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING +OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR +SOFTWARE. + +Except as contained in this notice, the name of a copyright holder shall not be +used in advertising or otherwise to promote the sale, use or other dealings in +these Data Files or Software without prior written authorization of the +copyright holder. + + ====================================================================== + ====================================================================== + +zlib + + zlib + + Oracle gratefully acknowledges the contributions of Jean-loup Gailly + and Mark Adler in creating the zlib general purpose compression library + which is used in this product. +(C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +If you use the zlib library in a product, we would appreciate *not* receiving +lengthy legal documents to sign. The sources are provided for free but without +warranty of any kind. The library has been entirely written by Jean-loup +Gailly and Mark Adler; it does not include third-party code. + +If you redistribute modified sources, we would appreciate that you include in +the file ChangeLog history information documenting your changes. Please read +the FAQ for more information on the distribution of modified source versions. + + ====================================================================== + ====================================================================== + +Standard Licenses + +GNU Lesser General Public License Version 2.1, February 1999 + +The following applies to all products licensed under the +GNU Lesser General Public License, Version 2.1: You may +not use the identified files except in compliance with +the GNU Lesser General Public License, Version 2.1 (the +"License"). You may obtain a copy of the License at +http://www.gnu.org/licenses/lgpl-2.1.html. A copy of the +license is also reproduced below. Unless required by +applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express +or implied. See the License for the specific language governing +permissions and limitations under the License. + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it +becomes a de-facto standard. To achieve this, non-free programs +must be allowed to use the library. A more frequent case is that +a free library does the same job as widely used non-free libraries. +In this case, there is little to gain by limiting the free library +to free software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control +compilation and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended +to apply, and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms +of the ordinary General Public License). + + To apply these terms, attach the following notices to the library. +It is safest to attach them to the start of each source file to most +effectively convey the exclusion of warranty; and each file should +have at least the "copyright" line and a pointer to where the full +notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James + Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + ====================================================================== + ====================================================================== + +Artistic License (Perl) 1.0 + +The "Artistic License" + +Preamble + +The intent of this document is to state the conditions under which a +Package may be copied, such that the Copyright Holder maintains some +semblance of artistic control over the development of the package, +while giving the users of the package the right to use and distribute +the Package in a more-or-less customary fashion, plus the right to make +reasonable modifications. + +Definitions: + + "Package" refers to the collection of files distributed by the + Copyright Holder, and derivatives of that collection of files + created through textual modification. + + "Standard Version" refers to such a Package if it has not been + modified, or has been modified in accordance with the wishes + of the Copyright Holder as specified below. + + "Copyright Holder" is whoever is named in the copyright or + copyrights for the package. + + "You" is you, if you're thinking about copying or distributing + this Package. + + "Reasonable copying fee" is whatever you can justify on the + basis of media cost, duplication charges, time of people involved, + and so on. (You will not be required to justify it to the + Copyright Holder, but only to the computing community at large + as a market that must bear the fee.) + + "Freely Available" means that no fee is charged for the item + itself, though there may be fees involved in handling the item. + It also means that recipients of the item may redistribute it + under the same conditions they received it. + +1. You may make and give away verbatim copies of the source form of the +Standard Version of this Package without restriction, provided that you +duplicate all of the original copyright notices and associated disclaimers. + +2. You may apply bug fixes, portability fixes and other modifications +derived from the Public Domain or from the Copyright Holder. A Package +modified in such a way shall still be considered the Standard Version. + +3. You may otherwise modify your copy of this Package in any way, provided +that you insert a prominent notice in each changed file stating how and +when you changed that file, and provided that you do at least ONE of the +following: + + a) place your modifications in the Public Domain or otherwise make them + Freely Available, such as by posting said modifications to Usenet or + an equivalent medium, or placing the modifications on a major archive + site such as uunet.uu.net, or by allowing the Copyright Holder to include + your modifications in the Standard Version of the Package. + + b) use the modified Package only within your corporation or organization. + + c) rename any non-standard executables so the names do not conflict + with standard executables, which must also be provided, and provide + a separate manual page for each non-standard executable that clearly + documents how it differs from the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +4. You may distribute the programs of this Package in object code or +executable form, provided that you do at least ONE of the following: + + a) distribute a Standard Version of the executables and library files, + together with instructions (in the manual page or equivalent) on where + to get the Standard Version. + + b) accompany the distribution with the machine-readable source of + the Package with your modifications. + + c) give non-standard executables non-standard names, and clearly + document the differences in manual pages (or equivalent), together + with instructions on where to get the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +5. You may charge a reasonable copying fee for any distribution of this +Package. You may charge any fee you choose for support of this +Package. You may not charge a fee for this Package itself. However, +you may distribute this Package in aggregate with other (possibly +commercial) programs as part of a larger (possibly commercial) software +distribution provided that you do not advertise this Package as a +product of your own. You may embed this Package's interpreter within +an executable of yours (by linking); this shall be construed as a mere +form of aggregation, provided that the complete Standard Version of the +interpreter is so embedded. + +6. The scripts and library files supplied as input to or produced as +output from the programs of this Package do not automatically fall +under the copyright of this Package, but belong to whoever generated +them, and may be sold commercially, and may be aggregated with this +Package. If such scripts or library files are aggregated with this +Package via the so-called "undump" or "unexec" methods of producing a +binary executable image, then distribution of such an image shall +neither be construed as a distribution of this Package nor shall it +fall under the restrictions of Paragraphs 3 and 4, provided that you do +not represent such an executable image as a Standard Version of this +Package. + +7. C subroutines (or comparably compiled subroutines in other +languages) supplied by you and linked into this Package in order to +emulate subroutines and variables of the language defined by this +Package shall not be considered part of this Package, but are the +equivalent of input as in Paragraph 6, provided these subroutines do +not change the language in any way that would cause it to fail the +regression tests for the language. + +8. Aggregation of this Package with a commercial distribution is always +permitted provided that the use of this Package is embedded; that is, +when no overt attempt is made to make this Package's interfaces visible +to the end user of the commercial distribution. Such use shall not be +construed as a distribution of this Package. + +9. The name of the Copyright Holder may not be used to endorse or promote +products derived from this software without specific prior written +permission. + +10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + The End + + ====================================================================== + ====================================================================== + +Written Offer for Source Code + + For any software that you receive from Oracle in binary form which is + licensed under an open source license that gives you the right to + receive the source code for that binary, you can obtain a copy of the + applicable source code by visiting + http://www.oracle.com/goto/opensourcecode. If the source code for the + binary was not provided to you with the binary, you can also receive a + copy of the source code on physical media by submitting a written + request to the address listed below or by sending an email to Oracle + using the following link: + http://www.oracle.com/goto/opensourcecode/request. + Oracle America, Inc. + Attn: Senior Vice President + Development and Engineering Legal + 500 Oracle Parkway, 10th Floor + Redwood Shores, CA 94065 + + Your request should include: + * The name of the binary for which you are requesting the source code + * The name and version number of the Oracle product containing the + binary + * The date you received the Oracle product + * Your name + * Your company name (if applicable) + * Your return mailing address and email, and + * A telephone number in the event we need to reach you. + + We may charge you a fee to cover the cost of physical media and + processing. + + Your request must be sent + a. within three (3) years of the date you received the Oracle product + that included the binary that is the subject of your request, or + b. in the case of code licensed under the GPL v3 for as long as Oracle + offers spare parts or customer support for that product model. diff --git a/mysql-wsrep-5.6/README b/mysql-wsrep-5.6/README index c92a9784..8f557ad8 100644 --- a/mysql-wsrep-5.6/README +++ b/mysql-wsrep-5.6/README @@ -1,56 +1,17 @@ -MySQL Server 5.6 +Copyright (c) 2000, 2021, Oracle and/or its affiliates. -This is a release of MySQL, a dual-license SQL database server. -For the avoidance of doubt, this particular copy of the software -is released under the version 2 of the GNU General Public License. -MySQL is brought to you by Oracle. +This is a release of MySQL, an SQL database server. -Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. +License information can be found in the LICENSE file. -License information can be found in the COPYING file. +This distribution may include materials developed by third parties. +For license and attribution notices for these materials, +please refer to the LICENSE file. -MySQL FOSS License Exception -We want free and open source software applications under certain -licenses to be able to use specified GPL-licensed MySQL client -libraries despite the fact that not all such FOSS licenses are -compatible with version 2 of the GNU General Public License. -Therefore there are special exceptions to the terms and conditions -of the GPLv2 as applied to these client libraries, which are -identified and described in more detail in the FOSS License -Exception at -. +For further information on MySQL or additional documentation, visit + http://dev.mysql.com/doc/ -This distribution may include materials developed by third -parties. For license and attribution notices for these -materials, please refer to the documentation that accompanies -this distribution (see the "Licenses for Third-Party Components" -appendix) or view the online documentation at -. +For additional downloads and the source of MySQL, visit + http://dev.mysql.com/downloads/ -GPLv2 Disclaimer -For the avoidance of doubt, except that if any license choice -other than GPL or LGPL is available it will apply instead, -Oracle elects to use only the General Public License version 2 -(GPLv2) at this time for any software where a choice of GPL -license versions is made available with the language indicating -that GPLv2 or any later version may be used, or where a choice -of which version of the GPL is applied is otherwise unspecified. - -For further information about MySQL or additional documentation, -see: -- The latest information about MySQL: http://www.mysql.com -- The current MySQL documentation: http://dev.mysql.com/doc - -Some Reference Manual sections of special interest: -- If you are migrating from an older version of MySQL, please - read the "Upgrading from..." section. -- To see what MySQL can do, take a look at the features section. -- For installation instructions, see the Installing and Upgrading - chapter. -- For the new features/bugfix history, see the MySQL Change History - appendix. - -You can browse the MySQL Reference Manual online or download it -in any of several formats at the URL given earlier in this file. -Source distributions include a local copy of the manual in the -Docs directory. +MySQL is brought to you by the MySQL team at Oracle. diff --git a/mysql-wsrep-5.6/VERSION b/mysql-wsrep-5.6/VERSION index b3f68d04..f0020f26 100644 --- a/mysql-wsrep-5.6/VERSION +++ b/mysql-wsrep-5.6/VERSION @@ -1,4 +1,4 @@ MYSQL_VERSION_MAJOR=5 MYSQL_VERSION_MINOR=6 -MYSQL_VERSION_PATCH=45 +MYSQL_VERSION_PATCH=51 MYSQL_VERSION_EXTRA= diff --git a/mysql-wsrep-5.6/WSREP_REVISION b/mysql-wsrep-5.6/WSREP_REVISION deleted file mode 100644 index d92e9abf..00000000 --- a/mysql-wsrep-5.6/WSREP_REVISION +++ /dev/null @@ -1 +0,0 @@ -6442441 diff --git a/mysql-wsrep-5.6/client/CMakeLists.txt b/mysql-wsrep-5.6/client/CMakeLists.txt index 144dde96..97e2812e 100644 --- a/mysql-wsrep-5.6/client/CMakeLists.txt +++ b/mysql-wsrep-5.6/client/CMakeLists.txt @@ -1,14 +1,21 @@ -# Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2006, 2019, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -26,9 +33,6 @@ INCLUDE_DIRECTORIES( ) -## We will need libeay32.dll and ssleay32.dll when running client executables. -COPY_OPENSSL_DLLS(copy_openssl_client) - ADD_DEFINITIONS(${SSL_DEFINES}) MYSQL_ADD_EXECUTABLE(mysql completion_hash.cc mysql.cc readline.cc sql_string.cc) TARGET_LINK_LIBRARIES(mysql mysqlclient) diff --git a/mysql-wsrep-5.6/client/client_priv.h b/mysql-wsrep-5.6/client/client_priv.h index e4d7a488..3f9bb8e9 100644 --- a/mysql-wsrep-5.6/client/client_priv.h +++ b/mysql-wsrep-5.6/client/client_priv.h @@ -2,13 +2,20 @@ Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/client/completion_hash.cc b/mysql-wsrep-5.6/client/completion_hash.cc index 1ef03829..845a845f 100644 --- a/mysql-wsrep-5.6/client/completion_hash.cc +++ b/mysql-wsrep-5.6/client/completion_hash.cc @@ -1,13 +1,20 @@ /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/client/completion_hash.h b/mysql-wsrep-5.6/client/completion_hash.h index 70c2cf1b..778b142a 100644 --- a/mysql-wsrep-5.6/client/completion_hash.h +++ b/mysql-wsrep-5.6/client/completion_hash.h @@ -1,15 +1,21 @@ /* Copyright (c) 2000-2002, 2006 MySQL AB Use is subject to license terms - This program 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; version 2 - of the License. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free diff --git a/mysql-wsrep-5.6/client/echo.c b/mysql-wsrep-5.6/client/echo.c index 7117da22..2456d9cc 100644 --- a/mysql-wsrep-5.6/client/echo.c +++ b/mysql-wsrep-5.6/client/echo.c @@ -2,13 +2,20 @@ Use is subject to license terms This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/client/get_password.c b/mysql-wsrep-5.6/client/get_password.c index 68a77d51..2216ae57 100644 --- a/mysql-wsrep-5.6/client/get_password.c +++ b/mysql-wsrep-5.6/client/get_password.c @@ -1,13 +1,20 @@ /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/client/my_readline.h b/mysql-wsrep-5.6/client/my_readline.h index 18d71ea0..75a4f959 100644 --- a/mysql-wsrep-5.6/client/my_readline.h +++ b/mysql-wsrep-5.6/client/my_readline.h @@ -5,13 +5,20 @@ Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/client/mysql.cc b/mysql-wsrep-5.6/client/mysql.cc index 2249a87c..c13fef25 100644 --- a/mysql-wsrep-5.6/client/mysql.cc +++ b/mysql-wsrep-5.6/client/mysql.cc @@ -1,14 +1,21 @@ /* - Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software @@ -181,9 +188,7 @@ static STATUS status; static ulong select_limit,max_join_size,opt_connect_timeout=0; static char mysql_charsets_dir[FN_REFLEN+1]; static char *opt_plugin_dir= 0, *opt_default_auth= 0; -#if !defined(HAVE_YASSL) static char *opt_server_public_key= 0; -#endif static const char *xmlmeta[] = { "&", "&", "<", "<", @@ -1779,12 +1784,10 @@ static struct my_option my_long_options[] = "piped to mysql or loaded using the 'source' command). This is necessary " "when processing output from mysqlbinlog that may contain blobs.", &opt_binary_mode, &opt_binary_mode, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, -#if !defined(HAVE_YASSL) {"server-public-key-path", OPT_SERVER_PUBLIC_KEY, "File path to the server public RSA key in PEM format.", &opt_server_public_key, &opt_server_public_key, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, -#endif {"connect-expired-password", 0, "Notify the server that this client is prepared to handle expired " "password sandbox mode.", @@ -4865,10 +4868,8 @@ sql_real_connect(char *host,char *database,char *user,char *password, if (opt_default_auth && *opt_default_auth) mysql_options(&mysql, MYSQL_DEFAULT_AUTH, opt_default_auth); -#if !defined(HAVE_YASSL) if (opt_server_public_key && *opt_server_public_key) mysql_options(&mysql, MYSQL_SERVER_PUBLIC_KEY, opt_server_public_key); -#endif if (using_opt_enable_cleartext_plugin) mysql_options(&mysql, MYSQL_ENABLE_CLEARTEXT_PLUGIN, diff --git a/mysql-wsrep-5.6/client/mysql_config_editor.cc b/mysql-wsrep-5.6/client/mysql_config_editor.cc index 6b7bef61..ad50720b 100644 --- a/mysql-wsrep-5.6/client/mysql_config_editor.cc +++ b/mysql-wsrep-5.6/client/mysql_config_editor.cc @@ -2,13 +2,20 @@ Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/client/mysql_plugin.c b/mysql-wsrep-5.6/client/mysql_plugin.c index 6ff6d974..9110b7fa 100644 --- a/mysql-wsrep-5.6/client/mysql_plugin.c +++ b/mysql-wsrep-5.6/client/mysql_plugin.c @@ -2,13 +2,20 @@ Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/client/mysql_upgrade.c b/mysql-wsrep-5.6/client/mysql_upgrade.c index 34934eb4..3b71492d 100644 --- a/mysql-wsrep-5.6/client/mysql_upgrade.c +++ b/mysql-wsrep-5.6/client/mysql_upgrade.c @@ -2,13 +2,20 @@ Copyright (c) 2006, 2017, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, diff --git a/mysql-wsrep-5.6/client/mysqladmin.cc b/mysql-wsrep-5.6/client/mysqladmin.cc index 2a65e5df..e03020af 100644 --- a/mysql-wsrep-5.6/client/mysqladmin.cc +++ b/mysql-wsrep-5.6/client/mysqladmin.cc @@ -2,13 +2,20 @@ Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/client/mysqlbinlog.cc b/mysql-wsrep-5.6/client/mysqlbinlog.cc index 6adb5872..801d26c0 100644 --- a/mysql-wsrep-5.6/client/mysqlbinlog.cc +++ b/mysql-wsrep-5.6/client/mysqlbinlog.cc @@ -2,13 +2,20 @@ Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/client/mysqlcheck.c b/mysql-wsrep-5.6/client/mysqlcheck.c index e5fb8fc4..8e09ccbe 100644 --- a/mysql-wsrep-5.6/client/mysqlcheck.c +++ b/mysql-wsrep-5.6/client/mysqlcheck.c @@ -2,13 +2,20 @@ Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/client/mysqldump.c b/mysql-wsrep-5.6/client/mysqldump.c index 6b6b212c..6bb9fc61 100644 --- a/mysql-wsrep-5.6/client/mysqldump.c +++ b/mysql-wsrep-5.6/client/mysqldump.c @@ -2,13 +2,20 @@ Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/client/mysqlimport.c b/mysql-wsrep-5.6/client/mysqlimport.c index 50ec90b0..7fe6140f 100644 --- a/mysql-wsrep-5.6/client/mysqlimport.c +++ b/mysql-wsrep-5.6/client/mysqlimport.c @@ -2,13 +2,20 @@ Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/client/mysqlshow.c b/mysql-wsrep-5.6/client/mysqlshow.c index d05577ae..47206b4e 100644 --- a/mysql-wsrep-5.6/client/mysqlshow.c +++ b/mysql-wsrep-5.6/client/mysqlshow.c @@ -2,13 +2,20 @@ Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/client/mysqlslap.c b/mysql-wsrep-5.6/client/mysqlslap.c index afa8c92a..09a9071b 100644 --- a/mysql-wsrep-5.6/client/mysqlslap.c +++ b/mysql-wsrep-5.6/client/mysqlslap.c @@ -2,13 +2,20 @@ Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/client/mysqltest.cc b/mysql-wsrep-5.6/client/mysqltest.cc index faf45042..659a67af 100644 --- a/mysql-wsrep-5.6/client/mysqltest.cc +++ b/mysql-wsrep-5.6/client/mysqltest.cc @@ -1,13 +1,20 @@ /* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software @@ -130,9 +137,7 @@ static my_bool is_windows= 0; static char **default_argv; static const char *load_default_groups[]= { "mysqltest", "client", 0 }; static char line_buffer[MAX_DELIMITER_LENGTH], *line_buffer_pos= line_buffer; -#if !defined(HAVE_YASSL) static const char *opt_server_public_key= 0; -#endif static my_bool can_handle_expired_passwords= TRUE; /* Info on properties that can be set with --enable_X and --disable_X */ @@ -5696,12 +5701,10 @@ void do_connect(struct st_command *command) if (ds_default_auth.length) mysql_options(&con_slot->mysql, MYSQL_DEFAULT_AUTH, ds_default_auth.str); -#if !defined(HAVE_YASSL) /* Set server public_key */ if (opt_server_public_key && *opt_server_public_key) mysql_options(&con_slot->mysql, MYSQL_SERVER_PUBLIC_KEY, opt_server_public_key); -#endif if (con_cleartext_enable) mysql_options(&con_slot->mysql, MYSQL_ENABLE_CLEARTEXT_PLUGIN, @@ -6667,12 +6670,10 @@ static struct my_option my_long_options[] = {"plugin_dir", OPT_PLUGIN_DIR, "Directory for client-side plugins.", &opt_plugin_dir, &opt_plugin_dir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, -#if !defined(HAVE_YASSL) {"server-public-key-path", OPT_SERVER_PUBLIC_KEY, "File path to the server public RSA key in PEM format.", &opt_server_public_key, &opt_server_public_key, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, -#endif { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0} }; diff --git a/mysql-wsrep-5.6/client/readline.cc b/mysql-wsrep-5.6/client/readline.cc index 694d453e..4163ba55 100644 --- a/mysql-wsrep-5.6/client/readline.cc +++ b/mysql-wsrep-5.6/client/readline.cc @@ -2,13 +2,20 @@ Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/client/sql_string.cc b/mysql-wsrep-5.6/client/sql_string.cc index ab4535dc..26643dee 100644 --- a/mysql-wsrep-5.6/client/sql_string.cc +++ b/mysql-wsrep-5.6/client/sql_string.cc @@ -2,13 +2,20 @@ Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/client/sql_string.h b/mysql-wsrep-5.6/client/sql_string.h index 866f6bc7..7373e805 100644 --- a/mysql-wsrep-5.6/client/sql_string.h +++ b/mysql-wsrep-5.6/client/sql_string.h @@ -4,13 +4,20 @@ /* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/abi_check.cmake b/mysql-wsrep-5.6/cmake/abi_check.cmake index 11e8f507..f43d5f2b 100644 --- a/mysql-wsrep-5.6/cmake/abi_check.cmake +++ b/mysql-wsrep-5.6/cmake/abi_check.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/bison.cmake b/mysql-wsrep-5.6/cmake/bison.cmake index d716ef4c..bfd45c46 100644 --- a/mysql-wsrep-5.6/cmake/bison.cmake +++ b/mysql-wsrep-5.6/cmake/bison.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/build_configurations/compiler_options.cmake b/mysql-wsrep-5.6/cmake/build_configurations/compiler_options.cmake index d28da106..80ae8f26 100644 --- a/mysql-wsrep-5.6/cmake/build_configurations/compiler_options.cmake +++ b/mysql-wsrep-5.6/cmake/build_configurations/compiler_options.cmake @@ -1,14 +1,21 @@ -# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -34,6 +41,12 @@ IF(UNIX) SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 ${COMMON_C_FLAGS}") ENDIF() IF(CMAKE_COMPILER_IS_GNUCXX) + # GCC 6 has C++14 as default, set it explicitly to the old default. + EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion + OUTPUT_VARIABLE GXX_VERSION) + IF(GXX_VERSION VERSION_EQUAL 6.0 OR GXX_VERSION VERSION_GREATER 6.0) + SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} -std=gnu++03") + ENDIF() SET(COMMON_CXX_FLAGS "-g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing") # Disable inline optimizations for valgrind testing to avoid false positives IF(WITH_VALGRIND) @@ -51,6 +64,12 @@ IF(UNIX) ENDIF() IF(CMAKE_CXX_COMPILER_ID MATCHES "Clang") SET(COMMON_CXX_FLAGS "-g -fno-omit-frame-pointer -fno-strict-aliasing") + IF(CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 6.0 OR + CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.0) + IF(CMAKE_SYSTEM_NAME MATCHES "Linux") + SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} -std=gnu++03") + ENDIF() + ENDIF() SET(CMAKE_CXX_FLAGS_DEBUG "${COMMON_CXX_FLAGS}") SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 ${COMMON_CXX_FLAGS}") ENDIF() diff --git a/mysql-wsrep-5.6/cmake/build_configurations/feature_set.cmake b/mysql-wsrep-5.6/cmake/build_configurations/feature_set.cmake index 29ad01a3..ee18c771 100644 --- a/mysql-wsrep-5.6/cmake/build_configurations/feature_set.cmake +++ b/mysql-wsrep-5.6/cmake/build_configurations/feature_set.cmake @@ -1,14 +1,21 @@ -# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -66,8 +73,11 @@ IF(FEATURE_SET) # Update cache with current values, remove engines we do not care about # from build. - FOREACH(eng ARCHIVE BLACKHOLE FEDERATED INNOBASE PARTITION EXAMPLE) - IF(NOT WITH_${eng}_STORAGE_ENGINE) + FOREACH(eng ARCHIVE BLACKHOLE FEDERATED INNOBASE PARTITION) + IF(WITHOUT_${eng}_STORAGE_ENGINE) + SET(WITH_${eng}_STORAGE_ENGINE OFF) + SET(WITH_${eng}_STORAGE_ENGINE OFF CACHE BOOL "") + ELSEIF(NOT WITH_${eng}_STORAGE_ENGINE) SET(WITHOUT_${eng}_STORAGE_ENGINE ON CACHE BOOL "") MARK_AS_ADVANCED(WITHOUT_${eng}_STORAGE_ENGINE) SET(WITH_${eng}_STORAGE_ENGINE OFF CACHE BOOL "") @@ -77,5 +87,9 @@ IF(FEATURE_SET) ENDFOREACH() ENDIF() -SET(WITH_SSL bundled CACHE STRING "") -SET(WITH_ZLIB bundled CACHE STRING "") +IF(NOT WITH_SSL) + SET(WITH_SSL system CACHE STRING "") +ENDIF() +IF(NOT WITH_ZLIB) + SET(WITH_ZLIB bundled CACHE STRING "") +ENDIF() diff --git a/mysql-wsrep-5.6/cmake/build_configurations/mysql_release.cmake b/mysql-wsrep-5.6/cmake/build_configurations/mysql_release.cmake index 219179c3..47031304 100644 --- a/mysql-wsrep-5.6/cmake/build_configurations/mysql_release.cmake +++ b/mysql-wsrep-5.6/cmake/build_configurations/mysql_release.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/cat.cmake b/mysql-wsrep-5.6/cmake/cat.cmake index 1ffe2ecf..df67bc1f 100644 --- a/mysql-wsrep-5.6/cmake/cat.cmake +++ b/mysql-wsrep-5.6/cmake/cat.cmake @@ -2,13 +2,20 @@ # Use is subject to license terms. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/character_sets.cmake b/mysql-wsrep-5.6/cmake/character_sets.cmake index 2343a4bb..122eeb3e 100644 --- a/mysql-wsrep-5.6/cmake/character_sets.cmake +++ b/mysql-wsrep-5.6/cmake/character_sets.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/check_minimal_version.cmake b/mysql-wsrep-5.6/cmake/check_minimal_version.cmake index d96c6a93..e8e20ccc 100644 --- a/mysql-wsrep-5.6/cmake/check_minimal_version.cmake +++ b/mysql-wsrep-5.6/cmake/check_minimal_version.cmake @@ -2,13 +2,20 @@ # Use is subject to license terms. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/cmake_parse_arguments.cmake b/mysql-wsrep-5.6/cmake/cmake_parse_arguments.cmake index 487fe2ba..e24ff2cb 100644 --- a/mysql-wsrep-5.6/cmake/cmake_parse_arguments.cmake +++ b/mysql-wsrep-5.6/cmake/cmake_parse_arguments.cmake @@ -2,14 +2,21 @@ # Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/mysql-wsrep-5.6/cmake/compile_flags.cmake b/mysql-wsrep-5.6/cmake/compile_flags.cmake index b39bf7b7..aa5d9940 100644 --- a/mysql-wsrep-5.6/cmake/compile_flags.cmake +++ b/mysql-wsrep-5.6/cmake/compile_flags.cmake @@ -1,14 +1,21 @@ # Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/mysql-wsrep-5.6/cmake/configure.pl b/mysql-wsrep-5.6/cmake/configure.pl index 0a6a3cf6..50504f27 100644 --- a/mysql-wsrep-5.6/cmake/configure.pl +++ b/mysql-wsrep-5.6/cmake/configure.pl @@ -3,14 +3,21 @@ # Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/mysql-wsrep-5.6/cmake/cpack_source_ignore_files.cmake b/mysql-wsrep-5.6/cmake/cpack_source_ignore_files.cmake index 078df6c6..30bfcfbc 100644 --- a/mysql-wsrep-5.6/cmake/cpack_source_ignore_files.cmake +++ b/mysql-wsrep-5.6/cmake/cpack_source_ignore_files.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/cpu_info.cmake b/mysql-wsrep-5.6/cmake/cpu_info.cmake index 9d5f321b..60545623 100644 --- a/mysql-wsrep-5.6/cmake/cpu_info.cmake +++ b/mysql-wsrep-5.6/cmake/cpu_info.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/create_initial_db.cmake.in b/mysql-wsrep-5.6/cmake/create_initial_db.cmake.in index 4c5b8cf6..2d083563 100644 --- a/mysql-wsrep-5.6/cmake/create_initial_db.cmake.in +++ b/mysql-wsrep-5.6/cmake/create_initial_db.cmake.in @@ -1,13 +1,20 @@ # Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/do_abi_check.cmake b/mysql-wsrep-5.6/cmake/do_abi_check.cmake index e42f11ab..4fb62f2e 100644 --- a/mysql-wsrep-5.6/cmake/do_abi_check.cmake +++ b/mysql-wsrep-5.6/cmake/do_abi_check.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/dtrace.cmake b/mysql-wsrep-5.6/cmake/dtrace.cmake index 400b8126..42200fb1 100644 --- a/mysql-wsrep-5.6/cmake/dtrace.cmake +++ b/mysql-wsrep-5.6/cmake/dtrace.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/dtrace_prelink.cmake b/mysql-wsrep-5.6/cmake/dtrace_prelink.cmake index 0efc2bb6..cd9ba2e8 100644 --- a/mysql-wsrep-5.6/cmake/dtrace_prelink.cmake +++ b/mysql-wsrep-5.6/cmake/dtrace_prelink.cmake @@ -2,13 +2,20 @@ # Use is subject to license terms. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/info_bin.cmake b/mysql-wsrep-5.6/cmake/info_bin.cmake index 9cec3de0..83247637 100644 --- a/mysql-wsrep-5.6/cmake/info_bin.cmake +++ b/mysql-wsrep-5.6/cmake/info_bin.cmake @@ -1,14 +1,21 @@ # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/mysql-wsrep-5.6/cmake/info_macros.cmake.in b/mysql-wsrep-5.6/cmake/info_macros.cmake.in index fc2f8849..a1d04691 100644 --- a/mysql-wsrep-5.6/cmake/info_macros.cmake.in +++ b/mysql-wsrep-5.6/cmake/info_macros.cmake.in @@ -1,13 +1,20 @@ # Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/info_src.cmake b/mysql-wsrep-5.6/cmake/info_src.cmake index ce9873cc..84a1d2eb 100644 --- a/mysql-wsrep-5.6/cmake/info_src.cmake +++ b/mysql-wsrep-5.6/cmake/info_src.cmake @@ -1,14 +1,21 @@ # Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/mysql-wsrep-5.6/cmake/install_layout.cmake b/mysql-wsrep-5.6/cmake/install_layout.cmake index b691bfa1..6a448387 100644 --- a/mysql-wsrep-5.6/cmake/install_layout.cmake +++ b/mysql-wsrep-5.6/cmake/install_layout.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/install_macros.cmake b/mysql-wsrep-5.6/cmake/install_macros.cmake index c082ad2f..f7c140f7 100644 --- a/mysql-wsrep-5.6/cmake/install_macros.cmake +++ b/mysql-wsrep-5.6/cmake/install_macros.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2009, 2017, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/libevent.cmake b/mysql-wsrep-5.6/cmake/libevent.cmake index 962ae571..f1f853ad 100644 --- a/mysql-wsrep-5.6/cmake/libevent.cmake +++ b/mysql-wsrep-5.6/cmake/libevent.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/libutils.cmake b/mysql-wsrep-5.6/cmake/libutils.cmake index 3d210322..552ab182 100644 --- a/mysql-wsrep-5.6/cmake/libutils.cmake +++ b/mysql-wsrep-5.6/cmake/libutils.cmake @@ -1,13 +1,20 @@ -# Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2009, 2019, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software @@ -287,7 +294,7 @@ FUNCTION(GET_DEPENDEND_OS_LIBS target result) SET(${result} ${ret} PARENT_SCOPE) ENDFUNCTION() -# We try to hide the symbols in yassl/zlib to avoid name clashes with +# We try to hide the symbols in zlib to avoid name clashes with # other libraries like openssl. FUNCTION(RESTRICT_SYMBOL_EXPORTS target) IF(CMAKE_COMPILER_IS_GNUCXX AND UNIX) diff --git a/mysql-wsrep-5.6/cmake/maintainer.cmake b/mysql-wsrep-5.6/cmake/maintainer.cmake index 9082514d..35eb1115 100644 --- a/mysql-wsrep-5.6/cmake/maintainer.cmake +++ b/mysql-wsrep-5.6/cmake/maintainer.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/make_dist.cmake.in b/mysql-wsrep-5.6/cmake/make_dist.cmake.in index 768e0874..0b43d740 100644 --- a/mysql-wsrep-5.6/cmake/make_dist.cmake.in +++ b/mysql-wsrep-5.6/cmake/make_dist.cmake.in @@ -1,13 +1,20 @@ # Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/merge_archives_unix.cmake.in b/mysql-wsrep-5.6/cmake/merge_archives_unix.cmake.in index d05336d6..a20684e5 100644 --- a/mysql-wsrep-5.6/cmake/merge_archives_unix.cmake.in +++ b/mysql-wsrep-5.6/cmake/merge_archives_unix.cmake.in @@ -2,13 +2,20 @@ # Use is subject to license terms. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/mysql_add_executable.cmake b/mysql-wsrep-5.6/cmake/mysql_add_executable.cmake index bcbbe7d4..aa14d067 100644 --- a/mysql-wsrep-5.6/cmake/mysql_add_executable.cmake +++ b/mysql-wsrep-5.6/cmake/mysql_add_executable.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2009, 2017, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/mysql_version.cmake b/mysql-wsrep-5.6/cmake/mysql_version.cmake index 32b0ac97..34ed6f4d 100644 --- a/mysql-wsrep-5.6/cmake/mysql_version.cmake +++ b/mysql-wsrep-5.6/cmake/mysql_version.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/os/AIX.cmake b/mysql-wsrep-5.6/cmake/os/AIX.cmake index c86392f8..e35221fe 100644 --- a/mysql-wsrep-5.6/cmake/os/AIX.cmake +++ b/mysql-wsrep-5.6/cmake/os/AIX.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/os/Cygwin.cmake b/mysql-wsrep-5.6/cmake/os/Cygwin.cmake index 9c29277c..ef76894f 100644 --- a/mysql-wsrep-5.6/cmake/os/Cygwin.cmake +++ b/mysql-wsrep-5.6/cmake/os/Cygwin.cmake @@ -2,13 +2,20 @@ # Use is subject to license terms. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/os/Darwin.cmake b/mysql-wsrep-5.6/cmake/os/Darwin.cmake index 4bb0a85d..d7d20f4e 100644 --- a/mysql-wsrep-5.6/cmake/os/Darwin.cmake +++ b/mysql-wsrep-5.6/cmake/os/Darwin.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/os/FreeBSD.cmake b/mysql-wsrep-5.6/cmake/os/FreeBSD.cmake index bd72a58c..b51ffc4f 100644 --- a/mysql-wsrep-5.6/cmake/os/FreeBSD.cmake +++ b/mysql-wsrep-5.6/cmake/os/FreeBSD.cmake @@ -2,13 +2,20 @@ # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/os/HP-UX.cmake b/mysql-wsrep-5.6/cmake/os/HP-UX.cmake index 4cadddc7..5e783b90 100644 --- a/mysql-wsrep-5.6/cmake/os/HP-UX.cmake +++ b/mysql-wsrep-5.6/cmake/os/HP-UX.cmake @@ -2,13 +2,20 @@ # Use is subject to license terms. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/os/Linux.cmake b/mysql-wsrep-5.6/cmake/os/Linux.cmake index 9921e705..bf229f16 100644 --- a/mysql-wsrep-5.6/cmake/os/Linux.cmake +++ b/mysql-wsrep-5.6/cmake/os/Linux.cmake @@ -2,13 +2,20 @@ # Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/os/OS400.cmake b/mysql-wsrep-5.6/cmake/os/OS400.cmake index 502eeccc..f88693b5 100644 --- a/mysql-wsrep-5.6/cmake/os/OS400.cmake +++ b/mysql-wsrep-5.6/cmake/os/OS400.cmake @@ -2,13 +2,20 @@ # Use is subject to license terms. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/os/SunOS.cmake b/mysql-wsrep-5.6/cmake/os/SunOS.cmake index b059a338..a18e0113 100644 --- a/mysql-wsrep-5.6/cmake/os/SunOS.cmake +++ b/mysql-wsrep-5.6/cmake/os/SunOS.cmake @@ -1,13 +1,20 @@ -# Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2010, 2019, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software @@ -17,6 +24,11 @@ INCLUDE(CheckSymbolExists) INCLUDE(CheckCSourceRuns) INCLUDE(CheckCSourceCompiles) +SET(SOLARIS 1) +IF(CMAKE_SYSTEM_PROCESSOR MATCHES "sparc") + SET(SOLARIS_SPARC 1) +ENDIF() + # We require SunStudio 12u2 (CC 5.11) IF(NOT FORCE_UNSUPPORTED_COMPILER) IF(CMAKE_C_COMPILER_ID MATCHES "SunPro") diff --git a/mysql-wsrep-5.6/cmake/os/Windows.cmake b/mysql-wsrep-5.6/cmake/os/Windows.cmake index 92e4446c..036421d8 100644 --- a/mysql-wsrep-5.6/cmake/os/Windows.cmake +++ b/mysql-wsrep-5.6/cmake/os/Windows.cmake @@ -1,13 +1,20 @@ -# Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2010, 2019, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software @@ -87,6 +94,8 @@ IF(MSVC) # information for use with the debugger. The symbolic debugging # information includes the names and types of variables, as well as # functions and line numbers. No .pdb file is produced by the compiler. + # We can't use /ZI too since it's causing __LINE__ macros to be non- + # constant on visual studio and hence XCom stops building correctly. FOREACH(lang C CXX) SET(CMAKE_${lang}_FLAGS_RELEASE "${CMAKE_${lang}_FLAGS_RELEASE} /Z7") ENDFOREACH() @@ -99,6 +108,7 @@ IF(MSVC) STRING(REPLACE "/MD" "/MT" "${flag}" "${${flag}}") ENDIF() STRING(REPLACE "/Zi" "/Z7" "${flag}" "${${flag}}") + STRING(REPLACE "/ZI" "/Z7" "${flag}" "${${flag}}") SET("${flag}" "${${flag}} /EHsc") ENDFOREACH() diff --git a/mysql-wsrep-5.6/cmake/os/WindowsCache.cmake b/mysql-wsrep-5.6/cmake/os/WindowsCache.cmake index 974a5012..6a7fa553 100644 --- a/mysql-wsrep-5.6/cmake/os/WindowsCache.cmake +++ b/mysql-wsrep-5.6/cmake/os/WindowsCache.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/package_name.cmake b/mysql-wsrep-5.6/cmake/package_name.cmake index 882259c1..1e179d3f 100644 --- a/mysql-wsrep-5.6/cmake/package_name.cmake +++ b/mysql-wsrep-5.6/cmake/package_name.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/plugin.cmake b/mysql-wsrep-5.6/cmake/plugin.cmake index 148fe227..9306c672 100644 --- a/mysql-wsrep-5.6/cmake/plugin.cmake +++ b/mysql-wsrep-5.6/cmake/plugin.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2009, 2019, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/readline.cmake b/mysql-wsrep-5.6/cmake/readline.cmake index 0b4e936c..d42e948d 100644 --- a/mysql-wsrep-5.6/cmake/readline.cmake +++ b/mysql-wsrep-5.6/cmake/readline.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2009, 2017, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/run_collection.cmake.in b/mysql-wsrep-5.6/cmake/run_collection.cmake.in index 1e8f1564..b958ca7f 100644 --- a/mysql-wsrep-5.6/cmake/run_collection.cmake.in +++ b/mysql-wsrep-5.6/cmake/run_collection.cmake.in @@ -1,13 +1,20 @@ # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/ssl.cmake b/mysql-wsrep-5.6/cmake/ssl.cmake index a576acbf..767d4192 100644 --- a/mysql-wsrep-5.6/cmake/ssl.cmake +++ b/mysql-wsrep-5.6/cmake/ssl.cmake @@ -1,125 +1,130 @@ -# Copyright (c) 2009, 2017, Oracle and/or its affiliates. All rights reserved. -# +# Copyright (c) 2009, 2019, Oracle and/or its affiliates. All rights reserved. +# # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # We support different versions of SSL: -# - "bundled" uses source code in /extra/yassl # - "system" (typically) uses headers/libraries in /usr/lib and /usr/lib64 # - a custom installation of openssl can be used like this # - cmake -DCMAKE_PREFIX_PATH= -DWITH_SSL="system" # or # - cmake -DWITH_SSL= # -# The default value for WITH_SSL is "bundled" -# set in cmake/build_configurations/feature_set.cmake +# The default value for WITH_SSL is "system". +# +# WITH_SSL="system" means: use the SSL library that comes with the operating +# system. This typically means you have to do 'yum install openssl-devel' +# or something similar. # -# For custom build/install of openssl, see the accompanying README and -# INSTALL* files. When building with gcc, you must build the shared libraries -# (in addition to the static ones): -# ./config --prefix= --shared; make; make install -# On some platforms (mac) you need to choose 32/64 bit architecture. -# Build/Install of openssl on windows is slightly different: you need to run -# perl and nmake. You might also need to -# 'set path=\bin;%PATH% -# in order to find the .dll files at runtime. +# For Windows or macOS, WITH_SSL="system" is handled a bit differently: +# We assume you have installed +# https://slproweb.com/products/Win32OpenSSL.html +# We look for "C:/Program Files/OpenSSL-Win64/" +# The .dll files must be in your PATH. +# or +# http://brewformulas.org/Openssl +# We look for "/usr/local/opt/openssl" +# We look for the static libraries, rather than the .dylib ones. +# When the package has been located, we treat it as if cmake had been +# invoked with -DWITH_SSL= -SET(WITH_SSL_DOC "bundled (use yassl)") -SET(WITH_SSL_DOC - "${WITH_SSL_DOC}, yes (prefer os library if present, otherwise use bundled)") + +SET(WITH_SSL_DOC "\nsystem (use the OS openssl library)") SET(WITH_SSL_DOC - "${WITH_SSL_DOC}, system (use os library)") + "${WITH_SSL_DOC}, \nyes (synonym for system)") SET(WITH_SSL_DOC - "${WITH_SSL_DOC}, ") + "${WITH_SSL_DOC}, \n") +STRING(REPLACE "\n" "| " WITH_SSL_DOC_STRING "${WITH_SSL_DOC}") MACRO (CHANGE_SSL_SETTINGS string) - SET(WITH_SSL ${string} CACHE STRING ${WITH_SSL_DOC} FORCE) + SET(WITH_SSL ${string} CACHE STRING ${WITH_SSL_DOC_STRING} FORCE) ENDMACRO() -MACRO (MYSQL_USE_BUNDLED_SSL) - SET(INC_DIRS - ${CMAKE_SOURCE_DIR}/extra/yassl/include - ${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/include - ) - SET(SSL_LIBRARIES yassl taocrypt) - IF(CMAKE_SYSTEM_NAME MATCHES "SunOS") - SET(SSL_LIBRARIES ${SSL_LIBRARIES} ${LIBSOCKET}) +MACRO(FATAL_SSL_NOT_FOUND_ERROR string) + MESSAGE(STATUS "\n${string}" + "\nMake sure you have specified a supported SSL version. " + "\nValid options are : ${WITH_SSL_DOC}\n" + ) + IF(UNIX) + MESSAGE(FATAL_ERROR + "Please install the appropriate openssl developer package.\n") + ENDIF() + IF(WIN32) + MESSAGE(FATAL_ERROR + "Please see https://wiki.openssl.org/index.php/Binaries\n") + ENDIF() + IF(APPLE) + MESSAGE(FATAL_ERROR + "Please see http://brewformulas.org/Openssl\n") ENDIF() - SET(SSL_INCLUDE_DIRS ${INC_DIRS}) - SET(SSL_INTERNAL_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/mySTL) - SET(SSL_DEFINES "-DHAVE_YASSL -DYASSL_PREFIX -DHAVE_OPENSSL -DMULTI_THREADED") - CHANGE_SSL_SETTINGS("bundled") - ADD_SUBDIRECTORY(extra/yassl) - ADD_SUBDIRECTORY(extra/yassl/taocrypt) - GET_TARGET_PROPERTY(src yassl SOURCES) - FOREACH(file ${src}) - SET(SSL_SOURCES ${SSL_SOURCES} ${CMAKE_SOURCE_DIR}/extra/yassl/${file}) - ENDFOREACH() - GET_TARGET_PROPERTY(src taocrypt SOURCES) - FOREACH(file ${src}) - SET(SSL_SOURCES ${SSL_SOURCES} - ${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/${file}) - ENDFOREACH() +ENDMACRO() + +MACRO(RESET_SSL_VARIABLES) + UNSET(WITH_SSL_PATH) + UNSET(WITH_SSL_PATH CACHE) + UNSET(OPENSSL_ROOT_DIR) + UNSET(OPENSSL_ROOT_DIR CACHE) + UNSET(OPENSSL_INCLUDE_DIR) + UNSET(OPENSSL_INCLUDE_DIR CACHE) + UNSET(OPENSSL_APPLINK_C) + UNSET(OPENSSL_APPLINK_C CACHE) + UNSET(OPENSSL_LIBRARY) + UNSET(OPENSSL_LIBRARY CACHE) + UNSET(CRYPTO_LIBRARY) + UNSET(CRYPTO_LIBRARY CACHE) + UNSET(HAVE_SHA512_DIGEST_LENGTH) + UNSET(HAVE_SHA512_DIGEST_LENGTH CACHE) ENDMACRO() # MYSQL_CHECK_SSL # # Provides the following configure options: -# WITH_SSL=[yes|bundled|system|] +# WITH_SSL=[yes|system|] MACRO (MYSQL_CHECK_SSL) IF(NOT WITH_SSL) - IF(WIN32) - CHANGE_SSL_SETTINGS("bundled") - ENDIF() + CHANGE_SSL_SETTINGS("system") ENDIF() # See if WITH_SSL is of the form FILE(GLOB WITH_SSL_HEADER ${WITH_SSL}/include/openssl/ssl.h) IF (WITH_SSL_HEADER) + FILE(TO_CMAKE_PATH "${WITH_SSL}" WITH_SSL) SET(WITH_SSL_PATH ${WITH_SSL} CACHE PATH "path to custom SSL installation") + SET(WITH_SSL_PATH ${WITH_SSL}) ENDIF() - IF(WITH_SSL STREQUAL "bundled") - MYSQL_USE_BUNDLED_SSL() - # Reset some variables, in case we switch from /path/to/ssl to "bundled". - IF (WITH_SSL_PATH) - UNSET(WITH_SSL_PATH) - UNSET(WITH_SSL_PATH CACHE) - ENDIF() - IF (OPENSSL_ROOT_DIR) - UNSET(OPENSSL_ROOT_DIR) - UNSET(OPENSSL_ROOT_DIR CACHE) - ENDIF() - IF (OPENSSL_INCLUDE_DIR) - UNSET(OPENSSL_INCLUDE_DIR) - UNSET(OPENSSL_INCLUDE_DIR CACHE) - ENDIF() - IF (WIN32 AND OPENSSL_APPLINK_C) - UNSET(OPENSSL_APPLINK_C) - UNSET(OPENSSL_APPLINK_C CACHE) - ENDIF() - IF (OPENSSL_LIBRARY) - UNSET(OPENSSL_LIBRARY) - UNSET(OPENSSL_LIBRARY CACHE) - ENDIF() - IF (CRYPTO_LIBRARY) - UNSET(CRYPTO_LIBRARY) - UNSET(CRYPTO_LIBRARY CACHE) + IF(WITH_SSL STREQUAL "system" OR + WITH_SSL STREQUAL "yes" OR + WITH_SSL_PATH + ) + # Treat "system" the same way as -DWITH_SSL= + # Note: we cannot use FIND_PACKAGE(OpenSSL), as older cmake versions + # have buggy implementations. + IF((APPLE OR WIN32) AND NOT WITH_SSL_PATH AND WITH_SSL STREQUAL "system") + IF(APPLE) + SET(WITH_SSL_PATH "/usr/local/opt/openssl") + ELSE() + SET(WITH_SSL_PATH "C:/Program Files/OpenSSL-Win64/") + ENDIF() ENDIF() - ELSEIF(WITH_SSL STREQUAL "system" OR - WITH_SSL STREQUAL "yes" OR - WITH_SSL_PATH - ) + # First search in WITH_SSL_PATH. FIND_PATH(OPENSSL_ROOT_DIR NAMES include/openssl/ssl.h @@ -140,6 +145,7 @@ MACRO (MYSQL_CHECK_SSL) IF (WIN32) FIND_FILE(OPENSSL_APPLINK_C NAMES openssl/applink.c + NO_DEFAULT_PATH HINTS ${OPENSSL_ROOT_DIR}/include ) MESSAGE(STATUS "OPENSSL_APPLINK_C ${OPENSSL_APPLINK_C}") @@ -151,28 +157,41 @@ MACRO (MYSQL_CHECK_SSL) LIST(REVERSE CMAKE_FIND_LIBRARY_SUFFIXES) MESSAGE(STATUS "suffixes <${CMAKE_FIND_LIBRARY_SUFFIXES}>") ENDIF() + FIND_LIBRARY(OPENSSL_LIBRARY - NAMES ssl ssleay32 ssleay32MD + NAMES ssl libssl ssleay32 ssleay32MD HINTS ${OPENSSL_ROOT_DIR}/lib) FIND_LIBRARY(CRYPTO_LIBRARY - NAMES crypto libeay32 + NAMES crypto libcrypto libeay32 HINTS ${OPENSSL_ROOT_DIR}/lib) IF (WITH_SSL_PATH) LIST(REVERSE CMAKE_FIND_LIBRARY_SUFFIXES) ENDIF() - # Verify version number. Version information looks like: - # #define OPENSSL_VERSION_NUMBER 0x1000103fL - # Encoded as MNNFFPPS: major minor fix patch status - FILE(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" - OPENSSL_VERSION_NUMBER - REGEX "^#[ ]*define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x[0-9].*" - ) - STRING(REGEX REPLACE - "^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9]).*$" "\\1" - OPENSSL_MAJOR_VERSION "${OPENSSL_VERSION_NUMBER}" - ) - + IF(OPENSSL_INCLUDE_DIR) + # Verify version number. Version information looks like: + # #define OPENSSL_VERSION_NUMBER 0x1000103fL + # Encoded as MNNFFPPS: major minor fix patch status + FILE(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" + OPENSSL_VERSION_NUMBER + REGEX "^#[ ]*define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x[0-9].*" + ) + STRING(REGEX REPLACE + "^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9]).*$" "\\1" + OPENSSL_MAJOR_VERSION "${OPENSSL_VERSION_NUMBER}" + ) + STRING(REGEX REPLACE + "^.*OPENSSL_VERSION_NUMBER[\t ]+0x[0-9]([0-9][0-9]).*$" "\\1" + OPENSSL_MINOR_VERSION "${OPENSSL_VERSION_NUMBER}" + ) + STRING(REGEX REPLACE + "^.*OPENSSL_VERSION_NUMBER[\t ]+0x[0-9][0-9][0-9]([0-9][0-9]).*$" "\\1" + OPENSSL_FIX_VERSION "${OPENSSL_VERSION_NUMBER}" + ) + ENDIF() + IF("${OPENSSL_MAJOR_VERSION}.${OPENSSL_MINOR_VERSION}.${OPENSSL_FIX_VERSION}" VERSION_GREATER "1.1.0") + ADD_DEFINITIONS(-DHAVE_TLSv13) + ENDIF() IF(OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARY AND CRYPTO_LIBRARY AND @@ -193,13 +212,13 @@ MACRO (MYSQL_CHECK_SSL) IF (WITH_SSL_PATH) GET_FILENAME_COMPONENT(CRYPTO_EXT "${CRYPTO_LIBRARY}" EXT) GET_FILENAME_COMPONENT(OPENSSL_EXT "${OPENSSL_LIBRARY}" EXT) - IF (CRYPTO_EXT STREQUAL ".a") + IF (CRYPTO_EXT STREQUAL ".a" OR CRYPTO_EXT STREQUAL ".lib") SET(MY_CRYPTO_LIBRARY imported_crypto) ADD_LIBRARY(imported_crypto STATIC IMPORTED) SET_TARGET_PROPERTIES(imported_crypto PROPERTIES IMPORTED_LOCATION "${CRYPTO_LIBRARY}") ENDIF() - IF (OPENSSL_EXT STREQUAL ".a") + IF (OPENSSL_EXT STREQUAL ".a" OR OPENSSL_EXT STREQUAL ".lib") SET(MY_OPENSSL_LIBRARY imported_openssl) ADD_LIBRARY(imported_openssl STATIC IMPORTED) SET_TARGET_PROPERTIES(imported_openssl @@ -211,10 +230,12 @@ MACRO (MYSQL_CHECK_SSL) MESSAGE(STATUS "OPENSSL_LIBRARY = ${OPENSSL_LIBRARY}") MESSAGE(STATUS "CRYPTO_LIBRARY = ${CRYPTO_LIBRARY}") MESSAGE(STATUS "OPENSSL_MAJOR_VERSION = ${OPENSSL_MAJOR_VERSION}") + MESSAGE(STATUS "OPENSSL_MINOR_VERSION = ${OPENSSL_MINOR_VERSION}") + MESSAGE(STATUS "OPENSSL_FIX_VERSION = ${OPENSSL_FIX_VERSION}") INCLUDE(CheckSymbolExists) SET(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) - CHECK_SYMBOL_EXISTS(SHA512_DIGEST_LENGTH "openssl/sha.h" + CHECK_SYMBOL_EXISTS(SHA512_DIGEST_LENGTH "openssl/sha.h" HAVE_SHA512_DIGEST_LENGTH) IF(OPENSSL_FOUND AND HAVE_SHA512_DIGEST_LENGTH) SET(SSL_SOURCES "") @@ -226,61 +247,22 @@ MACRO (MYSQL_CHECK_SSL) SET(SSL_LIBRARIES ${SSL_LIBRARIES} ${LIBDL}) ENDIF() MESSAGE(STATUS "SSL_LIBRARIES = ${SSL_LIBRARIES}") + IF(WIN32 AND WITH_SSL STREQUAL "system") + MESSAGE(STATUS "Please do\nPATH=\"${WITH_SSL_PATH}bin\":$PATH") + FILE(TO_NATIVE_PATH "${WITH_SSL_PATH}" WITH_SSL_PATH_XX) + MESSAGE(STATUS "or\nPATH=\"${WITH_SSL_PATH_XX}bin\":$PATH") + ENDIF() SET(SSL_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIR}) SET(SSL_INTERNAL_INCLUDE_DIRS "") SET(SSL_DEFINES "-DHAVE_OPENSSL") ELSE() - - UNSET(WITH_SSL_PATH) - UNSET(WITH_SSL_PATH CACHE) - UNSET(OPENSSL_ROOT_DIR) - UNSET(OPENSSL_ROOT_DIR CACHE) - UNSET(OPENSSL_INCLUDE_DIR) - UNSET(OPENSSL_INCLUDE_DIR CACHE) - UNSET(OPENSSL_APPLINK_C) - UNSET(OPENSSL_APPLINK_C CACHE) - UNSET(OPENSSL_LIBRARY) - UNSET(OPENSSL_LIBRARY CACHE) - UNSET(CRYPTO_LIBRARY) - UNSET(CRYPTO_LIBRARY CACHE) - - MESSAGE(SEND_ERROR - "Cannot find appropriate system libraries for SSL. " - "Make sure you've specified a supported SSL version. " - "Consult the documentation for WITH_SSL alternatives") + RESET_SSL_VARIABLES() + FATAL_SSL_NOT_FOUND_ERROR( + "Cannot find appropriate system libraries for WITH_SSL=${WITH_SSL}.") ENDIF() ELSE() - MESSAGE(SEND_ERROR - "Wrong option or path for WITH_SSL. " - "Valid options are : ${WITH_SSL_DOC}") - ENDIF() -ENDMACRO() - - -# Many executables will depend on libeay32.dll and ssleay32.dll at runtime. -# In order to ensure we find the right version(s), we copy them into -# the same directory as the executables. -# NOTE: Using dlls will likely crash in malloc/free, -# see INSTALL.W32 which comes with the openssl sources. -# So we should be linking static versions of the libraries. -MACRO (COPY_OPENSSL_DLLS target_name) - IF (WIN32 AND WITH_SSL_PATH) - GET_FILENAME_COMPONENT(CRYPTO_NAME "${CRYPTO_LIBRARY}" NAME_WE) - GET_FILENAME_COMPONENT(OPENSSL_NAME "${OPENSSL_LIBRARY}" NAME_WE) - FILE(GLOB HAVE_CRYPTO_DLL "${WITH_SSL_PATH}/bin/${CRYPTO_NAME}.dll") - FILE(GLOB HAVE_OPENSSL_DLL "${WITH_SSL_PATH}/bin/${OPENSSL_NAME}.dll") - MESSAGE(STATUS "HAVE_CRYPTO_DLL ${HAVE_CRYPTO_DLL}") - MESSAGE(STATUS "HAVE_OPENSSL_DLL ${HAVE_OPENSSL_DLL}") - IF(HAVE_CRYPTO_DLL AND HAVE_OPENSSL_DLL) - ADD_CUSTOM_COMMAND(OUTPUT ${target_name} - COMMAND ${CMAKE_COMMAND} -E copy_if_different - "${WITH_SSL_PATH}/bin/${CRYPTO_NAME}.dll" - "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${CRYPTO_NAME}.dll" - COMMAND ${CMAKE_COMMAND} -E copy_if_different - "${WITH_SSL_PATH}/bin/${OPENSSL_NAME}.dll" - "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${OPENSSL_NAME}.dll" - ) - ADD_CUSTOM_TARGET(${target_name} ALL) - ENDIF() + RESET_SSL_VARIABLES() + FATAL_SSL_NOT_FOUND_ERROR( + "Wrong option or path for WITH_SSL=${WITH_SSL}.") ENDIF() ENDMACRO() diff --git a/mysql-wsrep-5.6/cmake/stack_direction.c b/mysql-wsrep-5.6/cmake/stack_direction.c index d75bbbfa..47d586c9 100644 --- a/mysql-wsrep-5.6/cmake/stack_direction.c +++ b/mysql-wsrep-5.6/cmake/stack_direction.c @@ -3,13 +3,20 @@ Use is subject to license terms. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/tags.cmake b/mysql-wsrep-5.6/cmake/tags.cmake index fdbe6169..97ced073 100644 --- a/mysql-wsrep-5.6/cmake/tags.cmake +++ b/mysql-wsrep-5.6/cmake/tags.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmake/versioninfo.rc.in b/mysql-wsrep-5.6/cmake/versioninfo.rc.in index f849a9fc..44594fc2 100644 --- a/mysql-wsrep-5.6/cmake/versioninfo.rc.in +++ b/mysql-wsrep-5.6/cmake/versioninfo.rc.in @@ -1,14 +1,21 @@ // Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. // -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License, version 2.0, +// as published by the Free Software Foundation. +// +// This program is also distributed with certain software (including +// but not limited to OpenSSL) that is licensed under separate terms, +// as designated in a particular file or component or in included license +// documentation. The authors of MySQL hereby grant you an additional +// permission to link the program and your derivative works with the +// separately licensed software that they have included with MySQL. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License, version 2.0, for more details. +// // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/mysql-wsrep-5.6/cmake/wsrep.cmake b/mysql-wsrep-5.6/cmake/wsrep.cmake index 7710cd73..bfe05c76 100644 --- a/mysql-wsrep-5.6/cmake/wsrep.cmake +++ b/mysql-wsrep-5.6/cmake/wsrep.cmake @@ -17,7 +17,7 @@ # so WSREP_VERSION is produced regardless # Set the patch version -SET(WSREP_PATCH_VERSION "27") +SET(WSREP_PATCH_VERSION "33") # Obtain patch revision number SET(WSREP_REVISION $ENV{WSREP_REV}) diff --git a/mysql-wsrep-5.6/cmake/zlib.cmake b/mysql-wsrep-5.6/cmake/zlib.cmake index ba8714cd..a589c992 100644 --- a/mysql-wsrep-5.6/cmake/zlib.cmake +++ b/mysql-wsrep-5.6/cmake/zlib.cmake @@ -1,13 +1,20 @@ # Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/cmd-line-utils/libedit/CMakeLists.txt b/mysql-wsrep-5.6/cmd-line-utils/libedit/CMakeLists.txt index d7884850..09e1b3a7 100644 --- a/mysql-wsrep-5.6/cmd-line-utils/libedit/CMakeLists.txt +++ b/mysql-wsrep-5.6/cmd-line-utils/libedit/CMakeLists.txt @@ -1,14 +1,21 @@ # Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/mysql-wsrep-5.6/config.h.cmake b/mysql-wsrep-5.6/config.h.cmake index 1f5fed4b..3f618cf0 100644 --- a/mysql-wsrep-5.6/config.h.cmake +++ b/mysql-wsrep-5.6/config.h.cmake @@ -1,14 +1,21 @@ /* Copyright (c) 2009, 2017, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. - + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - + GNU General Public License, version 2.0, for more details. + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ diff --git a/mysql-wsrep-5.6/configure.cmake b/mysql-wsrep-5.6/configure.cmake index 3d1dfae8..56c755b5 100644 --- a/mysql-wsrep-5.6/configure.cmake +++ b/mysql-wsrep-5.6/configure.cmake @@ -1,14 +1,21 @@ # Copyright (c) 2009, 2017, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/mysql-wsrep-5.6/dbug/CMakeLists.txt b/mysql-wsrep-5.6/dbug/CMakeLists.txt index b0a6eba5..c1287c03 100644 --- a/mysql-wsrep-5.6/dbug/CMakeLists.txt +++ b/mysql-wsrep-5.6/dbug/CMakeLists.txt @@ -1,14 +1,21 @@ # Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/mysql-wsrep-5.6/dbug/dbug_add_tags.pl b/mysql-wsrep-5.6/dbug/dbug_add_tags.pl index 66096450..1d617cf0 100755 --- a/mysql-wsrep-5.6/dbug/dbug_add_tags.pl +++ b/mysql-wsrep-5.6/dbug/dbug_add_tags.pl @@ -4,14 +4,21 @@ # Use is subject to license terms. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/mysql-wsrep-5.6/extra/CMakeLists.txt b/mysql-wsrep-5.6/extra/CMakeLists.txt index f34ca4d0..1e722419 100644 --- a/mysql-wsrep-5.6/extra/CMakeLists.txt +++ b/mysql-wsrep-5.6/extra/CMakeLists.txt @@ -1,14 +1,21 @@ -# Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2006, 2019, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# +# it under the terms of the GNU General Public License, version 2.0, +# as published by the Free Software Foundation. +# +# This program is also distributed with certain software (including +# but not limited to OpenSSL) that is licensed under separate terms, +# as designated in a particular file or component or in included license +# documentation. The authors of MySQL hereby grant you an additional +# permission to link the program and your derivative works with the +# separately licensed software that they have included with MySQL. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# GNU General Public License, version 2.0, for more details. +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -51,16 +58,8 @@ ADD_CUSTOM_TARGET(GenError ${PROJECT_BINARY_DIR}/sql/share/english/errmsg.sys ${PROJECT_SOURCE_DIR}/sql/share/errmsg-utf8.txt) -## Most executables depend on libeay32.dll (through mysys_ssl). -## For 'comp_err' we need it to be available during build. -COPY_OPENSSL_DLLS(copy_openssl_extra) -IF (WIN32 AND WITH_SSL_PATH AND HAVE_CRYPTO_DLL) - ADD_DEPENDENCIES(GenError copy_openssl_extra) -ENDIF() - - MYSQL_ADD_EXECUTABLE(my_print_defaults my_print_defaults.c) -TARGET_LINK_LIBRARIES(my_print_defaults mysys mysys_ssl) +TARGET_LINK_LIBRARIES(my_print_defaults mysys mysys_ssl) SET_TARGET_PROPERTIES(my_print_defaults PROPERTIES LINKER_LANGUAGE CXX) MYSQL_ADD_EXECUTABLE(perror perror.c) diff --git a/mysql-wsrep-5.6/extra/comp_err.c b/mysql-wsrep-5.6/extra/comp_err.c index ac5d113c..060aea55 100644 --- a/mysql-wsrep-5.6/extra/comp_err.c +++ b/mysql-wsrep-5.6/extra/comp_err.c @@ -2,13 +2,20 @@ Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/extra/innochecksum.cc b/mysql-wsrep-5.6/extra/innochecksum.cc index 9c6ca996..7a51eb2e 100644 --- a/mysql-wsrep-5.6/extra/innochecksum.cc +++ b/mysql-wsrep-5.6/extra/innochecksum.cc @@ -2,13 +2,20 @@ Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/extra/libevent/CMakeLists.txt b/mysql-wsrep-5.6/extra/libevent/CMakeLists.txt index 6e364ca3..f6f163ab 100644 --- a/mysql-wsrep-5.6/extra/libevent/CMakeLists.txt +++ b/mysql-wsrep-5.6/extra/libevent/CMakeLists.txt @@ -128,7 +128,7 @@ option(EVENT__DISABLE_MM_REPLACEMENT option(EVENT__DISABLE_THREAD_SUPPORT "Define if libevent should not be compiled with thread support" OFF) -# Disable SSL, for yaSSL and OpenSSL +# Disable SSL option(EVENT__DISABLE_OPENSSL "Define if libevent should build without support for OpenSSL encrpytion" ON) diff --git a/mysql-wsrep-5.6/extra/my_print_defaults.c b/mysql-wsrep-5.6/extra/my_print_defaults.c index 6ccb08f7..7be01407 100644 --- a/mysql-wsrep-5.6/extra/my_print_defaults.c +++ b/mysql-wsrep-5.6/extra/my_print_defaults.c @@ -3,13 +3,20 @@ Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/extra/mysql_waitpid.c b/mysql-wsrep-5.6/extra/mysql_waitpid.c index bf4147d7..48616ab8 100644 --- a/mysql-wsrep-5.6/extra/mysql_waitpid.c +++ b/mysql-wsrep-5.6/extra/mysql_waitpid.c @@ -1,13 +1,20 @@ /* Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/extra/perror.c b/mysql-wsrep-5.6/extra/perror.c index 427aeb83..865613e9 100644 --- a/mysql-wsrep-5.6/extra/perror.c +++ b/mysql-wsrep-5.6/extra/perror.c @@ -2,13 +2,20 @@ Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/extra/replace.c b/mysql-wsrep-5.6/extra/replace.c index 591e8d00..4119258f 100644 --- a/mysql-wsrep-5.6/extra/replace.c +++ b/mysql-wsrep-5.6/extra/replace.c @@ -1,15 +1,21 @@ /* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; version 2 of - the License. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/extra/resolve_stack_dump.cc b/mysql-wsrep-5.6/extra/resolve_stack_dump.cc index 05ca4ea2..f56472dd 100644 --- a/mysql-wsrep-5.6/extra/resolve_stack_dump.cc +++ b/mysql-wsrep-5.6/extra/resolve_stack_dump.cc @@ -1,13 +1,20 @@ /* Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/extra/resolveip.c b/mysql-wsrep-5.6/extra/resolveip.c index 66debab6..34d3b001 100644 --- a/mysql-wsrep-5.6/extra/resolveip.c +++ b/mysql-wsrep-5.6/extra/resolveip.c @@ -1,13 +1,20 @@ /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + This program is also distributed with certain software (including + but not limited to OpenSSL) that is licensed under separate terms, + as designated in a particular file or component or in included license + documentation. The authors of MySQL hereby grant you an additional + permission to link the program and your derivative works with the + separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software diff --git a/mysql-wsrep-5.6/extra/yassl/AUTHORS b/mysql-wsrep-5.6/extra/yassl/AUTHORS deleted file mode 100644 index e69de29b..00000000 diff --git a/mysql-wsrep-5.6/extra/yassl/CMakeLists.txt b/mysql-wsrep-5.6/extra/yassl/CMakeLists.txt deleted file mode 100644 index 8115b3da..00000000 --- a/mysql-wsrep-5.6/extra/yassl/CMakeLists.txt +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -INCLUDE_DIRECTORIES( - ${CMAKE_SOURCE_DIR}/include - ${CMAKE_SOURCE_DIR}/extra/yassl/include - ${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/include - ${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/mySTL) - -ADD_DEFINITIONS(${SSL_DEFINES}) - -# rename get_tty_password to avoid collisions with the main binary -ADD_DEFINITIONS(-Dget_tty_password_ext=yassl_mysql_get_tty_password_ext) -ADD_DEFINITIONS(-Dget_tty_password=yassl_mysql_get_tty_password) - -SET(YASSL_SOURCES src/buffer.cpp src/cert_wrapper.cpp src/crypto_wrapper.cpp src/handshake.cpp src/lock.cpp - src/log.cpp src/socket_wrapper.cpp src/ssl.cpp src/timer.cpp src/yassl_error.cpp - src/yassl_imp.cpp src/yassl_int.cpp - ../../client/get_password.c ) - -ADD_CONVENIENCE_LIBRARY(yassl ${YASSL_SOURCES}) -RESTRICT_SYMBOL_EXPORTS(yassl) - -IF(MSVC) - INSTALL_DEBUG_TARGET(yassl DESTINATION ${INSTALL_LIBDIR}/debug) -ENDIF() diff --git a/mysql-wsrep-5.6/extra/yassl/COPYING b/mysql-wsrep-5.6/extra/yassl/COPYING deleted file mode 100644 index 845980af..00000000 --- a/mysql-wsrep-5.6/extra/yassl/COPYING +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/mysql-wsrep-5.6/extra/yassl/ChangeLog b/mysql-wsrep-5.6/extra/yassl/ChangeLog deleted file mode 100644 index e69de29b..00000000 diff --git a/mysql-wsrep-5.6/extra/yassl/FLOSS-EXCEPTIONS b/mysql-wsrep-5.6/extra/yassl/FLOSS-EXCEPTIONS deleted file mode 100644 index 47f86ff6..00000000 --- a/mysql-wsrep-5.6/extra/yassl/FLOSS-EXCEPTIONS +++ /dev/null @@ -1,121 +0,0 @@ -yaSSL FLOSS License Exception -**************************************** - -Version 0.2, 31 August 2006 - -The Sawtooth Consulting Ltd. Exception for Free/Libre and Open Source -Software-only Applications Using yaSSL Libraries (the "FLOSS Exception"). - -*Exception Intent* - -We want specified Free/Libre and Open Source Software ("FLOSS") -applications to be able to use specified GPL-licensed yaSSL -libraries (the "Program") despite the fact that not all FLOSS -licenses are compatible with version 2 of the GNU General Public -License (the "GPL"). - -*Legal Terms and Conditions* - -As a special exception to the terms and conditions of version 2.0 of -the GPL: - - 1. You are free to distribute a Derivative Work that is formed - entirely from the Program and one or more works (each, a "FLOSS - Work") licensed under one or more of the licenses listed below - in section 1, as long as: - - 1. You obey the GPL in all respects for the Program and the - Derivative Work, except for identifiable sections of the - Derivative Work which are not derived from the Program, - and which can reasonably be considered independent and - separate works in themselves, - - 2. all identifiable sections of the Derivative Work which - are not derived from the Program, and which can reasonably be - considered independent and separate works in themselves, - - * i - - are distributed subject to one of the FLOSS licenses - listed below, and - - * ii - - the object code or executable form of those sections are - accompanied by the complete corresponding machine-readable - source code for those sections on the same medium and under - the same FLOSS license as the corresponding object code or - executable forms of those sections, and - - - 3. any works which are aggregated with the Program or with - a Derivative Work on a volume of a storage or distribution - medium in accordance with the GPL, can reasonably be considered - independent and separate works in themselves which are not - derivatives of either the Program, a Derivative Work or a FLOSS - Work. - - - If the above conditions are not met, then the Program may only be - copied, modified, distributed or used under the terms and - conditions of the GPL or another valid licensing option from - Sawtooth Consulting Ltd. - - 2. FLOSS License List - - *License name* *Version(s)/Copyright Date* - Academic Free License 2.0 - Apache Software License 1.0/1.1/2.0 - Apple Public Source License 2.0 - Artistic license From Perl 5.8.0 - BSD license "July 22 1999" - Common Development and Distribution License (CDDL) 1.0 - Common Public License 1.0 - GNU Library or "Lesser" General Public 2.0/2.1 - License (LGPL) - Jabber Open Source License 1.0 - MIT license - - Mozilla Public License (MPL) 1.0/1.1 - Open Software License 2.0 - PHP License 3.0 - Python license (CNRI Python License) - - Python Software Foundation License 2.1.1 - Sleepycat License "1999" - University of Illinois/NCSA Open Source License - - W3C License "2001" - X11 License "2001" - Zlib/libpng License - - Zope Public License 2.0 - - Due to the many variants of some of the above licenses, we require - that any version follow the 2003 version of the Free Software - Foundation's Free Software Definition - (http://www.gnu.org/philosophy/free-sw.html - (http://www.gnu.org/philosophy/free-sw.html)) or version 1.9 of - the Open Source Definition by the Open Source Initiative - (http://www.opensource.org/docs/definition.php - (http://www.opensource.org/docs/definition.php)). - - 3. Definitions - - 1. Terms used, but not defined, herein shall have the - meaning provided in the GPL. - - 2. Derivative Work means a derivative work under copyright - law. - - - 4. Applicability This FLOSS Exception applies to all Programs that - contain a notice placed by Sawtooth Consulting Ltd. saying that the - Program may be distributed under the terms of this FLOSS Exception. - If you create or distribute a work which is a Derivative Work of - both the Program and any other work licensed under the GPL, then - this FLOSS Exception is not available for that work; thus, you - must remove the FLOSS Exception notice from that work and - comply with the GPL in all respects, including by retaining all - GPL notices. You may choose to redistribute a copy of the - Program exclusively under the terms of the GPL by removing the - FLOSS Exception notice from that copy of the Program, provided - that the copy has never been modified by you or any third party. - - diff --git a/mysql-wsrep-5.6/extra/yassl/INSTALL b/mysql-wsrep-5.6/extra/yassl/INSTALL deleted file mode 100644 index 5458714e..00000000 --- a/mysql-wsrep-5.6/extra/yassl/INSTALL +++ /dev/null @@ -1,234 +0,0 @@ -Installation Instructions -************************* - -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, -2006 Free Software Foundation, Inc. - -This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. - -Basic Installation -================== - -Briefly, the shell commands `./configure; make; make install' should -configure, build, and install this package. The following -more-detailed instructions are generic; see the `README' file for -instructions specific to this package. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). - - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. Caching is -disabled by default to prevent problems with accidental use of stale -cache files. - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you -may remove or edit it. - - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You need `configure.ac' if -you want to change it or regenerate `configure' using a newer version -of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. - - Running `configure' might take a while. While running, it prints - some messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - -Compilers and Options -===================== - -Some systems require unusual options for compilation or linking that the -`configure' script does not know about. Run `./configure --help' for -details on some of the pertinent environment variables. - - You can give `configure' initial values for configuration parameters -by setting variables in the command line or in the environment. Here -is an example: - - ./configure CC=c99 CFLAGS=-g LIBS=-lposix - - *Note Defining Variables::, for more details. - -Compiling For Multiple Architectures -==================================== - -You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you can use GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - With a non-GNU `make', it is safer to compile the package for one -architecture at a time in the source code directory. After you have -installed the package for one architecture, use `make distclean' before -reconfiguring for another architecture. - -Installation Names -================== - -By default, `make install' installs the package's commands under -`/usr/local/bin', include files under `/usr/local/include', etc. You -can specify an installation prefix other than `/usr/local' by giving -`configure' the option `--prefix=PREFIX'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -pass the option `--exec-prefix=PREFIX' to `configure', the package uses -PREFIX as the prefix for installing programs and libraries. -Documentation and other data files still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=DIR' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - -Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - -There may be some features `configure' cannot figure out automatically, -but needs to determine by the type of machine the package will run on. -Usually, assuming the package is built to be run on the _same_ -architectures, `configure' can figure that out, but if it prints a -message saying it cannot guess the machine type, give it the -`--build=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name which has the form: - - CPU-COMPANY-SYSTEM - -where SYSTEM can have one of these forms: - - OS KERNEL-OS - - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the machine type. - - If you are _building_ compiler tools for cross-compiling, you should -use the option `--target=TYPE' to select the type of system they will -produce code for. - - If you want to _use_ a cross compiler, that generates code for a -platform different from the build platform, you should specify the -"host" platform (i.e., that on which the generated programs will -eventually be run) with `--host=TYPE'. - -Sharing Defaults -================ - -If you want to set default values for `configure' scripts to share, you -can create a site shell script called `config.site' that gives default -values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Defining Variables -================== - -Variables not defined in a site shell script can be set in the -environment passed to `configure'. However, some packages may run -configure again during the build, and the customized values of these -variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: - - ./configure CC=/usr/local2/bin/gcc - -causes the specified `gcc' to be used as the C compiler (unless it is -overridden in the site shell script). - -Unfortunately, this technique does not work for `CONFIG_SHELL' due to -an Autoconf bug. Until the bug is fixed you can use this workaround: - - CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash - -`configure' Invocation -====================== - -`configure' recognizes the following options to control how it operates. - -`--help' -`-h' - Print a summary of the options to `configure', and exit. - -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`--cache-file=FILE' - Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to - disable caching. - -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. - diff --git a/mysql-wsrep-5.6/extra/yassl/NEWS b/mysql-wsrep-5.6/extra/yassl/NEWS deleted file mode 100644 index e69de29b..00000000 diff --git a/mysql-wsrep-5.6/extra/yassl/README b/mysql-wsrep-5.6/extra/yassl/README deleted file mode 100644 index de1bf513..00000000 --- a/mysql-wsrep-5.6/extra/yassl/README +++ /dev/null @@ -1,786 +0,0 @@ -*** Note, Please read *** - -yaSSL takes a different approach to certificate verification than OpenSSL does. -The default policy for the client is to verify the server, this means that if -you don't load CAs to verify the server you'll get a connect error, unable to -verify. It you want to mimic OpenSSL behavior of not verifying the server and -reducing security you can do this by calling: - -SSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0); - -before calling SSL_new(); - -*** end Note *** - -yaSSL Release notes, version 2.4.4 (8/8/2017) - This release of yaSSL fixes an interop issue. A fix for detecting cipher - suites with non leading zeros is included as yaSSL only supports cipher - suites with leading zeros. Thanks for the report from Security Innovation - and Oracle. - - Users interoping with other SSL stacks should update. - -yaSSL Release notes, version 2.4.2 (9/22/2016) - This release of yaSSL fixes a medium security vulnerability. A fix for - potential AES side channel leaks is included that a local user monitoring - the same CPU core cache could exploit. VM users, hyper-threading users, - and users where potential attackers have access to the CPU cache will need - to update if they utilize AES. - - DSA padding fixes for unusual sizes is included as well. Users with DSA - certficiates should update. - -yaSSL Release notes, version 2.4.0 (5/20/2016) - This release of yaSSL fixes the OpenSSL compatibility function - SSL_CTX_load_verify_locations() when using the path directory to allow - unlimited path sizes. Minor Windows build fixes are included. - No high level security fixes in this version but we always recommend - updating. - - -yaSSL Release notes, version 2.3.9b (2/03/2016) - This release of yaSSL fixes the OpenSSL compatibility function - X509_NAME_get_index_by_NID() to use the actual index of the common name - instead of searching on the format prefix. Thanks for the report from - yashwant.sahu@oracle.com . Anyone using this function should update. - -yaSSL Release notes, version 2.3.9 (12/01/2015) - This release of yaSSL fixes two client side Diffie-Hellman problems. - yaSSL was only handling the cases of zero or one leading zeros for the key - agreement instead of potentially any number. This caused about 1 in 50,000 - connections to fail when using DHE cipher suites. The second problem was - the case where a server would send a public value shorter than the prime - value, causing about 1 in 128 client connections to fail, and also - caused the yaSSL client to read off the end of memory. All client side - DHE cipher suite users should update. - Thanks to Adam Langely (agl@imperialviolet.org) for the detailed report! - -yaSSL Release notes, version 2.3.8 (9/17/2015) - This release of yaSSL fixes a high security vulnerability. All users - SHOULD update. If using yaSSL for TLS on the server side with private - RSA keys allowing ephemeral key exchange you MUST update and regenerate - the RSA private keys. This report is detailed in: - https://people.redhat.com/~fweimer/rsa-crt-leaks.pdf - yaSSL now detects RSA signature faults and returns an error. - -yaSSL Patch notes, version 2.3.7e (6/26/2015) - This release of yaSSL includes a fix for Date less than comparison. - Previously yaSSL would return true on less than comparisons if the Dates - were equal. Reported by Oracle. No security problem, but if a cert was - generated right now, a server started using it in the same second, and a - client tried to verify it in the same second it would report not yet valid. - -yaSSL Patch notes, version 2.3.7d (6/22/2015) - This release of yaSSL includes a fix for input_buffer set_current with - index 0. SSL_peek() at front of waiting data could trigger. Robert - Golebiowski of Oracle identified and suggested a fix, thanks! - -yaSSL Patch notes, version 2.3.7c (6/12/2015) - This release of yaSSL does certificate DATE comparisons to the second - instead of to the minute, helpful when using freshly generated certs. - Though keep in mind that time sync differences could still show up. - -yaSSL Patch notes, version 2.3.7b (3/18/2015) - This release of yaSSL fixes a potential crash with corrupted private keys. - Also detects bad keys earlier for user. - -yaSSL Release notes, version 2.3.7 (12/10/2014) - This release of yaSSL fixes the potential to process duplicate handshake - messages by explicitly marking/checking received handshake messages. - -yaSSL Release notes, version 2.3.6 (11/25/2014) - - This release of yaSSL fixes some valgrind warnings/errors including - uninitialized reads and off by one index errors induced from fuzzing - the handshake. These were reported by Oracle. - -yaSSL Release notes, version 2.3.5 (9/29/2014) - - This release of yaSSL fixes an RSA Padding check vulnerability reported by - Intel Security Advanced Threat Research team - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0 and note in 1.5.8. - - -yaSSL Release notes, version 2.3.4 (8/15/2014) - - This release of yaSSL adds checking to the input_buffer class itself. - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0 and note in 1.5.8. - - -yaSSL Release notes, version 2.3.2 (7/25/2014) - - This release of yaSSL updates test certs. - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0 and note in 1.5.8. - - -*****************yaSSL Release notes, version 2.3.0 (12/5/2013) - - This release of yaSSL updates asm for newer GCC versions. - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0 and note in 1.5.8. - - -*****************yaSSL Release notes, version 2.2.3 (4/23/2013) - - This release of yaSSL updates the test certificates as they were expired - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0 and note in 1.5.8. - - -*****************yaSSL Release notes, version 2.2.2d (2/5/2013) - - This release of yaSSL contains countermeasuers for the Lucky 13 TLS 1.1 - CBC timing padding attack identified by Nadhem AlFardan and Kenneth Paterson - see: http://www.isg.rhul.ac.uk/tls/ - - It also adds SHA2 certificate verification and better checks for malicious - input. - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0 and note in 1.5.8. - - -*****************yaSSL Release notes, version 2.2.2 (7/5/2012) - - This release of yaSSL contains bug fixes and more security checks around - malicious certificates. - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0 and note in 1.5.8. - - -*****************yaSSL Release notes, version 2.1.2 (9/2/2011) - - This release of yaSSL contains bug fixes, better non-blocking support with - SSL_write, and OpenSSL RSA public key format support. - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0 and note in 1.5.8. - - -*****************yaSSL Release notes, version 2.0.0 (7/6/2010) - - This release of yaSSL contains bug fixes, new testing certs, - and a security patch for a potential heap overflow on forged application - data processing. Vulnerability discovered by Matthieu Bonetti from VUPEN - Security http://www.vupen.com. - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0 and note in 1.5.8. - - -*****************yaSSL Release notes, version 1.9.9 (1/26/2010) - - This release of yaSSL contains bug fixes, the removal of assert() s and - a security patch for a buffer overflow possibility in certificate name - processing. - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0 and note in 1.5.8. - - -*****************yaSSL Release notes, version 1.9.8 (10/14/09) - - This release of yaSSL contains bug fixes and adds new stream ciphers - Rabbit and HC-128 - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0 and note in 1.5.8. - - -*****************yaSSL Release notes, version 1.9.6 (11/13/08) - - This release of yaSSL contains bug fixes, adds autconf shared library - support and has better server suite detection based on certficate and - private key. - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0 and note in 1.5.8. - - -*****************yaSSL Release notes, version 1.9.2 (9/24/08) - - This release of yaSSL contains bug fixes and improved certificate verify - callback support. - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0 and note in 1.5.8. - - -*****************yaSSL Release notes, version 1.8.8 (5/7/08) - - This release of yaSSL contains bug fixes, and better socket handling. - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0 and note in 1.5.8. - - -*****************yaSSL Release notes, version 1.8.6 (1/31/08) - - This release of yaSSL contains bug fixes, and fixes security problems - associated with using SSL 2.0 client hellos and improper input handling. - Please upgrade to this version if you are using a previous one. - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0 and note in 1.5.8. - - -*****************yaSSL Release notes, version 1.7.5 (10/15/07) - - This release of yaSSL contains bug fixes, adds MSVC 2005 project support, - GCC 4.2 support, IPV6 support and test, and new test certificates. - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0 and note in 1.5.8. - - -*****************yaSSL Release notes, version 1.7.2 (8/20/07) - - This release of yaSSL contains bug fixes and adds initial OpenVPN support. - Just configure at this point and beginning of build. - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0 and note in 1.5.8. - - -*****************yaSSL Release notes, version 1.6.8 (4/16/07) - - This release of yaSSL contains bug fixes and adds SHA-256, SHA-512, SHA-224, - and SHA-384. - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0 and note in 1.5.8. - - -*****************yaSSL Release notes, version 1.6.0 (2/22/07) - - This release of yaSSL contains bug fixes, portability enhancements, and - better X509 support. - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0 and note in 1.5.8. - -*****************yaSSL Release notes, version 1.5.8 (1/10/07) - - This release of yaSSL contains bug fixes, portability enhancements, and - support for GCC 4.1.1 and vs2005 sp1. - - - - Since yaSSL now supports zlib, as does libcurl, the libcurl build test can - fail if yaSSL is built with zlib support since the zlib library isn't - passed. You can do two things to fix this: - - 1) build yaSSL w/o zlib --without-zlib - 2) or add flags to curl configure LDFLAGS="-lm -lz" - - - -*****************yaSSL Release notes, version 1.5.0 (11/09/06) - - This release of yaSSL contains bug fixes, portability enhancements, - and full TLS 1.1 support. Use the functions: - - SSL_METHOD *TLSv1_1_server_method(void); - SSL_METHOD *TLSv1_1_client_method(void); - - or the SSLv23 versions (even though yaSSL doesn't support SSL 2.0 the v23 - means to pick the highest of SSL 3.0, TLS 1.0, or TLS 1.1). - - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0. - - - -****************yaSSL Release notes, version 1.4.5 (10/15/06) - - - This release of yaSSL contains bug fixes, portability enhancements, - zlib compression support, removal of assembly instructions at runtime if - not supported, and initial TLS 1.1 support. - - - Compression Notes: yaSSL uses zlib for compression and the compression - should only be used if yaSSL is at both ends because the implementation - details aren't yet standard. If you'd like to turn compression on use - the SSL_set_compression() function on the client before calling - SSL_connect(). If both the client and server were built with zlib support - then the connection will use compression. If the client isn't built with - support then SSL_set_compression() will return an error (-1). - - To build yaSSL with zlib support on Unix simply have zlib support on your - system and configure will find it if it's in the standard locations. If - it's somewhere else use the option ./configure --with-zlib=DIR. If you'd - like to disable compression support in yaSSL use ./configure --without-zlib. - - To build yaSSL with zlib support on Windows: - - 1) download zlib from http://www.zlib.net/ - 2) follow the instructions in zlib from projects/visualc6/README.txt - for how to add the zlib project into the yaSSL workspace noting that - you'll need to add configuration support for "Win32 Debug" and - "Win32 Release" in note 3 under "To use:". - 3) define HAVE_LIBZ when building yaSSL - - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0. - - -********************yaSSL Release notes, version 1.4.0 (08/13/06) - - - This release of yaSSL contains bug fixes, portability enhancements, - nonblocking connect and accept, better OpenSSL error mapping, and - certificate caching for session resumption. - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0. - - -********************yaSSL Release notes, version 1.3.7 (06/26/06) - - - This release of yaSSL contains bug fixes, portability enhancements, - and libcurl 7.15.4 support (any newer versions may not build). - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0. - - -********************yaSSL Release notes, version 1.3.5 (06/01/06) - - - This release of yaSSL contains bug fixes, portability enhancements, - better libcurl support, and improved non-blocking I/O. - -See normal build instructions below under 1.0.6. -See libcurl build instructions below under 1.3.0. - - -********************yaSSL Release notes, version 1.3.0 (04/26/06) - - - This release of yaSSL contains minor bug fixes, portability enhancements, - and libcurl support. - -See normal build instructions below under 1.0.6. - - ---To build for libcurl on Linux, Solaris, *BSD, Mac OS X, or Cygwin: - - To build for libcurl the library needs to be built without C++ globals since - the linker will be called in a C context, also libcurl configure will expect - OpenSSL library names so some symbolic links are created. - - ./configure --enable-pure-c - make - make openssl-links - - (then go to your libcurl home and tell libcurl about yaSSL build dir) - ./configure --with-ssl=/yaSSL-BuildDir LDFLAGS=-lm - make - - ---To build for libcurl on Win32: - - Simply add the yaSSL project as a dependency to libcurl, add - yaSSL-Home\include and yaSSL-Home\include\openssl to the include list, and - define USE_SSLEAY and USE_OPENSSL - - please email todd@yassl.com if you have any questions. - - -*******************yaSSL Release notes, version 1.2.2 (03/27/06) - - - This release of yaSSL contains minor bug fixes and portability enhancements. - -See build instructions below under 1.0.6: - - - -*******************yaSSL Release notes, version 1.2.0 - - - This release of yaSSL contains minor bug fixes, portability enhancements, - Diffie-Hellman compatibility fixes for other servers and client, - optimization improvements, and x86 ASM changes. - -See build instructions below under 1.0.6: - - - -*****************yaSSL Release notes, version 1.1.5 - - This release of yaSSL contains minor bug fixes, portability enhancements, - and user requested changes including the ability to add all certificates in - a directory, more robust socket handling, no new overloading unless - requested, and an SSL_VERIFY_NONE option. - - -See build instructions below under 1.0.6: - - - -******************yaSSL Release notes, version 1.0.6 - -This release of yaSSL contains minor bug fixes, portability enhancements, -x86 assembly for ARC4, SHA, MD5, and RIPEMD, --enable-ia32-asm configure -option, and a security patch for certificate chain processing. - ---To build on Linux, Solaris, *BSD, Mac OS X, or Cygwin: - - ./configure - make - - run testsuite from yaSSL-Home/testsuite to test the build - -to make a release build: - - ./configure --disable-debug - make - - run testsuite from yaSSL-Home/testsuite to test the build - - ---To build on Win32 - -Choose (Re)Build All from the project workspace - -run Debug\testsuite.exe from yaSSL-Home\testsuite to test the build - - - -***************** yaSSL Release notes, version 1.0.5 - -This release of yaSSL contains minor bug fixes, portability enhancements, -x86 assembly for AES, 3DES, BLOWFISH, and TWOFISH, --without-debug configure -option, and --enable-kernel-mode configure option for using TaoCrypt with -kernel modules. - ---To build on Linux, Solaris, *BSD, Mac OS X, or Cygwin: - - ./configure - make - - run testsuite from yaSSL-Home/testsuite to test the build - -to make a release build: - - ./configure --without-debug - make - - run testsuite from yaSSL-Home/testsuite to test the build - - ---To build on Win32 - -Choose (Re)Build All from the project workspace - -run Debug\testsuite.exe from yaSSL-Home\testsuite to test the build - - -******************yaSSL Release notes, version 1.0.1 - -This release of yaSSL contains minor bug fixes, portability enhancements, -GCC 3.4.4 support, MSVC 2003 support, and more documentation. - -Please see build instructions in the release notes for 0.9.6 below. - - -******************yaSSL Release notes, version 1.0 - -This release of yaSSL contains minor bug fixes, portability enhancements, -GCC 4.0 support, testsuite, improvements, and API additions. - -Please see build instructions in the release notes for 0.9.6 below. - - -******************yaSSL Release notes, version 0.9.9 - -This release of yaSSL contains minor bug fixes, portability enchancements, -MSVC 7 support, memory improvements, and API additions. - -Please see build instructions in the release notes for 0.9.6 below. - - -******************yaSSL Release notes, version 0.9.8 - -This release of yaSSL contains minor bug fixes and portability enchancements. - -Please see build instructions in the release notes for 0.9.6 below. - - -******************yaSSL Release notes, version 0.9.6 - -This release of yaSSL contains minor bug fixes, removal of STL support, and -removal of exceptions and rtti so that the library can be linked without the -std c++ library. - ---To build on Linux, Solaris, FreeBSD, Mac OS X, or Cygwin - -./configure -make - -run testsuite from yaSSL-Home/testsuite to test the build - - ---To build on Win32 - -Choose (Re)Build All from the project workspace - -run Debug\testsuite.exe from yaSSL-Home\testsuite to test the build - - - -******************yaSSL Release notes, version 0.9.2 - -This release of yaSSL contains minor bug fixes, expanded certificate -verification and chaining, and improved documentation. - -Please see build instructions in release notes 0.3.0. - - - -******************yaSSL Release notes, version 0.9.0 - -This release of yaSSL contains minor bug fixes, client verification handling, -hex and base64 encoing/decoding, and an improved test suite. - -Please see build instructions in release notes 0.3.0. - - -******************yaSSL Release notes, version 0.8.0 - -This release of yaSSL contains minor bug fixes, and initial porting effort to -64bit, BigEndian, and more UNIX systems. - -Please see build instructions in release notes 0.3.0. - - -******************yaSSL Release notes, version 0.6.0 - -This release of yaSSL contains minor bug fixes, source cleanup, and binary beta -(1) of the yaSSL libraries. - -Please see build instructions in release notes 0.3.0. - - - -******************yaSSL Release notes, version 0.5.0 - -This release of yaSSL contains minor bug fixes, full session resumption -support, and initial testing suite support. - - - -Please see build instructions in release notes 0.3.0. - - - -******************yaSSL Release notes, version 0.4.0 - -This release of yaSSL contains minor bug fixes, an optional memory tracker, -an echo client and server with input/output redirection for load testing, -and initial session caching support. - - -Please see build instructions in release notes 0.3.0. - - -******************yaSSL Release notes, version 0.3.5 - -This release of yaSSL contains minor bug fixes and extensions to the crypto -library including a full test suite. - - -*******************yaSSL Release notes, version 0.3.0 - -This release of yaSSL contains minor bug fixes and extensions to the crypto -library including AES and an improved random number generator. GNU autoconf -and automake are now used to simplify the build process on Linux. - -*** Linux Build process - -./configure -make - -*** Windows Build process - -open the yassl workspace and build the project - - -*******************yaSSL Release notes, version 0.2.9 - -This release of yaSSL contains minor bug fixes and extensions to the crypto -library. - -See the notes at the bottom of this page for build instructions. - - -*******************yaSSL Release notes, version 0.2.5 - -This release of yaSSL contains minor bug fixes and a beta binary of the yaSSL -libraries for win32 and linux. - -See the notes at the bottom of this page for build instructions. - - - -*******************yaSSL Release notes, version 0.2.0 - -This release of yaSSL contains minor bug fixes and initial alternate crypto -functionality. - -*** Complete Build *** - -See the notes in Readme.txt for build instructions. - -*** Update Build *** - -If you have already done a complete build of yaSSL as described in the release -0.0.1 - 0.1.0 notes and downloaded the update to 0.2.0, place the update file -yassl-update-0.2.0.tar.gz in the yaSSL home directory and issue the command: - -gzip -cd yassl-update-0.2.0.tar.gz | tar xvf - - -to update the previous release. - -Then issue the make command on linux or rebuild the yaSSL project on Windows. - -*******************yaSSL Release notes, version 0.1.0 - -This release of yaSSL contains minor bug fixes, full client and server TLSv1 -support including full ephemeral Diffie-Hellman support, SSL type RSA and DSS -signing and verification, and initial stunnel 4.05 build support. - - - -*********************yaSSL Release notes, version 0.0.3 - -The third release of yaSSL contains minor bug fixes, client certificate -enhancements, and initial ephemeral Diffie-Hellman integration: - - - -********************* - -yaSSL Release notes, version 0.0.2 - -The second release of yaSSL contains minor bug fixes, client certificate -enhancements, session resumption, and improved TLS support including: - -- HMAC for MD5 and SHA-1 -- PRF (pseudo random function) -- Master Secret and Key derivation routines -- Record Authentication codes -- Finish verify data check - -Once ephemeral RSA and DH are added yaSSL will be fully complaint with TLS. - - - -********************** - -yassl Release notes, version 0.0.1 - -The first release of yassl supports normal RSA mode SSLv3 connections with -support for SHA-1 and MD5 digests. Ciphers include DES, 3DES, and RC4. - -yassl uses the CryptoPP library for cryptography, the source is available at -www.cryptopp.com . - -yassl uses CML (the Certificate Management Library) for x509 support. More -features will be in future versions. The CML source is available for download -from www.digitalnet.com/knowledge/cml_home.htm . - -The next release of yassl will support the 3 lesser-used SSL connection modes; -HandShake resumption, Ephemeral RSA (or DH), and Client Authentication as well -as full support for TLS. Backwards support for SSLv2 is not planned at this -time. - - -********************** - -Building yassl on linux: - -use the ./buildall script to build everything. - -buildall will configure and build CML, CryptoPP, and yassl. Testing was -preformed with gcc version 3.3.2 on kernel 2.4.22. - - -********************** - -Building yassl on Windows: - -Testing was preformed on Windows 2000 with Visual C++ 6 sp5. - -1) decompress esnacc_r16.tgz in place, see buildall for syntax if unsure - -2) decompress smp_r23.tgz in place - -3) unzip cryptopp51/crypto51.zip in place - -4) Build SNACC (part of CML) using snacc_builds.dsw in the SNACC directory - -5) Build SMP (part of CMP) using smp.dsw in the smp directory - -6) Build yassl using yassl.dsw - - -********************** - -examples, server and client: - -Please see the server and client examples in both versions to see how to link -to yassl and the support libraries. On linux do 'make server' and 'make -client' to build them. On Windows you will find the example projects in the -main workspace, yassl.dsw. - -The example server and client are compatible with openssl. - - -********************** - -Building yassl into mysql on linux: - -Testing was done using mysql version 4.0.17. - -alter openssl_libs in the configure file, line 21056. Change '-lssl -lcrypto' -to '-lyassl -lcryptopp -lcmapi -lcmlasn -lctil -lc++asn1'. - -see build/config_command for the configure command used to configure mysql -please change /home/touska/ to the relevant directory of course. - -add yassl/lib to the LD_LIBRARY_PATH because libmysql/conf_to_src does not -use the ssl lib directory though it does use the ssl libraries. - -make - -make install - - -********************* - -License: yassl is currently under the GPL, please see license information -in the source and include files. - - -********************* - -Contact: please send comments or questions to Todd A Ouska at todd@yassl.com -and/or Larry Stefonic at larry@yassl.com. - - - diff --git a/mysql-wsrep-5.6/extra/yassl/certs/ca-cert.pem b/mysql-wsrep-5.6/extra/yassl/certs/ca-cert.pem deleted file mode 100644 index 8b34ea43..00000000 --- a/mysql-wsrep-5.6/extra/yassl/certs/ca-cert.pem +++ /dev/null @@ -1,87 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b7:b6:90:33:66:1b:6b:23 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com - Validity - Not Before: Aug 11 20:07:37 2016 GMT - Not After : May 8 20:07:37 2019 GMT - Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:bf:0c:ca:2d:14:b2:1e:84:42:5b:cd:38:1f:4a: - f2:4d:75:10:f1:b6:35:9f:df:ca:7d:03:98:d3:ac: - de:03:66:ee:2a:f1:d8:b0:7d:6e:07:54:0b:10:98: - 21:4d:80:cb:12:20:e7:cc:4f:de:45:7d:c9:72:77: - 32:ea:ca:90:bb:69:52:10:03:2f:a8:f3:95:c5:f1: - 8b:62:56:1b:ef:67:6f:a4:10:41:95:ad:0a:9b:e3: - a5:c0:b0:d2:70:76:50:30:5b:a8:e8:08:2c:7c:ed: - a7:a2:7a:8d:38:29:1c:ac:c7:ed:f2:7c:95:b0:95: - 82:7d:49:5c:38:cd:77:25:ef:bd:80:75:53:94:3c: - 3d:ca:63:5b:9f:15:b5:d3:1d:13:2f:19:d1:3c:db: - 76:3a:cc:b8:7d:c9:e5:c2:d7:da:40:6f:d8:21:dc: - 73:1b:42:2d:53:9c:fe:1a:fc:7d:ab:7a:36:3f:98: - de:84:7c:05:67:ce:6a:14:38:87:a9:f1:8c:b5:68: - cb:68:7f:71:20:2b:f5:a0:63:f5:56:2f:a3:26:d2: - b7:6f:b1:5a:17:d7:38:99:08:fe:93:58:6f:fe:c3: - 13:49:08:16:0b:a7:4d:67:00:52:31:67:23:4e:98: - ed:51:45:1d:b9:04:d9:0b:ec:d8:28:b3:4b:bd:ed: - 36:79 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - 27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5 - X509v3 Authority Key Identifier: - keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5 - DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com - serial:B7:B6:90:33:66:1B:6B:23 - - X509v3 Basic Constraints: - CA:TRUE - Signature Algorithm: sha256WithRSAEncryption - 0e:93:48:44:4a:72:96:60:71:25:82:a9:2c:ca:60:5b:f2:88: - 3e:cf:11:74:5a:11:4a:dc:d9:d8:f6:58:2c:05:d3:56:d9:e9: - 8f:37:ef:8e:3e:3b:ff:22:36:00:ca:d8:e2:96:3f:a7:d1:ed: - 1f:de:7a:b0:d7:8f:36:bd:41:55:1e:d4:b9:86:3b:87:25:69: - 35:60:48:d6:e4:5a:94:ce:a2:fa:70:38:36:c4:85:b4:4b:23: - fe:71:9e:2f:db:06:c7:b5:9c:21:f0:3e:7c:eb:91:f8:5c:09: - fd:84:43:a4:b3:4e:04:0c:22:31:71:6a:48:c8:ab:bb:e8:ce: - fa:67:15:1a:3a:82:98:43:33:b5:0e:1f:1e:89:f8:37:de:1b: - e6:b5:a0:f4:a2:8b:b7:1c:90:ba:98:6d:94:21:08:80:5d:f3: - bf:66:ad:c9:72:28:7a:6a:48:ee:cf:63:69:31:8c:c5:8e:66: - da:4b:78:65:e8:03:3a:4b:f8:cc:42:54:d3:52:5c:2d:04:ae: - 26:87:e1:7e:40:cb:45:41:16:4b:6e:a3:2e:4a:76:bd:29:7f: - 1c:53:37:06:ad:e9:5b:6a:d6:b7:4e:94:a2:7c:e8:ac:4e:a6: - 50:3e:2b:32:9e:68:42:1b:e4:59:67:61:ea:c7:9a:51:9c:1c: - 55:a3:77:76 ------BEGIN CERTIFICATE----- -MIIEqjCCA5KgAwIBAgIJALe2kDNmG2sjMA0GCSqGSIb3DQEBCwUAMIGUMQswCQYD -VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G -A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3 -dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe -Fw0xNjA4MTEyMDA3MzdaFw0xOTA1MDgyMDA3MzdaMIGUMQswCQYDVQQGEwJVUzEQ -MA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwIU2F3 -dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3Ns -LmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAL8Myi0Ush6EQlvNOB9K8k11EPG2NZ/fyn0D -mNOs3gNm7irx2LB9bgdUCxCYIU2AyxIg58xP3kV9yXJ3MurKkLtpUhADL6jzlcXx -i2JWG+9nb6QQQZWtCpvjpcCw0nB2UDBbqOgILHztp6J6jTgpHKzH7fJ8lbCVgn1J -XDjNdyXvvYB1U5Q8PcpjW58VtdMdEy8Z0TzbdjrMuH3J5cLX2kBv2CHccxtCLVOc -/hr8fat6Nj+Y3oR8BWfOahQ4h6nxjLVoy2h/cSAr9aBj9VYvoybSt2+xWhfXOJkI -/pNYb/7DE0kIFgunTWcAUjFnI06Y7VFFHbkE2Qvs2CizS73tNnkCAwEAAaOB/DCB -+TAdBgNVHQ4EFgQUJ45nEXTDJh0/7TNjs6TYHTDl6NUwgckGA1UdIwSBwTCBvoAU -J45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYD -VQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290 -aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t -MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAt7aQM2YbayMwDAYD -VR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEADpNIREpylmBxJYKpLMpgW/KI -Ps8RdFoRStzZ2PZYLAXTVtnpjzfvjj47/yI2AMrY4pY/p9HtH956sNePNr1BVR7U -uYY7hyVpNWBI1uRalM6i+nA4NsSFtEsj/nGeL9sGx7WcIfA+fOuR+FwJ/YRDpLNO -BAwiMXFqSMiru+jO+mcVGjqCmEMztQ4fHon4N94b5rWg9KKLtxyQuphtlCEIgF3z -v2atyXIoempI7s9jaTGMxY5m2kt4ZegDOkv4zEJU01JcLQSuJofhfkDLRUEWS26j -Lkp2vSl/HFM3Bq3pW2rWt06UonzorE6mUD4rMp5oQhvkWWdh6seaUZwcVaN3dg== ------END CERTIFICATE----- diff --git a/mysql-wsrep-5.6/extra/yassl/certs/ca-key.pem b/mysql-wsrep-5.6/extra/yassl/certs/ca-key.pem deleted file mode 100644 index 774feba0..00000000 --- a/mysql-wsrep-5.6/extra/yassl/certs/ca-key.pem +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEpAIBAAKCAQEAvwzKLRSyHoRCW804H0ryTXUQ8bY1n9/KfQOY06zeA2buKvHY -sH1uB1QLEJghTYDLEiDnzE/eRX3Jcncy6sqQu2lSEAMvqPOVxfGLYlYb72dvpBBB -la0Km+OlwLDScHZQMFuo6AgsfO2nonqNOCkcrMft8nyVsJWCfUlcOM13Je+9gHVT -lDw9ymNbnxW10x0TLxnRPNt2Osy4fcnlwtfaQG/YIdxzG0ItU5z+Gvx9q3o2P5je -hHwFZ85qFDiHqfGMtWjLaH9xICv1oGP1Vi+jJtK3b7FaF9c4mQj+k1hv/sMTSQgW -C6dNZwBSMWcjTpjtUUUduQTZC+zYKLNLve02eQIDAQABAoIBAD1uTmAahH+dhXzh -Swd84NaZKt6d+TY0DncOPgjqT+UGJtT2OPffDQ8cLgai9CponGNy4zXmBJGRtcGx -pFSs18b7QaDWdW+9C06/sVLoX0kmmFZHx97p6jxgAb8o3DG/SV+TSYd6gVuWS03K -XDhPt+Gy08ch2jwShwfkG9xD7OjsVGHn9u2mCy7134J/xh9hGZykgznfIYWJb3ev -hhUyCKJaCyZh+3AMypw4fbwi7uujqBYA+YqAHgCEqEpB+IQDZy8jWy+baybDBzSU -owM7ctWfcuCtzDSrvcfV9SYwhQ8wIzlS/zzLmSFNiKWr7mK5x+C7R4fBac9z8zC+ -zjkEnOUCgYEA4XZFgFm200nfCu8S1g/wt8sqN7+n+LVN9TE1reSjlKHb8ZattQVk -hYP8G1spqr74Jj92fq0c8MvXJrQbBY5Whn4IYiHBhtZHeT63XaTGOtexdCD2UJdB -BFPtPybWb5H6aCbsKtya8efc+3PweUMbIaNZBGNSB8nX5tEbXV6W+lMCgYEA2O1O -ZGFrkQxhAbUPu0RnUx7cB8Qkfp5shCORDOQSBBZNeJjMlj0gTg9Fmrb4s5MNsqIb -KfImecjF0nh+XnPy13Bhu0DOYQX+aR6CKeYUuKHnltAjPwWTAPLhTX7tt5Zs9/Dk -0c8BmE/cdFSqbV5aQTH+/5q2oAXdqRBU+GvQqoMCgYAh0wSKROtQt3xmv4cr5ihO -6oPi6TXh8hFH/6H1/J8t5TqB/AEDb1OtVCe2Uu7lVtETq+GzD3WQCoS0ocCMDNae -RrorPrUx7WO7pNUNj3LN0R4mNeu+G3L9mzm0h7cT9eqDRZOYuo/kSsy0TKh/CLpB -SahJKD1ePcHONwDL+SzdUQKBgQChV58+udavg22DP4/70NyozgMJI7GhG2PKxElW -NSvRLmVglQVVmRE1/dXfRMeliHJfsoJRqHFFkzbPXB9hUQwFgOivxXu6XiLjPHXD -hAVVbdY6LYSJkzPLONqqMQXNzmwt3VXTVwvwpTVqsK4xukOWygDHS+MZEkPTQvpv -6oDA0QKBgQC524kgNCdwYjTqXyViEvOdgb9I7poOwY0Q/2WanS0aipRayMClpYRh -ntQkue+pncl3C8dwZj26yFTf0jPh9X/5J2G+V0Xdt0UXJPUj5DgOkSfu4yDYFMiU -R3dAd0UYng3OeT9XMVYJSWe+lFhP9sSr4onj44rABVUsJMBKlwQnmg== ------END RSA PRIVATE KEY----- diff --git a/mysql-wsrep-5.6/extra/yassl/certs/client-cert.der b/mysql-wsrep-5.6/extra/yassl/certs/client-cert.der deleted file mode 100644 index 293985adb974f6aefe00cbcd63701ea735fbcfa6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1198 zcmXqLVp(O-#5`#MGZP~d6DPyA^$sF`Bka8iFq&)E*|#s{G7DlU>`#f10j$u zZXWJ{qWtut#N6D>ymUhe12K>&GY@}xdAS})ZEsVVgi|YY55LF z3Jm1Lc@0er%nc0<&5bQhOrn5Xa|06tGbnekI=hKc2|0inSs9p{82K3tni#p5niv@w z4l`fW{%5(w$kjUdM2ogoP06gitF(gH-LEY(+r)0vcVSm%^|8Y)^R6^{{MF4^)SbS2 zVd)7o9j{B$-@A96=l%Kq&BsQ$>e?%w%s=ml;&Az{q^HwFViOv&rQ28UANzF`UQa(D>w`q*DG*4 ziySRU-(u91-`jSm!(pab^Da4uA|>(bL8&Um8_vC#JiG3HMNahrA?7Q7MZ5vI){Ctd z&y1UU;wDe)=9^tNL)32P{#vv9zpBrXisv_(vq>;@v%b*8{f~ z<~i1N>qN~uUGAOrmF+*%dbwxG{(D?*+K0{Koa6j6RME(-iL-5Gb&1TpD6Rd>l@m{Y z(yTuz+SIu-_-q~fgq5*n4<+MxBX&ey<-M=GIy<>ca^9T#8^S$vF0@TQoMZFrLD(Vb z#|xdLB9dC?mPj^ptdE@VW9HuU%U-YePM%8a;_Y%eGvTG)p^)PGxb?k{j83~MT$A*T ME;l^GuX~^l0F5cF6aWAK diff --git a/mysql-wsrep-5.6/extra/yassl/certs/client-cert.pem b/mysql-wsrep-5.6/extra/yassl/certs/client-cert.pem deleted file mode 100644 index 9262ad60..00000000 --- a/mysql-wsrep-5.6/extra/yassl/certs/client-cert.pem +++ /dev/null @@ -1,88 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b9:bc:90:ed:ad:aa:0a:8c - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=Montana, L=Bozeman, O=wolfSSL_2048, OU=Programming-2048, CN=www.wolfssl.com/emailAddress=info@wolfssl.com - Validity - Not Before: Aug 11 20:07:37 2016 GMT - Not After : May 8 20:07:37 2019 GMT - Subject: C=US, ST=Montana, L=Bozeman, O=wolfSSL_2048, OU=Programming-2048, CN=www.wolfssl.com/emailAddress=info@wolfssl.com - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:c3:03:d1:2b:fe:39:a4:32:45:3b:53:c8:84:2b: - 2a:7c:74:9a:bd:aa:2a:52:07:47:d6:a6:36:b2:07: - 32:8e:d0:ba:69:7b:c6:c3:44:9e:d4:81:48:fd:2d: - 68:a2:8b:67:bb:a1:75:c8:36:2c:4a:d2:1b:f7:8b: - ba:cf:0d:f9:ef:ec:f1:81:1e:7b:9b:03:47:9a:bf: - 65:cc:7f:65:24:69:a6:e8:14:89:5b:e4:34:f7:c5: - b0:14:93:f5:67:7b:3a:7a:78:e1:01:56:56:91:a6: - 13:42:8d:d2:3c:40:9c:4c:ef:d1:86:df:37:51:1b: - 0c:a1:3b:f5:f1:a3:4a:35:e4:e1:ce:96:df:1b:7e: - bf:4e:97:d0:10:e8:a8:08:30:81:af:20:0b:43:14: - c5:74:67:b4:32:82:6f:8d:86:c2:88:40:99:36:83: - ba:1e:40:72:22:17:d7:52:65:24:73:b0:ce:ef:19: - cd:ae:ff:78:6c:7b:c0:12:03:d4:4e:72:0d:50:6d: - 3b:a3:3b:a3:99:5e:9d:c8:d9:0c:85:b3:d9:8a:d9: - 54:26:db:6d:fa:ac:bb:ff:25:4c:c4:d1:79:f4:71: - d3:86:40:18:13:b0:63:b5:72:4e:30:c4:97:84:86: - 2d:56:2f:d7:15:f7:7f:c0:ae:f5:fc:5b:e5:fb:a1: - ba:d3 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - 33:D8:45:66:D7:68:87:18:7E:54:0D:70:27:91:C7:26:D7:85:65:C0 - X509v3 Authority Key Identifier: - keyid:33:D8:45:66:D7:68:87:18:7E:54:0D:70:27:91:C7:26:D7:85:65:C0 - DirName:/C=US/ST=Montana/L=Bozeman/O=wolfSSL_2048/OU=Programming-2048/CN=www.wolfssl.com/emailAddress=info@wolfssl.com - serial:B9:BC:90:ED:AD:AA:0A:8C - - X509v3 Basic Constraints: - CA:TRUE - Signature Algorithm: sha256WithRSAEncryption - 33:85:08:b4:58:0e:a2:00:03:74:de:77:fb:d1:2b:76:9c:97: - 90:20:21:a2:e8:2e:22:50:26:04:76:ba:5b:47:79:e5:52:f7: - c4:0d:79:ff:62:3f:05:7c:c3:08:6c:e0:b7:81:d0:ce:c6:c9: - 46:b9:8e:4b:5f:56:79:4b:13:b6:d1:6b:66:4b:ce:00:0d:e3: - 76:5e:fb:cb:b5:5d:12:31:05:f1:bb:39:f6:86:90:ca:92:56: - a4:a0:75:21:b6:1d:4c:96:c3:45:eb:5a:91:94:32:d3:59:b8: - c9:73:1f:03:a9:81:63:e0:43:c0:1e:c8:65:be:3b:a7:53:c3: - 44:ff:b3:fb:47:84:a8:b6:9d:00:d5:6b:ae:87:f8:bb:35:b2: - 6c:66:0b:11:ee:6f:fe:12:ed:59:79:f1:3e:f2:d3:61:27:8b: - 95:7e:99:75:8d:a4:9f:34:85:f1:25:4d:48:1e:9b:6b:70:f6: - 66:cc:56:b1:a3:02:52:8a:7c:aa:af:07:da:97:c6:0c:a5:8f: - ed:cb:f5:d8:04:5d:97:0a:5d:5a:2b:49:f5:bd:93:e5:23:9b: - 99:b5:0c:ff:0c:7e:38:82:b2:6e:ab:8a:c9:a7:45:ab:d6:d7: - 93:35:70:07:7e:c8:3d:a5:fe:33:8f:d9:85:c0:c7:5a:02:e4: - 7c:d6:35:9e ------BEGIN CERTIFICATE----- -MIIEyjCCA7KgAwIBAgIJALm8kO2tqgqMMA0GCSqGSIb3DQEBCwUAMIGeMQswCQYD -VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEVMBMG -A1UECgwMd29sZlNTTF8yMDQ4MRkwFwYDVQQLDBBQcm9ncmFtbWluZy0yMDQ4MRgw -FgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29s -ZnNzbC5jb20wHhcNMTYwODExMjAwNzM3WhcNMTkwNTA4MjAwNzM3WjCBnjELMAkG -A1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xFTAT -BgNVBAoMDHdvbGZTU0xfMjA0ODEZMBcGA1UECwwQUHJvZ3JhbW1pbmctMjA0ODEY -MBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv -bGZzc2wuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwwPRK/45 -pDJFO1PIhCsqfHSavaoqUgdH1qY2sgcyjtC6aXvGw0Se1IFI/S1oootnu6F1yDYs -StIb94u6zw357+zxgR57mwNHmr9lzH9lJGmm6BSJW+Q098WwFJP1Z3s6enjhAVZW -kaYTQo3SPECcTO/Rht83URsMoTv18aNKNeThzpbfG36/TpfQEOioCDCBryALQxTF -dGe0MoJvjYbCiECZNoO6HkByIhfXUmUkc7DO7xnNrv94bHvAEgPUTnINUG07ozuj -mV6dyNkMhbPZitlUJttt+qy7/yVMxNF59HHThkAYE7BjtXJOMMSXhIYtVi/XFfd/ -wK71/Fvl+6G60wIDAQABo4IBBzCCAQMwHQYDVR0OBBYEFDPYRWbXaIcYflQNcCeR -xybXhWXAMIHTBgNVHSMEgcswgciAFDPYRWbXaIcYflQNcCeRxybXhWXAoYGkpIGh -MIGeMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96 -ZW1hbjEVMBMGA1UECgwMd29sZlNTTF8yMDQ4MRkwFwYDVQQLDBBQcm9ncmFtbWlu -Zy0yMDQ4MRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEW -EGluZm9Ad29sZnNzbC5jb22CCQC5vJDtraoKjDAMBgNVHRMEBTADAQH/MA0GCSqG -SIb3DQEBCwUAA4IBAQAzhQi0WA6iAAN03nf70St2nJeQICGi6C4iUCYEdrpbR3nl -UvfEDXn/Yj8FfMMIbOC3gdDOxslGuY5LX1Z5SxO20WtmS84ADeN2XvvLtV0SMQXx -uzn2hpDKklakoHUhth1MlsNF61qRlDLTWbjJcx8DqYFj4EPAHshlvjunU8NE/7P7 -R4Sotp0A1Wuuh/i7NbJsZgsR7m/+Eu1ZefE+8tNhJ4uVfpl1jaSfNIXxJU1IHptr -cPZmzFaxowJSinyqrwfal8YMpY/ty/XYBF2XCl1aK0n1vZPlI5uZtQz/DH44grJu -q4rJp0Wr1teTNXAHfsg9pf4zj9mFwMdaAuR81jWe ------END CERTIFICATE----- diff --git a/mysql-wsrep-5.6/extra/yassl/certs/client-key.der b/mysql-wsrep-5.6/extra/yassl/certs/client-key.der deleted file mode 100644 index 94dc253a2bd214f1c2c9a99c5d7c649e5da5ded9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1192 zcmV;Z1Xueof&`=j0RRGm0RaHR1JNt~Iixa0J5$JnD=K_+n!TzjQU^!YrZ%z%GLF!? zX?w=QM4r@vNc}BnqKjv{p>@bMEK1TF_lvsE4f*fv@qr$Dn*&Fhzh%sSWh7~)=oE=t zIH zQ{ItG9c}7ad-8Xx*~Zz5tJvWdb z-nWk2K-Hq|;2xp$zL(pEW0n-nmX;qbG(B&l8|4j%w5{vn!ETW!-TtCWIhLpIp) zLTDrqMbuE_7dc4KHH(yO5#Eo=SptE90O};C`DruhaokdUh#@F1N#4407U|4KdWa2_ zSA;rXjg**Jr2>J0 z0M$4f!;i(23`YxZHIl`!jYi0l7?1UU3it1!{(!l)D!R%TuwA7G(36eWoCF-yVveRJ zfdT){iYj9?H9)FufZmBCYFAC3Zmp9}R*(yAopXx}t|vX-PVlP5Yqng$pj6Bem*@U z62lmK^C|OR4t8u=b>u;WX`M3j%_6I?HM&Z&JmuL~wqj3R-sPSO%2To|_nxzB3R`() z>~4`xk|6f{{1)xgb`0X|f3j&4Yj_S?Mr5>Jwmw{U*2|#F+}3bH2kF z0)c@5x|*!YeY|8%B0LWA)=~9`*qOi)AYBhB{afO$*&Nv+R&D%* z&|mEk6&x5L=fpir*U+A7mCqu{1ACt1U;+Fu0)c=L&`Zx7XStscbw`F}t}(*KFsxYy zP}vW)a0d7A)5v0csM>D!AwSc9U+RjhKiMi?^HI{mFgN2Zqje1)O(8VZS8!a3zjEwK zZfMob7<4mEj5o5SXRr@qZvBtulsF+XnE*SX?v@4<0Rk++>!J@o*BtQ?o(fM z^&H?$(gUZTqLI4$DTwEm()-+06*0KeWdf~)icg<&BVoaQ;yQL)Y{dc<0FlYZoyAtLdNszDe;4%2sD#VVHko%=nBb z=m-xeOgaTC7yGkjbAhAEz6n|osFp56%i{oxj=z@1_GNau!OUvOKk4^$l{l=OMHnd!x+LNF=OrMa2;?2P2=w$W@ z3xNg|Ai!RhCx~cUSc=t5A)e}4nGN~z<3*QCNhIEH!yTZs+(}CUEStqqvC66xeYE#x q{Yk<5Rx;?S9DZ&9I9*=l)dCbW)m7R?zX(0)x8_oyg;J-h`36J1(Aqx$ diff --git a/mysql-wsrep-5.6/extra/yassl/certs/dsa1024.pem b/mysql-wsrep-5.6/extra/yassl/certs/dsa1024.pem deleted file mode 100644 index 5478ebfc..00000000 --- a/mysql-wsrep-5.6/extra/yassl/certs/dsa1024.pem +++ /dev/null @@ -1,12 +0,0 @@ ------BEGIN DSA PRIVATE KEY----- -MIIBvAIBAAKBgQC9Ue5KMuCKx+rG4epwxFFDzyoH4ccSwlglXsRdvqswDRK/oQvT -NNNoWiVxTn3kvQ8qDlhWy9KjGTrqr/ttgmh56FFpe6tz4yTgCNyR9D+eGclD7lNf -dPUc4E3SA6efopG6+ymI55bS+9xUFTG402UCrYSKT59zI2HBfuI6dltsxQIVAJHJ -7WDQ+jBn/nmMyCQzdi+0qJx1AoGBAJJacRK36s5yGY1b6qhxWqvpoAC+SfEKylZn -YWGYf2PM+Iwo6AgPKEw6BSsX+7Nmc4Gjyr4JWhComKi6onPamO/A2CbMM0DCxb47 -BeLBWfqWAgXVj0CODT4MQos5yugnviR/YpEgbzLxvrXr469lKWsAyB19/gFmGmQW -cCgAwGm6AoGBAJ3LY89yHyvQ/TsQ6zlYbovjbk/ogndsMqPdNUvL4RuPTgJP/caa -DDa0XJ7ak6A7TJ+QheLNwOXoZPYJC4EGFSDAXpYniGhbWIrVTCGe6lmZDfnx40WX -S0kk3m/DHaC03ElLAiybxVGxyqoUfbT3Zv1JwftWMuiqHH5uADhdXuXVAhQ01VXa -Rr8IPem35lKghVKnq/kGQw== ------END DSA PRIVATE KEY----- diff --git a/mysql-wsrep-5.6/extra/yassl/certs/server-cert.pem b/mysql-wsrep-5.6/extra/yassl/certs/server-cert.pem deleted file mode 100644 index 5504c822..00000000 --- a/mysql-wsrep-5.6/extra/yassl/certs/server-cert.pem +++ /dev/null @@ -1,173 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com - Validity - Not Before: Aug 11 20:07:37 2016 GMT - Not After : May 8 20:07:37 2019 GMT - Subject: C=US, ST=Montana, L=Bozeman, O=wolfSSL, OU=Support, CN=www.wolfssl.com/emailAddress=info@wolfssl.com - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27: - 01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6: - f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75: - f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab: - 64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e: - 86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25: - 4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c: - 34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6: - 8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc: - 40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8: - dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3: - e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9: - 64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0: - c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77: - ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4: - b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22: - a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f: - ad:d7 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - B3:11:32:C9:92:98:84:E2:C9:F8:D0:3B:6E:03:42:CA:1F:0E:8E:3C - X509v3 Authority Key Identifier: - keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5 - DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com - serial:B7:B6:90:33:66:1B:6B:23 - - X509v3 Basic Constraints: - CA:TRUE - Signature Algorithm: sha256WithRSAEncryption - 51:fe:2a:df:07:7e:43:ca:66:8d:15:c4:2b:db:57:b2:06:6d: - 0d:90:66:ff:a5:24:9c:14:ef:81:f2:a4:ab:99:a9:6a:49:20: - a5:d2:71:e7:1c:3c:99:07:c7:47:fc:e8:96:b4:f5:42:30:ce: - 39:01:4b:d1:c2:e8:bc:95:84:87:ce:55:5d:97:9f:cf:78:f3: - 56:9b:a5:08:6d:ac:f6:a5:5c:c4:ef:3e:2a:39:a6:48:26:29: - 7b:2d:e0:cd:a6:8c:57:48:0b:bb:31:32:c2:bf:d9:43:4c:47: - 25:18:81:a8:c9:33:82:41:9b:ba:61:86:d7:84:93:17:24:25: - 36:ca:4d:63:6b:4f:95:79:d8:60:e0:1e:f5:ac:c1:8a:a1:b1: - 7e:85:8e:87:20:2f:08:31:ad:5e:c6:4a:c8:61:f4:9e:07:1e: - a2:22:ed:73:7c:85:ee:fa:62:dc:50:36:aa:fd:c7:9d:aa:18: - 04:fb:ea:cc:2c:68:9b:b3:a9:c2:96:d8:c1:cc:5a:7e:f7:0d: - 9e:08:e0:9d:29:8b:84:46:8f:d3:91:6a:b5:b8:7a:5c:cc:4f: - 55:01:b8:9a:48:a0:94:43:ca:25:47:52:0a:f7:f4:be:b0:d1: - 71:6d:a5:52:4a:65:50:b2:ad:4e:1d:e0:6c:01:d8:fb:43:80: - e6:e4:0c:37 ------BEGIN CERTIFICATE----- -MIIEnjCCA4agAwIBAgIBATANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx -EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh -d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz -bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTYwODEx -MjAwNzM3WhcNMTkwNTA4MjAwNzM3WjCBkDELMAkGA1UEBhMCVVMxEDAOBgNVBAgM -B01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xEDAOBgNVBAoMB3dvbGZTU0wxEDAO -BgNVBAsMB1N1cHBvcnQxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqG -SIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAMCVCOFXQfJxbbfSRUEnAWXGRa7yvCQwuJXOL07W9hyIvHyf+6hn -f/5cnFF194rKB+c1L4/hvXvAL3yrZKgX/Mpde7rgIeVyLm8uhtiVc9qsG1O5Xz/X -GQ0lT+FjY1GLC2Q/rUO4pRxcNLOuAKBjxfZ/C1loeHOmjBipAm2vwxkBLrgQ48bM -QLRpo0YzaYduxLsXpvPo3a1zvHsvIbX9ZlEMvVSz4W1fHLwjc9EJA4kU0hC5ZMMq -0KGWSrzh1Bpbx6DAwWN4D0Q3MDKWgDIjlaF3uhPSl3PiXSXJag3DOWCktLBpQkIJ -6dgIvDMgs1gip6rrxOHmYYPF0pbf2dBPrdcCAwEAAaOB/DCB+TAdBgNVHQ4EFgQU -sxEyyZKYhOLJ+NA7bgNCyh8OjjwwgckGA1UdIwSBwTCBvoAUJ45nEXTDJh0/7TNj -s6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5h -MRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290aDETMBEGA1UECwwK -Q29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcN -AQkBFhBpbmZvQHdvbGZzc2wuY29tggkAt7aQM2YbayMwDAYDVR0TBAUwAwEB/zAN -BgkqhkiG9w0BAQsFAAOCAQEAUf4q3wd+Q8pmjRXEK9tXsgZtDZBm/6UknBTvgfKk -q5mpakkgpdJx5xw8mQfHR/zolrT1QjDOOQFL0cLovJWEh85VXZefz3jzVpulCG2s -9qVcxO8+KjmmSCYpey3gzaaMV0gLuzEywr/ZQ0xHJRiBqMkzgkGbumGG14STFyQl -NspNY2tPlXnYYOAe9azBiqGxfoWOhyAvCDGtXsZKyGH0ngceoiLtc3yF7vpi3FA2 -qv3HnaoYBPvqzCxom7OpwpbYwcxafvcNngjgnSmLhEaP05Fqtbh6XMxPVQG4mkig -lEPKJUdSCvf0vrDRcW2lUkplULKtTh3gbAHY+0OA5uQMNw== ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b7:b6:90:33:66:1b:6b:23 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com - Validity - Not Before: Aug 11 20:07:37 2016 GMT - Not After : May 8 20:07:37 2019 GMT - Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:bf:0c:ca:2d:14:b2:1e:84:42:5b:cd:38:1f:4a: - f2:4d:75:10:f1:b6:35:9f:df:ca:7d:03:98:d3:ac: - de:03:66:ee:2a:f1:d8:b0:7d:6e:07:54:0b:10:98: - 21:4d:80:cb:12:20:e7:cc:4f:de:45:7d:c9:72:77: - 32:ea:ca:90:bb:69:52:10:03:2f:a8:f3:95:c5:f1: - 8b:62:56:1b:ef:67:6f:a4:10:41:95:ad:0a:9b:e3: - a5:c0:b0:d2:70:76:50:30:5b:a8:e8:08:2c:7c:ed: - a7:a2:7a:8d:38:29:1c:ac:c7:ed:f2:7c:95:b0:95: - 82:7d:49:5c:38:cd:77:25:ef:bd:80:75:53:94:3c: - 3d:ca:63:5b:9f:15:b5:d3:1d:13:2f:19:d1:3c:db: - 76:3a:cc:b8:7d:c9:e5:c2:d7:da:40:6f:d8:21:dc: - 73:1b:42:2d:53:9c:fe:1a:fc:7d:ab:7a:36:3f:98: - de:84:7c:05:67:ce:6a:14:38:87:a9:f1:8c:b5:68: - cb:68:7f:71:20:2b:f5:a0:63:f5:56:2f:a3:26:d2: - b7:6f:b1:5a:17:d7:38:99:08:fe:93:58:6f:fe:c3: - 13:49:08:16:0b:a7:4d:67:00:52:31:67:23:4e:98: - ed:51:45:1d:b9:04:d9:0b:ec:d8:28:b3:4b:bd:ed: - 36:79 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - 27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5 - X509v3 Authority Key Identifier: - keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5 - DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com - serial:B7:B6:90:33:66:1B:6B:23 - - X509v3 Basic Constraints: - CA:TRUE - Signature Algorithm: sha256WithRSAEncryption - 0e:93:48:44:4a:72:96:60:71:25:82:a9:2c:ca:60:5b:f2:88: - 3e:cf:11:74:5a:11:4a:dc:d9:d8:f6:58:2c:05:d3:56:d9:e9: - 8f:37:ef:8e:3e:3b:ff:22:36:00:ca:d8:e2:96:3f:a7:d1:ed: - 1f:de:7a:b0:d7:8f:36:bd:41:55:1e:d4:b9:86:3b:87:25:69: - 35:60:48:d6:e4:5a:94:ce:a2:fa:70:38:36:c4:85:b4:4b:23: - fe:71:9e:2f:db:06:c7:b5:9c:21:f0:3e:7c:eb:91:f8:5c:09: - fd:84:43:a4:b3:4e:04:0c:22:31:71:6a:48:c8:ab:bb:e8:ce: - fa:67:15:1a:3a:82:98:43:33:b5:0e:1f:1e:89:f8:37:de:1b: - e6:b5:a0:f4:a2:8b:b7:1c:90:ba:98:6d:94:21:08:80:5d:f3: - bf:66:ad:c9:72:28:7a:6a:48:ee:cf:63:69:31:8c:c5:8e:66: - da:4b:78:65:e8:03:3a:4b:f8:cc:42:54:d3:52:5c:2d:04:ae: - 26:87:e1:7e:40:cb:45:41:16:4b:6e:a3:2e:4a:76:bd:29:7f: - 1c:53:37:06:ad:e9:5b:6a:d6:b7:4e:94:a2:7c:e8:ac:4e:a6: - 50:3e:2b:32:9e:68:42:1b:e4:59:67:61:ea:c7:9a:51:9c:1c: - 55:a3:77:76 ------BEGIN CERTIFICATE----- -MIIEqjCCA5KgAwIBAgIJALe2kDNmG2sjMA0GCSqGSIb3DQEBCwUAMIGUMQswCQYD -VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G -A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3 -dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe -Fw0xNjA4MTEyMDA3MzdaFw0xOTA1MDgyMDA3MzdaMIGUMQswCQYDVQQGEwJVUzEQ -MA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwIU2F3 -dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3Ns -LmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAL8Myi0Ush6EQlvNOB9K8k11EPG2NZ/fyn0D -mNOs3gNm7irx2LB9bgdUCxCYIU2AyxIg58xP3kV9yXJ3MurKkLtpUhADL6jzlcXx -i2JWG+9nb6QQQZWtCpvjpcCw0nB2UDBbqOgILHztp6J6jTgpHKzH7fJ8lbCVgn1J -XDjNdyXvvYB1U5Q8PcpjW58VtdMdEy8Z0TzbdjrMuH3J5cLX2kBv2CHccxtCLVOc -/hr8fat6Nj+Y3oR8BWfOahQ4h6nxjLVoy2h/cSAr9aBj9VYvoybSt2+xWhfXOJkI -/pNYb/7DE0kIFgunTWcAUjFnI06Y7VFFHbkE2Qvs2CizS73tNnkCAwEAAaOB/DCB -+TAdBgNVHQ4EFgQUJ45nEXTDJh0/7TNjs6TYHTDl6NUwgckGA1UdIwSBwTCBvoAU -J45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYD -VQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290 -aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t -MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAt7aQM2YbayMwDAYD -VR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEADpNIREpylmBxJYKpLMpgW/KI -Ps8RdFoRStzZ2PZYLAXTVtnpjzfvjj47/yI2AMrY4pY/p9HtH956sNePNr1BVR7U -uYY7hyVpNWBI1uRalM6i+nA4NsSFtEsj/nGeL9sGx7WcIfA+fOuR+FwJ/YRDpLNO -BAwiMXFqSMiru+jO+mcVGjqCmEMztQ4fHon4N94b5rWg9KKLtxyQuphtlCEIgF3z -v2atyXIoempI7s9jaTGMxY5m2kt4ZegDOkv4zEJU01JcLQSuJofhfkDLRUEWS26j -Lkp2vSl/HFM3Bq3pW2rWt06UonzorE6mUD4rMp5oQhvkWWdh6seaUZwcVaN3dg== ------END CERTIFICATE----- diff --git a/mysql-wsrep-5.6/extra/yassl/certs/server-key.pem b/mysql-wsrep-5.6/extra/yassl/certs/server-key.pem deleted file mode 100644 index d1627f4d..00000000 --- a/mysql-wsrep-5.6/extra/yassl/certs/server-key.pem +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEpQIBAAKCAQEAwJUI4VdB8nFtt9JFQScBZcZFrvK8JDC4lc4vTtb2HIi8fJ/7 -qGd//lycUXX3isoH5zUvj+G9e8AvfKtkqBf8yl17uuAh5XIuby6G2JVz2qwbU7lf -P9cZDSVP4WNjUYsLZD+tQ7ilHFw0s64AoGPF9n8LWWh4c6aMGKkCba/DGQEuuBDj -xsxAtGmjRjNph27Euxem8+jdrXO8ey8htf1mUQy9VLPhbV8cvCNz0QkDiRTSELlk -wyrQoZZKvOHUGlvHoMDBY3gPRDcwMpaAMiOVoXe6E9KXc+JdJclqDcM5YKS0sGlC -Qgnp2Ai8MyCzWCKnquvE4eZhg8XSlt/Z0E+t1wIDAQABAoIBAQCa0DQPUmIFUAHv -n+1kbsLE2hryhNeSEEiSxOlq64t1bMZ5OPLJckqGZFSVd8vDmp231B2kAMieTuTd -x7pnFsF0vKnWlI8rMBr77d8hBSPZSjm9mGtlmrjcxH3upkMVLj2+HSJgKnMw1T7Y -oqyGQy7E9WReP4l1DxHYUSVOn9iqo85gs+KK2X4b8GTKmlsFC1uqy+XjP24yIgXz -0PrvdFKB4l90073/MYNFdfpjepcu1rYZxpIm5CgGUFAOeC6peA0Ul7QS2DFAq6EB -QcIw+AdfFuRhd9Jg8p+N6PS662PeKpeB70xs5lU0USsoNPRTHMRYCj+7r7X3SoVD -LTzxWFiBAoGBAPIsVHY5I2PJEDK3k62vvhl1loFk5rW4iUJB0W3QHBv4G6xpyzY8 -ZH3c9Bm4w2CxV0hfUk9ZOlV/MsAZQ1A/rs5vF/MOn0DKTq0VO8l56cBZOHNwnAp8 -yTpIMqfYSXUKhcLC/RVz2pkJKmmanwpxv7AEpox6Wm9IWlQ7xrFTF9/nAoGBAMuT -3ncVXbdcXHzYkKmYLdZpDmOzo9ymzItqpKISjI57SCyySzfcBhh96v52odSh6T8N -zRtfr1+elltbD6F8r7ObkNtXczrtsCNErkFPHwdCEyNMy/r0FKTV9542fFufqDzB -hV900jkt/9CE3/uzIHoumxeu5roLrl9TpFLtG8SRAoGBAOyY2rvV/vlSSn0CVUlv -VW5SL4SjK7OGYrNU0mNS2uOIdqDvixWl0xgUcndex6MEH54ZYrUbG57D8rUy+UzB -qusMJn3UX0pRXKRFBnBEp1bA1CIUdp7YY1CJkNPiv4GVkjFBhzkaQwsYpVMfORpf -H0O8h2rfbtMiAP4imHBOGhkpAoGBAIpBVihRnl/Ungs7mKNU8mxW1KrpaTOFJAza -1AwtxL9PAmk4fNTm3Ezt1xYRwz4A58MmwFEC3rt1nG9WnHrzju/PisUr0toGakTJ -c/5umYf4W77xfOZltU9s8MnF/xbKixsX4lg9ojerAby/QM5TjI7t7+5ZneBj5nxe -9Y5L8TvBAoGATUX5QIzFW/QqGoq08hysa+kMVja3TnKW1eWK0uL/8fEYEz2GCbjY -dqfJHHFSlDBD4PF4dP1hG0wJzOZoKnGtHN9DvFbbpaS+NXCkXs9P/ABVmTo9I89n -WvUi+LUp0EQR6zUuRr79jhiyX6i/GTKh9dwD5nyaHwx8qbAOITc78bA= ------END RSA PRIVATE KEY----- diff --git a/mysql-wsrep-5.6/extra/yassl/certs/server-keyEnc.pem b/mysql-wsrep-5.6/extra/yassl/certs/server-keyEnc.pem deleted file mode 100644 index e5ab57d4..00000000 --- a/mysql-wsrep-5.6/extra/yassl/certs/server-keyEnc.pem +++ /dev/null @@ -1,30 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -Proc-Type: 4,ENCRYPTED -DEK-Info: DES-CBC,136C7D8A69656668 - -jvNTyPaztxPIoAzbdmZnD0Zw2+60tMxNc0GMHNmeOyG25aHP/dT+TWiKFpFVkkkY -uoCIhYUyw7gmpw+CnRJwWd+ans4nrvAjwy5oWJvarvsyUpjqvnPoIlAqd+d4TDKN -eESzcI76+gHdisAtCrQD+fGqgTZhli5TgDbnpasL/QnY2qDlutvakkVw7gPXe156 -2Phy8WN+efr65J6wt3K/dj7Datl9u4JeHQK81gYyWBVX+EagEjPGDzkFQCj9Z0q7 -8K3iB5GW1JAqJS0IfZPB40AnSTF/n1TL1SN3qfU3l7hTGNrx9o7580bgDEoAR7pI -F8eZlS15KHtZmh11AnU1KTKZ6kmgnNqeMTGMN6N0ct2wMKW1dV87eTDlF0oiR2ol -XwtFgKmrIjfpmzkdWjbJmWnGMjD56KdiFZga/ZyKMsPrVoYLgfJEpn36iQspfygx -HCGNTf0PjIsjEWU0WyQiF86t+c45W3wNFsv/AxVyfMl+su02yrd6u2ecuQDir3Cs -b2k8IKtQgVe/NIpEWLKuiHG5oedIPPQyDYK5uq+gHxCGeOoKnWlsWFEHZRiza4X5 -tbgTrJB8Sw0ENWrvVGGmQZN4pSImlsMwzQ2qik5CQ00N1b3+56/obn0z75I3bUSb -tC5g8DRjl6oclAenNgh/MYMT287y5W2dD4npxHcekX4O3J2CDXNfg4vV2j5GRxtg -LVJdYE2p7bpYePCDHrYng8b9ubBprx0CrEnkIvvtUjzNPf6VDL0+MBKl+XgR2/nz -iRqTuZnlGGOyM+KYDwXpgwfs/HfvFGksxTAlO/40GkGh+WGPaIoNyCK0SgQKhyb4 -JIkR0vd2/yLg3lWMJrGwh7A0Gm07Z/781oURP3uWd+PaCOgGcd5ipcAjcEyuxNly -AthipWqmQWUcbf6Z2N9j3OA22Hv2Uzk8HSfi9VOZtL9svdEEZ0NnOekJgnc6stQp -bXiknlK/T5WdrWxSyCfgUq68Vf6DFfIRAVuFdJ3WHT2wVXHrDfft6D+Ne/XCxPoE -8zGmkyusaph33UHQ1oNyUbLbwcDCDSmOo8gYoedD3IwxtMA3wJRugomqosItwV8X -vkgmcy8eSE/+gZUxJEN2gnLcfKFhCkC80J6oFhmoDD6vuUnPHcFdKZgVPw2rzPk5 -Vb1kX+gpORplYmKpq1vz/ujscL4T0TmYLz02hkIS4edpW55ncTTv7JWefpRiTB1J -RB3td3me4htqR+YIDWJ+emrOmqsCG2WvpAS+MTw2mj1jYk9LL/ZYobTjSCEWmuwT -yVK6m303irR7HQDauxhslRFgoK21w63viOyj5NKIU1gQtaAANGDxcgORC1XLjjgt -oNutSQA+7P42vfHSHK4cnTBXl6V32H/GyVpdHQOZqSrqIjgLmUZodSmRPROxosZF -a46B1O7m/rJFxkiKW4vod+/WqjoE0Hhfrb8rRrkRjzGeCqqSSnQ3vrunVkvF8hlA -b6FOv4ZBJL4piC1GKH+rscqke9NEiDqXN8C3iYz86jbck/Ha21yUS8T3X7N52sg+ -B3AmOGnLK6BebYeto9vZxQjacChJZSixSxLV+l9/nVQ0+mW42azHdzk0ru59TGAj ------END RSA PRIVATE KEY----- diff --git a/mysql-wsrep-5.6/extra/yassl/certs/taoCert.txt b/mysql-wsrep-5.6/extra/yassl/certs/taoCert.txt deleted file mode 100644 index f1132c0b..00000000 --- a/mysql-wsrep-5.6/extra/yassl/certs/taoCert.txt +++ /dev/null @@ -1,62 +0,0 @@ - -***** Create a self signed cert ************ - -1) openssl genrsa 512 > client-key.pem - -2) openssl req -new -x509 -nodes -md5 -days 1000 -key client-key.pem > client-cert.pem - --- adding metadata to beginning - -3) openssl x509 -in client-cert.pem -text > tmp.pem - -4) mv tmp.pem client-cert.pem - - -***** Create a CA, signing authority ********** - -same as self signed, use ca prefix instead of client - - -***** Create a cert signed by CA ************** - -1) openssl req -newkey rsa:512 -md5 -days 1000 -nodes -keyout server-key.pem > server-req.pem - -2) copy ca-key.pem ca-cert.srl (why ????) - -3) openssl x509 -req -in server-req.pem -days 1000 -md5 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem - - - -***** To create a dsa cert ******************** - -1) openssl dsaparam 512 > dsa512.param # creates group params - -2) openssl gendsa dsa512.param > dsa512.pem # creates private key - -3) openssl req -new -x509 -nodes -days 1000 -key dsa512.pem > dsa-cert.pem - - - - -***** To convert from PEM to DER ************** - -a) openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER - -to convert rsa private PEM to DER : - -b) openssl rsa -in key.pem -outform DER -out key.der - - -**** To encrypt rsa key already in pem ********** - -a) openssl rsa server-keyEnc.pem - -note location of des, pass = yassl123 - - -*** To make a public key from a private key ****** - - -openssl rsa -in 1024rsa.priv -pubout -out 1024rsa.pub - - diff --git a/mysql-wsrep-5.6/extra/yassl/examples/client/client.cpp b/mysql-wsrep-5.6/extra/yassl/examples/client/client.cpp deleted file mode 100644 index 102ed617..00000000 --- a/mysql-wsrep-5.6/extra/yassl/examples/client/client.cpp +++ /dev/null @@ -1,179 +0,0 @@ -/* - Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, - MA 02110-1301 USA. -*/ - -/* client.cpp */ - -// takes an optional command line argument of cipher list to make scripting -// easier - - -#include "../../testsuite/test.hpp" - -//#define TEST_RESUME - - -void ClientError(SSL_CTX* ctx, SSL* ssl, SOCKET_T& sockfd, const char* msg) -{ - SSL_CTX_free(ctx); - SSL_free(ssl); - tcp_close(sockfd); - err_sys(msg); -} - - -#ifdef NON_BLOCKING - void NonBlockingSSL_Connect(SSL* ssl, SSL_CTX* ctx, SOCKET_T& sockfd) - { - int ret = SSL_connect(ssl); - int err = SSL_get_error(ssl, 0); - while (ret != SSL_SUCCESS && (err == SSL_ERROR_WANT_READ || - err == SSL_ERROR_WANT_WRITE)) { - if (err == SSL_ERROR_WANT_READ) - printf("... client would read block\n"); - else - printf("... client would write block\n"); - #ifdef _WIN32 - Sleep(1000); - #else - sleep(1); - #endif - ret = SSL_connect(ssl); - err = SSL_get_error(ssl, 0); - } - if (ret != SSL_SUCCESS) - ClientError(ctx, ssl, sockfd, "SSL_connect failed"); - } -#endif - - -void client_test(void* args) -{ -#ifdef _WIN32 - WSADATA wsd; - WSAStartup(0x0002, &wsd); -#endif - - SOCKET_T sockfd = 0; - int argc = 0; - char** argv = 0; - - set_args(argc, argv, *static_cast(args)); - tcp_connect(sockfd); -#ifdef NON_BLOCKING - tcp_set_nonblocking(sockfd); -#endif - SSL_METHOD* method = TLSv1_client_method(); - SSL_CTX* ctx = SSL_CTX_new(method); - - set_certs(ctx); - if (argc >= 2) { - printf("setting cipher list to %s\n", argv[1]); - if (SSL_CTX_set_cipher_list(ctx, argv[1]) != SSL_SUCCESS) { - ClientError(ctx, NULL, sockfd, "set_cipher_list error\n"); - } - } - SSL* ssl = SSL_new(ctx); - - SSL_set_fd(ssl, sockfd); - - -#ifdef NON_BLOCKING - NonBlockingSSL_Connect(ssl, ctx, sockfd); -#else - // if you get an error here see note at top of README - if (SSL_connect(ssl) != SSL_SUCCESS) - ClientError(ctx, ssl, sockfd, "SSL_connect failed"); -#endif - showPeer(ssl); - - const char* cipher = 0; - int index = 0; - char list[1024]; - strncpy(list, "cipherlist", 11); - while ( (cipher = SSL_get_cipher_list(ssl, index++)) ) { - strncat(list, ":", 2); - strncat(list, cipher, strlen(cipher) + 1); - } - printf("%s\n", list); - printf("Using Cipher Suite: %s\n", SSL_get_cipher(ssl)); - - char msg[] = "hello yassl!"; - if (SSL_write(ssl, msg, sizeof(msg)) != sizeof(msg)) - ClientError(ctx, ssl, sockfd, "SSL_write failed"); - - char reply[1024]; - int input = SSL_read(ssl, reply, sizeof(reply)); - if (input > 0) { - reply[input] = 0; - printf("Server response: %s\n", reply); - } - -#ifdef TEST_RESUME - SSL_SESSION* session = SSL_get_session(ssl); - SSL* sslResume = SSL_new(ctx); -#endif - - SSL_shutdown(ssl); - SSL_free(ssl); - tcp_close(sockfd); - -#ifdef TEST_RESUME - tcp_connect(sockfd); - SSL_set_fd(sslResume, sockfd); - SSL_set_session(sslResume, session); - - if (SSL_connect(sslResume) != SSL_SUCCESS) - ClientError(ctx, sslResume, sockfd, "SSL_resume failed"); - showPeer(sslResume); - - if (SSL_write(sslResume, msg, sizeof(msg)) != sizeof(msg)) - ClientError(ctx, sslResume, sockfd, "SSL_write failed"); - - input = SSL_read(sslResume, reply, sizeof(reply)); - if (input > 0) { - reply[input] = 0; - printf("Server response: %s\n", reply); - } - - SSL_shutdown(sslResume); - SSL_free(sslResume); - tcp_close(sockfd); -#endif // TEST_RESUME - - SSL_CTX_free(ctx); - ((func_args*)args)->return_code = 0; -} - - -#ifndef NO_MAIN_DRIVER - - int main(int argc, char** argv) - { - func_args args; - - args.argc = argc; - args.argv = argv; - - client_test(&args); - yaSSL_CleanUp(); - - return args.return_code; - } - -#endif // NO_MAIN_DRIVER - diff --git a/mysql-wsrep-5.6/extra/yassl/examples/client/client.dsp b/mysql-wsrep-5.6/extra/yassl/examples/client/client.dsp deleted file mode 100644 index 1caa585d..00000000 --- a/mysql-wsrep-5.6/extra/yassl/examples/client/client.dsp +++ /dev/null @@ -1,102 +0,0 @@ -# Microsoft Developer Studio Project File - Name="client" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=client - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "client.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "client.mak" CFG="client - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "client - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "client - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "client - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /O2 /I "..\..\taocrypt\include" /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /machine:I386 - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /ZI /Od /I "..\..\include" /I "..\..\taocrypt\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "client - Win32 Release" -# Name "client - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\client.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project diff --git a/mysql-wsrep-5.6/extra/yassl/examples/echoclient/echoclient.cpp b/mysql-wsrep-5.6/extra/yassl/examples/echoclient/echoclient.cpp deleted file mode 100644 index fabcfbec..00000000 --- a/mysql-wsrep-5.6/extra/yassl/examples/echoclient/echoclient.cpp +++ /dev/null @@ -1,120 +0,0 @@ -/* - Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, - MA 02110-1301 USA. -*/ - -/* echoclient.cpp */ - -#include "../../testsuite/test.hpp" - - -void EchoClientError(SSL_CTX* ctx, SSL* ssl, SOCKET_T& sockfd, const char* msg) -{ - SSL_CTX_free(ctx); - SSL_free(ssl); - tcp_close(sockfd); - err_sys(msg); -} - - -void echoclient_test(void* args) -{ -#ifdef _WIN32 - WSADATA wsd; - WSAStartup(0x0002, &wsd); -#endif - - SOCKET_T sockfd = 0; - int argc = 0; - char** argv = 0; - - FILE* fin = stdin; - FILE* fout = stdout; - - bool inCreated = false; - bool outCreated = false; - - set_args(argc, argv, *static_cast(args)); - if (argc >= 2) { - fin = fopen(argv[1], "r"); - inCreated = true; - } - if (argc >= 3) { - fout = fopen(argv[2], "w"); - outCreated = true; - } - - if (!fin) err_sys("can't open input file"); - if (!fout) err_sys("can't open output file"); - - tcp_connect(sockfd); - - SSL_METHOD* method = SSLv23_client_method(); - SSL_CTX* ctx = SSL_CTX_new(method); - set_certs(ctx); - SSL* ssl = SSL_new(ctx); - - SSL_set_fd(ssl, sockfd); - - if (SSL_connect(ssl) != SSL_SUCCESS) - EchoClientError(ctx, ssl, sockfd, "SSL_connect failed"); - - char send[1024]; - char reply[1024]; - - while (fgets(send, sizeof(send), fin)) { - - int sendSz = (int)strlen(send) + 1; - if (SSL_write(ssl, send, sendSz) != sendSz) - EchoClientError(ctx, ssl, sockfd, "SSL_write failed"); - - if (strncmp(send, "quit", 4) == 0) { - fputs("sending server shutdown command: quit!\n", fout); - break; - } - - if (SSL_read(ssl, reply, sizeof(reply)) > 0) - fputs(reply, fout); - } - - SSL_CTX_free(ctx); - SSL_free(ssl); - tcp_close(sockfd); - - fflush(fout); - if (inCreated) fclose(fin); - if (outCreated) fclose(fout); - - ((func_args*)args)->return_code = 0; -} - - -#ifndef NO_MAIN_DRIVER - - int main(int argc, char** argv) - { - func_args args; - - args.argc = argc; - args.argv = argv; - - echoclient_test(&args); - yaSSL_CleanUp(); - - return args.return_code; - } - -#endif // NO_MAIN_DRIVER diff --git a/mysql-wsrep-5.6/extra/yassl/examples/echoclient/echoclient.dsp b/mysql-wsrep-5.6/extra/yassl/examples/echoclient/echoclient.dsp deleted file mode 100644 index 52052c6d..00000000 --- a/mysql-wsrep-5.6/extra/yassl/examples/echoclient/echoclient.dsp +++ /dev/null @@ -1,102 +0,0 @@ -# Microsoft Developer Studio Project File - Name="echoclient" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=echoclient - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "echoclient.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "echoclient.mak" CFG="echoclient - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "echoclient - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "echoclient - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "echoclient - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /O2 /I "..\..\include" /I "..\..\taocrypt\include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /machine:I386 - -!ELSEIF "$(CFG)" == "echoclient - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /ZI /Od /I "..\..\include" /I "..\..\taocrypt\include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "echoclient - Win32 Release" -# Name "echoclient - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\echoclient.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project diff --git a/mysql-wsrep-5.6/extra/yassl/examples/echoclient/input b/mysql-wsrep-5.6/extra/yassl/examples/echoclient/input deleted file mode 100644 index 438a5928..00000000 --- a/mysql-wsrep-5.6/extra/yassl/examples/echoclient/input +++ /dev/null @@ -1,93 +0,0 @@ -/* echoclient.cpp */ - -#include "openssl/ssl.h" /* openssl compatibility test */ -#include -#include - - -#ifdef WIN32 - #include -#else - #include - #include - #include - #include - #include - #include - #include - #include -#endif /* WIN32 */ - - -void err_sys(const char* msg) -{ - fputs("yassl client error: ", stderr); - fputs(msg, stderr); - exit(EXIT_FAILURE); -} - -const char* loopback = "127.0.0.1"; -const short yasslPort = 11111; - -using namespace yaSSL; - - -int main(int argc, char** argv) -{ -#ifdef WIN32 - WSADATA wsd; - WSAStartup(0x0002, &wsd); - int sockfd; -#else - unsigned int sockfd; -#endif /* WIN32 */ - - FILE* fin = stdin; - FILE* fout = stdout; - - if (argc >= 2) fin = fopen(argv[1], "r"); - if (argc >= 3) fout = fopen(argv[2], "w"); - - if (!fin) err_sys("can't open input file"); - if (!fout) err_sys("can't open output file"); - - sockfd = socket(AF_INET, SOCK_STREAM, 0); - sockaddr_in servaddr; - memset(&servaddr, 0, sizeof(servaddr)); - servaddr.sin_family = AF_INET; - - servaddr.sin_port = htons(yasslPort); - servaddr.sin_addr.s_addr = inet_addr(loopback); - if (connect(sockfd, (const sockaddr*)&servaddr, sizeof(servaddr)) != 0) - err_sys("tcp connect failed"); - - SSL_METHOD* method = TLSv1_client_method(); - SSL_CTX* ctx = SSL_CTX_new(method); - SSL* ssl = SSL_new(ctx); - - SSL_set_fd(ssl, sockfd); - if (SSL_connect(ssl) != SSL_SUCCESS) err_sys("SSL_connect failed"); - - char send[1024]; - char reply[1024]; - - while (fgets(send, sizeof(send), fin)) { - - int sendSz = strlen(send) + 1; - if (SSL_write(ssl, send, sendSz) != sendSz) - err_sys("SSL_write failed"); - - if (strncmp(send, "quit", 4) == 0) { - fputs("sending server shutdown command: quit!", fout); - break; - } - - if (SSL_read(ssl, reply, sizeof(reply)) > 0) - fputs(reply, fout); - } - - SSL_CTX_free(ctx); - SSL_free(ssl); - - return 0; -} diff --git a/mysql-wsrep-5.6/extra/yassl/examples/echoclient/quit b/mysql-wsrep-5.6/extra/yassl/examples/echoclient/quit deleted file mode 100644 index 3db49b3a..00000000 --- a/mysql-wsrep-5.6/extra/yassl/examples/echoclient/quit +++ /dev/null @@ -1,2 +0,0 @@ -quit - diff --git a/mysql-wsrep-5.6/extra/yassl/examples/echoserver/echoserver.cpp b/mysql-wsrep-5.6/extra/yassl/examples/echoserver/echoserver.cpp deleted file mode 100644 index 82696568..00000000 --- a/mysql-wsrep-5.6/extra/yassl/examples/echoserver/echoserver.cpp +++ /dev/null @@ -1,167 +0,0 @@ -/* - Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, - MA 02110-1301 USA. -*/ - -/* echoserver.cpp */ - -#include "../../testsuite/test.hpp" - - -#ifndef NO_MAIN_DRIVER - #define ECHO_OUT - - THREAD_RETURN YASSL_API echoserver_test(void*); - int main(int argc, char** argv) - { - func_args args; - - args.argc = argc; - args.argv = argv; - - echoserver_test(&args); - yaSSL_CleanUp(); - - return args.return_code; - } - -#endif // NO_MAIN_DRIVER - - - -void EchoError(SSL_CTX* ctx, SSL* ssl, SOCKET_T& s1, SOCKET_T& s2, - const char* msg) -{ - SSL_CTX_free(ctx); - SSL_free(ssl); - tcp_close(s1); - tcp_close(s2); - err_sys(msg); -} - - -THREAD_RETURN YASSL_API echoserver_test(void* args) -{ -#ifdef _WIN32 - WSADATA wsd; - WSAStartup(0x0002, &wsd); -#endif - - SOCKET_T sockfd = 0; - int argc = 0; - char** argv = 0; - - set_args(argc, argv, *static_cast(args)); - -#ifdef ECHO_OUT - FILE* fout = stdout; - if (argc >= 2) fout = fopen(argv[1], "w"); - if (!fout) err_sys("can't open output file"); -#endif - - tcp_listen(sockfd); - - SSL_METHOD* method = SSLv23_server_method(); - SSL_CTX* ctx = SSL_CTX_new(method); - - set_serverCerts(ctx); - DH* dh = set_tmpDH(ctx); - - bool shutdown(false); - -#if defined(_POSIX_THREADS) && defined(NO_MAIN_DRIVER) - // signal ready to tcp_accept - func_args& server_args = *((func_args*)args); - tcp_ready& ready = *server_args.signal_; - pthread_mutex_lock(&ready.mutex_); - ready.ready_ = true; - pthread_cond_signal(&ready.cond_); - pthread_mutex_unlock(&ready.mutex_); -#endif - - while (!shutdown) { - SOCKADDR_IN_T client; - socklen_t client_len = sizeof(client); - SOCKET_T clientfd = accept(sockfd, (sockaddr*)&client, - (ACCEPT_THIRD_T)&client_len); - if (clientfd == (SOCKET_T) -1) { - SSL_CTX_free(ctx); - tcp_close(sockfd); - err_sys("tcp accept failed"); - } - - SSL* ssl = SSL_new(ctx); - SSL_set_fd(ssl, clientfd); - if (SSL_accept(ssl) != SSL_SUCCESS) { - printf("SSL_accept failed\n"); - SSL_free(ssl); - tcp_close(clientfd); - continue; - } - - char command[1024]; - int echoSz(0); - while ( (echoSz = SSL_read(ssl, command, sizeof(command))) > 0) { - - if ( strncmp(command, "quit", 4) == 0) { - printf("client sent quit command: shutting down!\n"); - shutdown = true; - break; - } - else if ( strncmp(command, "GET", 3) == 0) { - char type[] = "HTTP/1.0 200 ok\r\nContent-type:" - " text/html\r\n\r\n"; - char header[] = "\n
\n";
-                char body[]   = "greetings from yaSSL\n";
-                char footer[] = "\r\n\r\n";
-
-                strncpy(command, type, sizeof(type));
-                echoSz = sizeof(type) - 1;
-
-                strncpy(&command[echoSz], header, sizeof(header));
-                echoSz += sizeof(header) - 1;
-                strncpy(&command[echoSz], body, sizeof(body));
-                echoSz += sizeof(body) - 1;
-                strncpy(&command[echoSz], footer, sizeof(footer));
-                echoSz += sizeof(footer);
-
-                if (SSL_write(ssl, command, echoSz) != echoSz)
-                    EchoError(ctx, ssl, sockfd, clientfd, "SSL_write failed");
-               
-                break;
-            }
-            command[echoSz] = 0;
-
-        #ifdef ECHO_OUT
-            fputs(command, fout);
-        #endif
-
-            if (SSL_write(ssl, command, echoSz) != echoSz)
-                EchoError(ctx, ssl, sockfd, clientfd, "SSL_write failed");
-        }
-        SSL_shutdown(ssl);
-        SSL_free(ssl);
-        tcp_close(clientfd);
-    }
-
-    tcp_close(sockfd);
-
-    DH_free(dh);
-    SSL_CTX_free(ctx);
-
-    ((func_args*)args)->return_code = 0;
-    return 0;
-}
diff --git a/mysql-wsrep-5.6/extra/yassl/examples/echoserver/echoserver.dsp b/mysql-wsrep-5.6/extra/yassl/examples/echoserver/echoserver.dsp
deleted file mode 100644
index 21a965b0..00000000
--- a/mysql-wsrep-5.6/extra/yassl/examples/echoserver/echoserver.dsp
+++ /dev/null
@@ -1,102 +0,0 @@
-# Microsoft Developer Studio Project File - Name="echoserver" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=echoserver - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "echoserver.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "echoserver.mak" CFG="echoserver - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "echoserver - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "echoserver - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "echoserver - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /G6 /MT /W3 /O2 /I "..\..\include" /I "..\..\taocrypt\include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /machine:I386
-
-!ELSEIF  "$(CFG)" == "echoserver - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /ZI /Od /I "..\..\include" /I "..\..\taocrypt\include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-
-!ENDIF 
-
-# Begin Target
-
-# Name "echoserver - Win32 Release"
-# Name "echoserver - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\echoserver.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/mysql-wsrep-5.6/extra/yassl/examples/server/server.cpp b/mysql-wsrep-5.6/extra/yassl/examples/server/server.cpp
deleted file mode 100644
index 1540f6d3..00000000
--- a/mysql-wsrep-5.6/extra/yassl/examples/server/server.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
-   Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* server.cpp */
-
-// takes 2 optional command line argument to make scripting
-// if the first  command line argument is 'n' client auth is disabled
-// if the second command line argument is 'd' DSA certs are used instead of RSA
-
-#include "../../testsuite/test.hpp"
-
-
-void ServerError(SSL_CTX* ctx, SSL* ssl, SOCKET_T& sockfd, const char* msg)
-{
-    SSL_CTX_free(ctx);
-    SSL_free(ssl);
-    tcp_close(sockfd);
-    err_sys(msg);
-}
-
-
-#ifdef NON_BLOCKING
-    void NonBlockingSSL_Accept(SSL* ssl, SSL_CTX* ctx, SOCKET_T& clientfd)
-    {
-        int ret = SSL_accept(ssl);
-        int err = SSL_get_error(ssl, 0);
-        while (ret != SSL_SUCCESS && (err == SSL_ERROR_WANT_READ ||
-                                      err == SSL_ERROR_WANT_WRITE)) {
-            if (err == SSL_ERROR_WANT_READ)
-                printf("... server would read block\n");
-            else
-                printf("... server would write block\n");
-            #ifdef _WIN32
-                Sleep(1000);
-            #else
-                sleep(1);
-            #endif
-            ret = SSL_accept(ssl);
-            err = SSL_get_error(ssl, 0);
-        }
-        if (ret != SSL_SUCCESS)
-            ServerError(ctx, ssl, clientfd, "SSL_accept failed");
-    }
-#endif
-
-
-THREAD_RETURN YASSL_API server_test(void* args)
-{
-#ifdef _WIN32
-    WSADATA wsd;
-    WSAStartup(0x0002, &wsd);
-#endif
-
-    SOCKET_T sockfd   = 0;
-    SOCKET_T clientfd = 0;
-    int      argc     = 0;
-    char**   argv     = 0;
-
-    set_args(argc, argv, *static_cast(args));
-#ifdef SERVER_READY_FILE
-    set_file_ready("server_ready", *static_cast(args));
-#endif
-    tcp_accept(sockfd, clientfd, *static_cast(args));
-
-    tcp_close(sockfd);
-
-    SSL_METHOD* method = TLSv1_server_method();
-    SSL_CTX*    ctx = SSL_CTX_new(method);
-
-    //SSL_CTX_set_cipher_list(ctx, "RC4-SHA:RC4-MD5");
-    
-    // should we disable client auth
-    if (argc >= 2 && argv[1][0] == 'n')
-        printf("disabling client auth\n");
-    else
-        SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, 0);
-
-    // are we using DSA certs
-    if (argc >= 3 && argv[2][0] == 'd') {
-        printf("using DSA certs\n");
-        set_dsaServerCerts(ctx);
-    }
-    else {
-        set_serverCerts(ctx);
-    }
-    DH* dh = set_tmpDH(ctx);
-
-    SSL* ssl = SSL_new(ctx);
-    SSL_set_fd(ssl, clientfd);
-
-#ifdef NON_BLOCKING
-    NonBlockingSSL_Accept(ssl, ctx, clientfd);
-#else
-    if (SSL_accept(ssl) != SSL_SUCCESS)
-        ServerError(ctx, ssl, clientfd, "SSL_accept failed");
-#endif
-     
-    showPeer(ssl);
-    printf("Using Cipher Suite: %s\n", SSL_get_cipher(ssl));
-
-    char command[1024];
-    int input = SSL_read(ssl, command, sizeof(command));
-    if (input > 0) {
-        command[input] = 0;
-        printf("First client command: %s\n", command);
-    }
-
-    char msg[] = "I hear you, fa shizzle!";
-    if (SSL_write(ssl, msg, sizeof(msg)) != sizeof(msg))
-        ServerError(ctx, ssl, clientfd, "SSL_write failed");
-
-    DH_free(dh);
-    SSL_CTX_free(ctx);
-    SSL_shutdown(ssl);
-    SSL_free(ssl);
-
-    tcp_close(clientfd);
-
-    ((func_args*)args)->return_code = 0;
-    return 0;
-}
-
-
-#ifndef NO_MAIN_DRIVER
-
-    int main(int argc, char** argv)
-    {
-        func_args args;
-
-        args.argc = argc;
-        args.argv = argv;
-
-        server_test(&args);
-        yaSSL_CleanUp();
-
-        return args.return_code;
-    }
-
-#endif // NO_MAIN_DRIVER
-
diff --git a/mysql-wsrep-5.6/extra/yassl/examples/server/server.dsp b/mysql-wsrep-5.6/extra/yassl/examples/server/server.dsp
deleted file mode 100644
index 9c797c54..00000000
--- a/mysql-wsrep-5.6/extra/yassl/examples/server/server.dsp
+++ /dev/null
@@ -1,109 +0,0 @@
-# Microsoft Developer Studio Project File - Name="server" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Application" 0x0101
-
-CFG=server - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "server.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "server.mak" CFG="server - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "server - Win32 Release" (based on "Win32 (x86) Application")
-!MESSAGE "server - Win32 Debug" (based on "Win32 (x86) Application")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "server - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /O2 /I "..\..\include" /I "..\..\taocrypt\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /machine:I386
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF  "$(CFG)" == "server - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /ZI /Od /I "..\..\include" /I "..\..\taocrypt\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /FR /YX /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none /nodefaultlib
-
-!ENDIF 
-
-# Begin Target
-
-# Name "server - Win32 Release"
-# Name "server - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\server.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/mysql-wsrep-5.6/extra/yassl/include/buffer.hpp b/mysql-wsrep-5.6/extra/yassl/include/buffer.hpp
deleted file mode 100644
index 77d2ed81..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/buffer.hpp
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* yaSSL buffer header defines input and output buffers to simulate streaming
- * with SSL types and sockets
- */
-
-#ifndef yaSSL_BUFFER_HPP
-#define yaSSL_BUFFER_HPP
-
-#include              // assert
-#include "yassl_types.hpp"      // ysDelete
-#include "memory.hpp"           // mySTL::auto_ptr
-#include STL_ALGORITHM_FILE
-
-
-namespace STL = STL_NAMESPACE;
-
-
-#ifdef _MSC_VER
-    // disable truncated debug symbols
-    #pragma warning(disable:4786)
-#endif
-
-
-namespace yaSSL {
-
-typedef unsigned char byte;
-typedef unsigned int  uint;
-const uint AUTO = 0xFEEDBEEF;
-
-
-
-struct NoCheck {
-    int check(uint, uint);
-};
-
-struct Check {
-    int check(uint, uint);
-};
-
-/* input_buffer operates like a smart c style array with a checking option, 
- * meant to be read from through [] with AUTO index or read().
- * Should only write to at/near construction with assign() or raw (e.g., recv)
- * followed by add_size with the number of elements added by raw write.
- *
- * Not using vector because need checked []access, offset, and the ability to
- * write to the buffer bulk wise and have the correct size
- */
-
-class input_buffer : public Check {
-    uint   size_;                // number of elements in buffer
-    uint   current_;             // current offset position in buffer
-    byte*  buffer_;              // storage for buffer
-    byte*  end_;                 // end of storage marker
-    int    error_;               // error number
-    byte   zero_;                // for returning const reference to zero byte
-public:
-    input_buffer();
-
-    explicit input_buffer(uint s);
-                          
-    // with assign
-    input_buffer(uint s, const byte* t, uint len);
-    
-    ~input_buffer();
-
-    // users can pass defualt zero length buffer and then allocate
-    void allocate(uint s);
-
-    // for passing to raw writing functions at beginning, then use add_size
-    byte* get_buffer() const;
-
-    // after a raw write user can set new size
-    // if you know the size before the write use assign()
-    void add_size(uint i);
-
-    uint get_capacity()  const;
-
-    uint get_current()   const;
-
-    uint get_size()      const;
-
-    uint get_remaining() const;
-
-    int  get_error()     const;
-
-    void set_error();
-
-    void set_current(uint i);
-
-    // read only access through [], advance current
-    // user passes in AUTO index for ease of use
-    const byte& operator[](uint i);
-    
-    // end of input test
-    bool eof();
-
-    // peek ahead
-    byte peek();
-
-    // write function, should use at/near construction
-    void assign(const byte* t, uint s);
-    
-    // use read to query input, adjusts current
-    void read(byte* dst, uint length);
-
-private:
-    input_buffer(const input_buffer&);              // hide copy
-    input_buffer& operator=(const input_buffer&);   // and assign
-};
-
-
-/* output_buffer operates like a smart c style array with a checking option.
- * Meant to be written to through [] with AUTO index or write().
- * Size (current) counter increases when written to. Can be constructed with 
- * zero length buffer but be sure to allocate before first use. 
- * Don't use add write for a couple bytes, use [] instead, way less overhead.
- * 
- * Not using vector because need checked []access and the ability to
- * write to the buffer bulk wise and retain correct size
- */
-class output_buffer : public NoCheck {
-    uint    current_;                // current offset and elements in buffer
-    byte*   buffer_;                 // storage for buffer
-    byte*   end_;                    // end of storage marker
-public:
-    // default
-    output_buffer();
-
-    // with allocate
-    explicit output_buffer(uint s);
-
-    // with assign
-    output_buffer(uint s, const byte* t, uint len);
-
-    ~output_buffer();
-
-    uint get_size() const;
-
-    uint get_capacity() const;
-
-    void set_current(uint c);
-
-    // users can pass defualt zero length buffer and then allocate
-    void allocate(uint s);
-
-    // for passing to reading functions when finished
-    const byte* get_buffer() const;
-
-    // allow write access through [], update current
-    // user passes in AUTO as index for ease of use
-    byte& operator[](uint i);
-    
-    // end of output test
-    bool eof();
-
-    void write(const byte* t, uint s);
-
-private:
-    output_buffer(const output_buffer&);              // hide copy
-    output_buffer& operator=(const output_buffer&);   // and assign
-};
-
-
-
-
-// turn delete an incomplete type into comipler error instead of warning
-template 
-inline void checked_delete(T* p)
-{
-    typedef char complete_type[sizeof(T) ? 1 : -1];
-    (void)sizeof(complete_type);
-    ysDelete(p);
-}
-
-
-// checked delete functor increases effeciency, no indirection on function call
-// sets pointer to zero so safe for std conatiners
-struct del_ptr_zero
-{
-    template 
-    void operator()(T*& p) const
-    {
-        T* tmp = 0;
-        STL::swap(tmp, p);
-        checked_delete(tmp); 
-    }
-};
-
-
-
-} // naemspace
-
-#endif // yaSSL_BUUFER_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/include/cert_wrapper.hpp b/mysql-wsrep-5.6/extra/yassl/include/cert_wrapper.hpp
deleted file mode 100644
index 8e3393b4..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/cert_wrapper.hpp
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
-   Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
- */
-
-
-/*  The certificate wrapper header defines certificate management functions
- *
- */
-
-
-#ifndef yaSSL_CERT_WRAPPER_HPP
-#define yaSSL_CERT_WRAPPER_HPP
-
-#ifdef _MSC_VER
-    // disable truncated debug symbols
-    #pragma warning(disable:4786)
-#endif
-
-
-#include "yassl_types.hpp"  // SignatureAlgorithm
-#include "buffer.hpp"       // input_buffer
-#include "asn.hpp"          // SignerList
-#include "openssl/ssl.h"    // internal and external use
-#include STL_LIST_FILE
-#include STL_ALGORITHM_FILE
-
-
-namespace STL = STL_NAMESPACE;
-
-
-namespace yaSSL {
-   
-typedef unsigned char opaque;
-class X509;                     // forward openSSL type
-
-using TaoCrypt::SignerList;
-
-// an x509 version 3 certificate
-class x509 {
-    uint    length_;
-    opaque* buffer_;
-public:
-    explicit x509(uint sz);
-    ~x509();
-
-    uint          get_length() const;
-    const opaque* get_buffer() const;
-    opaque*       use_buffer();
-
-    x509(const x509&);
-    x509& operator=(const x509&);
-private:
-    void Swap(x509&);
-};
-
-
-// Certificate Manager keeps a list of the cert chain and public key
-class CertManager {
-    typedef STL::list CertList;
-
-    CertList     list_;                 // self      
-    input_buffer privateKey_;
-
-    CertList     peerList_;             // peer
-    input_buffer peerPublicKey_;
-    X509*        peerX509_;             // peer's openSSL X509
-    X509*        selfX509_;             // our own openSSL X509
-
-    SignatureAlgorithm keyType_;        // self   key type
-    SignatureAlgorithm peerKeyType_;    // peer's key type
-
-    SignerList   signers_;              // decoded CA keys and names
-                                        //    plus verified chained certs
-    bool verifyPeer_;
-    bool verifyNone_;                   // no error if verify fails
-    bool failNoCert_;
-    bool sendVerify_;
-    bool sendBlankCert_;
-    VerifyCallback verifyCallback_;     // user verify callback
-public:
-    CertManager();
-    ~CertManager();
-
-    void AddPeerCert(x509* x);      // take ownership
-    void CopySelfCert(const x509* x);
-    int  CopyCaCert(const x509* x);
-    int  Validate();
-
-    int SetPrivateKey(const x509&);
-
-    const x509*        get_cert()        const;
-    const opaque*      get_peerKey()     const;
-    const opaque*      get_privateKey()  const;
-          X509*        get_peerX509()    const;
-          X509*        get_selfX509()    const;
-    SignatureAlgorithm get_keyType()     const;
-    SignatureAlgorithm get_peerKeyType() const;
-
-    uint get_peerKeyLength()       const;
-    uint get_privateKeyLength()    const;
-
-    bool verifyPeer() const;
-    bool verifyNone() const;
-    bool failNoCert() const;
-    bool sendVerify() const;
-    bool sendBlankCert() const;
-
-    void setVerifyPeer();
-    void setVerifyNone();
-    void setFailNoCert();
-    void setSendVerify();
-    void setSendBlankCert();
-    void setPeerX509(X509*);
-    void setVerifyCallback(VerifyCallback);
-private:
-    CertManager(const CertManager&);            // hide copy
-    CertManager& operator=(const CertManager&); // and assigin
-};
-
-
-} // naemspace
-
-#endif // yaSSL_CERT_WRAPPER_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/include/crypto_wrapper.hpp b/mysql-wsrep-5.6/extra/yassl/include/crypto_wrapper.hpp
deleted file mode 100644
index c0395cb2..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/crypto_wrapper.hpp
+++ /dev/null
@@ -1,428 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/*  The crypto wrapper header is used to define policies for the cipher 
- *  components used by SSL.  There are 3 policies to consider:
- *
- *  1) MAC, the Message Authentication Code used for each Message
- *  2) Bulk Cipher, the Cipher used to encrypt/decrypt each Message
- *  3) Atuhentication, the Digitial Signing/Verifiaction scheme used
- *
- *  This header doesn't rely on a specific crypto libraries internals,
- *  only the implementation should.
- */
-
-
-#ifndef yaSSL_CRYPTO_WRAPPER_HPP
-#define yaSSL_CRYPTO_WRAPPER_HPP
-
-#include "yassl_types.hpp"
-#include    // FILE
-
-
-namespace yaSSL {
-
-
-// Digest policy should implement a get_digest, update, and get sizes for pad
-// and  digest
-struct Digest : public virtual_base {
-    virtual void   get_digest(byte*) = 0;
-    virtual void   get_digest(byte*, const byte*, unsigned int) = 0;
-    virtual void   update(const byte*, unsigned int) = 0;
-    virtual uint   get_digestSize() const = 0;
-    virtual uint   get_padSize() const = 0;
-    virtual ~Digest() {}
-};
-
-
-// For use with NULL Digests
-struct NO_MAC : public Digest {
-    void   get_digest(byte*);
-    void   get_digest(byte*, const byte*, unsigned int);
-    void   update(const byte*, unsigned int);
-    uint   get_digestSize() const;
-    uint   get_padSize()    const;
-};
-
-
-// MD5 Digest
-class MD5 : public Digest {
-public:
-    void   get_digest(byte*);
-    void   get_digest(byte*, const byte*, unsigned int);
-    void   update(const byte*, unsigned int);
-    uint   get_digestSize() const;
-    uint   get_padSize()    const;
-    MD5();
-    ~MD5();
-    MD5(const MD5&);
-    MD5& operator=(const MD5&);
-private:
-    struct MD5Impl;
-    MD5Impl* pimpl_;
-};
-
-
-// SHA-1 Digest
-class SHA : public Digest {
-public:
-    void   get_digest(byte*);
-    void   get_digest(byte*, const byte*, unsigned int);
-    void   update(const byte*, unsigned int);
-    uint   get_digestSize() const;
-    uint   get_padSize()    const;
-    SHA();
-    ~SHA();
-    SHA(const SHA&);
-    SHA& operator=(const SHA&);
-private:
-    struct SHAImpl;
-    SHAImpl* pimpl_;
-
-};
-
-
-// RIPEMD-160 Digest
-class RMD : public Digest {
-public:
-    void   get_digest(byte*);
-    void   get_digest(byte*, const byte*, unsigned int);
-    void   update(const byte*, unsigned int);
-    uint   get_digestSize() const;
-    uint   get_padSize()    const;
-    RMD();
-    ~RMD();
-    RMD(const RMD&);
-    RMD& operator=(const RMD&);
-private:
-    struct RMDImpl;
-    RMDImpl* pimpl_;
-
-};
-
-
-// HMAC_MD5
-class HMAC_MD5 : public Digest {
-public:
-    void   get_digest(byte*);
-    void   get_digest(byte*, const byte*, unsigned int);
-    void   update(const byte*, unsigned int);
-    uint   get_digestSize() const;
-    uint   get_padSize()    const;
-    HMAC_MD5(const byte*, unsigned int);
-    ~HMAC_MD5();
-private:
-    struct HMAC_MD5Impl;
-    HMAC_MD5Impl* pimpl_;
-
-    HMAC_MD5(const HMAC_MD5&);
-    HMAC_MD5& operator=(const HMAC_MD5&);
-};
-
-
-// HMAC_SHA-1
-class HMAC_SHA : public Digest {
-public:
-    void   get_digest(byte*);
-    void   get_digest(byte*, const byte*, unsigned int);
-    void   update(const byte*, unsigned int);
-    uint   get_digestSize() const;
-    uint   get_padSize()    const;
-    HMAC_SHA(const byte*, unsigned int);
-    ~HMAC_SHA();
-private:
-    struct HMAC_SHAImpl;
-    HMAC_SHAImpl* pimpl_;
-
-    HMAC_SHA(const HMAC_SHA&);
-    HMAC_SHA& operator=(const HMAC_SHA&);
-};
-
-
-// HMAC_RMD
-class HMAC_RMD : public Digest {
-public:
-    void   get_digest(byte*);
-    void   get_digest(byte*, const byte*, unsigned int);
-    void   update(const byte*, unsigned int);
-    uint   get_digestSize() const;
-    uint   get_padSize()    const;
-    HMAC_RMD(const byte*, unsigned int);
-    ~HMAC_RMD();
-private:
-    struct HMAC_RMDImpl;
-    HMAC_RMDImpl* pimpl_;
-
-    HMAC_RMD(const HMAC_RMD&);
-    HMAC_RMD& operator=(const HMAC_RMD&);
-};
-
-
-// BulkCipher policy should implement encrypt, decrypt, get block size, 
-// and set keys for encrypt and decrypt
-struct BulkCipher : public virtual_base {
-    virtual void   encrypt(byte*, const byte*, unsigned int) = 0;
-    virtual void   decrypt(byte*, const byte*, unsigned int) = 0;
-    virtual void   set_encryptKey(const byte*, const byte* = 0) = 0;
-    virtual void   set_decryptKey(const byte*, const byte* = 0) = 0;
-    virtual uint   get_blockSize() const = 0;
-    virtual int    get_keySize()   const = 0;
-    virtual int    get_ivSize()    const = 0;
-    virtual ~BulkCipher() {}
-};
-
-
-// For use with NULL Ciphers
-struct NO_Cipher : public BulkCipher {
-    void   encrypt(byte*, const byte*, unsigned int) {}
-    void   decrypt(byte*, const byte*, unsigned int) {}
-    void   set_encryptKey(const byte*, const byte*)  {}
-    void   set_decryptKey(const byte*, const byte*)  {}
-    uint   get_blockSize() const { return 0; }
-    int    get_keySize()   const { return 0; }
-    int    get_ivSize()    const { return 0; }
-};
-
-
-// SSLv3 and TLSv1 always use DES in CBC mode so IV is required
-class DES : public BulkCipher {
-public:
-    void   encrypt(byte*, const byte*, unsigned int);
-    void   decrypt(byte*, const byte*, unsigned int);
-    void   set_encryptKey(const byte*, const byte*);
-    void   set_decryptKey(const byte*, const byte*);
-    uint   get_blockSize() const { return DES_BLOCK; }
-    int    get_keySize()   const { return DES_KEY_SZ; }
-    int    get_ivSize()    const { return DES_IV_SZ; }
-    DES();
-    ~DES();
-private:
-    struct DESImpl;
-    DESImpl* pimpl_;
-
-    DES(const DES&);                // hide copy
-    DES& operator=(const DES&);     // & assign
-};
-
-
-// 3DES Encrypt-Decrypt-Encrypt in CBC mode
-class DES_EDE : public BulkCipher {
-public:
-    void   encrypt(byte*, const byte*, unsigned int);
-    void   decrypt(byte*, const byte*, unsigned int);
-    void   set_encryptKey(const byte*, const byte*);
-    void   set_decryptKey(const byte*, const byte*);
-    uint   get_blockSize() const { return DES_BLOCK; }
-    int    get_keySize()   const { return DES_EDE_KEY_SZ; }
-    int    get_ivSize()    const { return DES_IV_SZ; }
-    DES_EDE();
-    ~DES_EDE();
-private:
-    struct DES_EDEImpl;
-    DES_EDEImpl* pimpl_;
-
-    DES_EDE(const DES_EDE&);            // hide copy
-    DES_EDE& operator=(const DES_EDE&); // & assign
-};
-
-
-// Alledged RC4
-class RC4 : public BulkCipher {
-public:
-    void encrypt(byte*, const byte*, unsigned int);
-    void decrypt(byte*, const byte*, unsigned int);
-    void set_encryptKey(const byte*, const byte*);
-    void set_decryptKey(const byte*, const byte*);
-    uint get_blockSize() const { return 0; }
-    int  get_keySize()   const { return RC4_KEY_SZ; }
-    int  get_ivSize()    const { return 0; }
-    RC4();
-    ~RC4();
-private:
-    struct RC4Impl;
-    RC4Impl* pimpl_;
-
-    RC4(const RC4&);             // hide copy
-    RC4& operator=(const RC4&);  // & assign
-};
-
-
-// AES
-class AES : public BulkCipher {
-public:
-    void encrypt(byte*, const byte*, unsigned int);
-    void decrypt(byte*, const byte*, unsigned int);
-    void set_encryptKey(const byte*, const byte*);
-    void set_decryptKey(const byte*, const byte*);
-    uint get_blockSize() const { return AES_BLOCK_SZ; }
-    int  get_keySize()   const;
-    int  get_ivSize()    const { return AES_IV_SZ; }
-    explicit AES(unsigned int = AES_128_KEY_SZ);
-    ~AES();
-private:
-    struct AESImpl;
-    AESImpl* pimpl_;
-
-    AES(const AES&);             // hide copy
-    AES& operator=(const AES&);  // & assign
-};
-
-
-// Random number generator
-class RandomPool {
-public:
-    void Fill(opaque* dst, uint sz) const;
-    RandomPool();
-    ~RandomPool();
-
-    int GetError() const;
-
-    friend class RSA;
-    friend class DSS;
-    friend class DiffieHellman;
-private:
-    struct RandomImpl;
-    RandomImpl* pimpl_;
-
-    RandomPool(const RandomPool&);              // hide copy
-    RandomPool& operator=(const RandomPool&);   // & assign
-};
-
-
-// Authentication policy should implement sign, and verify
-struct Auth : public virtual_base {
-    virtual void sign(byte*, const byte*, unsigned int, const RandomPool&) = 0;
-    virtual bool verify(const byte*, unsigned int, const byte*,
-                        unsigned int) = 0;
-    virtual uint get_signatureLength() const = 0;
-    virtual ~Auth() {}
-};
-
-
-// For use with NULL Authentication schemes
-struct NO_Auth : public Auth {
-    void   sign(byte*, const byte*, unsigned int, const RandomPool&) {}
-    bool   verify(const byte*, unsigned int, const byte*, unsigned int) 
-                    { return true; }
-};
-
-
-// Digitial Signature Standard scheme
-class DSS : public Auth {
-public:
-    void sign(byte*, const byte*, unsigned int, const RandomPool&);
-    bool verify(const byte*, unsigned int, const byte*, unsigned int);
-    uint get_signatureLength() const;
-    DSS(const byte*, unsigned int, bool publicKey = true);
-    ~DSS();
-private:
-    struct DSSImpl;
-    DSSImpl* pimpl_;
-
-    DSS(const DSS&);
-    DSS& operator=(const DSS&);
-};
-
-
-// RSA Authentication and exchange
-class RSA : public Auth {
-public:
-    void   sign(byte*, const byte*, unsigned int, const RandomPool&);
-    bool   verify(const byte*, unsigned int, const byte*, unsigned int);
-    void   encrypt(byte*, const byte*, unsigned int, const RandomPool&);
-    void   decrypt(byte*, const byte*, unsigned int, const RandomPool&);
-    uint   get_signatureLength() const;
-    uint   get_cipherLength() const;
-    RSA(const byte*, unsigned int, bool publicKey = true);
-    ~RSA();
-private:
-    struct RSAImpl;
-    RSAImpl* pimpl_;
-
-    RSA(const RSA&);            // hide copy
-    RSA& operator=(const RSA&); // & assing
-};
-
-
-class Integer;
-
-// Diffie-Hellman agreement
-// hide for now TODO: figure out a way to give access to C clients p and g args
-class DiffieHellman  {
-public:
-    DiffieHellman(const byte*, unsigned int, const byte*, unsigned int,
-                  const byte*, unsigned int, const RandomPool& random);
-    //DiffieHellman(const char*, const RandomPool&);
-    DiffieHellman(const Integer&, const Integer&, const RandomPool&);
-    ~DiffieHellman();
-
-    DiffieHellman(const DiffieHellman&);  
-    DiffieHellman& operator=(const DiffieHellman&);
-
-    uint        get_agreedKeyLength() const;
-    const byte* get_agreedKey()       const;
-    uint        get_publicKeyLength() const;
-    const byte* get_publicKey()       const;
-    void        makeAgreement(const byte*, unsigned int);
-
-    void        set_sizes(int&, int&, int&) const;
-    void        get_parms(byte*, byte*, byte*) const;
-private:
-    struct DHImpl;
-    DHImpl* pimpl_;
-};
-
-
-// Lagrge Integer
-class Integer {
-public:
-    Integer();
-    ~Integer();
-
-    Integer(const Integer&);
-    Integer& operator=(const Integer&);
-
-    void assign(const byte*, unsigned int);
-
-    friend class DiffieHellman;
-private:
-    struct IntegerImpl;
-    IntegerImpl* pimpl_;
-};
-
-
-class x509;
-
-
-struct EncryptedInfo {
-    enum { IV_SZ = 32, NAME_SZ = 80 };
-    char  name[NAME_SZ]; // max one line
-    byte  iv[IV_SZ];     // in base16 rep
-    uint  ivSz;
-    bool  set;
-
-    EncryptedInfo() : ivSz(0), set(false) {}
-};
-
-x509* PemToDer(FILE*, CertType, EncryptedInfo* info = 0);
-
-
-} // naemspace
-
-#endif  // yaSSL_CRYPTO_WRAPPER_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/include/factory.hpp b/mysql-wsrep-5.6/extra/yassl/include/factory.hpp
deleted file mode 100644
index dd6532f7..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/factory.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/*  The factory header defines an Object Factory, used by SSL message and
- *  handshake types.
- *
- *  See Desgin Pattern in GoF and Alexandrescu's chapter in Modern C++ Design,
- *  page 208
- */
-
-
-
-#ifndef yaSSL_FACTORY_HPP
-#define yaSSL_FACTORY_HPP
-
-#include STL_VECTOR_FILE
-#include STL_PAIR_FILE
-
-
-namespace STL = STL_NAMESPACE;
-
-
-
-
-
-namespace yaSSL {
-
-
-// Factory uses its callback map to create objects by id,
-// returning an abstract base pointer
-template
-class Factory {                                             
-    typedef STL::pair CallBack;
-    typedef STL::vector CallBackVector;
-
-    CallBackVector callbacks_;
-public:
-    // pass function pointer to register all callbacks upon creation
-    explicit Factory(void (*init)(Factory&))
-    { 
-        init(*this); 
-    }
-
-    // reserve place in vector before registering, used by init funcion
-    void Reserve(size_t sz)
-    {
-        callbacks_.reserve(sz);
-    }
-
-    // register callback
-    void Register(const IdentifierType& id, ProductCreator pc)
-    {
-        callbacks_.push_back(STL::make_pair(id, pc));
-    }
-
-    // THE Creator, returns a new object of the proper type or 0
-    AbstractProduct* CreateObject(const IdentifierType& id) const
-    {
-        typedef typename STL::vector::const_iterator cIter;
-        
-        cIter first = callbacks_.begin();
-        cIter last  = callbacks_.end();
-
-        while (first != last) {
-            if (first->first == id)
-                break;
-            ++first;
-        }
-
-        if (first == callbacks_.end())
-            return 0;
-        return (first->second)();
-    }
-private:
-    Factory(const Factory&);            // hide copy
-    Factory& operator=(const Factory&); // and assign
-};
-
-
-} // naemspace
-
-#endif // yaSSL_FACTORY_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/include/handshake.hpp b/mysql-wsrep-5.6/extra/yassl/include/handshake.hpp
deleted file mode 100644
index 0c9949a9..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/handshake.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* The handshake header declares function prototypes for creating and reading
- * the various handshake messages.
- */
-
-
-
-#ifndef yaSSL_HANDSHAKE_HPP
-#define yaSSL_HANDSHAKE_HPP
-
-#include "yassl_types.hpp"
-
-
-namespace yaSSL {
-
-// forward decls
-class  SSL;
-class  Finished;
-class  Data;
-class  Alert;
-struct Hashes;
-
-enum BufferOutput { buffered, unbuffered };
-
-void sendClientHello(SSL&);
-void sendServerHello(SSL&, BufferOutput = buffered);
-void sendServerHelloDone(SSL&, BufferOutput = buffered);
-void sendClientKeyExchange(SSL&, BufferOutput = buffered);
-void sendServerKeyExchange(SSL&, BufferOutput = buffered);
-void sendChangeCipher(SSL&, BufferOutput = buffered);
-void sendFinished(SSL&, ConnectionEnd, BufferOutput = buffered);
-void sendCertificate(SSL&, BufferOutput = buffered);
-void sendCertificateRequest(SSL&, BufferOutput = buffered);
-void sendCertificateVerify(SSL&, BufferOutput = buffered);
-int  sendData(SSL&, const void*, int);
-int  sendAlert(SSL& ssl, const Alert& alert);
-
-int  receiveData(SSL&, Data&, bool peek = false); 
-void processReply(SSL&);
-
-void buildFinished(SSL&, Finished&, const opaque*);
-void build_certHashes(SSL&, Hashes&);
-
-void hmac(SSL&, byte*, const byte*, uint, ContentType, bool verify = false);
-void TLS_hmac(SSL&, byte*, const byte*, uint, ContentType,
-              bool verify = false);
-void PRF(byte* digest, uint digLen, const byte* secret, uint secLen,
-         const byte* label, uint labLen, const byte* seed, uint seedLen);
-
-} // naemspace
-
-#endif // yaSSL_HANDSHAKE_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/include/lock.hpp b/mysql-wsrep-5.6/extra/yassl/include/lock.hpp
deleted file mode 100644
index 5273f92f..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/lock.hpp
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
-   Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* lock.hpp provides an os specific Lock, locks mutex on entry and unlocks
- * automatically upon exit, no-ops provided for Single Threaded
-*/
-
-#ifndef yaSSL_LOCK_HPP
-#define yaSSL_LOCK_HPP
-
-/*
-  Visual Studio Source Annotations header (sourceannotations.h) fails
-  to compile if outside of the global namespace.
-*/
-#ifdef MULTI_THREADED
-#ifdef _WIN32
-#include 
-#endif
-#endif
-
-namespace yaSSL {
-
-
-#ifdef MULTI_THREADED
-    #ifdef _WIN32
-        #include 
-
-        class Mutex {
-            CRITICAL_SECTION cs_;
-        public:
-            Mutex();
-            ~Mutex();
-
-            class Lock;
-            friend class Lock;
-    
-            class Lock {
-                Mutex& mutex_;
-            public:
-                explicit Lock(Mutex& lm);
-                ~Lock();
-            };
-        };
-    #else  // _WIN32
-        #include 
-
-        class Mutex {
-            pthread_mutex_t mutex_;
-        public:
-
-            Mutex();
-            ~Mutex();
-
-            class Lock;
-            friend class Lock;
-
-            class Lock {
-                Mutex& mutex_;
-            public:
-                explicit Lock(Mutex& lm);
-                ~Lock();
-            };
-        };
-
-    #endif // _WIN32
-#else  // MULTI_THREADED (WE'RE SINGLE)
-
-    class Mutex {
-    public:
-        class Lock {
-        public:
-            explicit Lock(Mutex&) {}
-        };
-    };
-
-#endif // MULTI_THREADED
-
-
-
-} // namespace
-#endif // yaSSL_LOCK_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/include/log.hpp b/mysql-wsrep-5.6/extra/yassl/include/log.hpp
deleted file mode 100644
index 2651d071..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/log.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* yaSSL log interface
- *
- */
-
-#ifndef yaSSL_LOG_HPP
-#define yaSSL_LOG_HPP
-
-#include "socket_wrapper.hpp"
-
-#ifdef YASSL_LOG
-#include 
-#endif
-
-namespace yaSSL {
-
-typedef unsigned int uint;
-
-
-// Debug logger
-class Log {
-#ifdef YASSL_LOG
-    FILE* log_;
-#endif
-public:
-    explicit Log(const char* str = "yaSSL.log");
-    ~Log();
-
-    void Trace(const char*);
-    void ShowTCP(socket_t, bool ended = false);
-    void ShowData(uint, bool sent = false);
-};
-
-
-} // naemspace
-
-#endif // yaSSL_LOG_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/crypto.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/crypto.h
deleted file mode 100644
index fc2971ab..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/crypto.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA */
-
-/* crypto.h for openSSL */
-
-#ifndef yaSSL_crypto_h__
-#define yaSSL_crypto_h__
-
-#ifdef YASSL_PREFIX
-#include "prefix_crypto.h"
-#endif
-
-const char* SSLeay_version(int type);
-
-#define SSLEAY_NUMBER_DEFINED
-#define SSLEAY_VERSION 0x0900L
-#define SSLEAY_VERSION_NUMBER SSLEAY_VERSION
-
-
-#endif /* yaSSL_crypto_h__ */
-
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/des.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/des.h
deleted file mode 100644
index f7394b65..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/des.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-   Copyright (C) 2005 MySQL AB
-   Use is subject to license terms
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* des.h  for openssl */
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/des_old.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/des_old.h
deleted file mode 100644
index b6e2e3e9..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/des_old.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-   Copyright (C) 2007 MySQL AB
-   Use is subject to license terms
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* des_old.h  for openvn */
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/engine.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/engine.h
deleted file mode 100644
index 15ddcd14..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/engine.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
-   Copyright (C) 2006 MySQL AB
-   Use is subject to license terms
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* engine.h for libcurl */
-
-#undef HAVE_OPENSSL_ENGINE_H
-
-
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/err.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/err.h
deleted file mode 100644
index 94847429..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/err.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-   Copyright (C) 2005, 2006 MySQL AB
-   Use is subject to license terms
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* err.h for openssl */
-
-#ifndef yaSSL_err_h__
-#define yaSSL_err_h__
-
-
-
-#endif /* yaSSL_err_h__ */
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/evp.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/evp.h
deleted file mode 100644
index 6aa7335d..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/evp.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-   Copyright (C) 2007 MySQL AB
-   Use is subject to license terms
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* evp.h for openSSL */
-
-#ifndef SSLEAY_NUMBER_DEFINED
-#define SSLEAY_NUMBER_DEFINED
-
-/* for OpenVPN */
-#define SSLEAY_VERSION_NUMBER 0x0090700f
-
-
-#endif /* SSLEAY_NUMBER_DEFINED */
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/generate_prefix_files.pl b/mysql-wsrep-5.6/extra/yassl/include/openssl/generate_prefix_files.pl
deleted file mode 100755
index eb3536c4..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/generate_prefix_files.pl
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/perl
-
-# Copyright (C) 2006 MySQL AB
-# Use is subject to license terms
-# 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-
-#
-# This script generates defines for all functions
-# in yassl/include/openssl/ so they are renamed to
-# ya. Hopefully that is unique enough.
-#
-# The script is to be run manually when we import
-# a new version of yaSSL
-#
-
-
-
-# Find all functions in "input" and add macros
-# to prefix/rename them into "output
-sub generate_prefix($$)
-{
-  my $input= shift;
-  my $output= shift;
-  open(IN, $input)
-      or die("Can't open input file $input: $!");
-  open(OUT, ">", $output)
-    or mtr_error("Can't open output file $output: $!");
-
-  while ()
-  {
-    chomp;
-
-    if ( /typedef/ )
-    {
-      next;
-    }
-
-    if ( /^\s*[a-zA-Z0-9*_ ]+\s+\*?([_a-zA-Z0-9]+)\s*\(/ )
-    {
-      print OUT "#define $1 ya$1\n";
-    }
-  }
-
-  close OUT;
-  close IN;
-}
-
-generate_prefix("ssl.h", "prefix_ssl.h");
-generate_prefix("crypto.h", "prefix_crypto.h");
-
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/hmac.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/hmac.h
deleted file mode 100644
index 5da6644e..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/hmac.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-   Copyright (C) 2007 MySQL AB
-   Use is subject to license terms
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* hmac.h  for openvpn */
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/lhash.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/lhash.h
deleted file mode 100644
index 6d64df7d..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/lhash.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-   Copyright (C) 2005 MySQL AB
-   Use is subject to license terms
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* lhash.h for openSSL */
-
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/md4.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/md4.h
deleted file mode 100644
index 8a864993..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/md4.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-   Copyright (C) 2006 MySQL AB
-   Use is subject to license terms
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* md4.h for libcurl */
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/md5.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/md5.h
deleted file mode 100644
index b54ebcd9..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/md5.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-   Copyright (C) 2005, 2006 MySQL AB
-   Use is subject to license terms
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* md5.h for openssl */
-
-#include "ssl.h"   /* in there for now */
-
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/objects.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/objects.h
deleted file mode 100644
index ed2c0294..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/objects.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-   Copyright (C) 2007 MySQL AB
-   Use is subject to license terms
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* objects.h  for openvpn */
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/opensslv.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/opensslv.h
deleted file mode 100644
index 88b9ca6d..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/opensslv.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-   Copyright (C) 2005 MySQL AB
-   Use is subject to license terms
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* opensslv.h compatibility */
-
-#ifndef yaSSL_opensslv_h__
-#define yaSSL_opensslv_h__
-
-
-/* api version compatibility */
-#define OPENSSL_VERSION_NUMBER 0x0090700f
-
-
-#endif /* yaSSLopensslv_h__ */
-
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/pem.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/pem.h
deleted file mode 100644
index c467e461..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/pem.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-   Copyright (C) 2006 MySQL AB
-   Use is subject to license terms
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* pem.h  for libcurl */
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/pkcs12.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/pkcs12.h
deleted file mode 100644
index c3f8ee67..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/pkcs12.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
-   Copyright (C) 2006 MySQL AB
-   Use is subject to license terms
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* pkcs12.h for libcurl */
-
-
-#undef HAVE_OPENSSL_PKCS12_H
-
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/prefix_crypto.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/prefix_crypto.h
deleted file mode 100644
index 895dd51a..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/prefix_crypto.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-   Copyright (C) 2006 MySQL AB
-   Use is subject to license terms
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-#define SSLeay_version yaSSLeay_version
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/prefix_ssl.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/prefix_ssl.h
deleted file mode 100644
index 19725206..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/prefix_ssl.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
-   Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-#define Copyright yaCopyright
-#define yaSSL_CleanUp yayaSSL_CleanUp
-#define BN_bin2bn yaBN_bin2bn
-#define DH_new yaDH_new
-#define DH_free yaDH_free
-#define RSA_free yaRSA_free
-#define RSA_generate_key yaRSA_generate_key
-#define X509_free yaX509_free
-#define X509_STORE_CTX_get_current_cert yaX509_STORE_CTX_get_current_cert
-#define X509_STORE_CTX_get_error yaX509_STORE_CTX_get_error
-#define X509_STORE_CTX_get_error_depth yaX509_STORE_CTX_get_error_depth
-#define X509_NAME_oneline yaX509_NAME_oneline
-#define X509_get_issuer_name yaX509_get_issuer_name
-#define X509_get_subject_name yaX509_get_subject_name
-#define X509_verify_cert_error_string yaX509_verify_cert_error_string
-#define X509_LOOKUP_add_dir yaX509_LOOKUP_add_dir
-#define X509_LOOKUP_load_file yaX509_LOOKUP_load_file
-#define X509_LOOKUP_hash_dir yaX509_LOOKUP_hash_dir
-#define X509_LOOKUP_file yaX509_LOOKUP_file
-#define X509_STORE_add_lookup yaX509_STORE_add_lookup
-#define X509_STORE_new yaX509_STORE_new
-#define X509_STORE_get_by_subject yaX509_STORE_get_by_subject
-#define ERR_get_error_line_data yaERR_get_error_line_data
-#define ERR_print_errors_fp yaERR_print_errors_fp
-#define ERR_error_string yaERR_error_string
-#define ERR_remove_state yaERR_remove_state
-#define ERR_get_error yaERR_get_error
-#define ERR_peek_error yaERR_peek_error
-#define ERR_GET_REASON yaERR_GET_REASON
-#define SSL_CTX_new yaSSL_CTX_new
-#define SSL_new yaSSL_new
-#define SSL_set_fd yaSSL_set_fd
-#define SSL_get_fd yaSSL_get_fd
-#define SSL_connect yaSSL_connect
-#define SSL_write yaSSL_write
-#define SSL_read yaSSL_read
-#define SSL_accept yaSSL_accept
-#define SSL_CTX_free yaSSL_CTX_free
-#define SSL_free yaSSL_free
-#define SSL_clear yaSSL_clear
-#define SSL_shutdown yaSSL_shutdown
-#define SSL_set_connect_state yaSSL_set_connect_state
-#define SSL_set_accept_state yaSSL_set_accept_state
-#define SSL_do_handshake yaSSL_do_handshake
-#define SSL_get_cipher yaSSL_get_cipher
-#define SSL_get_cipher_name yaSSL_get_cipher_name
-#define SSL_get_shared_ciphers yaSSL_get_shared_ciphers
-#define SSL_get_cipher_list yaSSL_get_cipher_list
-#define SSL_get_version yaSSL_get_version
-#define SSLeay_version yaSSLeay_version
-#define SSL_get_error yaSSL_get_error
-#define SSL_load_error_strings yaSSL_load_error_strings
-#define SSL_set_session yaSSL_set_session
-#define SSL_get_session yaSSL_get_session
-#define SSL_flush_sessions yaSSL_flush_sessions
-#define SSL_SESSION_set_timeout yaSSL_SESSION_set_timeout
-#define SSL_CTX_set_session_cache_mode yaSSL_CTX_set_session_cache_mode
-#define SSL_get_peer_certificate yaSSL_get_peer_certificate
-#define SSL_get_verify_result yaSSL_get_verify_result
-#define SSL_CTX_set_verify yaSSL_CTX_set_verify
-#define SSL_CTX_load_verify_locations yaSSL_CTX_load_verify_locations
-#define SSL_CTX_set_default_verify_paths yaSSL_CTX_set_default_verify_paths
-#define SSL_CTX_check_private_key yaSSL_CTX_check_private_key
-#define SSL_CTX_set_session_id_context yaSSL_CTX_set_session_id_context
-#define SSL_CTX_set_tmp_rsa_callback yaSSL_CTX_set_tmp_rsa_callback
-#define SSL_CTX_set_options yaSSL_CTX_set_options
-#define SSL_CTX_set_session_cache_mode yaSSL_CTX_set_session_cache_mode
-#define SSL_CTX_set_timeout yaSSL_CTX_set_timeout
-#define SSL_CTX_use_certificate_chain_file yaSSL_CTX_use_certificate_chain_file
-#define SSL_CTX_set_default_passwd_cb yaSSL_CTX_set_default_passwd_cb
-#define SSL_CTX_use_RSAPrivateKey_file yaSSL_CTX_use_RSAPrivateKey_file
-#define SSL_CTX_set_info_callback yaSSL_CTX_set_info_callback
-#define SSL_CTX_sess_accept yaSSL_CTX_sess_accept
-#define SSL_CTX_sess_connect yaSSL_CTX_sess_connect
-#define SSL_CTX_sess_accept_good yaSSL_CTX_sess_accept_good
-#define SSL_CTX_sess_connect_good yaSSL_CTX_sess_connect_good
-#define SSL_CTX_sess_accept_renegotiate yaSSL_CTX_sess_accept_renegotiate
-#define SSL_CTX_sess_connect_renegotiate yaSSL_CTX_sess_connect_renegotiate
-#define SSL_CTX_sess_hits yaSSL_CTX_sess_hits
-#define SSL_CTX_sess_cb_hits yaSSL_CTX_sess_cb_hits
-#define SSL_CTX_sess_cache_full yaSSL_CTX_sess_cache_full
-#define SSL_CTX_sess_misses yaSSL_CTX_sess_misses
-#define SSL_CTX_sess_timeouts yaSSL_CTX_sess_timeouts
-#define SSL_CTX_sess_number yaSSL_CTX_sess_number
-#define SSL_CTX_sess_get_cache_size yaSSL_CTX_sess_get_cache_size
-#define SSL_CTX_get_verify_mode yaSSL_CTX_get_verify_mode
-#define SSL_get_verify_mode yaSSL_get_verify_mode
-#define SSL_CTX_get_verify_depth yaSSL_CTX_get_verify_depth
-#define SSL_get_verify_depth yaSSL_get_verify_depth
-#define SSL_get_default_timeout yaSSL_get_default_timeout
-#define SSL_CTX_get_session_cache_mode yaSSL_CTX_get_session_cache_mode
-#define SSL_session_reused yaSSL_session_reused
-#define SSL_set_rfd yaSSL_set_rfd
-#define SSL_set_wfd yaSSL_set_wfd
-#define SSL_set_shutdown yaSSL_set_shutdown
-#define SSL_set_quiet_shutdown yaSSL_set_quiet_shutdown
-#define SSL_get_quiet_shutdown yaSSL_get_quiet_shutdown
-#define SSL_want_read yaSSL_want_read
-#define SSL_want_write yaSSL_want_write
-#define SSL_pending yaSSL_pending
-#define SSLv3_method yaSSLv3_method
-#define SSLv3_server_method yaSSLv3_server_method
-#define SSLv3_client_method yaSSLv3_client_method
-#define TLSv1_server_method yaTLSv1_server_method
-#define TLSv1_client_method yaTLSv1_client_method
-#define TLSv1_1_server_method yaTLSv1_1_server_method
-#define TLSv1_1_client_method yaTLSv1_1_client_method
-#define SSLv23_server_method yaSSLv23_server_method
-#define SSL_CTX_use_certificate_file yaSSL_CTX_use_certificate_file
-#define SSL_CTX_use_PrivateKey_file yaSSL_CTX_use_PrivateKey_file
-#define SSL_CTX_set_cipher_list yaSSL_CTX_set_cipher_list
-#define SSL_CTX_sess_set_cache_size yaSSL_CTX_sess_set_cache_size
-#define SSL_CTX_set_tmp_dh yaSSL_CTX_set_tmp_dh
-#define OpenSSL_add_all_algorithms yaOpenSSL_add_all_algorithms
-#define SSL_library_init yaSSL_library_init
-#define SSLeay_add_ssl_algorithms yaSSLeay_add_ssl_algorithms
-#define SSL_get_current_cipher yaSSL_get_current_cipher
-#define SSL_CIPHER_description yaSSL_CIPHER_description
-#define SSL_alert_type_string_long yaSSL_alert_type_string_long
-#define SSL_alert_desc_string_long yaSSL_alert_desc_string_long
-#define SSL_state_string_long yaSSL_state_string_long
-#define EVP_md5 yaEVP_md5
-#define EVP_des_ede3_cbc yaEVP_des_ede3_cbc
-#define EVP_BytesToKey yaEVP_BytesToKey
-#define DES_set_key_unchecked yaDES_set_key_unchecked
-#define DES_ede3_cbc_encrypt yaDES_ede3_cbc_encrypt
-#define RAND_screen yaRAND_screen
-#define RAND_file_name yaRAND_file_name
-#define RAND_write_file yaRAND_write_file
-#define RAND_load_file yaRAND_load_file
-#define RAND_status yaRAND_status
-#define RAND_bytes yaRAND_bytes
-#define DES_set_key yaDES_set_key
-#define DES_set_odd_parity yaDES_set_odd_parity
-#define DES_ecb_encrypt yaDES_ecb_encrypt
-#define SSL_CTX_set_default_passwd_cb_userdata yaSSL_CTX_set_default_passwd_cb_userdata
-#define SSL_SESSION_free yaSSL_SESSION_free
-#define SSL_peek yaSSL_peek
-#define SSL_get_certificate yaSSL_get_certificate
-#define SSL_get_privatekey yaSSL_get_privatekey
-#define X509_get_pubkey yaX509_get_pubkey
-#define EVP_PKEY_copy_parameters yaEVP_PKEY_copy_parameters
-#define EVP_PKEY_free yaEVP_PKEY_free
-#define ERR_error_string_n yaERR_error_string_n
-#define ERR_free_strings yaERR_free_strings
-#define EVP_cleanup yaEVP_cleanup
-#define X509_get_ext_d2i yaX509_get_ext_d2i
-#define GENERAL_NAMES_free yaGENERAL_NAMES_free
-#define sk_GENERAL_NAME_num yask_GENERAL_NAME_num
-#define sk_GENERAL_NAME_value yask_GENERAL_NAME_value
-#define ASN1_STRING_data yaASN1_STRING_data
-#define ASN1_STRING_length yaASN1_STRING_length
-#define ASN1_STRING_type yaASN1_STRING_type
-#define X509_NAME_get_index_by_NID yaX509_NAME_get_index_by_NID
-#define X509_NAME_ENTRY_get_data yaX509_NAME_ENTRY_get_data
-#define X509_NAME_get_entry yaX509_NAME_get_entry
-#define ASN1_STRING_to_UTF8 yaASN1_STRING_to_UTF8
-#define SSLv23_client_method yaSSLv23_client_method
-#define SSLv2_client_method yaSSLv2_client_method
-#define SSL_get1_session yaSSL_get1_session
-#define X509_get_notBefore yaX509_get_notBefore
-#define X509_get_notAfter yaX509_get_notAfter
-#define yaSSL_ASN1_TIME_to_string ya_SSL_ASN1_TIME_to_string
-#define MD4_Init yaMD4_Init
-#define MD4_Update yaMD4_Update
-#define MD4_Final yaMD4_Final
-#define MD5_Init yaMD5_Init
-#define MD5_Update yaMD5_Update
-#define MD5_Final yaMD5_Final
-#define SSL_set_compression yaSSL_set_compression
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/rand.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/rand.h
deleted file mode 100644
index 9e0cedf3..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/rand.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-   Copyright (C) 2005 MySQL AB
-   Use is subject to license terms
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* rand.h for openSSL */
-
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/rsa.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/rsa.h
deleted file mode 100644
index 95305a84..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/rsa.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-   Copyright (C) 2005, 2006 MySQL AB
-   Use is subject to license terms
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* rsa.h for openSSL */
-
-
-#ifndef yaSSL_rsa_h__
-#define yaSSL_rsa_h__
-
-enum { RSA_F4 = 1 };
-
-
-#endif /* yaSSL_rsa_h__ */
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/sha.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/sha.h
deleted file mode 100644
index 5b7c6bd2..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/sha.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-   Copyright (C) 2007 MySQL AB
-   Use is subject to license terms
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* sha.h  for openvpn */
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/ssl.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/ssl.h
deleted file mode 100644
index 3d5f7867..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/ssl.h
+++ /dev/null
@@ -1,565 +0,0 @@
-/*
-   Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
- */
-
-/*  ssl.h defines openssl compatibility layer 
- *
- */
-
-
-
-#ifndef yaSSL_openssl_h__
-#define yaSSL_openssl_h__
-
-#ifdef YASSL_PREFIX
-#include "prefix_ssl.h"
-#endif
-
-#include     /* ERR_print fp */
-#include "opensslv.h" /* for version number */
-#include "rsa.h"
-
-
-#define YASSL_VERSION "2.4.4"
-
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
- void yaSSL_CleanUp();   /* call once at end of application use to
-                            free static singleton memory holders,
-                            not a leak per se, but helpful when
-                            looking for them                      */
-
-#if defined(__cplusplus)
-} // extern
-#endif
-
-#if defined(__cplusplus) && !defined(YASSL_MYSQL_COMPATIBLE)
-namespace yaSSL {
-extern "C" {
-#endif
-
-#undef X509_NAME   /* wincrypt.h clash */
-
-#if defined(__cplusplus) && !defined(YASSL_MYSQL_COMPATIBLE)
-    class SSL;
-    class SSL_SESSION;
-    class SSL_METHOD;
-    class SSL_CTX;
-    class SSL_CIPHER;
-
-    class RSA;
-
-    class X509;
-    class X509_NAME;
-#else
-    typedef struct SSL          SSL;          
-    typedef struct SSL_SESSION  SSL_SESSION;
-    typedef struct SSL_METHOD   SSL_METHOD;
-    typedef struct SSL_CTX      SSL_CTX;
-    typedef struct SSL_CIPHER   SSL_CIPHER;
-
-    typedef struct RSA RSA;
-
-    typedef struct X509       X509;
-    typedef struct X509_NAME  X509_NAME;
-#endif
-
-
-/* Big Number stuff, different file? */
-typedef struct BIGNUM BIGNUM;
-
-BIGNUM *BN_bin2bn(const unsigned char*, int, BIGNUM*);
-
-
-/* Diffie-Hellman stuff, different file? */
-/* mySQL deferences to set group parameters */
-typedef struct DH {
-    BIGNUM* p;
-    BIGNUM* g;
-} DH;
-
-DH*  DH_new(void);
-void DH_free(DH*);
-
-/* RSA stuff */
-
-void RSA_free(RSA*);
-RSA* RSA_generate_key(int, unsigned long, void(*)(int, int, void*), void*);
-
-
-/* X509 stuff, different file? */
-
-/* because mySQL dereferences to use error and current_cert, even after calling
- * get functions for local references */
-typedef struct X509_STORE_CTX {
-    int   error;
-    int   error_depth;
-    X509* current_cert;
-} X509_STORE_CTX;
-
-
-typedef struct X509_STORE         X509_STORE;
-typedef struct X509_LOOKUP        X509_LOOKUP;
-typedef struct X509_OBJECT { char c; } X509_OBJECT;
-typedef struct X509_CRL           X509_CRL;
-typedef struct X509_REVOKED       X509_REVOKED;
-typedef struct X509_LOOKUP_METHOD X509_LOOKUP_METHOD;
-
-
-void X509_free(X509*);
-
-
-/* bio stuff */
-typedef struct BIO BIO;
-
-/* ASN stuff */
-
-
-
-X509* X509_STORE_CTX_get_current_cert(X509_STORE_CTX*);
-int   X509_STORE_CTX_get_error(X509_STORE_CTX*);
-int   X509_STORE_CTX_get_error_depth(X509_STORE_CTX*);
-
-char*       X509_NAME_oneline(X509_NAME*, char*, int);
-X509_NAME*  X509_get_issuer_name(X509*);
-X509_NAME*  X509_get_subject_name(X509*);
-const char* X509_verify_cert_error_string(long);
-
-int                 X509_LOOKUP_add_dir(X509_LOOKUP*, const char*, long);
-int                 X509_LOOKUP_load_file(X509_LOOKUP*, const char*, long);
-X509_LOOKUP_METHOD* X509_LOOKUP_hash_dir(void);
-X509_LOOKUP_METHOD* X509_LOOKUP_file(void);
-
-X509_LOOKUP* X509_STORE_add_lookup(X509_STORE*, X509_LOOKUP_METHOD*);
-X509_STORE*  X509_STORE_new(void);
-int          X509_STORE_get_by_subject(X509_STORE_CTX*, int, X509_NAME*,
-                                       X509_OBJECT*);
-
-
-
-
-enum { /* X509 Constants */
-    X509_V_OK                                 =  0,
-    X509_V_ERR_CERT_CHAIN_TOO_LONG            =  1,
-    X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT      =  2,
-    X509_V_ERR_CERT_NOT_YET_VALID             =  3,
-    X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD =  4,
-    X509_V_ERR_CERT_HAS_EXPIRED               =  5,
-    X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD  =  6,
-    X509_FILETYPE_PEM                         =  7,
-    X509_LU_X509                              =  8,
-    X509_LU_CRL                               =  9,
-    X509_V_ERR_CRL_SIGNATURE_FAILURE          = 10,
-    X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD = 11,
-    X509_V_ERR_CRL_HAS_EXPIRED                = 12,
-    X509_V_ERR_CERT_REVOKED                   = 13,
-    X509_V_FLAG_CRL_CHECK                     = 14,
-    X509_V_FLAG_CRL_CHECK_ALL                 = 15
-};
-
-
-/* Error stuff, could move to yassl_error */
-unsigned long ERR_get_error_line_data(const char**, int*, const char**, int *);
-void          ERR_print_errors_fp(FILE*);
-char*         ERR_error_string(unsigned long,char*);
-void          ERR_remove_state(unsigned long);
-unsigned long ERR_get_error(void);
-unsigned long ERR_peek_error(void);
-int           ERR_GET_REASON(int);
-
-
-enum {  /* ERR Constants */
-    ERR_TXT_STRING = 1,
-    EVP_R_BAD_DECRYPT = 2
-};
-
-/*
-  Allow type used by SSL_set_fd to be changed, default to int
-  in order to be compatible with OpenSSL
- */
-#ifndef YASSL_SOCKET_T_DEFINED
-typedef int YASSL_SOCKET_T;
-#endif
-
-SSL_CTX* SSL_CTX_new(SSL_METHOD*);
-SSL* SSL_new(SSL_CTX*);
-int  SSL_set_fd (SSL*, YASSL_SOCKET_T);
-YASSL_SOCKET_T SSL_get_fd(const SSL*);
-int  SSL_connect(SSL*);                    /* if you get an error from connect
-                                              see note at top of README       */
-int  SSL_write(SSL*, const void*, int);
-int  SSL_read(SSL*, void*, int);
-int  SSL_accept(SSL*);
-void SSL_CTX_free(SSL_CTX*);
-void SSL_free(SSL*);
-int  SSL_clear(SSL*);
-int  SSL_shutdown(SSL*);
-
-void SSL_set_connect_state(SSL*);
-void SSL_set_accept_state(SSL*);
-int  SSL_do_handshake(SSL*);
-
-const char* SSL_get_cipher(SSL*);
-const char* SSL_get_cipher_name(SSL*);	           /* uses SSL_get_cipher */
-char*       SSL_get_shared_ciphers(SSL*, char*, int);
-const char* SSL_get_cipher_list(SSL*, int);
-const char* SSL_get_version(SSL*);
-const char* SSLeay_version(int);
-
-int  SSL_get_error(SSL*, int);
-void SSL_load_error_strings(void);
-
-int          SSL_set_session(SSL *ssl, SSL_SESSION *session);
-SSL_SESSION* SSL_get_session(SSL* ssl);
-void         SSL_flush_sessions(SSL_CTX *ctx, long tm);
-long         SSL_SESSION_set_timeout(SSL_SESSION*, long);
-long         SSL_CTX_set_session_cache_mode(SSL_CTX* ctx, long mode);
-X509*        SSL_get_peer_certificate(SSL*);
-long         SSL_get_verify_result(SSL*);
-
-
-typedef int (*VerifyCallback)(int, X509_STORE_CTX*);
-typedef int (*pem_password_cb)(char*, int, int, void*);
-
-void SSL_CTX_set_verify(SSL_CTX*, int, VerifyCallback verify_callback);
-int  SSL_CTX_load_verify_locations(SSL_CTX*, const char*, const char*);
-int  SSL_CTX_set_default_verify_paths(SSL_CTX*);
-int  SSL_CTX_check_private_key(SSL_CTX*);
-int  SSL_CTX_set_session_id_context(SSL_CTX*, const unsigned char*,
-                                    unsigned int);
-
-void SSL_CTX_set_tmp_rsa_callback(SSL_CTX*, RSA*(*)(SSL*, int, int));
-long SSL_CTX_set_options(SSL_CTX*, long);
-long SSL_CTX_set_session_cache_mode(SSL_CTX*, long);
-long SSL_CTX_set_timeout(SSL_CTX*, long);
-int  SSL_CTX_use_certificate_chain_file(SSL_CTX*, const char*);
-void SSL_CTX_set_default_passwd_cb(SSL_CTX*, pem_password_cb);
-int  SSL_CTX_use_RSAPrivateKey_file(SSL_CTX*, const char*, int);
-void SSL_CTX_set_info_callback(SSL_CTX*, void (*)());
-
-long SSL_CTX_sess_accept(SSL_CTX*);
-long SSL_CTX_sess_connect(SSL_CTX*);
-long SSL_CTX_sess_accept_good(SSL_CTX*);
-long SSL_CTX_sess_connect_good(SSL_CTX*);
-long SSL_CTX_sess_accept_renegotiate(SSL_CTX*);
-long SSL_CTX_sess_connect_renegotiate(SSL_CTX*);
-long SSL_CTX_sess_hits(SSL_CTX*);
-long SSL_CTX_sess_cb_hits(SSL_CTX*);
-long SSL_CTX_sess_cache_full(SSL_CTX*);
-long SSL_CTX_sess_misses(SSL_CTX*);
-long SSL_CTX_sess_timeouts(SSL_CTX*);
-long SSL_CTX_sess_number(SSL_CTX*);
-long SSL_CTX_sess_get_cache_size(SSL_CTX*);
-
-int SSL_CTX_get_verify_mode(SSL_CTX*);
-int SSL_get_verify_mode(SSL*);
-int SSL_CTX_get_verify_depth(SSL_CTX*);
-int SSL_get_verify_depth(SSL*);
-
-long SSL_get_default_timeout(SSL*);
-long SSL_CTX_get_session_cache_mode(SSL_CTX*);
-int  SSL_session_reused(SSL*);
-
-int  SSL_set_rfd(SSL*, int);
-int  SSL_set_wfd(SSL*, int);
-void SSL_set_shutdown(SSL*, int);
-void SSL_set_quiet_shutdown(SSL *ssl,int mode);
-int SSL_get_quiet_shutdown(SSL *ssl);
-
-int SSL_want_read(SSL*);
-int SSL_want_write(SSL*);
-
-int SSL_pending(SSL*);
-
-
-enum { /* ssl Constants */
-    SSL_WOULD_BLOCK     = -8,
-    SSL_BAD_STAT        = -7,
-    SSL_BAD_PATH        = -6,
-    SSL_BAD_FILETYPE    = -5,
-    SSL_BAD_FILE        = -4,
-    SSL_NOT_IMPLEMENTED = -3,
-    SSL_UNKNOWN         = -2,
-    SSL_FATAL_ERROR     = -1,
-    SSL_NORMAL_SHUTDOWN =  0,
-    SSL_ERROR_NONE      =  0,   /* for most functions */
-    SSL_FAILURE         =  0,   /* for some functions */
-    SSL_SUCCESS	        =  1,
-
-    SSL_FILETYPE_ASN1    = 10,
-    SSL_FILETYPE_PEM     = 11,
-    SSL_FILETYPE_DEFAULT = 10, /* ASN1 */
-
-    SSL_VERIFY_NONE                 = 0,
-    SSL_VERIFY_PEER                 = 1,
-    SSL_VERIFY_FAIL_IF_NO_PEER_CERT = 2,
-    SSL_VERIFY_CLIENT_ONCE          = 4,
-
-    SSL_SESS_CACHE_OFF                = 30,
-    SSL_SESS_CACHE_CLIENT             = 31,
-    SSL_SESS_CACHE_SERVER             = 32,
-    SSL_SESS_CACHE_BOTH               = 33,
-    SSL_SESS_CACHE_NO_AUTO_CLEAR      = 34,
-    SSL_SESS_CACHE_NO_INTERNAL_LOOKUP = 35,
-
-    SSL_OP_MICROSOFT_SESS_ID_BUG            = 50,
-    SSL_OP_NETSCAPE_CHALLENGE_BUG           = 51,
-    SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG = 52,
-    SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG      = 53,
-    SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER       = 54,
-    SSL_OP_MSIE_SSLV2_RSA_PADDING           = 55,
-    SSL_OP_SSLEAY_080_CLIENT_DH_BUG         = 56,
-    SSL_OP_TLS_D5_BUG                       = 57,
-    SSL_OP_TLS_BLOCK_PADDING_BUG            = 58,
-    SSL_OP_TLS_ROLLBACK_BUG                 = 59,
-    SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS      = 60,
-    SSL_OP_ALL                              = 61,
-    SSL_OP_SINGLE_DH_USE                    = 62,
-    SSL_OP_EPHEMERAL_RSA                    = 63,
-    SSL_OP_NO_SSLv2                         = 64,
-    SSL_OP_NO_SSLv3                         = 65,
-    SSL_OP_NO_TLSv1                         = 66,
-    SSL_OP_PKCS1_CHECK_1                    = 67,
-    SSL_OP_PKCS1_CHECK_2                    = 68,
-    SSL_OP_NETSCAPE_CA_DN_BUG               = 69,
-    SSL_OP_NON_EXPORT_FIRST                 = 70,
-    SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG  = 71,
-
-    SSL_ERROR_WANT_READ        = 80,
-    SSL_ERROR_WANT_WRITE       = 81,
-    SSL_ERROR_SYSCALL          = 82,
-    SSL_ERROR_WANT_X509_LOOKUP = 83,
-    SSL_ERROR_ZERO_RETURN      = 84,
-    SSL_ERROR_SSL              = 85,
-
-    SSL_ST_CONNECT        = 90,
-    SSL_ST_ACCEPT         = 91,
-    SSL_CB_LOOP           = 92,
-    SSL_SENT_SHUTDOWN     = 93,
-    SSL_RECEIVED_SHUTDOWN = 94,
-    SSL_CB_ALERT          = 95,
-    SSL_CB_READ           = 96,
-    SSL_CB_HANDSHAKE_DONE = 97
-
-};
-
-
-SSL_METHOD *SSLv3_method(void);
-SSL_METHOD *SSLv3_server_method(void);
-SSL_METHOD *SSLv3_client_method(void);
-SSL_METHOD *TLSv1_server_method(void);
-SSL_METHOD *TLSv1_client_method(void);
-SSL_METHOD *TLSv1_1_server_method(void);
-SSL_METHOD *TLSv1_1_client_method(void);
-SSL_METHOD *SSLv23_server_method(void);
-
-int SSL_CTX_use_certificate_file(SSL_CTX*, const char*, int);
-int SSL_CTX_use_PrivateKey_file(SSL_CTX*, const char*, int);
-int SSL_CTX_set_cipher_list(SSL_CTX*, const char*);
-
-long SSL_CTX_sess_set_cache_size(SSL_CTX*, long);
-long SSL_CTX_set_tmp_dh(SSL_CTX*, DH*);
-
-void OpenSSL_add_all_algorithms(void);
-int  SSL_library_init();
-int  SSLeay_add_ssl_algorithms(void);
-
-
-SSL_CIPHER* SSL_get_current_cipher(SSL*);
-char*       SSL_CIPHER_description(SSL_CIPHER*, char*, int);
-
-
-char* SSL_alert_type_string_long(int);
-char* SSL_alert_desc_string_long(int);
-char* SSL_state_string_long(SSL*);
-
-
-/* EVP stuff, des and md5, different file? */
-typedef char EVP_MD;
-
-typedef char EVP_CIPHER;
-
-typedef struct EVP_PKEY EVP_PKEY;
-
-typedef unsigned char DES_cblock[8];
-typedef const  DES_cblock const_DES_cblock;
-typedef DES_cblock DES_key_schedule;
-                                                          
-enum {
-    DES_ENCRYPT = 1,
-    DES_DECRYPT = 0
-};
-                                                             
-const EVP_MD*     EVP_md5(void);
-const EVP_CIPHER* EVP_des_ede3_cbc(void);
-
-typedef unsigned char opaque;
-
-int EVP_BytesToKey(const EVP_CIPHER*, const EVP_MD*, const opaque*,
-                   const opaque*, int, int, opaque*, opaque*);
-
-void DES_set_key_unchecked(const_DES_cblock*, DES_key_schedule*);
-void DES_ede3_cbc_encrypt(const opaque*, opaque*, long, DES_key_schedule*,
-                        DES_key_schedule*, DES_key_schedule*, DES_cblock*, int);
-
-
-/* RAND stuff */
-void        RAND_screen(void);
-const char* RAND_file_name(char*, size_t);
-int         RAND_write_file(const char*);
-int         RAND_load_file(const char*, long);
-
-
-/* for libcurl */
-int  RAND_status(void);
-int  RAND_bytes(unsigned char* buf, int num);
-
-int  DES_set_key(const_DES_cblock*, DES_key_schedule*);
-void DES_set_odd_parity(DES_cblock*);
-void DES_ecb_encrypt(DES_cblock*, DES_cblock*, DES_key_schedule*, int);
-
-void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX*, void* userdata);
-void SSL_SESSION_free(SSL_SESSION* session);
-int  SSL_peek(SSL* ssl, void* buf, int num);
-
-X509*     SSL_get_certificate(SSL* ssl);
-EVP_PKEY* SSL_get_privatekey(SSL* ssl);
-EVP_PKEY* X509_get_pubkey(X509* x);
-
-int  EVP_PKEY_copy_parameters(EVP_PKEY* to, const EVP_PKEY* from);
-void EVP_PKEY_free(EVP_PKEY* pkey);
-void ERR_error_string_n(unsigned long e, char *buf, size_t len);
-void ERR_free_strings(void);
-void EVP_cleanup(void);
-
-void* X509_get_ext_d2i(X509* x, int nid, int* crit, int* idx);
-
-#define GEN_IPADD 7
-#define NID_subject_alt_name 85
-#define STACK_OF(x) x
-
-
-/* defined here because libcurl dereferences */
-typedef struct ASN1_STRING {
-    int type;
-    int length;
-    unsigned char* data;
-} ASN1_STRING;
-
-
-typedef struct GENERAL_NAME {
-    int type;
-    union {
-        ASN1_STRING* ia5;
-    } d;
-} GENERAL_NAME;
-
-void GENERAL_NAMES_free(STACK_OF(GENERAL_NAME) *x);
-
-int           sk_GENERAL_NAME_num(STACK_OF(GENERAL_NAME) *x);
-GENERAL_NAME* sk_GENERAL_NAME_value(STACK_OF(GENERAL_NAME) *x, int i);
-
-
-unsigned char* ASN1_STRING_data(ASN1_STRING* x);
-int            ASN1_STRING_length(ASN1_STRING* x);
-int            ASN1_STRING_type(ASN1_STRING *x);
-
-typedef ASN1_STRING X509_NAME_ENTRY;
-
-int X509_NAME_get_index_by_NID(X509_NAME* name,int nid, int lastpos);
-
-ASN1_STRING* X509_NAME_ENTRY_get_data(X509_NAME_ENTRY* ne);
-X509_NAME_ENTRY* X509_NAME_get_entry(X509_NAME* name, int loc);
-
-#define OPENSSL_malloc(x) malloc(x)
-#define OPENSSL_free(x)   free(x)
-
-int ASN1_STRING_to_UTF8(unsigned char** out, ASN1_STRING* in);
-
-SSL_METHOD* SSLv23_client_method(void);  /* doesn't actually roll back */
-SSL_METHOD* SSLv2_client_method(void);   /* will never work, no v 2    */
-
-
-SSL_SESSION* SSL_get1_session(SSL* ssl);  /* what's ref count */
-
-
-#define CRYPTO_free(x) free(x)
-#define ASN1_TIME ASN1_STRING
-
-ASN1_TIME* X509_get_notBefore(X509* x);
-ASN1_TIME* X509_get_notAfter(X509* x);
-
-
-#define ASN1_UTCTIME ASN1_STRING
-#define NID_commonName    13
-#define V_ASN1_UTF8STRING 12
-#define GEN_DNS            2
-
-#define CERTFICATE_ERROR 0x14090086  /* SSLv3 error */
-
-
-typedef struct MD4_CTX {
-    int buffer[32];      /* big enough to hold, check size in Init */
-} MD4_CTX;
-
-void MD4_Init(MD4_CTX*);
-void MD4_Update(MD4_CTX*, const void*, unsigned long);
-void MD4_Final(unsigned char*, MD4_CTX*);
-
-
-typedef struct MD5_CTX {
-    int buffer[32];       /* big enough to hold, check size in Init */
-} MD5_CTX;
-
-void MD5_Init(MD5_CTX*);
-void MD5_Update(MD5_CTX*, const void*, unsigned long);
-void MD5_Final(unsigned char*, MD5_CTX*);
-
-#define MD5_DIGEST_LENGTH 16
-
-
-#define SSL_DEFAULT_CIPHER_LIST ""   /* default all */
-
-
-/* yaSSL extensions */
-int SSL_set_compression(SSL*);   /* turn on yaSSL zlib compression */
-char *yaSSL_ASN1_TIME_to_string(ASN1_TIME *time, char *buf, size_t len);
-
-#include "transport_types.h"
-
-/*
-  Set functions for yaSSL to use in order to send and receive data.
-
-  These hooks are offered in order to enable non-blocking I/O. If
-  not set, yaSSL defaults to using send() and recv().
-
-  @todo Remove hooks and accompanying code when yaSSL is fixed.
-*/
-void yaSSL_transport_set_ptr(SSL *, void *);
-void yaSSL_transport_set_recv_function(SSL *, yaSSL_recv_func_t);
-void yaSSL_transport_set_send_function(SSL *, yaSSL_send_func_t);
-
-#if defined(__cplusplus) && !defined(YASSL_MYSQL_COMPATIBLE)
-}      /* namespace  */
-}      /* extern "C" */
-#endif
-
-
-#endif /* yaSSL_openssl_h__ */
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/transport_types.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/transport_types.h
deleted file mode 100644
index 5a9d234e..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/transport_types.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-   Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA 02110-1301  USA.
-*/
-
-#ifndef yaSSL_transport_types_h__
-#define yaSSL_transport_types_h__
-
-/* Type of transport functions used for sending and receiving data. */
-typedef long (*yaSSL_recv_func_t) (void *, void *, size_t);
-typedef long (*yaSSL_send_func_t) (void *, const void *, size_t);
-
-#endif
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/x509.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/x509.h
deleted file mode 100644
index 74eb83eb..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/x509.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-   Copyright (C) 2006 MySQL AB
-   Use is subject to license terms
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* x509.h  for libcurl */
diff --git a/mysql-wsrep-5.6/extra/yassl/include/openssl/x509v3.h b/mysql-wsrep-5.6/extra/yassl/include/openssl/x509v3.h
deleted file mode 100644
index b48e9b48..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/openssl/x509v3.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-   Copyright (C) 2006 MySQL AB
-   Use is subject to license terms
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* x509v3.h  for libcurl */
diff --git a/mysql-wsrep-5.6/extra/yassl/include/socket_wrapper.hpp b/mysql-wsrep-5.6/extra/yassl/include/socket_wrapper.hpp
deleted file mode 100644
index ec3ab6fc..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/socket_wrapper.hpp
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
-   Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
- */
-
-
-/* The socket wrapper header defines a Socket class that hides the differences
- * between Berkely style sockets and Windows sockets, allowing transparent TCP
- * access.
- */
-
-
-#ifndef yaSSL_SOCKET_WRAPPER_HPP
-#define yaSSL_SOCKET_WRAPPER_HPP
-
-
-#ifdef _WIN32
-    #include 
-#else 
-    #include 
-    #include 
-    #include 
-    #include 
-    #include 
-    #include 
-#endif
-
-
-namespace yaSSL {
-
-typedef unsigned int uint;
-
-#ifdef _WIN32
-    typedef SOCKET socket_t;
-#else
-    typedef int socket_t;
-    const socket_t INVALID_SOCKET = -1;
-    const int SD_RECEIVE   = 0;
-    const int SD_SEND      = 1;
-    const int SD_BOTH      = 2;
-    const int SOCKET_ERROR = -1;
-#endif
-
-  extern "C" {
-    #include "openssl/transport_types.h"
-  }
-
-typedef unsigned char byte;
-
-
-// Wraps Windows Sockets and BSD Sockets
-class Socket {
-    socket_t socket_;                    // underlying socket descriptor
-    bool     wouldBlock_;                // if non-blocking data, for last read 
-    bool     nonBlocking_;               // is option set
-    void     *ptr_;                      // Argument to transport function
-    yaSSL_send_func_t send_func_;        // Function to send data
-    yaSSL_recv_func_t recv_func_;        // Function to receive data
-public:
-    explicit Socket(socket_t s = INVALID_SOCKET);
-    ~Socket();
-
-    void     set_fd(socket_t s);
-    uint     get_ready() const;
-    socket_t get_fd()    const;
-
-    void set_transport_ptr(void *ptr);
-    void set_transport_recv_function(yaSSL_recv_func_t recv_func);
-    void set_transport_send_function(yaSSL_send_func_t send_func);
-
-    uint send(const byte* buf, unsigned int len, unsigned int& sent);
-    uint receive(byte* buf, unsigned int len);
-
-    bool wait();
-    bool WouldBlock() const;
-    bool IsNonBlocking() const;
-
-    void closeSocket();
-    void shutDown(int how = SD_SEND);
-
-    static int  get_lastError();
-    static void set_lastError(int error);
-private:
-    Socket(const Socket&);              // hide copy
-    Socket& operator= (const Socket&);  // and assign
-};
-
-
-} // naemspace
-
-#endif // yaSSL_SOCKET_WRAPPER_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/include/timer.hpp b/mysql-wsrep-5.6/extra/yassl/include/timer.hpp
deleted file mode 100644
index 0d99603b..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/timer.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* timer.hpp provides a high res and low res timers
- *
-*/
-
-
-#ifndef yaSSL_TIMER_HPP
-#define yaSSL_TIMER_HPP
-
-namespace yaSSL {
-
-typedef double       timer_d;
-typedef unsigned int uint;
-
-
-
-timer_d timer();
-uint    lowResTimer();
-
-
-
-} // namespace
-#endif // yaSSL_TIMER_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/include/yassl.hpp b/mysql-wsrep-5.6/extra/yassl/include/yassl.hpp
deleted file mode 100644
index 081d6538..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/yassl.hpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* yaSSL externel header defines yaSSL API
- */
-
-
-#ifndef yaSSL_EXT_HPP
-#define yaSSL_EXT_HPP
-
-
-namespace yaSSL {
-
-
-#ifdef _WIN32
-    typedef unsigned int SOCKET_T;
-#else
-    typedef int          SOCKET_T;
-#endif
-
-
-class Client {
-public:
-    Client();
-    ~Client();
-
-    // basics
-    int Connect(SOCKET_T);
-    int Write(const void*, int);
-    int Read(void*, int);
-
-    // options
-    void SetCA(const char*);
-    void SetCert(const char*);
-    void SetKey(const char*);
-private:
-    struct ClientImpl;
-    ClientImpl* pimpl_;
-
-    Client(const Client&);              // hide copy
-    Client& operator=(const Client&);   // and assign  
-};
-
-
-class Server {
-public:
-    Server();
-    ~Server();
-
-    // basics
-    int Accept(SOCKET_T);
-    int Write(const void*, int);
-    int Read(void*, int);
-
-    // options
-    void SetCA(const char*);
-    void SetCert(const char*);
-    void SetKey(const char*);
-private:
-    struct ServerImpl;
-    ServerImpl* pimpl_;
-
-    Server(const Server&);              // hide copy
-    Server& operator=(const Server&);   // and assign
-};
-
-
-} // namespace yaSSL
-#endif // yaSSL_EXT_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/include/yassl_error.hpp b/mysql-wsrep-5.6/extra/yassl/include/yassl_error.hpp
deleted file mode 100644
index d63244dc..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/yassl_error.hpp
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
-   Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* yaSSL error header defines error codes and an exception class
- */
-
-#ifndef yaSSL_ERROR_HPP
-#define yaSSL_ERROR_HPP
-
-
-
-namespace yaSSL {
-
-
-enum YasslError {
-    no_error            = 0,
-
-    // 10 - 47 from AlertDescription, 0 also close_notify
-
-    range_error         = 101,
-    realloc_error       = 102,
-    factory_error       = 103,
-    unknown_cipher      = 104,
-    prefix_error        = 105,
-    record_layer        = 106,
-    handshake_layer     = 107,
-    out_of_order        = 108,
-    bad_input           = 109,
-    match_error         = 110,
-    no_key_file         = 111,
-    verify_error        = 112,
-    send_error          = 113,
-    receive_error       = 114,
-    certificate_error   = 115,
-    privateKey_error    = 116,
-    badVersion_error    = 117,
-    compress_error      = 118,
-    decompress_error    = 119,
-    pms_version_error   = 120,
-    sanityCipher_error  = 121,
-    rsaSignFault_error  = 122
-
-    // !!!! add error message to .cpp !!!!
-
-    // 1000+ from TaoCrypt error.hpp
-
-};
-
-
-enum Library { yaSSL_Lib = 0, CryptoLib, SocketLib };
-enum { MAX_ERROR_SZ = 80 };
-
-void SetErrorString(YasslError, char*);
-
-/* remove for now, if go back to exceptions use this wrapper
-// Base class for all yaSSL exceptions
-class Error : public mySTL::runtime_error {
-    YasslError  error_;
-    Library     lib_;
-public:
-    explicit Error(const char* s = "", YasslError e = no_error,
-                   Library l = yaSSL_Lib);
-
-    YasslError  get_number() const;
-    Library     get_lib()    const;
-};
-*/
-
-
-} // naemspace
-
-#endif // yaSSL_ERROR_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/include/yassl_imp.hpp b/mysql-wsrep-5.6/extra/yassl/include/yassl_imp.hpp
deleted file mode 100644
index a952da0d..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/yassl_imp.hpp
+++ /dev/null
@@ -1,748 +0,0 @@
-/*
-   Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/*  yaSSL implementation header defines all strucutres from the SSL.v3 
- *  specification "draft-freier-ssl-version3-02.txt"
- *  all page citations refer to this document unless otherwise noted.
- */
-
-
-#ifndef yaSSL_IMP_HPP
-#define yaSSL_IMP_HPP
-
-#ifdef _MSC_VER
-    // disable truncated debug symbols
-    #pragma warning(disable:4786)
-#endif
-
-#include "yassl_types.hpp"
-#include "factory.hpp"
-#include STL_LIST_FILE
-
-
-namespace STL = STL_NAMESPACE;
-
-
-namespace yaSSL {
-
-
-class SSL;              // forward decls
-class input_buffer;
-class output_buffer;
-
-
-struct ProtocolVersion {
-    uint8 major_;
-    uint8 minor_;     // major and minor SSL/TLS version numbers
-
-    ProtocolVersion(uint8 maj = 3, uint8 min = 0);
-};
-
-
-// Record Layer Header for PlainText, Compressed, and CipherText
-struct RecordLayerHeader {
-    ContentType     type_;
-    ProtocolVersion version_;
-    uint16          length_;             // should not exceed 2^14
-};
-
-
-// base for all messages
-struct Message : public virtual_base {
-    virtual input_buffer& set(input_buffer&) =0;   
-    virtual output_buffer& get(output_buffer&) const =0;
-
-    virtual void Process(input_buffer&, SSL&) =0;
-    virtual ContentType get_type() const =0;
-    virtual uint16      get_length() const =0;
-
-    virtual ~Message() {}
-};
-
-
-class ChangeCipherSpec : public Message {
-    CipherChoice type_;
-public:
-    ChangeCipherSpec();
-
-    friend input_buffer& operator>>(input_buffer&, ChangeCipherSpec&);
-    friend output_buffer& operator<<(output_buffer&, const ChangeCipherSpec&);
-
-    input_buffer& set(input_buffer& in);
-    output_buffer& get(output_buffer& out) const;
-
-    ContentType get_type()   const;
-    uint16      get_length() const;
-    void Process(input_buffer&, SSL&);
-private:
-    ChangeCipherSpec(const ChangeCipherSpec&);            // hide copy
-    ChangeCipherSpec& operator=(const ChangeCipherSpec&); // and assign
-};
-
-
-
-class Alert : public Message {
-    AlertLevel       level_;
-    AlertDescription description_;
-public:
-    Alert() {}
-    Alert(AlertLevel al, AlertDescription ad);
-
-    ContentType get_type()   const;
-    uint16      get_length() const;
-    void Process(input_buffer&, SSL&);
-
-    friend input_buffer& operator>>(input_buffer&, Alert&);
-    friend output_buffer& operator<<(output_buffer&, const Alert&);
-   
-    input_buffer& set(input_buffer& in);
-    output_buffer& get(output_buffer& out) const;
-private:
-    Alert(const Alert&);            // hide copy
-    Alert& operator=(const Alert&); // and assign
-};
-
-
-class Data : public Message {
-    uint16        length_;
-    opaque*       buffer_;         // read  buffer used by fillData input
-    const opaque* write_buffer_;   // write buffer used by output operator
-public:
-    Data();
-    Data(uint16 len, opaque* b);
-
-    friend output_buffer& operator<<(output_buffer&, const Data&);
-
-    input_buffer& set(input_buffer& in);
-    output_buffer& get(output_buffer& out) const;
-
-    ContentType   get_type()     const;
-    uint16        get_length()   const;
-    void          set_length(uint16 l);
-    opaque*       set_buffer();
-    void          SetData(uint16, const opaque*);
-    void Process(input_buffer&, SSL&);
-private:
-    Data(const Data&);            // hide copy
-    Data& operator=(const Data&); // and assign
-};
-
-
-uint32 c24to32(const uint24);       // forward form internal header
-void   c32to24(uint32, uint24&);
-
-
-// HandShake header, same for each message type from page 20/21
-class HandShakeHeader : public Message {
-    HandShakeType      type_;
-    uint24             length_;      // length of message
-public:
-    HandShakeHeader() {}
-
-    ContentType   get_type()   const;
-    uint16        get_length() const;
-    HandShakeType get_handshakeType() const;
-    void Process(input_buffer&, SSL&);
-
-    void set_type(HandShakeType hst);
-    void set_length(uint32 u32);
-
-    friend input_buffer& operator>>(input_buffer&, HandShakeHeader&);
-    friend output_buffer& operator<<(output_buffer&, const HandShakeHeader&);
-
-    input_buffer& set(input_buffer& in);
-    output_buffer& get(output_buffer& out) const;
-private:
-    HandShakeHeader(const HandShakeHeader&);            // hide copy
-    HandShakeHeader& operator=(const HandShakeHeader&); // and assign
-};
-
-
-// Base Class for all handshake messages
-class HandShakeBase : public virtual_base {
-    int     length_;
-public:
-    int     get_length() const;
-    void    set_length(int);
-
-    // for building buffer's type field
-    virtual HandShakeType get_type() const =0;                
-
-    // handles dispactch of proper >>
-    virtual input_buffer&  set(input_buffer& in) =0;
-    virtual output_buffer& get(output_buffer& out) const =0;
-
-    virtual void Process(input_buffer&, SSL&) =0;
-
-    virtual ~HandShakeBase() {}
-};
-
-
-struct HelloRequest : public HandShakeBase {
-    input_buffer&  set(input_buffer& in);
-    output_buffer& get(output_buffer& out) const;
-
-    void Process(input_buffer&, SSL&);
-
-    HandShakeType get_type() const;
-};
-
-
-// The Client's Hello Message from page 23
-class ClientHello : public HandShakeBase {
-    ProtocolVersion     client_version_;
-    Random              random_;
-    uint8               id_len_;                         // session id length
-    opaque              session_id_[ID_LEN];
-    uint16              suite_len_;                      // cipher suite length
-    opaque              cipher_suites_[MAX_SUITE_SZ];
-    uint8               comp_len_;                       // compression length
-    CompressionMethod   compression_methods_;  
-public:
-    friend input_buffer&  operator>>(input_buffer&, ClientHello&);
-    friend output_buffer& operator<<(output_buffer&, const ClientHello&);
-  
-    input_buffer&  set(input_buffer& in);
-    output_buffer& get(output_buffer& out) const;
-
-    HandShakeType  get_type() const;
-    void Process(input_buffer&, SSL&);
-
-    const opaque* get_random() const;
-    friend void buildClientHello(SSL&, ClientHello&);
-    friend void ProcessOldClientHello(input_buffer& input, SSL& ssl);
-
-    ClientHello();
-    ClientHello(ProtocolVersion pv, bool useCompression);
-private:
-    ClientHello(const ClientHello&);            // hide copy
-    ClientHello& operator=(const ClientHello&); // and assign
-};
-
-
-
-// The Server's Hello Message from page 24
-class ServerHello : public HandShakeBase {
-    ProtocolVersion     server_version_;
-    Random              random_;
-    uint8               id_len_;                 // session id length
-    opaque              session_id_[ID_LEN];
-    opaque              cipher_suite_[SUITE_LEN];
-    CompressionMethod   compression_method_;
-public:
-    ServerHello(ProtocolVersion pv, bool useCompression);
-    ServerHello();
-          
-    friend input_buffer&  operator>>(input_buffer&, ServerHello&);
-    friend output_buffer& operator<<(output_buffer&, const ServerHello&);
-   
-    input_buffer&  set(input_buffer& in);
-    output_buffer& get(output_buffer& out) const;
-
-    HandShakeType  get_type() const;
-    void Process(input_buffer&, SSL&);
-
-    const opaque* get_random() const;
-    friend void buildServerHello(SSL&, ServerHello&);
-private:
-    ServerHello(const ServerHello&);            // hide copy
-    ServerHello& operator=(const ServerHello&); // and assign
-};
-
-
-class x509;  
-
-// Certificate could be a chain
-class Certificate : public HandShakeBase {
-    const x509* cert_;
-public:
-    Certificate();
-    explicit Certificate(const x509* cert); 
-    friend output_buffer& operator<<(output_buffer&, const Certificate&);
-
-    const opaque* get_buffer() const;
-  
-    // Process handles input, needs SSL
-    input_buffer&  set(input_buffer& in);
-    output_buffer& get(output_buffer& out) const;
-
-    HandShakeType get_type() const;
-    void Process(input_buffer&, SSL&);
-private:
-    Certificate(const Certificate&);            // hide copy
-    Certificate& operator=(const Certificate&); // and assign
-};
-
-
-
-// RSA Public Key
-struct ServerRSAParams {
-    opaque* rsa_modulus_;
-    opaque* rsa_exponent_;
-};
-
-
-// Ephemeral Diffie-Hellman Parameters
-class ServerDHParams {
-    int pSz_;
-    int gSz_;
-    int pubSz_;
-    opaque* p_;
-    opaque* g_;
-    opaque* Ys_;
-public:
-    ServerDHParams();
-    ~ServerDHParams();
-
-    int get_pSize()   const;
-    int get_gSize()   const;
-    int get_pubSize() const;
-
-    const opaque* get_p()   const;
-    const opaque* get_g()   const;
-    const opaque* get_pub() const;
-
-    opaque* alloc_p(int sz);
-    opaque* alloc_g(int sz);
-    opaque* alloc_pub(int sz);
-private:
-    ServerDHParams(const ServerDHParams&);            // hide copy
-    ServerDHParams& operator=(const ServerDHParams&); // and assign
-};
-
-
-struct ServerKeyBase : public virtual_base {
-    virtual ~ServerKeyBase() {}
-    virtual void build(SSL&) {}
-    virtual void read(SSL&, input_buffer&) {}
-    virtual int  get_length() const;     
-    virtual opaque* get_serverKey() const;
-};
-
-
-// Server random number for FORTEZZA KEA
-struct Fortezza_Server : public ServerKeyBase {
-    opaque r_s_[FORTEZZA_MAX];
-};
-
-
-struct SignatureBase : public virtual_base {
-    virtual ~SignatureBase() {}
-};
-
-struct anonymous_sa : public SignatureBase {};
-
-
-struct Hashes {
-    uint8 md5_[MD5_LEN];
-    uint8 sha_[SHA_LEN];
-};
-    
-
-struct rsa_sa : public SignatureBase {
-    Hashes hashes_;
-};
-
-
-struct dsa_sa : public SignatureBase {
-    uint8 sha_[SHA_LEN];
-};
-
-
-// Server's Diffie-Hellman exchange
-class DH_Server : public ServerKeyBase {
-    ServerDHParams  parms_;
-    opaque*         signature_;
-
-    int             length_;                // total length of message
-    opaque*         keyMessage_;            // total exchange message
-public:
-    DH_Server();
-    ~DH_Server();
-
-    void build(SSL&);
-    void read(SSL&, input_buffer&);
-    int  get_length() const;
-    opaque* get_serverKey() const;
-private:
-    DH_Server(const DH_Server&);            // hide copy
-    DH_Server& operator=(const DH_Server&); // and assign
-};
-
-
-// Server's RSA exchange
-struct RSA_Server : public ServerKeyBase {
-    ServerRSAParams params_;
-    opaque*         signature_;   // signed rsa_sa hashes
-};
-
-
-class ServerKeyExchange : public HandShakeBase {
-    ServerKeyBase* server_key_;
-public:
-    explicit ServerKeyExchange(SSL&);
-    ServerKeyExchange();
-    ~ServerKeyExchange();
-
-    void createKey(SSL&);
-    void build(SSL& ssl);
-   
-    const opaque* getKey()       const;
-    int           getKeyLength() const;
-
-    input_buffer&  set(input_buffer& in);
-    output_buffer& get(output_buffer& out) const;
-
-    friend output_buffer& operator<<(output_buffer&, const ServerKeyExchange&);
-
-    void Process(input_buffer&, SSL&);
-    HandShakeType get_type() const;
-private:
-    ServerKeyExchange(const ServerKeyExchange&);            // hide copy
-    ServerKeyExchange& operator=(const ServerKeyExchange&); // and assign
-};
-
-
-
-class CertificateRequest : public HandShakeBase  {
-    ClientCertificateType         certificate_types_[CERT_TYPES];
-    int                           typeTotal_;
-    STL::list  certificate_authorities_;
-public:
-    CertificateRequest();
-    ~CertificateRequest();
-
-    input_buffer&  set(input_buffer& in);
-    output_buffer& get(output_buffer& out) const;
-
-    friend input_buffer&  operator>>(input_buffer&, CertificateRequest&);
-    friend output_buffer& operator<<(output_buffer&,
-                                     const CertificateRequest&);
-
-    void Process(input_buffer&, SSL&);
-    HandShakeType get_type() const;
-
-    void Build();
-private:
-    CertificateRequest(const CertificateRequest&);              // hide copy
-    CertificateRequest& operator=(const CertificateRequest&);   // and assign
-};
-
-
-struct ServerHelloDone : public HandShakeBase {
-    ServerHelloDone();
-    input_buffer&  set(input_buffer& in);
-    output_buffer& get(output_buffer& out) const;
-
-    void Process(input_buffer& input, SSL& ssl);
-
-    HandShakeType get_type() const;
-};
-
-
-struct PreMasterSecret {
-    opaque  random_[SECRET_LEN];     // first two bytes Protocol Version
-};
-
-
-struct ClientKeyBase : public virtual_base {
-    virtual ~ClientKeyBase() {}
-    virtual void build(SSL&) {}
-    virtual void read(SSL&, input_buffer&) {}
-    virtual int  get_length() const;
-    virtual opaque* get_clientKey() const;
-};
-
-
-class EncryptedPreMasterSecret : public ClientKeyBase {
-    opaque* secret_;
-    int     length_;
-public:
-    EncryptedPreMasterSecret();
-    ~EncryptedPreMasterSecret();
-
-    void    build(SSL&);
-    void    read(SSL&, input_buffer&);
-    int     get_length()    const;
-    opaque* get_clientKey() const;
-    void    alloc(int sz);
-private:
-    // hide copy and assign
-    EncryptedPreMasterSecret(const EncryptedPreMasterSecret&);           
-    EncryptedPreMasterSecret& operator=(const EncryptedPreMasterSecret&);
-};
-
-
-// Fortezza Key Parameters from page 29
-// hard code lengths cause only used here
-struct FortezzaKeys : public ClientKeyBase {
-    opaque  y_c_                      [128];    // client's Yc, public value
-    opaque  r_c_                      [128];    // client's Rc
-    opaque  y_signature_              [40];     // DSS signed public key
-    opaque  wrapped_client_write_key_ [12];     // wrapped by the TEK
-    opaque  wrapped_server_write_key_ [12];     // wrapped by the TEK
-    opaque  client_write_iv_          [24];      
-    opaque  server_write_iv_          [24];
-    opaque  master_secret_iv_         [24];     // IV used to encrypt preMaster
-    opaque  encrypted_preMasterSecret_[48];     // random & crypted by the TEK
-};
-
-
-
-// Diffie-Hellman public key from page 40/41
-class  ClientDiffieHellmanPublic : public ClientKeyBase {
-    PublicValueEncoding public_value_encoding_;
-    int     length_;    // includes two byte length for message
-    opaque* Yc_;        // length + Yc_
-    // dh_Yc only if explicit, otherwise sent in certificate
-    enum { KEY_OFFSET = 2 };
-public:
-    ClientDiffieHellmanPublic();
-    ~ClientDiffieHellmanPublic();
-
-    void    build(SSL&);
-    void    read(SSL&, input_buffer&);
-    int     get_length()    const;
-    opaque* get_clientKey() const;
-    void    alloc(int sz, bool offset = false);
-private:
-    // hide copy and assign
-    ClientDiffieHellmanPublic(const ClientDiffieHellmanPublic&);
-    ClientDiffieHellmanPublic& operator=(const ClientDiffieHellmanPublic&);
-};
-
-
-class ClientKeyExchange : public HandShakeBase {
-    ClientKeyBase*  client_key_;
-public:
-    explicit ClientKeyExchange(SSL& ssl);
-    ClientKeyExchange();
-    ~ClientKeyExchange();
-
-    void createKey(SSL&);
-    void build(SSL& ssl);
-   
-    const opaque* getKey()       const;
-    int           getKeyLength() const;
-
-    friend output_buffer& operator<<(output_buffer&, const ClientKeyExchange&);
-   
-    input_buffer&  set(input_buffer& in);
-    output_buffer& get(output_buffer& out) const;
-
-    HandShakeType  get_type() const;
-    void Process(input_buffer&, SSL&);
-private:
-    ClientKeyExchange(const ClientKeyExchange&);            // hide copy
-    ClientKeyExchange& operator=(const ClientKeyExchange&); // and assign
-};
-
-
-class CertificateVerify : public HandShakeBase {
-    Hashes             hashes_;
-    byte*              signature_;  // owns
-public:
-    CertificateVerify();
-    ~CertificateVerify();
-
-    input_buffer&  set(input_buffer& in);
-    output_buffer& get(output_buffer& out) const;
-
-    friend input_buffer&  operator>>(input_buffer&, CertificateVerify&);
-    friend output_buffer& operator<<(output_buffer&, const CertificateVerify&);
-
-    void Process(input_buffer&, SSL&);
-    HandShakeType get_type() const;
-
-    void Build(SSL&);
-private:
-    CertificateVerify(const CertificateVerify&);              // hide copy
-    CertificateVerify& operator=(const CertificateVerify&);   // and assign
-};
-
-
-class Finished : public HandShakeBase {
-    Hashes hashes_;
-public:
-    Finished();
-
-    uint8* set_md5();
-    uint8* set_sha();
-
-    friend input_buffer& operator>>(input_buffer&, Finished&);
-    friend output_buffer& operator<<(output_buffer&, const Finished&);
-
-    input_buffer&  set(input_buffer& in);
-    output_buffer& get(output_buffer& out) const;
-
-    void Process(input_buffer&, SSL&);
-
-    HandShakeType get_type() const;
-private:
-    Finished(const Finished&);            // hide copy
-    Finished& operator=(const Finished&); // and assign
-};
-
-
-class RandomPool;  // forward for connection
-
-
-// SSL Connection defined on page 11
-struct Connection {
-    opaque          *pre_master_secret_;
-    opaque          master_secret_[SECRET_LEN];
-    opaque          client_random_[RAN_LEN];
-    opaque          server_random_[RAN_LEN];
-    opaque          sessionID_[ID_LEN];
-    opaque          client_write_MAC_secret_[SHA_LEN]; // sha  is max size
-    opaque          server_write_MAC_secret_[SHA_LEN];
-    opaque          client_write_key_[AES_256_KEY_SZ]; // aes 256bit is max sz
-    opaque          server_write_key_[AES_256_KEY_SZ];
-    opaque          client_write_IV_[AES_IV_SZ];       // aes is max size
-    opaque          server_write_IV_[AES_IV_SZ];
-    uint32          sequence_number_;
-    uint32          peer_sequence_number_;
-    uint32          pre_secret_len_;                   // pre master length
-    bool            send_server_key_;                  // server key exchange?
-    bool            master_clean_;                     // master secret clean?
-    bool            TLS_;                              // TLSv1 or greater
-    bool            TLSv1_1_;                          // TLSv1.1 or greater
-    bool            sessionID_Set_;                    // do we have a session
-    bool            compression_;                      // zlib compression?
-    ProtocolVersion version_;                          // negotiated version
-    ProtocolVersion chVersion_;                        // client hello version
-    RandomPool&     random_;
-
-    Connection(ProtocolVersion v, RandomPool& ran);
-    ~Connection();
-
-    void AllocPreSecret(uint sz);
-    void CleanPreMaster();
-    void CleanMaster();
-    void TurnOffTLS();
-    void TurnOffTLS1_1();
-private:
-    Connection(const Connection&);              // hide copy
-    Connection& operator=(const Connection&);   // and assign
-};
-
-
-struct Ciphers;   // forward
-
-
-// TLSv1 Security Spec, defined on page 56 of RFC 2246
-struct Parameters {
-    ConnectionEnd        entity_;
-    BulkCipherAlgorithm  bulk_cipher_algorithm_;
-    CipherType           cipher_type_;
-    uint8                key_size_;
-    uint8                iv_size_;
-    IsExportable         is_exportable_;
-    MACAlgorithm         mac_algorithm_;
-    uint8                hash_size_;
-    CompressionMethod    compression_algorithm_;
-    KeyExchangeAlgorithm kea_;                        // yassl additions
-    SignatureAlgorithm   sig_algo_;                   // signature auth type
-    SignatureAlgorithm   verify_algo_;                // cert verify auth type
-    bool                 pending_;                  
-    bool                 resumable_;                  // new conns by session
-    uint16               encrypt_size_;               // current msg encrypt sz
-    Cipher               suite_[SUITE_LEN];           // choosen suite
-    uint8                suites_size_;
-    Cipher               suites_[MAX_SUITE_SZ];
-    char                 cipher_name_[MAX_SUITE_NAME];
-    char                 cipher_list_[MAX_CIPHERS][MAX_SUITE_NAME];
-    bool                 removeDH_;                   // for server's later use
-
-    Parameters(ConnectionEnd, const Ciphers&, ProtocolVersion, bool haveDH);
-
-    void SetSuites(ProtocolVersion pv, bool removeDH = false,
-                   bool removeRSA = false, bool removeDSA = false);
-    void SetCipherNames();
-private:
-    Parameters(const Parameters&);              // hide copy
-    Parameters& operator=(const Parameters&);   // and assing
-};
-
-
-input_buffer&  operator>>(input_buffer&,  RecordLayerHeader&);
-output_buffer& operator<<(output_buffer&, const RecordLayerHeader&);
-
-input_buffer&  operator>>(input_buffer&,  Message&);
-output_buffer& operator<<(output_buffer&, const Message&);
-
-input_buffer&  operator>>(input_buffer&,  HandShakeBase&);
-output_buffer& operator<<(output_buffer&, const HandShakeBase&);
-
-
-// Message Factory definition
-// uses the ContentType enumeration for unique id
-typedef Factory MessageFactory;
-void    InitMessageFactory(MessageFactory&);     // registers derived classes
-
-// HandShake Factory definition
-// uses the HandShakeType enumeration for unique id
-typedef Factory HandShakeFactory;  
-void    InitHandShakeFactory(HandShakeFactory&); // registers derived classes
-
-// ServerKey Factory definition
-// uses KeyExchangeAlgorithm enumeration for unique  id
-typedef Factory ServerKeyFactory;
-void    InitServerKeyFactory(ServerKeyFactory&);
-
-// ClientKey Factory definition
-// uses KeyExchangeAlgorithm enumeration for unique  id
-typedef Factory ClientKeyFactory;
-void    InitClientKeyFactory(ClientKeyFactory&);
-
-
-// Message Creators
-Message* CreateHandShake();
-Message* CreateCipherSpec();
-Message* CreateAlert();
-Message* CreateData();
-
-
-// HandShake Creators
-HandShakeBase* CreateCertificate();
-HandShakeBase* CreateHelloRequest();
-HandShakeBase* CreateClientHello();
-HandShakeBase* CreateServerHello();
-HandShakeBase* CreateServerKeyExchange();
-HandShakeBase* CreateCertificateRequest();
-HandShakeBase* CreateServerHelloDone();
-HandShakeBase* CreateClientKeyExchange();
-HandShakeBase* CreateCertificateVerify();
-HandShakeBase* CreateFinished();
-
-
-// ServerKey Exchange Creators
-ServerKeyBase* CreateRSAServerKEA();
-ServerKeyBase* CreateDHServerKEA();
-ServerKeyBase* CreateFortezzaServerKEA();
-
-// ClientKey Exchange Creators
-ClientKeyBase* CreateRSAClient();
-ClientKeyBase* CreateDHClient();
-ClientKeyBase* CreateFortezzaClient();
-
-
-
-} // naemspace
-
-#endif // yaSSL_IMP_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/include/yassl_int.hpp b/mysql-wsrep-5.6/extra/yassl/include/yassl_int.hpp
deleted file mode 100644
index 986e5b0c..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/yassl_int.hpp
+++ /dev/null
@@ -1,725 +0,0 @@
-/*
-   Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* yaSSL internal header defines SSL supporting types not specified in the
- * draft along with type conversion functions and openssl compatibility
- */
-
-
-#ifndef yaSSL_INT_HPP
-#define yaSSL_INT_HPP
-
-#include "yassl_imp.hpp"
-#include "yassl_error.hpp"
-#include "crypto_wrapper.hpp"
-#include "cert_wrapper.hpp"
-#include "log.hpp"
-#include "lock.hpp"
-#include "openssl/ssl.h"  // ASN1_STRING and DH
-
-// Check if _POSIX_THREADS should be forced
-#if !defined(_POSIX_THREADS) && defined(__hpux)
-// HPUX does not define _POSIX_THREADS as it's not _fully_ implemented
-#define _POSIX_THREADS
-#endif
-
-#ifdef _POSIX_THREADS
-    #include 
-#endif
-
-
-namespace STL = STL_NAMESPACE;
-
-
-namespace yaSSL {
-
-
-// State Machine for Record Layer Protocol
-enum RecordLayerState {
-    recordNotReady = 0,         // fatal error, no more processing
-    recordReady
-};
-
-
-// State Machine for HandShake Protocol
-enum HandShakeState {
-    handShakeNotReady = 0,      // fatal error, no more processing
-    preHandshake,               // initial state
-    inHandshake,                // handshake started
-    handShakeReady              // handshake done
-};
-
-
-// client input HandShake state, use if HandShakeState == inHandShake
-enum ClientState {
-    serverNull = 0,
-    serverHelloComplete,
-    serverCertComplete,
-    serverKeyExchangeComplete,
-    serverHelloDoneComplete,
-    serverFinishedComplete	
-};
-
-
-// server input HandShake state, use if HandShakeState == inHandShake
-enum ServerState {
-    clientNull = 0,
-    clientHelloComplete,
-    clientKeyExchangeComplete,
-    clientFinishedComplete        
-};
-
-
-// client connect state for nonblocking restart
-enum ConnectState {
-    CONNECT_BEGIN = 0,
-    CLIENT_HELLO_SENT,
-    FIRST_REPLY_DONE,
-    FINISHED_DONE,
-    SECOND_REPLY_DONE
-};
-
-
-// server accpet state for nonblocking restart
-enum AcceptState {
-    ACCEPT_BEGIN = 0,
-    ACCEPT_FIRST_REPLY_DONE,
-    SERVER_HELLO_DONE,
-    ACCEPT_SECOND_REPLY_DONE,
-    ACCEPT_FINISHED_DONE,
-    ACCEPT_THIRD_REPLY_DONE
-};
-
-
-// track received messages to explicitly disallow duplicate messages
-struct RecvdMessages {
-    uint8 gotClientHello_;
-    uint8 gotServerHello_;
-    uint8 gotCert_;
-    uint8 gotServerKeyExchange_;
-    uint8 gotCertRequest_;
-    uint8 gotServerHelloDone_;
-    uint8 gotCertVerify_;
-    uint8 gotClientKeyExchange_;
-    uint8 gotFinished_;
-    RecvdMessages() : gotClientHello_(0), gotServerHello_(0), gotCert_(0),
-                      gotServerKeyExchange_(0), gotCertRequest_(0),
-                      gotServerHelloDone_(0), gotCertVerify_(0),
-                      gotClientKeyExchange_(0), gotFinished_(0)
-                    {} 
-};
-
-
-// combines all states
-class States {
-    RecordLayerState recordLayer_;
-    HandShakeState   handshakeLayer_;
-    ClientState      clientState_;
-    ServerState      serverState_;
-    ConnectState     connectState_;
-    AcceptState      acceptState_;
-    RecvdMessages    recvdMessages_;
-    char             errorString_[MAX_ERROR_SZ];
-    YasslError       what_;
-public:
-    States();
-
-    const RecordLayerState& getRecord()    const;
-    const HandShakeState&   getHandShake() const;
-    const ClientState&      getClient()    const;
-    const ServerState&      getServer()    const;
-    const ConnectState&     GetConnect()   const;
-    const AcceptState&      GetAccept()    const;
-    const char*             getString()    const;
-          YasslError        What()         const;
-
-    RecordLayerState& useRecord();
-    HandShakeState&   useHandShake();
-    ClientState&      useClient();
-    ServerState&      useServer();
-    ConnectState&     UseConnect();
-    AcceptState&      UseAccept();
-    char*             useString();
-    void              SetError(YasslError);
-    int               SetMessageRecvd(HandShakeType);
-private:
-    States(const States&);              // hide copy
-    States& operator=(const States&);   // and assign
-};
-
-
-// holds all factories
-class sslFactory {
-    MessageFactory      messageFactory_;        // creates new messages by type
-    HandShakeFactory    handShakeFactory_;      // creates new handshake types
-    ServerKeyFactory    serverKeyFactory_;      // creates new server key types
-    ClientKeyFactory    clientKeyFactory_;      // creates new client key types
-
-    sslFactory();                               // only GetSSL_Factory creates
-public:
-    const MessageFactory&   getMessage()   const;
-    const HandShakeFactory& getHandShake() const;
-    const ServerKeyFactory& getServerKey() const;
-    const ClientKeyFactory& getClientKey() const;
-
-    friend sslFactory& GetSSL_Factory();        // singleton creator
-private:
-    sslFactory(const sslFactory&);              // hide copy
-    sslFactory& operator=(const sslFactory&);   // and assign   
-};
-
-
-#undef X509_NAME  // wincrypt.h clash
-
-// openSSL X509 names
-class X509_NAME {
-    char*       name_;
-    size_t      sz_;
-    int         cnPosition_;   // start of common name, -1 is none
-    int         cnLen_;        // length of above
-    ASN1_STRING entry_;
-public:
-    X509_NAME(const char*, size_t sz, int pos, int len);
-    ~X509_NAME();
-
-    const char*  GetName() const;
-    ASN1_STRING* GetEntry(int i);
-    size_t       GetLength() const;
-    int          GetCnPosition() const { return cnPosition_; }
-    int          GetCnLength()   const { return cnLen_; }
-
-private:
-    X509_NAME(const X509_NAME&);                // hide copy
-    X509_NAME& operator=(const X509_NAME&);     // and assign
-};
-
-
-class StringHolder {
-    ASN1_STRING  asnString_;
-public:
-    StringHolder(const char* str, int sz, byte type= 0);
-    ~StringHolder();
-
-    ASN1_STRING* GetString();
-private:
-    StringHolder(const StringHolder&);                // hide copy
-    StringHolder& operator=(const StringHolder&);     // and assign
-};
-
-
-// openSSL X509
-class X509 {
-    X509_NAME issuer_;
-    X509_NAME subject_;
-    StringHolder beforeDate_;   // not valid before
-    StringHolder afterDate_;    // not valid after
-public:
-    X509(const char* i, size_t, const char* s, size_t,
-         ASN1_STRING *b, ASN1_STRING *a, int, int, int, int);
-    ~X509() {}
-
-    X509_NAME* GetIssuer();
-    X509_NAME* GetSubject();
-
-    ASN1_STRING* GetBefore();
-    ASN1_STRING* GetAfter();
-
-private:
-    X509(const X509&);              // hide copy
-    X509& operator=(const X509&);   // and assign
-};
-
-
-// openSSL bignum
-struct BIGNUM {
-    /*
-      gcc 2.96 fix: because of two Integer classes (yaSSL::Integer and
-      TaoCrypt::Integer), we need to explicitly state the namespace
-      here to let gcc 2.96 deduce the correct type.
-    */
-    yaSSL::Integer int_;
-    void assign(const byte* b, uint s) { int_.assign(b,s); }
-};
-
-
-// openSSL session
-class SSL_SESSION {
-    opaque      sessionID_[ID_LEN];
-    opaque      master_secret_[SECRET_LEN];
-    Cipher      suite_[SUITE_LEN];
-    uint        bornOn_;                        // create time in seconds
-    uint        timeout_;                       // timeout in seconds
-    RandomPool& random_;                        // will clean master secret
-    X509*       peerX509_;
-public:
-    explicit SSL_SESSION(RandomPool&);
-    SSL_SESSION(const SSL&, RandomPool&);
-    ~SSL_SESSION();
-
-    const opaque* GetID()       const;
-    const opaque* GetSecret()   const;
-    const Cipher* GetSuite()    const;
-          uint    GetBornOn()   const;
-          uint    GetTimeOut()  const;
-          X509*   GetPeerX509() const;
-          void    SetTimeOut(uint);
-
-    SSL_SESSION& operator=(const SSL_SESSION&); // allow assign for resumption
-private:
-    SSL_SESSION(const SSL_SESSION&);            // hide copy
-
-    void CopyX509(X509*);
-};
-
-
-// holds all sessions
-class Sessions {
-    STL::list list_;
-    RandomPool random_;                 // for session cleaning
-    Mutex      mutex_;                  // no-op for single threaded
-    int        count_;                  // flush counter
-
-    Sessions() : count_(0) {}           // only GetSessions can create
-public: 
-    SSL_SESSION* lookup(const opaque*, SSL_SESSION* copy = 0);
-    void         add(const SSL&);
-    void         remove(const opaque*);
-    void         Flush();
-
-    ~Sessions();
-
-    friend void Session_initialize();
-    friend Sessions& GetSessions(); // singleton creator
-private:
-    Sessions(const Sessions&);              // hide copy
-    Sessions& operator=(const Sessions&);   // and assign
-};
-
-
-#ifdef _POSIX_THREADS
-    typedef pthread_t THREAD_ID_T;
-#else
-    typedef DWORD     THREAD_ID_T;
-#endif
-
-// thread error data
-struct ThreadError {
-    THREAD_ID_T threadID_;
-    int         errorID_;
-};
-
-
-// holds all errors
-class Errors {
-    STL::list list_;
-    Mutex                  mutex_;
-
-    Errors() {}                         // only GetErrors can create
-public:
-    int  Lookup(bool peek);             // self lookup
-    void Add(int);              
-    void Remove();                      // remove self
-
-    ~Errors() {}
-
-    friend Errors& GetErrors(); // singleton creator
-private:
-    Errors(const Errors&);              // hide copy
-    Errors& operator=(const Errors);    // and assign
-};
-
-
-Sessions&   GetSessions();      // forward singletons
-sslFactory& GetSSL_Factory();
-Errors&     GetErrors();
-
-
-// openSSL method and context types
-class SSL_METHOD {
-    ProtocolVersion version_;
-    ConnectionEnd   side_;
-    bool            verifyPeer_;    // request or send certificate
-    bool            verifyNone_;    // whether to verify certificate
-    bool            failNoCert_;
-    bool            multipleProtocol_;  // for SSLv23 compatibility
-public:
-    SSL_METHOD(ConnectionEnd ce, ProtocolVersion pv,
-               bool multipleProtocol = false);
-
-    ProtocolVersion getVersion() const;
-    ConnectionEnd   getSide()    const;
-
-    void setVerifyPeer();
-    void setVerifyNone();
-    void setFailNoCert();
-
-    bool verifyPeer() const;
-    bool verifyNone() const;
-    bool failNoCert() const;
-    bool multipleProtocol() const;
-private:
-    SSL_METHOD(const SSL_METHOD&);              // hide copy
-    SSL_METHOD& operator=(const SSL_METHOD&);   // and assign
-};
-
-
-struct Ciphers {
-    bool        setSuites_;             // user set suites from default
-    byte        suites_[MAX_SUITE_SZ];  // new suites
-    int         suiteSz_;               // suite length in bytes
-
-    Ciphers() : setSuites_(false), suiteSz_(0) {}
-};
-
-
-struct DH;  // forward
-
-
-// save for SSL construction
-struct DH_Parms {
-    Integer p_;
-    Integer g_;
-    bool set_;   // if set by user
-
-    DH_Parms() : set_(false) {}
-};
-
-
-enum StatsField { 
-    Accept, Connect, AcceptGood, ConnectGood, AcceptRenegotiate,
-    ConnectRenegotiate, Hits, CbHits, CacheFull, Misses, Timeouts, Number,
-    GetCacheSize, VerifyMode, VerifyDepth 
-};
-
-
-// SSL stats
-struct Stats {
-    long accept_;
-    long connect_;
-    long acceptGood_;
-    long connectGood_;
-    long acceptRenegotiate_;
-    long connectRenegotiate_;
-
-    long hits_;
-    long cbHits_;
-    long cacheFull_;
-    long misses_;
-    long timeouts_;
-    long number_;
-    long getCacheSize_;
-
-    int verifyMode_;
-    int verifyDepth_;
-public:
-    Stats() : accept_(0), connect_(0), acceptGood_(0), connectGood_(0),
-        acceptRenegotiate_(0), connectRenegotiate_(0), hits_(0), cbHits_(0),
-        cacheFull_(0), misses_(0), timeouts_(0), number_(0), getCacheSize_(0),
-        verifyMode_(0), verifyDepth_(0)
-    {}
-private:
-    Stats(const Stats&);            // hide copy
-    Stats& operator=(const Stats&); // and assign
-};
-
-
-// the SSL context
-class SSL_CTX {
-public:
-    typedef STL::list CertList;
-private:
-    SSL_METHOD*     method_;
-    x509*           certificate_;
-    x509*           privateKey_;
-    CertList        caList_;
-    Ciphers         ciphers_;
-    DH_Parms        dhParms_;
-    pem_password_cb passwordCb_;
-    void*           userData_;
-    bool            sessionCacheOff_;
-    bool            sessionCacheFlushOff_;
-    Stats           stats_;
-    Mutex           mutex_;         // for Stats
-    VerifyCallback  verifyCallback_;
-public:
-    explicit SSL_CTX(SSL_METHOD* meth);
-    ~SSL_CTX();
-
-    const x509*       getCert()       const;
-    const x509*       getKey()        const;
-    const SSL_METHOD* getMethod()     const;
-    const Ciphers&    GetCiphers()    const;
-    const DH_Parms&   GetDH_Parms()   const;
-    const Stats&      GetStats()      const;
-    const VerifyCallback getVerifyCallback() const;
-    pem_password_cb   GetPasswordCb() const;
-          void*       GetUserData()   const;
-          bool        GetSessionCacheOff()      const;
-          bool        GetSessionCacheFlushOff() const;
-
-    void setVerifyPeer();
-    void setVerifyNone();
-    void setFailNoCert();
-    void setVerifyCallback(VerifyCallback);
-    bool SetCipherList(const char*);
-    bool SetDH(const DH&);
-    void SetPasswordCb(pem_password_cb cb);
-    void SetUserData(void*);
-    void SetSessionCacheOff();
-    void SetSessionCacheFlushOff();
-   
-    void            IncrementStats(StatsField);
-    void            AddCA(x509* ca);
-    const CertList& GetCA_List() const;
-
-    friend int read_file(SSL_CTX*, const char*, int, CertType);
-private:
-    SSL_CTX(const SSL_CTX&);            // hide copy
-    SSL_CTX& operator=(const SSL_CTX&); // and assign
-};
-
-
-// holds all cryptographic types
-class Crypto {
-    Digest*             digest_;                // agreed upon digest
-    BulkCipher*         cipher_;                // agreed upon cipher
-    DiffieHellman*      dh_;                    // dh parms
-    RandomPool          random_;                // random number generator
-    CertManager         cert_;                  // manages certificates
-public:
-    explicit Crypto();
-    ~Crypto();
-
-    const Digest&        get_digest()      const;
-    const BulkCipher&    get_cipher()      const;
-    const DiffieHellman& get_dh()          const;
-    const RandomPool&    get_random()      const;
-    const CertManager&   get_certManager() const;
-          
-    Digest&        use_digest();
-    BulkCipher&    use_cipher();
-    DiffieHellman& use_dh();
-    RandomPool&    use_random();
-    CertManager&   use_certManager();
-
-    void SetDH(DiffieHellman*);
-    void SetDH(const DH_Parms&);
-    void setDigest(Digest*);
-    void setCipher(BulkCipher*);
-
-    bool DhSet();
-private:
-    Crypto(const Crypto&);              // hide copy
-    Crypto& operator=(const Crypto&);   // and assign
-};
-
-
-// holds all handshake and verify hashes
-class sslHashes {
-    MD5       md5HandShake_;          // md5 handshake hash
-    SHA       shaHandShake_;          // sha handshake hash
-    Finished  verify_;                // peer's verify hash
-    Hashes    certVerify_;            // peer's cert verify hash
-public:
-    sslHashes() {}
-
-    const MD5&      get_MD5()        const;
-    const SHA&      get_SHA()        const;
-    const Finished& get_verify()     const;
-    const Hashes&   get_certVerify() const;
-
-    MD5&      use_MD5();
-    SHA&      use_SHA();
-    Finished& use_verify();
-    Hashes&   use_certVerify();
-private:
-    sslHashes(const sslHashes&);             // hide copy
-    sslHashes& operator=(const sslHashes&); // and assign
-};
-
-
-// holds input and output buffers
-class Buffers {
-public: 
-    typedef STL::list  inputList;
-    typedef STL::list outputList;
-    int prevSent;     // previous plain text bytes sent when got WANT_WRITE
-    int plainSz;      // plain text bytes in buffer to send when got WANT_WRITE 
-private:
-    inputList      dataList_;             // list of users app data / handshake
-    outputList     handShakeList_;        // buffered handshake msgs
-    input_buffer*  rawInput_;             // buffered raw input yet to process
-    output_buffer* output_;               // WANT_WRITE buffered output 
-public:
-    Buffers();
-    ~Buffers();
-
-    const inputList&  getData()      const;
-    const outputList& getHandShake() const;
-
-    inputList&  useData();
-    outputList& useHandShake();
-
-    void           SetRawInput(input_buffer*);  // takes ownership
-    input_buffer*  TakeRawInput();              // takes ownership 
-    void           SetOutput(output_buffer*);   // takes ownership
-    output_buffer* TakeOutput();                // takes ownership 
-private:
-    Buffers(const Buffers&);             // hide copy
-    Buffers& operator=(const Buffers&);  // and assign   
-};
-
-
-// wraps security parameters
-class Security {
-    Connection    conn_;                          // connection information
-    Parameters    parms_;                         // may be pending
-    SSL_SESSION   resumeSession_;                 // if resuming
-    SSL_CTX*      ctx_;                           // context used to init
-    bool          resuming_;                      // trying to resume
-public:
-    Security(ProtocolVersion, RandomPool&, ConnectionEnd, const Ciphers&,
-             SSL_CTX*, bool);
-
-    const SSL_CTX*     GetContext()     const;
-    const Connection&  get_connection() const;
-    const Parameters&  get_parms()      const;
-    const SSL_SESSION& get_resume()     const;
-          bool         get_resuming()   const;
-
-    Connection&  use_connection();
-    Parameters&  use_parms();
-    SSL_SESSION& use_resume();
-
-    void set_resuming(bool b);
-private:
-    Security(const Security&);              // hide copy
-    Security& operator=(const Security&);   // and assign
-};
-
-
-// THE SSL type
-class SSL {
-    Crypto              crypto_;                // agreed crypto agents
-    Security            secure_;                // Connection and Session parms
-    States              states_;                // Record and HandShake states
-    sslHashes           hashes_;                // handshake, finished hashes
-    Socket              socket_;                // socket wrapper
-    Buffers             buffers_;               // buffered handshakes and data
-    Log                 log_;                   // logger
-    bool                quietShutdown_;
-
-    // optimization variables
-    bool                has_data_;              // buffered data ready?
-public:
-    SSL(SSL_CTX* ctx);
-
-    // gets and uses
-    const Crypto&     getCrypto()   const;
-    const Security&   getSecurity() const;
-    const States&     getStates()   const;
-    const sslHashes&  getHashes()   const;
-    const sslFactory& getFactory()  const;
-    const Socket&     getSocket()   const;
-          YasslError  GetError()    const;
-          bool        GetMultiProtocol() const;
-          bool        CompressionOn()    const;
-
-    Crypto&    useCrypto();
-    Security&  useSecurity();
-    States&    useStates();
-    sslHashes& useHashes();
-    Socket&    useSocket();
-    Log&       useLog();
-    Buffers&   useBuffers();
-
-    bool       HasData() const;
-    bool       GetQuietShutdown() const;
-
-    // sets
-    void set_pending(Cipher suite);
-    void set_random(const opaque*, ConnectionEnd);
-    void set_sessionID(const opaque*);
-    void set_session(SSL_SESSION*);
-    void set_preMaster(const opaque*, uint);
-    void set_masterSecret(const opaque*);
-    void SetError(YasslError);
-    int  SetCompression();
-    void UnSetCompression();
-    void SetQuietShutdown(bool mode);
-
-    // helpers
-    bool isTLS() const;
-    bool isTLSv1_1() const;
-    void order_error();
-    void makeMasterSecret();
-    void makeTLSMasterSecret();
-    void addData(input_buffer* data);
-    void fillData(Data&);
-    void PeekData(Data&);
-    void addBuffer(output_buffer* b);
-    void flushBuffer();
-    void verifyState(const RecordLayerHeader&);
-    void verifyState(const HandShakeHeader&);
-    void verifyState(ClientState);
-    void verifyState(ServerState);
-    void verfiyHandShakeComplete();
-    void matchSuite(const opaque*, uint length);
-    void deriveKeys();
-    void deriveTLSKeys();
-    void Send(const byte*, uint);
-    void SendWriteBuffered();
-
-    uint bufferedData();
-    uint get_SEQIncrement(bool);
-
-    const  byte*  get_macSecret(bool);
-private:
-    void storeKeys(const opaque*);
-    void setKeys();
-    void verifyClientState(HandShakeType);
-    void verifyServerState(HandShakeType);
-
-    SSL(const SSL&);                    // hide copy
-    const SSL& operator=(const SSL&);   // and assign
-};
-
-
-// compression
-int Compress(const byte*, int, input_buffer&);
-int DeCompress(input_buffer&, int, input_buffer&);
-
-
-// conversion functions
-void c32to24(uint32, uint24&);
-void c24to32(const uint24, uint32&);
-
-uint32 c24to32(const uint24);
-
-void ato16(const opaque*, uint16&);
-void ato24(const opaque*, uint24&);
-
-void c16toa(uint16, opaque*);
-void c24toa(const uint24, opaque*);
-void c32toa(uint32 u32, opaque*);
-
-
-} // naemspace
-
-#endif // yaSSL_INT_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/include/yassl_types.hpp b/mysql-wsrep-5.6/extra/yassl/include/yassl_types.hpp
deleted file mode 100644
index 129661c5..00000000
--- a/mysql-wsrep-5.6/extra/yassl/include/yassl_types.hpp
+++ /dev/null
@@ -1,540 +0,0 @@
-/*
-   Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/*  yaSSL types  header defines all constants, enums, and typedefs
- *  from the SSL.v3 specification "draft-freier-ssl-version3-02.txt"
- */
-
-
-#ifndef yaSSL_TYPES_HPP
-#define yaSSL_TYPES_HPP
-
-#include 
-#include "type_traits.hpp"
-
-
-#ifdef _MSC_VER
-    // disable conversion warning
-    // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy
-    #pragma warning(disable:4244 4996)
-#endif
-
-
-#ifdef _MSC_VER
-    // disable conversion warning
-    // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy
-    #pragma warning(disable:4244 4996)
-#endif
-
-
-namespace yaSSL {
-
-#define YASSL_LIB
-
-
-#ifdef YASSL_PURE_C
-
-    // library allocation
-    struct new_t {};      // yaSSL New type
-    extern new_t ys;      // pass in parameter
-
-    } // namespace yaSSL
-
-    void* operator new  (size_t, yaSSL::new_t);
-    void* operator new[](size_t, yaSSL::new_t);
-
-    void operator delete  (void*, yaSSL::new_t);
-    void operator delete[](void*, yaSSL::new_t);
-
-
-    namespace yaSSL {
-
-
-    template
-    void ysDelete(T* ptr)
-    {
-        if (ptr) ptr->~T();
-        ::operator delete(ptr, yaSSL::ys);
-    }
-
-    template
-    void ysArrayDelete(T* ptr)
-    {
-        // can't do array placement destruction since not tracking size in
-        // allocation, only allow builtins to use array placement since they
-        // don't need destructors called
-        typedef char builtin[TaoCrypt::IsFundamentalType::Yes ? 1 : -1];
-        (void)sizeof(builtin);
-
-        ::operator delete[](ptr, yaSSL::ys);
-    }
-
-    #define NEW_YS new (yaSSL::ys)
-
-    // to resolve compiler generated operator delete on base classes with
-    // virtual destructors (when on stack)
-    class virtual_base {
-    public:
-        static void operator delete(void*) { }
-    };
-
-
-#else   // YASSL_PURE_C
-
-
-    template
-    void ysDelete(T* ptr)
-    {
-        delete ptr;
-    }
-
-    template
-    void ysArrayDelete(T* ptr)
-    {
-        delete[] ptr;
-    }
-
-    #define NEW_YS new
-
-    class virtual_base {};
-
-
-
-#endif // YASSL_PURE_C
-
-
-typedef unsigned char  uint8;
-typedef unsigned short uint16;
-typedef unsigned int   uint32;
-typedef uint8          uint24[3];
-typedef uint32         uint64[2];
-
-typedef uint8  opaque;
-typedef opaque byte;
-
-typedef unsigned int uint;
-
-
-#ifdef USE_SYS_STL
-    // use system STL
-    #define STL_VECTOR_FILE    
-    #define STL_LIST_FILE      
-    #define STL_ALGORITHM_FILE 
-    #define STL_MEMORY_FILE    
-    #define STL_PAIR_FILE      
-    
-    #define STL_NAMESPACE       std
-#else
-    // use mySTL
-    #define STL_VECTOR_FILE    "vector.hpp"
-    #define STL_LIST_FILE      "list.hpp"
-    #define STL_ALGORITHM_FILE "algorithm.hpp"
-    #define STL_MEMORY_FILE    "memory.hpp"
-    #define STL_PAIR_FILE      "pair.hpp"
-
-    #define STL_NAMESPACE       mySTL
-#endif
-
-
-#ifdef min
-    #undef min
-#endif 
-
-template 
-T min(T a, T b)
-{
-    return a < b ? a : b;
-}
-
-
- 
-// all length constants in bytes
-const int ID_LEN            =  32;  // session id length
-const int SUITE_LEN         =   2;  // cipher suite length
-const int SECRET_LEN        =  48;  // pre RSA and all master secret length
-const int MASTER_ROUNDS     =   3;  // master secret derivation rounds
-const int RAN_LEN           =  32;  // client and server random length
-const int MAC_BLOCK_SZ      =  64;  // MAC block size, & padding
-const int MD5_LEN           =  16;  // MD5 digest length
-const int SHA_LEN           =  20;  // SHA digest length
-const int RMD_LEN           =  20;  // RIPEMD-160 digest length
-const int PREFIX            =   3;  // up to 3 prefix letters for secret rounds
-const int KEY_PREFIX        =   7;  // up to 7 prefix letters for key rounds
-const int FORTEZZA_MAX      = 128;  // Maximum Fortezza Key length
-const int MAX_SUITE_SZ      = 128;  // 64 max suites * sizeof(suite)
-const int MAX_SUITE_NAME    =  48;  // max length of suite name
-const int MAX_CIPHERS       =  32;  // max supported ciphers for cipher list
-const int SIZEOF_ENUM       =   1;  // SSL considers an enum 1 byte, not 4
-const int SIZEOF_SENDER     =   4;  // Sender constant, for finished generation
-const int PAD_MD5           =  48;  // pad length 1 and 2 for md5 finished
-const int PAD_SHA           =  40;  // should be 44, specd wrong by netscape
-const int PAD_RMD           =  44;  // pad length for RIPEMD-160, some use 40??
-const int CERT_HEADER       =   3;  // always use 3 bytes for certificate
-const int CERT_TYPES        =   7;  // certificate request types
-const int REQUEST_HEADER    =   2;  // request uses 2 bytes
-const int VERIFY_HEADER     =   2;  // verify length field
-const int MIN_CERT_TYPES    =   1;  // minimum certificate request types
-const int MIN_DIS_NAMES     =   3;  // minimum distinguished names
-const int MIN_DIS_SIZE      =   1;  // minimum distinguished name size
-const int RECORD_HEADER     =   5;  // type + version + length(2)
-const int HANDSHAKE_HEADER  =   4;  // type + length(3)
-const int FINISHED_SZ       = MD5_LEN + SHA_LEN; // sizeof finished data
-const int TLS_FINISHED_SZ   =  12;  // TLS verify data size
-const int SEQ_SZ            =   8;  // 64 bit sequence number
-const int LENGTH_SZ         =   2;  // length field for HMAC, data only
-const int VERSION_SZ        = SIZEOF_ENUM * 2;  // SSL/TLS length of version
-const int DES_KEY_SZ        =   8;  // DES Key length
-const int DES_EDE_KEY_SZ    =  24;  // DES EDE Key length
-const int DES_BLOCK         =   8;  // DES is always fixed block size 8
-const int DES_IV_SZ         = DES_BLOCK;    // Init Vector length for DES
-const int RC4_KEY_SZ        =  16;  // RC4 Key length
-const int AES_128_KEY_SZ    =  16;  // AES 128bit Key length
-const int AES_192_KEY_SZ    =  24;  // AES 192bit Key length
-const int AES_256_KEY_SZ    =  32;  // AES 256bit Key length
-const int AES_BLOCK_SZ      =  16;  // AES 128bit block size, rfc 3268
-const int AES_IV_SZ         = AES_BLOCK_SZ; // AES Init Vector length
-const int DSS_SIG_SZ        =  40;  // two 20 byte high byte first Integers
-const int DSS_ENCODED_EXTRA =   6;  // seqID + len(1) + (intID + len(1)) * 2
-const int EVP_SALT_SZ       =   8;
-const int MASTER_LABEL_SZ   =  13;  // TLS master secret label size
-const int KEY_LABEL_SZ      =  13;  // TLS key block expansion size
-const int FINISHED_LABEL_SZ =  15;  // TLS finished lable length
-const int SEED_LEN          = RAN_LEN * 2; // TLS seed, client + server random
-const int DEFAULT_TIMEOUT   = 500;  // Default Session timeout in seconds
-const int MAX_RECORD_SIZE   = 16384; // 2^14, max size by standard
-const int COMPRESS_EXTRA    = 1024;  // extra compression possible addition
-const int SESSION_FLUSH_COUNT = 256;  // when to flush session cache
-const int MAX_PAD_SIZE        = 256;  // max TLS padding size
-const int COMPRESS_CONSTANT   =  13;  // compression calculation constant
-const int COMPRESS_UPPER      =  55;  // compression calculation numerator
-const int COMPRESS_LOWER      =  64;  // compression calculation denominator
-const int COMPRESS_DUMMY_SIZE =  64;  // compression dummy round size 
-
-typedef uint8 Cipher;             // first byte is always 0x00 for SSLv3 & TLS
-
-typedef opaque Random[RAN_LEN];
-
-typedef opaque* DistinguishedName;
-
-typedef bool IsExportable;
-
-
-enum CompressionMethod { no_compression = 0, zlib = 221 };
-
-enum CipherType { stream, block };
-
-enum CipherChoice { change_cipher_spec_choice = 1 };
-
-enum PublicValueEncoding { implicit_encoding, explicit_encoding };
-
-enum ConnectionEnd { server_end, client_end };
-
-enum AlertLevel { warning = 1, fatal = 2 };
-
-
-
-// Record Layer Header identifier from page 12
-enum ContentType {
-    no_type            = 0,
-    change_cipher_spec = 20, 
-    alert              = 21, 
-    handshake          = 22, 
-    application_data   = 23 
-};
-
-
-// HandShake Layer Header identifier from page 20
-enum HandShakeType {
-    no_shake            = -1,
-    hello_request       = 0, 
-    client_hello        = 1, 
-    server_hello        = 2,
-    certificate         = 11, 
-    server_key_exchange = 12,
-    certificate_request = 13, 
-    server_hello_done   = 14,
-    certificate_verify  = 15, 
-    client_key_exchange = 16,
-    finished            = 20
-};
-
-
-// Valid Alert types from page 16/17
-enum AlertDescription {
-    close_notify            = 0,
-    unexpected_message      = 10,
-    bad_record_mac          = 20,
-    decompression_failure   = 30,
-    handshake_failure       = 40,
-    no_certificate          = 41,
-    bad_certificate         = 42,
-    unsupported_certificate = 43,
-    certificate_revoked     = 44,
-    certificate_expired     = 45,
-    certificate_unknown     = 46,
-    illegal_parameter       = 47
-};
-
-
-// Supported Key Exchange Protocols
-enum KeyExchangeAlgorithm { 
-    no_kea = 0,
-    rsa_kea, 
-    diffie_hellman_kea, 
-    fortezza_kea 
-};
-
-
-// Supported Authentication Schemes
-enum SignatureAlgorithm { 
-    anonymous_sa_algo = 0, 
-    rsa_sa_algo, 
-    dsa_sa_algo 
-};
-
-
-// Valid client certificate request types from page 27
-enum ClientCertificateType {    
-    rsa_sign            = 1, 
-    dss_sign            = 2,
-    rsa_fixed_dh        = 3,
-    dss_fixed_dh        = 4,
-    rsa_ephemeral_dh    = 5,
-    dss_ephemeral_dh    = 6,
-    fortezza_kea_cert   = 20
-};
-
-
-// Supported Ciphers from page 43
-enum BulkCipherAlgorithm { 
-    cipher_null,
-    rc4,
-    rc2,
-    des,
-    triple_des,             // leading 3 (3des) not valid identifier
-    des40,
-    idea,
-    aes
-};
-
-
-// Supported Message Authentication Codes from page 43
-enum MACAlgorithm { 
-    no_mac,
-    md5,
-    sha,
-    rmd
-};
-
-
-// Certificate file Type
-enum CertType { Cert = 0, PrivateKey, CA };
-
-
-// all Cipher Suites from pages 41/42
-const Cipher SSL_NULL_WITH_NULL_NULL                =  0; // { 0x00, 0x00 }
-const Cipher SSL_RSA_WITH_NULL_MD5                  =  1; // { 0x00, 0x01 }
-const Cipher SSL_RSA_WITH_NULL_SHA                  =  2; // { 0x00, 0x02 }
-const Cipher SSL_RSA_EXPORT_WITH_RC4_40_MD5         =  3; // { 0x00, 0x03 }
-const Cipher SSL_RSA_WITH_RC4_128_MD5               =  4; // { 0x00, 0x04 }
-const Cipher SSL_RSA_WITH_RC4_128_SHA               =  5; // { 0x00, 0x05 }
-const Cipher SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5     =  6; // { 0x00, 0x06 }
-const Cipher SSL_RSA_WITH_IDEA_CBC_SHA              =  7; // { 0x00, 0x07 }
-const Cipher SSL_RSA_EXPORT_WITH_DES40_CBC_SHA      =  8; // { 0x00, 0x08 }
-const Cipher SSL_RSA_WITH_DES_CBC_SHA               =  9; // { 0x00, 0x09 }
-const Cipher SSL_RSA_WITH_3DES_EDE_CBC_SHA          = 10; // { 0x00, 0x0A }
-const Cipher SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA   = 11; // { 0x00, 0x0B }
-const Cipher SSL_DH_DSS_WITH_DES_CBC_SHA            = 12; // { 0x00, 0x0C }
-const Cipher SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA       = 13; // { 0x00, 0x0D }
-const Cipher SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA   = 14; // { 0x00, 0x0E }
-const Cipher SSL_DH_RSA_WITH_DES_CBC_SHA            = 15; // { 0x00, 0x0F }
-const Cipher SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA       = 16; // { 0x00, 0x10 }
-const Cipher SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA  = 17; // { 0x00, 0x11 }
-const Cipher SSL_DHE_DSS_WITH_DES_CBC_SHA           = 18; // { 0x00, 0x12 }
-const Cipher SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA      = 19; // { 0x00, 0x13 }
-const Cipher SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA  = 20; // { 0x00, 0x14 }
-const Cipher SSL_DHE_RSA_WITH_DES_CBC_SHA           = 21; // { 0x00, 0x15 }
-const Cipher SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA      = 22; // { 0x00, 0x16 }
-const Cipher SSL_DH_anon_EXPORT_WITH_RC4_40_MD5     = 23; // { 0x00, 0x17 }
-const Cipher SSL_DH_anon_WITH_RC4_128_MD5           = 24; // { 0x00, 0x18 }
-const Cipher SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA  = 25; // { 0x00, 0x19 }
-const Cipher SSL_DH_anon_WITH_DES_CBC_SHA           = 26; // { 0x00, 0x1A }
-const Cipher SSL_DH_anon_WITH_3DES_EDE_CBC_SHA      = 27; // { 0x00, 0x1B }
-const Cipher SSL_FORTEZZA_KEA_WITH_NULL_SHA         = 28; // { 0x00, 0x1C }
-const Cipher SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA = 29; // { 0x00, 0x1D }
-const Cipher SSL_FORTEZZA_KEA_WITH_RC4_128_SHA      = 30; // { 0x00, 0x1E }
-
-// .. to 0x2B uses Kerberos Authentication
-
-
-// TLS AES extensions
-const Cipher TLS_RSA_WITH_AES_128_CBC_SHA      = 47; // { 0x00, 0x2F }
-const Cipher TLS_DH_DSS_WITH_AES_128_CBC_SHA   = 48; // { 0x00, 0x30 }
-const Cipher TLS_DH_RSA_WITH_AES_128_CBC_SHA   = 49; // { 0x00, 0x31 }
-const Cipher TLS_DHE_DSS_WITH_AES_128_CBC_SHA  = 50; // { 0x00, 0x32 }
-const Cipher TLS_DHE_RSA_WITH_AES_128_CBC_SHA  = 51; // { 0x00, 0x33 }
-const Cipher TLS_DH_anon_WITH_AES_128_CBC_SHA  = 52; // { 0x00, 0x34 }
-
-const Cipher TLS_RSA_WITH_AES_256_CBC_SHA      = 53; // { 0x00, 0x35 }
-const Cipher TLS_DH_DSS_WITH_AES_256_CBC_SHA   = 54; // { 0x00, 0x36 }
-const Cipher TLS_DH_RSA_WITH_AES_256_CBC_SHA   = 55; // { 0x00, 0x37 }
-const Cipher TLS_DHE_DSS_WITH_AES_256_CBC_SHA  = 56; // { 0x00, 0x38 }
-const Cipher TLS_DHE_RSA_WITH_AES_256_CBC_SHA  = 57; // { 0x00, 0x39 }
-const Cipher TLS_DH_anon_WITH_AES_256_CBC_SHA  = 58; // { 0x00, 0x3A }
-
-
-// OpenPGP extensions
-
-const Cipher TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD160 = 114; // { 0x00, 0x72 };
-const Cipher TLS_DHE_DSS_WITH_AES_128_CBC_RMD160  = 115; // { 0x00, 0x73 };
-const Cipher TLS_DHE_DSS_WITH_AES_256_CBC_RMD160  = 116; // { 0x00, 0x74 };
-const Cipher TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD160 = 119; // { 0x00, 0x77 };
-const Cipher TLS_DHE_RSA_WITH_AES_128_CBC_RMD160  = 120; // { 0x00, 0x78 };
-const Cipher TLS_DHE_RSA_WITH_AES_256_CBC_RMD160  = 121; // { 0x00, 0x79 };
-const Cipher TLS_RSA_WITH_3DES_EDE_CBC_RMD160     = 124; // { 0x00, 0x7C };
-const Cipher TLS_RSA_WITH_AES_128_CBC_RMD160      = 125; // { 0x00, 0x7D };
-const Cipher TLS_RSA_WITH_AES_256_CBC_RMD160      = 126; // { 0x00, 0x7E };
-
-
-const char* const null_str = "";
-
-const char* const cipher_names[128] =
-{
-    null_str, // SSL_NULL_WITH_NULL_NULL                =  0
-    null_str, // SSL_RSA_WITH_NULL_MD5                  =  1
-    null_str, // SSL_RSA_WITH_NULL_SHA                  =  2
-    null_str, // SSL_RSA_EXPORT_WITH_RC4_40_MD5         =  3
-    "RC4-MD5",  // SSL_RSA_WITH_RC4_128_MD5               =  4
-    "RC4-SHA",  // SSL_RSA_WITH_RC4_128_SHA               =  5
-    null_str, // SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5     =  6
-    null_str, // SSL_RSA_WITH_IDEA_CBC_SHA              =  7
-    null_str, // SSL_RSA_EXPORT_WITH_DES40_CBC_SHA      =  8
-    "DES-CBC-SHA",  // SSL_RSA_WITH_DES_CBC_SHA               =  9
-    "DES-CBC3-SHA", // SSL_RSA_WITH_3DES_EDE_CBC_SHA          = 10
-
-    null_str, // SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA   = 11
-    null_str, // SSL_DH_DSS_WITH_DES_CBC_SHA            = 12
-    null_str, // SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA       = 13
-    null_str, // SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA   = 14
-    null_str, // SSL_DH_RSA_WITH_DES_CBC_SHA            = 15
-    null_str, // SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA       = 16
-    null_str, // SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA  = 17
-    "EDH-DSS-DES-CBC-SHA",  // SSL_DHE_DSS_WITH_DES_CBC_SHA           = 18
-    "EDH-DSS-DES-CBC3-SHA", // SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA      = 19
-    null_str, // SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA  = 20
-
-    "EDH-RSA-DES-CBC-SHA",  // SSL_DHE_RSA_WITH_DES_CBC_SHA           = 21
-    "EDH-RSA-DES-CBC3-SHA", // SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA      = 22
-    null_str, // SSL_DH_anon_EXPORT_WITH_RC4_40_MD5     = 23
-    null_str, // SSL_DH_anon_WITH_RC4_128_MD5           = 24
-    null_str, // SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA  = 25
-    null_str, // SSL_DH_anon_WITH_DES_CBC_SHA           = 26
-    null_str, // SSL_DH_anon_WITH_3DES_EDE_CBC_SHA      = 27
-    null_str, // SSL_FORTEZZA_KEA_WITH_NULL_SHA         = 28
-    null_str, // SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA = 29
-    null_str, // SSL_FORTEZZA_KEA_WITH_RC4_128_SHA      = 30
-
-    null_str, null_str, null_str, null_str, null_str, // 31 - 35
-    null_str, null_str, null_str, null_str, null_str, // 36 - 40
-    null_str, null_str, null_str, null_str, null_str, // 41 - 45
-    null_str, // 46
-
-    // TLS AES extensions
-    "AES128-SHA", // TLS_RSA_WITH_AES_128_CBC_SHA      = 47
-    null_str, // TLS_DH_DSS_WITH_AES_128_CBC_SHA   = 48
-    null_str, // TLS_DH_RSA_WITH_AES_128_CBC_SHA   = 49
-    "DHE-DSS-AES128-SHA", // TLS_DHE_DSS_WITH_AES_128_CBC_SHA  = 50
-    "DHE-RSA-AES128-SHA", // TLS_DHE_RSA_WITH_AES_128_CBC_SHA  = 51
-    null_str, // TLS_DH_anon_WITH_AES_128_CBC_SHA  = 52
-
-    "AES256-SHA", // TLS_RSA_WITH_AES_256_CBC_SHA      = 53
-    null_str, // TLS_DH_DSS_WITH_AES_256_CBC_SHA   = 54
-    null_str, // TLS_DH_RSA_WITH_AES_256_CBC_SHA   = 55
-    "DHE-DSS-AES256-SHA", // TLS_DHE_DSS_WITH_AES_256_CBC_SHA  = 56
-    "DHE-RSA-AES256-SHA", // TLS_DHE_RSA_WITH_AES_256_CBC_SHA  = 57
-    null_str, // TLS_DH_anon_WITH_AES_256_CBC_SHA  = 58
-    
-    null_str, // 59
-    null_str, // 60
-    null_str, null_str, null_str, null_str, null_str, // 61 - 65
-    null_str, null_str, null_str, null_str, null_str, // 66 - 70
-    null_str, null_str, null_str, null_str, null_str, // 71 - 75
-    null_str, null_str, null_str, null_str, null_str, // 76 - 80
-    null_str, null_str, null_str, null_str, null_str, // 81 - 85
-    null_str, null_str, null_str, null_str, null_str, // 86 - 90
-    null_str, null_str, null_str, null_str, null_str, // 91 - 95
-    null_str, null_str, null_str, null_str, null_str, // 96 - 100
-    null_str, null_str, null_str, null_str, null_str, // 101 - 105
-    null_str, null_str, null_str, null_str, null_str, // 106 - 110
-    null_str, null_str, null_str,                     // 111 - 113
-
-    "DHE-DSS-DES-CBC3-RMD", //  TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD160 = 114
-    "DHE-DSS-AES128-RMD",   //  TLS_DHE_DSS_WITH_AES_128_CBC_RMD160  = 115
-    "DHE-DSS-AES256-RMD",   //  TLS_DHE_DSS_WITH_AES_256_CBC_RMD160  = 116
-    null_str, // 117
-    null_str, // 118
-    "DHE-RSA-DES-CBC3-RMD", //  TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD160 = 119
-    "DHE-RSA-AES128-RMD",   //  TLS_DHE_RSA_WITH_AES_128_CBC_RMD160  = 120
-    "DHE-RSA-AES256-RMD",   //  TLS_DHE_RSA_WITH_AES_256_CBC_RMD160  = 121
-    null_str, // 122
-    null_str, // 123
-    "DES-CBC3-RMD", //  TLS_RSA_WITH_3DES_EDE_CBC_RMD160     = 124
-    "AES128-RMD",   //  TLS_RSA_WITH_AES_128_CBC_RMD160      = 125
-    "AES256-RMD",   //  TLS_RSA_WITH_AES_256_CBC_RMD160      = 126
-    null_str // 127
-};
-
-// fill with MD5 pad size since biggest required
-const opaque PAD1[PAD_MD5] =  { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-                                0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-                                0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-                                0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-                                0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-                                0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36
-                              };
-const opaque PAD2[PAD_MD5] =  { 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
-                                0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
-                                0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
-                                0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
-                                0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
-                                0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c
-                              };
-
-const opaque client[SIZEOF_SENDER] = { 0x43, 0x4C, 0x4E, 0x54 };
-const opaque server[SIZEOF_SENDER] = { 0x53, 0x52, 0x56, 0x52 };
-
-const opaque tls_client[FINISHED_LABEL_SZ + 1] = "client finished";
-const opaque tls_server[FINISHED_LABEL_SZ + 1] = "server finished";
-
-const opaque master_label[MASTER_LABEL_SZ + 1] = "master secret";
-const opaque key_label   [KEY_LABEL_SZ + 1]    = "key expansion";
-
-
-} // naemspace
-
-#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96
-/*
-  gcc 2.96 bails out because of two declarations of byte: yaSSL::byte and
-  TaoCrypt::byte. TODO: define global types.hpp and move the declaration of
-  'byte' there.
-*/
-using yaSSL::byte;
-#endif
-
-
-#endif // yaSSL_TYPES_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/lib/dummy b/mysql-wsrep-5.6/extra/yassl/lib/dummy
deleted file mode 100644
index 85c1efd5..00000000
--- a/mysql-wsrep-5.6/extra/yassl/lib/dummy
+++ /dev/null
@@ -1 +0,0 @@
-// this is a dummy file
diff --git a/mysql-wsrep-5.6/extra/yassl/src/buffer.cpp b/mysql-wsrep-5.6/extra/yassl/src/buffer.cpp
deleted file mode 100644
index 954fdb52..00000000
--- a/mysql-wsrep-5.6/extra/yassl/src/buffer.cpp
+++ /dev/null
@@ -1,330 +0,0 @@
-/*
-   Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* yaSSL buffer header implements input/output buffers to simulate streaming
- * with SSL types and sockets
- */
-
-
-// First include (the generated) my_config.h, to get correct platform defines.
-#include "my_config.h"
-#include              // memcpy
-#include "runtime.hpp"
-#include "buffer.hpp"
-#include "yassl_types.hpp"
-
-namespace yaSSL {
-
-
-
-
-/* return 0 on check success, always true for NoCheck policy */
-int NoCheck::check(uint, uint) 
-{
-    return 0;
-}
-
-/* return 0 on check success */
-int Check::check(uint i, uint max) 
-{
-    if (i < max)
-        return 0;
-
-    return -1;
-}
-
-
-/* input_buffer operates like a smart c style array with a checking option, 
- * meant to be read from through [] with AUTO index or read().
- * Should only write to at/near construction with assign() or raw (e.g., recv)
- * followed by add_size with the number of elements added by raw write.
- *
- * Not using vector because need checked []access, offset, and the ability to
- * write to the buffer bulk wise and have the correct size
- */
-
-
-input_buffer::input_buffer() 
-    : size_(0), current_(0), buffer_(0), end_(0), error_(0), zero_(0)
-{}
-
-
-input_buffer::input_buffer(uint s) 
-    : size_(0), current_(0), buffer_(NEW_YS byte[s]), end_(buffer_ + s),
-      error_(0), zero_(0)
-{}
-
-
-// with assign
-input_buffer::input_buffer(uint s, const byte* t, uint len) 
-    : size_(0), current_(0), buffer_(NEW_YS byte[s]), end_(buffer_ + s),
-      error_(0), zero_(0)
-{ 
-    assign(t, len); 
-}
-
-
-input_buffer::~input_buffer() 
-{ 
-    ysArrayDelete(buffer_); 
-}
-
-
-// users can pass defualt zero length buffer and then allocate
-void input_buffer::allocate(uint s) 
-{ 
-    if (error_ == 0) {
-        buffer_ = NEW_YS byte[s];
-        end_ = buffer_ + s;
-    }
-}
-
-
-// for passing to raw writing functions at beginning, then use add_size
-byte* input_buffer::get_buffer() const 
-{ 
-    return buffer_; 
-}
-
-
-// after a raw write user can set NEW_YS size
-// if you know the size before the write use assign()
-void input_buffer::add_size(uint i) 
-{ 
-    if (error_ == 0 && check(size_ + i-1, get_capacity()) == 0)
-        size_ += i;
-    else
-        error_ = -1;
-}
-
-
-uint input_buffer::get_capacity()  const 
-{ 
-    if (error_ == 0)
-        return end_ - buffer_;
-
-    return 0;
-}
-
-
-uint input_buffer::get_current()   const 
-{ 
-    if (error_ == 0)
-        return current_;
-
-    return 0;
-}
-
-
-uint input_buffer::get_size()      const 
-{ 
-    if (error_ == 0)
-        return size_;
-
-    return 0;
-}
-
-
-uint input_buffer::get_remaining() const 
-{ 
-    if (error_ == 0)
-        return size_ - current_;
-
-    return 0;
-}
-
-
-int input_buffer::get_error() const 
-{ 
-    return error_;
-}
-
-
-void input_buffer::set_error()
-{ 
-    error_ = -1;
-}
-
-
-void input_buffer::set_current(uint i) 
-{
-    if (error_ == 0 && check(i ? i - 1 : 0, size_) == 0)
-        current_ = i;
-    else
-        error_ = -1;
-}
-
-
-// read only access through [], advance current
-// user passes in AUTO index for ease of use
-const byte& input_buffer::operator[](uint i) 
-{
-    if (error_ == 0 && check(current_, size_) == 0)
-        return buffer_[current_++];
-
-    error_ = -1;
-    return zero_;
-}
-
-
-// end of input test
-bool input_buffer::eof() 
-{ 
-    if (error_ != 0)
-        return true;
-
-    return current_ >= size_; 
-}
-
-
-// peek ahead
-byte input_buffer::peek()
-{
-    if (error_ == 0 && check(current_, size_) == 0)
-        return buffer_[current_];
-
-    error_ = -1;
-    return 0;
-}
-
-
-// write function, should use at/near construction
-void input_buffer::assign(const byte* t, uint s)
-{
-    if (t && error_ == 0 && check(current_, get_capacity()) == 0) {
-        add_size(s);
-        if (error_ == 0) {
-            memcpy(&buffer_[current_], t, s);
-            return;  // success
-        }
-    }
-
-    error_ = -1;
-}
-
-
-// use read to query input, adjusts current
-void input_buffer::read(byte* dst, uint length)
-{
-    if (dst && error_ == 0 && check(current_ + length - 1, size_) == 0) {
-        memcpy(dst, &buffer_[current_], length);
-        current_ += length;
-    } else {
-        error_ = -1;
-    }
-}
-
-
-
-/* output_buffer operates like a smart c style array with a checking option.
- * Meant to be written to through [] with AUTO index or write().
- * Size (current) counter increases when written to. Can be constructed with 
- * zero length buffer but be sure to allocate before first use. 
- * Don't use add write for a couple bytes, use [] instead, way less overhead.
- * 
- * Not using vector because need checked []access and the ability to
- * write to the buffer bulk wise and retain correct size
- */
-
-
-output_buffer::output_buffer() 
-    : current_(0), buffer_(0), end_(0) 
-{}
-
-
-// with allocate
-output_buffer::output_buffer(uint s) 
-    : current_(0), buffer_(NEW_YS byte[s]), end_(buffer_ + s) 
-{}
-
-
-// with assign
-output_buffer::output_buffer(uint s, const byte* t, uint len) 
-    : current_(0), buffer_(NEW_YS byte[s]), end_(buffer_+ s) 
-{ 
-    write(t, len); 
-}
-
-
-output_buffer::~output_buffer() 
-{ 
-    ysArrayDelete(buffer_); 
-}
-
-
-uint output_buffer::get_size() const 
-{ 
-    return current_; 
-}
-
-
-uint output_buffer::get_capacity() const 
-{ 
-    return (uint) (end_ - buffer_); 
-}
-
-
-void output_buffer::set_current(uint c) 
-{ 
-    check(c, get_capacity()); 
-    current_ = c; 
-}
-
-
-// users can pass defualt zero length buffer and then allocate
-void output_buffer::allocate(uint s) 
-{ 
-    buffer_ = NEW_YS byte[s]; end_ = buffer_ + s; 
-}
-
-
-// for passing to reading functions when finished
-const byte* output_buffer::get_buffer() const 
-{ 
-    return buffer_; 
-}
-
-
-// allow write access through [], update current
-// user passes in AUTO as index for ease of use
-byte& output_buffer::operator[](uint i) 
-{
-    check(current_, get_capacity());
-    return buffer_[current_++];
-}
-
-
-// end of output test
-bool output_buffer::eof() 
-{ 
-    return current_ >= get_capacity(); 
-}
-
-
-void output_buffer::write(const byte* t, uint s)
-{
-    check(current_ + s - 1, get_capacity()); 
-    memcpy(&buffer_[current_], t, s);
-    current_ += s;
-}
-
-
-
-} // naemspace
-
diff --git a/mysql-wsrep-5.6/extra/yassl/src/cert_wrapper.cpp b/mysql-wsrep-5.6/extra/yassl/src/cert_wrapper.cpp
deleted file mode 100644
index 1092e428..00000000
--- a/mysql-wsrep-5.6/extra/yassl/src/cert_wrapper.cpp
+++ /dev/null
@@ -1,408 +0,0 @@
-/*
-   Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/*  The certificate wrapper source implements certificate management functions
- *
- */
-
-#include "runtime.hpp"
-#include "cert_wrapper.hpp"
-#include "yassl_int.hpp"
-#include "error.hpp"
-
-#if defined(USE_CML_LIB)
-    #include "cmapi_cpp.h"
-#else
-    #include "asn.hpp"
-    #include "file.hpp"
-#endif // USE_CML_LIB
-
-
-namespace yaSSL {
-
-
-x509::x509(uint sz) : length_(sz), buffer_(NEW_YS opaque[sz]) 
-{
-}
-
-
-x509::~x509() 
-{ 
-    ysArrayDelete(buffer_); 
-}
-
-
-x509::x509(const x509& that) : length_(that.length_),
-                               buffer_(NEW_YS opaque[length_])
-{
-    memcpy(buffer_, that.buffer_, length_);
-}
-
-
-void x509::Swap(x509& that)
-{
-    STL::swap(length_, that.length_);
-    STL::swap(buffer_, that.buffer_);
-}
-
-
-x509& x509::operator=(const x509& that)
-{
-    x509 temp(that);
-    Swap(temp);
-    return *this;
-}
-
-
-uint x509::get_length() const
-{ 
-    return length_; 
-}
-
-
-const opaque* x509::get_buffer() const
-{ 
-    return buffer_; 
-}
-
-
-opaque* x509::use_buffer()
-{ 
-    return buffer_; 
-}
-
-
-//CertManager
-CertManager::CertManager()
-    : peerX509_(0), selfX509_(0), verifyPeer_(false), verifyNone_(false), failNoCert_(false),
-      sendVerify_(false), sendBlankCert_(false), verifyCallback_(0)
-{}
-
-
-CertManager::~CertManager()
-{
-    ysDelete(peerX509_);
-    ysDelete(selfX509_);
-
-    STL::for_each(signers_.begin(), signers_.end(), del_ptr_zero()) ;
-
-    STL::for_each(peerList_.begin(), peerList_.end(), del_ptr_zero()) ;
-
-    STL::for_each(list_.begin(), list_.end(), del_ptr_zero()) ;
-}
-
-
-bool CertManager::verifyPeer() const
-{
-    return verifyPeer_;
-}
-
-
-bool CertManager::verifyNone() const
-{
-    return verifyNone_;
-}
-
-
-bool CertManager::failNoCert() const
-{
-    return failNoCert_;
-}
-
-
-bool CertManager::sendVerify() const
-{
-    return sendVerify_;
-}
-
-
-void CertManager::setVerifyPeer()
-{
-    verifyPeer_ = true;
-}
-
-
-void CertManager::setVerifyNone()
-{
-    verifyNone_ = true;
-}
-
-bool CertManager::sendBlankCert() const
-{
-  return sendBlankCert_;
-}
-
-
-void CertManager::setFailNoCert()
-{
-    failNoCert_ = true;
-}
-
-
-void CertManager::setSendVerify()
-{
-    sendVerify_ = true;
-}
-
-void CertManager::setSendBlankCert()
-{
-  sendBlankCert_ = true;
-}
-
-
-void CertManager::setVerifyCallback(VerifyCallback vc)
-{
-    verifyCallback_ = vc;
-}
-
-
-void CertManager::AddPeerCert(x509* x)
-{ 
-    peerList_.push_back(x);  // take ownership
-}
-
-
-void CertManager::CopySelfCert(const x509* x)
-{
-    if (x)
-        list_.push_back(NEW_YS x509(*x));
-}
-
-
-// add to signers
-int CertManager::CopyCaCert(const x509* x)
-{
-    TaoCrypt::Source source(x->get_buffer(), x->get_length());
-    TaoCrypt::CertDecoder cert(source, true, &signers_, verifyNone_,
-                               TaoCrypt::CertDecoder::CA);
-
-    if (!cert.GetError().What()) {
-        const TaoCrypt::PublicKey& key = cert.GetPublicKey();
-        signers_.push_back(NEW_YS TaoCrypt::Signer(key.GetKey(), key.size(),
-                                        cert.GetCommonName(), cert.GetHash()));
-    }
-    // just don't add, not an error return cert.GetError().What();
-    return 0;
-}
-
-
-const x509* CertManager::get_cert() const
-{ 
-    return list_.front();
-}
-
-
-const opaque* CertManager::get_peerKey() const
-{ 
-    return peerPublicKey_.get_buffer();
-}
-
-
-X509* CertManager::get_peerX509() const
-{
-    return peerX509_;
-}
-
-
-X509* CertManager::get_selfX509() const
-{
-    return selfX509_;
-}
-
-
-SignatureAlgorithm CertManager::get_peerKeyType() const
-{
-    return peerKeyType_;
-}
-
-
-SignatureAlgorithm CertManager::get_keyType() const
-{
-    return keyType_;
-}
-
-
-uint CertManager::get_peerKeyLength() const
-{ 
-    return peerPublicKey_.get_size();
-}
-
-
-const opaque* CertManager::get_privateKey() const
-{ 
-    return privateKey_.get_buffer();
-}
-
-
-uint CertManager::get_privateKeyLength() const
-{ 
-    return privateKey_.get_size();
-}
-
-
-// Validate the peer's certificate list, from root to peer (last to first)
-int CertManager::Validate()
-{
-    CertList::reverse_iterator last = peerList_.rbegin();
-    size_t count = peerList_.size();
-
-    while ( count > 1 ) {
-        TaoCrypt::Source source((*last)->get_buffer(), (*last)->get_length());
-        TaoCrypt::CertDecoder cert(source, true, &signers_, verifyNone_);
-
-        if (int err = cert.GetError().What())
-            return err;
-
-        const TaoCrypt::PublicKey& key = cert.GetPublicKey();
-        signers_.push_back(NEW_YS TaoCrypt::Signer(key.GetKey(), key.size(),
-                                        cert.GetCommonName(), cert.GetHash()));
-        ++last;
-        --count;
-    }
-
-    if (count) {
-        // peer's is at the front
-        TaoCrypt::Source source((*last)->get_buffer(), (*last)->get_length());
-        TaoCrypt::CertDecoder cert(source, true, &signers_, verifyNone_);
-
-        int err = cert.GetError().What();
-        if ( err && err != TaoCrypt::SIG_OTHER_E)
-            return err;
-
-        uint sz = cert.GetPublicKey().size();
-        peerPublicKey_.allocate(sz);
-        peerPublicKey_.assign(cert.GetPublicKey().GetKey(), sz);
-
-        if (cert.GetKeyType() == TaoCrypt::RSAk)
-            peerKeyType_ = rsa_sa_algo;
-        else
-            peerKeyType_ = dsa_sa_algo;
-
-        size_t iSz = strlen(cert.GetIssuer()) + 1;
-        size_t sSz = strlen(cert.GetCommonName()) + 1;
-        ASN1_STRING beforeDate, afterDate;
-        beforeDate.data= (unsigned char *) cert.GetBeforeDate();
-        beforeDate.type= cert.GetBeforeDateType();
-        beforeDate.length= strlen((char *) beforeDate.data) + 1;
-        afterDate.data= (unsigned char *) cert.GetAfterDate();
-        afterDate.type= cert.GetAfterDateType();
-        afterDate.length= strlen((char *) afterDate.data) + 1;
-        peerX509_ = NEW_YS X509(cert.GetIssuer(), iSz, cert.GetCommonName(),
-                                sSz, &beforeDate, &afterDate,
-                                cert.GetIssuerCnStart(), cert.GetIssuerCnLength(),
-                                cert.GetSubjectCnStart(), cert.GetSubjectCnLength()
-                                );
-
-        if (err == TaoCrypt::SIG_OTHER_E && verifyCallback_) {
-            X509_STORE_CTX store;
-            store.error = err;
-            store.error_depth = static_cast(count) - 1;
-            store.current_cert = peerX509_;
-
-            int ok = verifyCallback_(0, &store);
-            if (ok) return 0;
-        }
-
-        if (err == TaoCrypt::SIG_OTHER_E) return err;
-    }
-    return 0;
-}
-
-
-// Set the private key
-int CertManager::SetPrivateKey(const x509& key)
-{
-    privateKey_.allocate(key.get_length());
-    privateKey_.assign(key.get_buffer(), key.get_length());
-
-    // set key type
-    if (x509* cert = list_.front()) {
-        TaoCrypt::Source source(cert->get_buffer(), cert->get_length());
-        TaoCrypt::CertDecoder cd(source, false);
-        cd.DecodeToKey();
-        if (int err = cd.GetError().What())
-            return err;
-        if (cd.GetKeyType() == TaoCrypt::RSAk)
-            keyType_ = rsa_sa_algo;
-        else
-            keyType_ = dsa_sa_algo;
-
-        size_t iSz = strlen(cd.GetIssuer()) + 1;
-        size_t sSz = strlen(cd.GetCommonName()) + 1;
-        ASN1_STRING beforeDate, afterDate;
-        beforeDate.data= (unsigned char *) cd.GetBeforeDate();
-        beforeDate.type= cd.GetBeforeDateType();
-        beforeDate.length= strlen((char *) beforeDate.data) + 1;
-        afterDate.data= (unsigned char *) cd.GetAfterDate();
-        afterDate.type= cd.GetAfterDateType();
-        afterDate.length= strlen((char *) afterDate.data) + 1;
-        selfX509_ = NEW_YS X509(cd.GetIssuer(), iSz, cd.GetCommonName(),
-                                sSz, &beforeDate, &afterDate,
-                                cd.GetIssuerCnStart(), cd.GetIssuerCnLength(),
-                                cd.GetSubjectCnStart(), cd.GetSubjectCnLength());
-    }
-    return 0;
-}
-
-
-// Store OpenSSL type peer's cert
-void CertManager::setPeerX509(X509* x)
-{
-    if (x == 0) return;
-
-    X509_NAME* issuer   = x->GetIssuer();
-    X509_NAME* subject  = x->GetSubject();
-    ASN1_STRING* before = x->GetBefore();
-    ASN1_STRING* after  = x->GetAfter();
-
-    peerX509_ = NEW_YS X509(issuer->GetName(), issuer->GetLength(),
-        subject->GetName(), subject->GetLength(), before, after,
-        issuer->GetCnPosition(), issuer->GetCnLength(),
-        subject->GetCnPosition(), subject->GetCnLength());
-}
-
-
-#if defined(USE_CML_LIB)
-
-// Get the peer's certificate, extract and save public key
-void CertManager::SetPeerKey()
-{
-    // first cert is the peer's
-    x509* main = peerList_.front();
-
-    Bytes_struct cert;
-    cert.num  = main->get_length();
-    cert.data = main->set_buffer();
-
-    CML::Certificate cm(cert);
-    const CML::ASN::Cert& raw = cm.base();
-    CTIL::CSM_Buffer key = raw.pubKeyInfo.key;
-
-    uint sz;
-    opaque* key_buffer = reinterpret_cast(key.Get(sz));
-    peerPublicKey_.allocate(sz);
-    peerPublicKey_.assign(key_buffer, sz);
-}
-
-
-#endif // USE_CML_LIB
-
-
-
-} // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/src/crypto_wrapper.cpp b/mysql-wsrep-5.6/extra/yassl/src/crypto_wrapper.cpp
deleted file mode 100644
index 12f956e6..00000000
--- a/mysql-wsrep-5.6/extra/yassl/src/crypto_wrapper.cpp
+++ /dev/null
@@ -1,1016 +0,0 @@
-/* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */
-
-/*  The crypto wrapper source implements the policies for the cipher
- *  components used by SSL.
- *
- *  The implementation relies on a specfic library, taoCrypt.
- */
-
-#if !defined(USE_CRYPTOPP_LIB)
-
-#include "runtime.hpp"
-#include "crypto_wrapper.hpp"
-#include "cert_wrapper.hpp"
-
-#include "md5.hpp"
-#include "sha.hpp"
-#include "ripemd.hpp"
-#include "hmac.hpp"
-#include "modes.hpp"
-#include "des.hpp"
-#include "arc4.hpp"
-#include "aes.hpp"
-#include "rsa.hpp"
-#include "dsa.hpp"
-#include "dh.hpp"
-#include "random.hpp"
-#include "file.hpp"
-#include "coding.hpp"
-
-
-namespace yaSSL {
-
-
-// MD5 Implementation
-struct MD5::MD5Impl {
-    TaoCrypt::MD5 md5_;
-    MD5Impl() {}
-    explicit MD5Impl(const TaoCrypt::MD5& md5) : md5_(md5) {}
-};
-
-
-MD5::MD5() : pimpl_(NEW_YS MD5Impl) {}
-
-
-MD5::~MD5() { ysDelete(pimpl_); }
-
-
-MD5::MD5(const MD5& that) : Digest(), pimpl_(NEW_YS 
-                                             MD5Impl(that.pimpl_->md5_)) {}
-
-
-MD5& MD5::operator=(const MD5& that)
-{
-    pimpl_->md5_ = that.pimpl_->md5_;
-    return *this;
-}
-
-
-uint MD5::get_digestSize() const
-{
-    return MD5_LEN;
-}
-
-
-uint MD5::get_padSize() const
-{
-    return PAD_MD5;
-}
-
-
-// Fill out with MD5 digest from in that is sz bytes, out must be >= digest sz
-void MD5::get_digest(byte* out, const byte* in, unsigned int sz)
-{
-    pimpl_->md5_.Update(in, sz);
-    pimpl_->md5_.Final(out);
-}
-
-// Fill out with MD5 digest from previous updates
-void MD5::get_digest(byte* out)
-{
-    pimpl_->md5_.Final(out);
-}
-
-
-// Update the current digest
-void MD5::update(const byte* in, unsigned int sz)
-{
-    pimpl_->md5_.Update(in, sz);
-}
-
-
-// SHA Implementation
-struct SHA::SHAImpl {
-    TaoCrypt::SHA sha_;
-    SHAImpl() {}
-    explicit SHAImpl(const TaoCrypt::SHA& sha) : sha_(sha) {}
-};
-
-
-SHA::SHA() : pimpl_(NEW_YS SHAImpl) {}
-
-
-SHA::~SHA() { ysDelete(pimpl_); }
-
-
-SHA::SHA(const SHA& that) : Digest(), pimpl_(NEW_YS SHAImpl(that.pimpl_->sha_)) {}
-
-SHA& SHA::operator=(const SHA& that)
-{
-    pimpl_->sha_ = that.pimpl_->sha_;
-    return *this;
-}
-
-
-uint SHA::get_digestSize() const
-{
-    return SHA_LEN;
-}
-
-
-uint SHA::get_padSize() const
-{
-    return PAD_SHA;
-}
-
-
-// Fill out with SHA digest from in that is sz bytes, out must be >= digest sz
-void SHA::get_digest(byte* out, const byte* in, unsigned int sz)
-{
-    pimpl_->sha_.Update(in, sz);
-    pimpl_->sha_.Final(out);
-}
-
-
-// Fill out with SHA digest from previous updates
-void SHA::get_digest(byte* out)
-{
-    pimpl_->sha_.Final(out);
-}
-
-
-// Update the current digest
-void SHA::update(const byte* in, unsigned int sz)
-{
-    pimpl_->sha_.Update(in, sz);
-}
-
-
-// RMD-160 Implementation
-struct RMD::RMDImpl {
-    TaoCrypt::RIPEMD160 rmd_;
-    RMDImpl() {}
-    explicit RMDImpl(const TaoCrypt::RIPEMD160& rmd) : rmd_(rmd) {}
-};
-
-
-RMD::RMD() : pimpl_(NEW_YS RMDImpl) {}
-
-
-RMD::~RMD() { ysDelete(pimpl_); }
-
-
-RMD::RMD(const RMD& that) : Digest(), pimpl_(NEW_YS RMDImpl(that.pimpl_->rmd_)) {}
-
-RMD& RMD::operator=(const RMD& that)
-{
-    pimpl_->rmd_ = that.pimpl_->rmd_;
-    return *this;
-}
-
-
-uint RMD::get_digestSize() const
-{
-    return RMD_LEN;
-}
-
-
-uint RMD::get_padSize() const
-{
-    return PAD_RMD;
-}
-
-
-// Fill out with RMD digest from in that is sz bytes, out must be >= digest sz
-void RMD::get_digest(byte* out, const byte* in, unsigned int sz)
-{
-    pimpl_->rmd_.Update(in, sz);
-    pimpl_->rmd_.Final(out);
-}
-
-
-// Fill out with RMD digest from previous updates
-void RMD::get_digest(byte* out)
-{
-    pimpl_->rmd_.Final(out);
-}
-
-
-// Update the current digest
-void RMD::update(const byte* in, unsigned int sz)
-{
-    pimpl_->rmd_.Update(in, sz);
-}
-
-
-// HMAC_MD5 Implementation
-struct HMAC_MD5::HMAC_MD5Impl {
-    TaoCrypt::HMAC mac_;
-    HMAC_MD5Impl() {}
-};
-
-
-HMAC_MD5::HMAC_MD5(const byte* secret, unsigned int len) 
-    : pimpl_(NEW_YS HMAC_MD5Impl) 
-{
-    pimpl_->mac_.SetKey(secret, len);
-}
-
-
-HMAC_MD5::~HMAC_MD5() { ysDelete(pimpl_); }
-
-
-uint HMAC_MD5::get_digestSize() const
-{
-    return MD5_LEN;
-}
-
-
-uint HMAC_MD5::get_padSize() const
-{
-    return PAD_MD5;
-}
-
-
-// Fill out with MD5 digest from in that is sz bytes, out must be >= digest sz
-void HMAC_MD5::get_digest(byte* out, const byte* in, unsigned int sz)
-{
-    pimpl_->mac_.Update(in, sz);
-    pimpl_->mac_.Final(out);
-}
-
-// Fill out with MD5 digest from previous updates
-void HMAC_MD5::get_digest(byte* out)
-{
-    pimpl_->mac_.Final(out);
-}
-
-
-// Update the current digest
-void HMAC_MD5::update(const byte* in, unsigned int sz)
-{
-    pimpl_->mac_.Update(in, sz);
-}
-
-
-// HMAC_SHA Implementation
-struct HMAC_SHA::HMAC_SHAImpl {
-    TaoCrypt::HMAC mac_;
-    HMAC_SHAImpl() {}
-};
-
-
-HMAC_SHA::HMAC_SHA(const byte* secret, unsigned int len) 
-    : pimpl_(NEW_YS HMAC_SHAImpl) 
-{
-    pimpl_->mac_.SetKey(secret, len);
-}
-
-
-HMAC_SHA::~HMAC_SHA() { ysDelete(pimpl_); }
-
-
-uint HMAC_SHA::get_digestSize() const
-{
-    return SHA_LEN;
-}
-
-
-uint HMAC_SHA::get_padSize() const
-{
-    return PAD_SHA;
-}
-
-
-// Fill out with SHA digest from in that is sz bytes, out must be >= digest sz
-void HMAC_SHA::get_digest(byte* out, const byte* in, unsigned int sz)
-{
-    pimpl_->mac_.Update(in, sz);
-    pimpl_->mac_.Final(out);
-}
-
-// Fill out with SHA digest from previous updates
-void HMAC_SHA::get_digest(byte* out)
-{
-    pimpl_->mac_.Final(out);
-}
-
-
-// Update the current digest
-void HMAC_SHA::update(const byte* in, unsigned int sz)
-{
-    pimpl_->mac_.Update(in, sz);
-}
-
-
-
-// HMAC_RMD Implementation
-struct HMAC_RMD::HMAC_RMDImpl {
-    TaoCrypt::HMAC mac_;
-    HMAC_RMDImpl() {}
-};
-
-
-HMAC_RMD::HMAC_RMD(const byte* secret, unsigned int len) 
-    : pimpl_(NEW_YS HMAC_RMDImpl) 
-{
-    pimpl_->mac_.SetKey(secret, len);
-}
-
-
-HMAC_RMD::~HMAC_RMD() { ysDelete(pimpl_); }
-
-
-uint HMAC_RMD::get_digestSize() const
-{
-    return RMD_LEN;
-}
-
-
-uint HMAC_RMD::get_padSize() const
-{
-    return PAD_RMD;
-}
-
-
-// Fill out with RMD digest from in that is sz bytes, out must be >= digest sz
-void HMAC_RMD::get_digest(byte* out, const byte* in, unsigned int sz)
-{
-    pimpl_->mac_.Update(in, sz);
-    pimpl_->mac_.Final(out);
-}
-
-// Fill out with RMD digest from previous updates
-void HMAC_RMD::get_digest(byte* out)
-{
-    pimpl_->mac_.Final(out);
-}
-
-
-// Update the current digest
-void HMAC_RMD::update(const byte* in, unsigned int sz)
-{
-    pimpl_->mac_.Update(in, sz);
-}
-
-
-struct DES::DESImpl {
-    TaoCrypt::DES_CBC_Encryption encryption;
-    TaoCrypt::DES_CBC_Decryption decryption;
-};
-
-
-DES::DES() : pimpl_(NEW_YS DESImpl) {}
-
-DES::~DES() { ysDelete(pimpl_); }
-
-
-void DES::set_encryptKey(const byte* k, const byte* iv)
-{
-    pimpl_->encryption.SetKey(k, DES_KEY_SZ, iv);
-}
-
-
-void DES::set_decryptKey(const byte* k, const byte* iv)
-{
-    pimpl_->decryption.SetKey(k, DES_KEY_SZ, iv);
-}
-
-// DES encrypt plain of length sz into cipher
-void DES::encrypt(byte* cipher, const byte* plain, unsigned int sz)
-{
-    pimpl_->encryption.Process(cipher, plain, sz);
-}
-
-
-// DES decrypt cipher of length sz into plain
-void DES::decrypt(byte* plain, const byte* cipher, unsigned int sz)
-{
-    pimpl_->decryption.Process(plain, cipher, sz);
-}
-
-
-struct DES_EDE::DES_EDEImpl {
-    TaoCrypt::DES_EDE3_CBC_Encryption encryption;
-    TaoCrypt::DES_EDE3_CBC_Decryption decryption;
-};
-
-
-DES_EDE::DES_EDE() : pimpl_(NEW_YS DES_EDEImpl) {}
-
-DES_EDE::~DES_EDE() { ysDelete(pimpl_); }
-
-
-void DES_EDE::set_encryptKey(const byte* k, const byte* iv)
-{
-    pimpl_->encryption.SetKey(k, DES_EDE_KEY_SZ, iv);
-}
-
-
-void DES_EDE::set_decryptKey(const byte* k, const byte* iv)
-{
-    pimpl_->decryption.SetKey(k, DES_EDE_KEY_SZ, iv);
-}
-
-
-// 3DES encrypt plain of length sz into cipher
-void DES_EDE::encrypt(byte* cipher, const byte* plain, unsigned int sz)
-{
-    pimpl_->encryption.Process(cipher, plain, sz);
-}
-
-
-// 3DES decrypt cipher of length sz into plain
-void DES_EDE::decrypt(byte* plain, const byte* cipher, unsigned int sz)
-{
-    pimpl_->decryption.Process(plain, cipher, sz);
-}
-
-
-// Implementation of alledged RC4
-struct RC4::RC4Impl {
-    TaoCrypt::ARC4::Encryption encryption;
-    TaoCrypt::ARC4::Decryption decryption;
-};
-
-
-RC4::RC4() : pimpl_(NEW_YS RC4Impl) {}
-
-RC4::~RC4() { ysDelete(pimpl_); }
-
-
-void RC4::set_encryptKey(const byte* k, const byte*)
-{
-    pimpl_->encryption.SetKey(k, RC4_KEY_SZ);
-}
-
-
-void RC4::set_decryptKey(const byte* k, const byte*)
-{
-    pimpl_->decryption.SetKey(k, RC4_KEY_SZ);
-}
-
-
-// RC4 encrypt plain of length sz into cipher
-void RC4::encrypt(byte* cipher, const byte* plain, unsigned int sz)
-{
-    pimpl_->encryption.Process(cipher, plain, sz);
-}
-
-
-// RC4 decrypt cipher of length sz into plain
-void RC4::decrypt(byte* plain, const byte* cipher, unsigned int sz)
-{
-    pimpl_->decryption.Process(plain, cipher, sz);
-}
-
-
-
-// Implementation of AES
-struct AES::AESImpl {
-    TaoCrypt::AES_CBC_Encryption encryption;
-    TaoCrypt::AES_CBC_Decryption decryption;
-    unsigned int keySz_;
-
-    AESImpl(unsigned int ks) : keySz_(ks) {}
-};
-
-
-AES::AES(unsigned int ks) : pimpl_(NEW_YS AESImpl(ks)) {}
-
-AES::~AES() { ysDelete(pimpl_); }
-
-
-int AES::get_keySize() const
-{
-    return pimpl_->keySz_;
-}
-
-
-void AES::set_encryptKey(const byte* k, const byte* iv)
-{
-    pimpl_->encryption.SetKey(k, pimpl_->keySz_, iv);
-}
-
-
-void AES::set_decryptKey(const byte* k, const byte* iv)
-{
-    pimpl_->decryption.SetKey(k, pimpl_->keySz_, iv);
-}
-
-
-// AES encrypt plain of length sz into cipher
-void AES::encrypt(byte* cipher, const byte* plain, unsigned int sz)
-{
-    pimpl_->encryption.Process(cipher, plain, sz);
-}
-
-
-// AES decrypt cipher of length sz into plain
-void AES::decrypt(byte* plain, const byte* cipher, unsigned int sz)
-{
-    pimpl_->decryption.Process(plain, cipher, sz);
-}
-
-
-struct RandomPool::RandomImpl {
-    TaoCrypt::RandomNumberGenerator RNG_;
-};
-
-RandomPool::RandomPool() : pimpl_(NEW_YS RandomImpl) {}
-
-RandomPool::~RandomPool() { ysDelete(pimpl_); }
-
-int RandomPool::GetError() const
-{
-    return pimpl_->RNG_.GetError(); 
-}
-
-void RandomPool::Fill(opaque* dst, uint sz) const
-{
-    pimpl_->RNG_.GenerateBlock(dst, sz);
-}
-
-
-// Implementation of DSS Authentication
-struct DSS::DSSImpl {
-    void SetPublic (const byte*, unsigned int);
-    void SetPrivate(const byte*, unsigned int);
-    TaoCrypt::DSA_PublicKey publicKey_;
-    TaoCrypt::DSA_PrivateKey privateKey_;
-};
-
-
-// Decode and store the public key
-void DSS::DSSImpl::SetPublic(const byte* key, unsigned int sz)
-{
-    TaoCrypt::Source source(key, sz);
-    publicKey_.Initialize(source);
-}
-
-
-// Decode and store the public key
-void DSS::DSSImpl::SetPrivate(const byte* key, unsigned int sz)
-{
-    TaoCrypt::Source source(key, sz);
-    privateKey_.Initialize(source);
-    publicKey_ = TaoCrypt::DSA_PublicKey(privateKey_);
-
-}
-
-
-// Set public or private key
-DSS::DSS(const byte* key, unsigned int sz, bool publicKey) 
-    : pimpl_(NEW_YS DSSImpl)
-{
-    if (publicKey) 
-        pimpl_->SetPublic(key, sz);
-    else
-        pimpl_->SetPrivate(key, sz);
-}
-
-
-DSS::~DSS()
-{
-    ysDelete(pimpl_);
-}
-
-
-uint DSS::get_signatureLength() const
-{
-    return pimpl_->publicKey_.SignatureLength();
-}
-
-
-// DSS Sign message of length sz into sig
-void DSS::sign(byte* sig,  const byte* sha_digest, unsigned int /* shaSz */,
-               const RandomPool& random)
-{
-    using namespace TaoCrypt;
-
-    DSA_Signer signer(pimpl_->privateKey_);
-    signer.Sign(sha_digest, sig, random.pimpl_->RNG_);
-}
-
-
-// DSS Verify message of length sz against sig, is it correct?
-bool DSS::verify(const byte* sha_digest, unsigned int /* shaSz */,
-                 const byte* sig, unsigned int /* sigSz */)
-{
-    using namespace TaoCrypt;
-
-    DSA_Verifier ver(pimpl_->publicKey_);
-    return ver.Verify(sha_digest, sig);
-}
-
-
-// Implementation of RSA key interface
-struct RSA::RSAImpl {
-    void SetPublic (const byte*, unsigned int);
-    void SetPrivate(const byte*, unsigned int);
-    TaoCrypt::RSA_PublicKey publicKey_;
-    TaoCrypt::RSA_PrivateKey privateKey_;
-};
-
-
-// Decode and store the public key
-void RSA::RSAImpl::SetPublic(const byte* key, unsigned int sz)
-{
-    TaoCrypt::Source source(key, sz);
-    publicKey_.Initialize(source);
-}
-
-
-// Decode and store the private key
-void RSA::RSAImpl::SetPrivate(const byte* key, unsigned int sz)
-{
-    TaoCrypt::Source source(key, sz);
-    privateKey_.Initialize(source);
-    publicKey_ = TaoCrypt::RSA_PublicKey(privateKey_);
-}
-
-
-// Set public or private key
-RSA::RSA(const byte* key, unsigned int sz, bool publicKey) 
-    : pimpl_(NEW_YS RSAImpl)
-{
-    if (publicKey) 
-        pimpl_->SetPublic(key, sz);
-    else
-        pimpl_->SetPrivate(key, sz);
-}
-
-RSA::~RSA()
-{
-    ysDelete(pimpl_);
-}
-
-
-// get cipher text length, varies on key size
-unsigned int RSA::get_cipherLength() const
-{
-    return pimpl_->publicKey_.FixedCiphertextLength();
-}
-
-
-// get signautre length, varies on key size
-unsigned int RSA::get_signatureLength() const
-{
-    return get_cipherLength();
-}
-
-
-// RSA Sign message of length sz into sig
-void RSA::sign(byte* sig,  const byte* message, unsigned int sz,
-               const RandomPool& random)
-{
-    TaoCrypt::RSAES_Decryptor dec(pimpl_->privateKey_);
-    dec.SSL_Sign(message, sz, sig, random.pimpl_->RNG_);
-}
-
-
-// RSA Verify message of length sz against sig
-bool RSA::verify(const byte* message, unsigned int sz, const byte* sig,
-                 unsigned int)
-{
-    TaoCrypt::RSAES_Encryptor enc(pimpl_->publicKey_);
-    return enc.SSL_Verify(message, sz, sig);
-}
-
-
-// RSA public encrypt plain of length sz into cipher
-void RSA::encrypt(byte* cipher, const byte* plain, unsigned int sz,
-                  const RandomPool& random)
-{
-  
-    TaoCrypt::RSAES_Encryptor enc(pimpl_->publicKey_);
-    enc.Encrypt(plain, sz, cipher, random.pimpl_->RNG_);
-}
-
-
-// RSA private decrypt cipher of length sz into plain
-void RSA::decrypt(byte* plain, const byte* cipher, unsigned int sz,
-                  const RandomPool& random)
-{
-    TaoCrypt::RSAES_Decryptor dec(pimpl_->privateKey_);
-    dec.Decrypt(cipher, sz, plain, random.pimpl_->RNG_);
-}
-
-
-struct Integer::IntegerImpl {
-    TaoCrypt::Integer int_;
-
-    IntegerImpl() {}
-    explicit IntegerImpl(const TaoCrypt::Integer& i) : int_(i) {}
-};
-
-Integer::Integer() : pimpl_(NEW_YS IntegerImpl) {}
-
-Integer::~Integer() { ysDelete(pimpl_); }
-
-
-
-Integer::Integer(const Integer& other) : pimpl_(NEW_YS 
-                                               IntegerImpl(other.pimpl_->int_))
-{}
-
-
-Integer& Integer::operator=(const Integer& that)
-{
-    pimpl_->int_ = that.pimpl_->int_;
-
-    return *this;
-}
-
-
-void Integer::assign(const byte* num, unsigned int sz)
-{
-    pimpl_->int_ = TaoCrypt::Integer(num, sz);
-}
-
-
-struct DiffieHellman::DHImpl {
-    TaoCrypt::DH                     dh_;
-    TaoCrypt::RandomNumberGenerator& ranPool_;
-    byte* publicKey_;
-    byte* privateKey_;
-    byte* agreedKey_;
-    uint  pubKeyLength_;
-
-    DHImpl(TaoCrypt::RandomNumberGenerator& r) : ranPool_(r), publicKey_(0),
-                              privateKey_(0), agreedKey_(0), pubKeyLength_(0) {}
-    ~DHImpl() 
-    {   
-        ysArrayDelete(agreedKey_); 
-        ysArrayDelete(privateKey_); 
-        ysArrayDelete(publicKey_);
-    }
-
-    DHImpl(const DHImpl& that) : dh_(that.dh_), ranPool_(that.ranPool_),
-                  publicKey_(0), privateKey_(0), agreedKey_(0), pubKeyLength_(0)
-    {
-        uint length = dh_.GetByteLength();
-        AllocKeys(length, length, length);
-    }
-
-    void AllocKeys(unsigned int pubSz, unsigned int privSz, unsigned int agrSz)
-    {
-        publicKey_  = NEW_YS byte[pubSz];
-        privateKey_ = NEW_YS byte[privSz];
-        agreedKey_  = NEW_YS byte[agrSz];
-    }
-};
-
-
-
-/*
-// server Side DH, server's view
-DiffieHellman::DiffieHellman(const char* file, const RandomPool& random)
-    : pimpl_(NEW_YS DHImpl(random.pimpl_->RNG_))
-{
-    using namespace TaoCrypt;
-    Source source;
-    FileSource(file, source);
-    if (source.size() == 0)
-        return; // TODO add error state, and force check
-    HexDecoder hd(source);
-
-    pimpl_->dh_.Initialize(source);
-
-    uint length = pimpl_->dh_.GetByteLength();
-
-    pimpl_->AllocKeys(length, length, length);
-    pimpl_->dh_.GenerateKeyPair(pimpl_->ranPool_, pimpl_->privateKey_,
-                                                  pimpl_->publicKey_);
-}
-*/
-
-
-// server Side DH, client's view
-DiffieHellman::DiffieHellman(const byte* p, unsigned int pSz, const byte* g,
-                             unsigned int gSz, const byte* pub,
-                             unsigned int pubSz, const RandomPool& random)
-    : pimpl_(NEW_YS DHImpl(random.pimpl_->RNG_))
-{
-    using TaoCrypt::Integer;
-
-    pimpl_->dh_.Initialize(Integer(p, pSz).Ref(), Integer(g, gSz).Ref());
-    pimpl_->publicKey_ = NEW_YS opaque[pimpl_->pubKeyLength_ = pubSz];
-    memcpy(pimpl_->publicKey_, pub, pubSz);
-}
-
-
-// Server Side DH, server's view
-DiffieHellman::DiffieHellman(const Integer& p, const Integer& g,
-                             const RandomPool& random)
-: pimpl_(NEW_YS DHImpl(random.pimpl_->RNG_))
-{
-    using TaoCrypt::Integer;
-
-    pimpl_->dh_.Initialize(p.pimpl_->int_, g.pimpl_->int_);
-
-    uint length = pimpl_->dh_.GetByteLength();
-
-    pimpl_->AllocKeys(length, length, length);
-    pimpl_->dh_.GenerateKeyPair(pimpl_->ranPool_, pimpl_->privateKey_,
-                                                  pimpl_->publicKey_);
-}
-
-DiffieHellman::~DiffieHellman() { ysDelete(pimpl_); }
-
-
-// Client side and view, use server that for p and g
-DiffieHellman::DiffieHellman(const DiffieHellman& that) 
-    : pimpl_(NEW_YS DHImpl(*that.pimpl_))
-{   
-    pimpl_->dh_.GenerateKeyPair(pimpl_->ranPool_, pimpl_->privateKey_,
-                                                  pimpl_->publicKey_);
-}
-
-
-DiffieHellman& DiffieHellman::operator=(const DiffieHellman& that)
-{
-    pimpl_->dh_ = that.pimpl_->dh_;
-    pimpl_->dh_.GenerateKeyPair(pimpl_->ranPool_, pimpl_->privateKey_,
-                                                  pimpl_->publicKey_);
-    return *this;
-}
-
-
-void DiffieHellman::makeAgreement(const byte* other, unsigned int otherSz)
-{
-    pimpl_->dh_.Agree(pimpl_->agreedKey_, pimpl_->privateKey_, other, otherSz); 
-}
-
-
-uint DiffieHellman::get_agreedKeyLength() const
-{
-    return pimpl_->dh_.GetByteLength();
-}
-
-
-const byte* DiffieHellman::get_agreedKey() const
-{
-    return pimpl_->agreedKey_;
-}
-
-uint DiffieHellman::get_publicKeyLength() const
-{
-    return pimpl_->pubKeyLength_;
-}
-
-const byte* DiffieHellman::get_publicKey() const
-{
-    return pimpl_->publicKey_;
-}
-
-
-void DiffieHellman::set_sizes(int& pSz, int& gSz, int& pubSz) const
-{
-    using TaoCrypt::Integer;
-    Integer p = pimpl_->dh_.GetP();
-    Integer g = pimpl_->dh_.GetG();
-
-    pSz   = p.ByteCount();
-    gSz   = g.ByteCount();
-    pubSz = pimpl_->dh_.GetByteLength();
-}
-
-
-void DiffieHellman::get_parms(byte* bp, byte* bg, byte* bpub) const
-{
-    using TaoCrypt::Integer;
-    Integer p = pimpl_->dh_.GetP();
-    Integer g = pimpl_->dh_.GetG();
-
-    p.Encode(bp, p.ByteCount());
-    g.Encode(bg, g.ByteCount());
-    memcpy(bpub, pimpl_->publicKey_, pimpl_->dh_.GetByteLength());
-}
-
-
-// convert PEM file to DER x509 type
-x509* PemToDer(FILE* file, CertType type, EncryptedInfo* info)
-{
-    using namespace TaoCrypt;
-
-    char header[80];
-    char footer[80];
-
-    if (type == Cert) {
-        strncpy(header, "-----BEGIN CERTIFICATE-----", sizeof(header));
-        strncpy(footer, "-----END CERTIFICATE-----", sizeof(footer));
-    } else {
-        strncpy(header, "-----BEGIN RSA PRIVATE KEY-----", sizeof(header));
-        strncpy(footer, "-----END RSA PRIVATE KEY-----", sizeof(header));
-    }
-
-    long begin = -1;
-    long end   = 0;
-    bool foundEnd = false;
-
-    char line[80];
-
-    while(fgets(line, sizeof(line), file))
-        if (strncmp(header, line, strlen(header)) == 0) {
-            begin = ftell(file);
-            break;
-        }
-
-    // remove encrypted header if there
-    if (fgets(line, sizeof(line), file)) {
-        char encHeader[] = "Proc-Type";
-        if (strncmp(encHeader, line, strlen(encHeader)) == 0 &&
-            fgets(line,sizeof(line), file)) {
-
-            char* start  = strstr(line, "DES");
-            char* finish = strstr(line, ",");
-            if (!start)
-                start    = strstr(line, "AES");
-
-            if (!info) return 0;
-
-            if ( start && finish && (start < finish)) {
-                memcpy(info->name, start, finish - start);
-                info->name[finish - start] = 0;
-                memcpy(info->iv, finish + 1, sizeof(info->iv));
-
-                char* newline = strstr(line, "\r");
-                if (!newline) newline = strstr(line, "\n");
-                if (newline && (newline > finish)) {
-                    info->ivSz = newline - (finish + 1);
-                    info->set = true;
-                }
-            }
-            begin = ftell(file);
-            if (fgets(line,sizeof(line), file)) // get blank line
-              begin = ftell(file);
-        }
-          
-    }
-
-    while(fgets(line, sizeof(line), file))
-        if (strncmp(footer, line, strlen(footer)) == 0) {
-            foundEnd = true;
-            break;
-        }
-        else
-            end = ftell(file);
-
-    if (begin == -1 || !foundEnd)
-        return 0;
-
-    input_buffer tmp(end - begin);
-    fseek(file, begin, SEEK_SET);
-    size_t bytes = fread(tmp.get_buffer(), end - begin, 1, file);
-    if (bytes != 1)
-        return 0;
-    
-    Source der(tmp.get_buffer(), end - begin);
-    Base64Decoder b64Dec(der);
-
-    uint sz = der.size();
-    mySTL::auto_ptr x(NEW_YS x509(sz));
-    memcpy(x->use_buffer(), der.get_buffer(), sz);
-
-    return x.release();
-}
-
-
-} // namespace
-
-
-#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
-namespace yaSSL {
-template void ysDelete(DiffieHellman::DHImpl*);
-template void ysDelete(Integer::IntegerImpl*);
-template void ysDelete(RSA::RSAImpl*);
-template void ysDelete(DSS::DSSImpl*);
-template void ysDelete(RandomPool::RandomImpl*);
-template void ysDelete(AES::AESImpl*);
-template void ysDelete(RC4::RC4Impl*);
-template void ysDelete(DES_EDE::DES_EDEImpl*);
-template void ysDelete(DES::DESImpl*);
-template void ysDelete(HMAC_RMD::HMAC_RMDImpl*);
-template void ysDelete(HMAC_SHA::HMAC_SHAImpl*);
-template void ysDelete(HMAC_MD5::HMAC_MD5Impl*);
-template void ysDelete(RMD::RMDImpl*);
-template void ysDelete(SHA::SHAImpl*);
-template void ysDelete(MD5::MD5Impl*);
-}
-#endif // HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
-
-#endif // !USE_CRYPTOPP_LIB
diff --git a/mysql-wsrep-5.6/extra/yassl/src/dummy.cpp b/mysql-wsrep-5.6/extra/yassl/src/dummy.cpp
deleted file mode 100644
index 19b7fe88..00000000
--- a/mysql-wsrep-5.6/extra/yassl/src/dummy.cpp
+++ /dev/null
@@ -1,4 +0,0 @@
-/*
-  To make libtool always use a C++ linker when compiling with yaSSL we need
-  to add a dummy C++ file to the source list.
-*/
diff --git a/mysql-wsrep-5.6/extra/yassl/src/handshake.cpp b/mysql-wsrep-5.6/extra/yassl/src/handshake.cpp
deleted file mode 100644
index 29815882..00000000
--- a/mysql-wsrep-5.6/extra/yassl/src/handshake.cpp
+++ /dev/null
@@ -1,1188 +0,0 @@
-/*
-   Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* The handshake source implements functions for creating and reading
- * the various handshake messages.
- */
-
-
-
-#include "runtime.hpp"
-#include "handshake.hpp"
-#include "yassl_int.hpp"
-
-
-namespace yaSSL {
-
-
-
-// Build a client hello message from cipher suites and compression method
-void buildClientHello(SSL& ssl, ClientHello& hello)
-{
-    // store for pre master secret
-    ssl.useSecurity().use_connection().chVersion_ = hello.client_version_;
-
-    ssl.getCrypto().get_random().Fill(hello.random_, RAN_LEN);
-    if (ssl.getSecurity().get_resuming()) {
-        hello.id_len_ = ID_LEN;
-        memcpy(hello.session_id_, ssl.getSecurity().get_resume().GetID(),
-               ID_LEN);
-    }
-    else 
-        hello.id_len_ = 0;
-    hello.suite_len_ = ssl.getSecurity().get_parms().suites_size_;
-    memcpy(hello.cipher_suites_, ssl.getSecurity().get_parms().suites_,
-           hello.suite_len_);
-    hello.comp_len_ = 1;
-
-    hello.set_length(sizeof(ProtocolVersion) +
-                     RAN_LEN +
-                     hello.id_len_    + sizeof(hello.id_len_) +
-                     hello.suite_len_ + sizeof(hello.suite_len_) +
-                     hello.comp_len_  + sizeof(hello.comp_len_));
-}
-
-
-// Build a server hello message
-void buildServerHello(SSL& ssl, ServerHello& hello)
-{
-    if (ssl.getSecurity().get_resuming()) {
-        memcpy(hello.random_,ssl.getSecurity().get_connection().server_random_,
-               RAN_LEN);
-        memcpy(hello.session_id_, ssl.getSecurity().get_resume().GetID(),
-               ID_LEN);
-    }
-    else {
-        ssl.getCrypto().get_random().Fill(hello.random_, RAN_LEN);
-        ssl.getCrypto().get_random().Fill(hello.session_id_, ID_LEN);
-    }
-    hello.id_len_ = ID_LEN;
-    ssl.set_sessionID(hello.session_id_);
-
-    hello.cipher_suite_[0] = ssl.getSecurity().get_parms().suite_[0];
-    hello.cipher_suite_[1] = ssl.getSecurity().get_parms().suite_[1];
-    hello.compression_method_ = hello.compression_method_;
-
-    hello.set_length(sizeof(ProtocolVersion) + RAN_LEN + ID_LEN +
-                     sizeof(hello.id_len_) + SUITE_LEN + SIZEOF_ENUM);
-}
-
-
-// add handshake from buffer into md5 and sha hashes, use handshake header
-void hashHandShake(SSL& ssl, const input_buffer& input, uint sz)
-{
-    const opaque* buffer = input.get_buffer() + input.get_current() - 
-                           HANDSHAKE_HEADER;
-    sz += HANDSHAKE_HEADER;
-    ssl.useHashes().use_MD5().update(buffer, sz);
-    ssl.useHashes().use_SHA().update(buffer, sz);
-}
-
-
-// locals
-namespace {
-
-// Write a plaintext record to buffer
-void buildOutput(output_buffer& buffer, const RecordLayerHeader& rlHdr, 
-                 const Message& msg)
-{
-    buffer.allocate(RECORD_HEADER + rlHdr.length_);
-    buffer << rlHdr << msg;
-}
-
-
-// Write a plaintext record to buffer
-void buildOutput(output_buffer& buffer, const RecordLayerHeader& rlHdr, 
-                 const HandShakeHeader& hsHdr, const HandShakeBase& shake)
-{
-    buffer.allocate(RECORD_HEADER + rlHdr.length_);
-    buffer << rlHdr << hsHdr << shake;
-}
-
-
-// Build Record Layer header for Message without handshake header
-void buildHeader(SSL& ssl, RecordLayerHeader& rlHeader, const Message& msg)
-{
-    ProtocolVersion pv = ssl.getSecurity().get_connection().version_;
-    rlHeader.type_ = msg.get_type();
-    rlHeader.version_.major_ = pv.major_;
-    rlHeader.version_.minor_ = pv.minor_;
-    rlHeader.length_ = msg.get_length();
-}
-
-
-// Build HandShake and RecordLayer Headers for handshake output
-void buildHeaders(SSL& ssl, HandShakeHeader& hsHeader,
-                  RecordLayerHeader& rlHeader, const HandShakeBase& shake)
-{
-    int sz = shake.get_length();
-
-    hsHeader.set_type(shake.get_type());
-    hsHeader.set_length(sz);
-
-    ProtocolVersion pv = ssl.getSecurity().get_connection().version_;
-    rlHeader.type_ = handshake;
-    rlHeader.version_.major_ = pv.major_;
-    rlHeader.version_.minor_ = pv.minor_;
-    rlHeader.length_ = sz + HANDSHAKE_HEADER;
-}
-
-
-// add handshake from buffer into md5 and sha hashes, exclude record header
-void hashHandShake(SSL& ssl, const output_buffer& output, bool removeIV = false)
-{
-    uint sz = output.get_size() - RECORD_HEADER;
-
-    const opaque* buffer = output.get_buffer() + RECORD_HEADER;
-
-    if (removeIV) {  // TLSv1_1 IV
-        uint blockSz = ssl.getCrypto().get_cipher().get_blockSize();
-        sz     -= blockSz;
-        buffer += blockSz;
-    }
-
-    ssl.useHashes().use_MD5().update(buffer, sz);
-    ssl.useHashes().use_SHA().update(buffer, sz);
-}
-
-
-// calculate MD5 hash for finished
-void buildMD5(SSL& ssl, Finished& fin, const opaque* sender)
-{
-
-    opaque md5_result[MD5_LEN];
-    opaque md5_inner[SIZEOF_SENDER + SECRET_LEN + PAD_MD5];
-    opaque md5_outer[SECRET_LEN + PAD_MD5 + MD5_LEN];
-
-    const opaque* master_secret = 
-        ssl.getSecurity().get_connection().master_secret_;
-
-    // make md5 inner
-    memcpy(md5_inner, sender, SIZEOF_SENDER);
-    memcpy(&md5_inner[SIZEOF_SENDER], master_secret, SECRET_LEN);
-    memcpy(&md5_inner[SIZEOF_SENDER + SECRET_LEN], PAD1, PAD_MD5);
-
-    ssl.useHashes().use_MD5().get_digest(md5_result, md5_inner,
-                                         sizeof(md5_inner));
-
-    // make md5 outer
-    memcpy(md5_outer, master_secret, SECRET_LEN);
-    memcpy(&md5_outer[SECRET_LEN], PAD2, PAD_MD5);
-    memcpy(&md5_outer[SECRET_LEN + PAD_MD5], md5_result, MD5_LEN);
-
-    ssl.useHashes().use_MD5().get_digest(fin.set_md5(), md5_outer,
-                                         sizeof(md5_outer));
-}
-
-
-// calculate SHA hash for finished
-void buildSHA(SSL& ssl, Finished& fin, const opaque* sender)
-{
-    
-    opaque sha_result[SHA_LEN];
-    opaque sha_inner[SIZEOF_SENDER + SECRET_LEN + PAD_SHA];
-    opaque sha_outer[SECRET_LEN + PAD_SHA + SHA_LEN];
-
-    const opaque* master_secret = 
-        ssl.getSecurity().get_connection().master_secret_;
-
-     // make sha inner
-    memcpy(sha_inner, sender, SIZEOF_SENDER);
-    memcpy(&sha_inner[SIZEOF_SENDER], master_secret, SECRET_LEN);
-    memcpy(&sha_inner[SIZEOF_SENDER + SECRET_LEN], PAD1, PAD_SHA);
-
-    ssl.useHashes().use_SHA().get_digest(sha_result, sha_inner,
-                                         sizeof(sha_inner));
-
-    // make sha outer
-    memcpy(sha_outer, master_secret, SECRET_LEN);
-    memcpy(&sha_outer[SECRET_LEN], PAD2, PAD_SHA);
-    memcpy(&sha_outer[SECRET_LEN + PAD_SHA], sha_result, SHA_LEN);
-
-    ssl.useHashes().use_SHA().get_digest(fin.set_sha(), sha_outer,
-                                         sizeof(sha_outer));
-}
-
-
-// sanity checks on encrypted message size
-static int sanity_check_message(SSL& ssl, uint msgSz)
-{
-    uint minSz = 0;
-
-    if (ssl.getSecurity().get_parms().cipher_type_ == block) {
-        uint blockSz = ssl.getCrypto().get_cipher().get_blockSize();
-        if (msgSz % blockSz)
-            return -1;
-
-        minSz = ssl.getSecurity().get_parms().hash_size_ + 1;  // pad byte too
-        if (blockSz > minSz)
-            minSz = blockSz;
-
-        if (ssl.isTLSv1_1())
-            minSz += blockSz;   // explicit IV
-    }
-    else {      // stream
-        minSz = ssl.getSecurity().get_parms().hash_size_;
-    }
-
-    if (msgSz < minSz)
-        return -1;
-
-    return 0;
-}
-
-
-// decrypt input message in place, store size in case needed later
-void decrypt_message(SSL& ssl, input_buffer& input, uint sz)
-{
-    input_buffer plain(sz);
-    opaque*      cipher = input.get_buffer() + input.get_current();
-
-    if (sanity_check_message(ssl, sz) != 0) {
-        ssl.SetError(sanityCipher_error);
-        return;
-    }
-
-    ssl.useCrypto().use_cipher().decrypt(plain.get_buffer(), cipher, sz);
-    memcpy(cipher, plain.get_buffer(), sz);
-    ssl.useSecurity().use_parms().encrypt_size_ = sz;
-
-    if (ssl.isTLSv1_1())  // IV
-        input.set_current(input.get_current() +
-              ssl.getCrypto().get_cipher().get_blockSize());
-}
-
-
-// output operator for input_buffer
-output_buffer& operator<<(output_buffer& output, const input_buffer& input)
-{
-    output.write(input.get_buffer(), input.get_size());
-    return output;
-}
-
-
-// write headers, handshake hash, mac, pad, and encrypt
-void cipherFinished(SSL& ssl, Finished& fin, output_buffer& output)
-{
-    uint digestSz = ssl.getCrypto().get_digest().get_digestSize();
-    uint finishedSz = ssl.isTLS() ? TLS_FINISHED_SZ : FINISHED_SZ;
-    uint sz  = RECORD_HEADER + HANDSHAKE_HEADER + finishedSz + digestSz;
-    uint pad = 0;
-    uint blockSz = ssl.getCrypto().get_cipher().get_blockSize();
-
-    if (ssl.getSecurity().get_parms().cipher_type_ == block) {
-        if (ssl.isTLSv1_1())
-            sz += blockSz;            // IV
-        sz += 1;       // pad byte
-        pad = (sz - RECORD_HEADER) % blockSz;
-        pad = blockSz - pad;
-        sz += pad;
-    }
-
-    RecordLayerHeader rlHeader;
-    HandShakeHeader   hsHeader;
-    buildHeaders(ssl, hsHeader, rlHeader, fin);
-    rlHeader.length_ = sz - RECORD_HEADER;   // record header includes mac
-                                             // and pad, hanshake doesn't
-    input_buffer iv;
-    if (ssl.isTLSv1_1() && ssl.getSecurity().get_parms().cipher_type_== block){
-        iv.allocate(blockSz);
-        ssl.getCrypto().get_random().Fill(iv.get_buffer(), blockSz);
-        iv.add_size(blockSz);
-    }
-    uint ivSz = iv.get_size();
-    output.allocate(sz);
-    output << rlHeader << iv << hsHeader << fin;
-    
-    hashHandShake(ssl, output, ssl.isTLSv1_1() ? true : false);
-    opaque digest[SHA_LEN];                  // max size
-    if (ssl.isTLS())
-        TLS_hmac(ssl, digest, output.get_buffer() + RECORD_HEADER + ivSz,
-                 output.get_size() - RECORD_HEADER - ivSz, handshake);
-    else
-        hmac(ssl, digest, output.get_buffer() + RECORD_HEADER,
-             output.get_size() - RECORD_HEADER, handshake);
-    output.write(digest, digestSz);
-
-    if (ssl.getSecurity().get_parms().cipher_type_ == block)
-        for (uint i = 0; i <= pad; i++) output[AUTO] = pad;   // pad byte gets
-                                                              // pad value too
-    input_buffer cipher(rlHeader.length_);
-    ssl.useCrypto().use_cipher().encrypt(cipher.get_buffer(),
-       output.get_buffer() + RECORD_HEADER, output.get_size() - RECORD_HEADER);
-    output.set_current(RECORD_HEADER);
-    output.write(cipher.get_buffer(), cipher.get_capacity());
-}
-
-
-// build an encrypted data or alert message for output
-void buildMessage(SSL& ssl, output_buffer& output, const Message& msg)
-{
-    uint digestSz = ssl.getCrypto().get_digest().get_digestSize();
-    uint sz  = RECORD_HEADER + msg.get_length() + digestSz;                
-    uint pad = 0;
-    uint blockSz = ssl.getCrypto().get_cipher().get_blockSize();
-
-    if (ssl.getSecurity().get_parms().cipher_type_ == block) {
-        if (ssl.isTLSv1_1())  // IV
-            sz += blockSz;
-        sz += 1;       // pad byte
-        pad = (sz - RECORD_HEADER) % blockSz;
-        pad = blockSz - pad;
-        sz += pad;
-    }
-
-    RecordLayerHeader rlHeader;
-    buildHeader(ssl, rlHeader, msg);
-    rlHeader.length_ = sz - RECORD_HEADER;   // record header includes mac
-                                             // and pad, hanshake doesn't
-    input_buffer iv;
-    if (ssl.isTLSv1_1() && ssl.getSecurity().get_parms().cipher_type_== block){
-        iv.allocate(blockSz);
-        ssl.getCrypto().get_random().Fill(iv.get_buffer(), blockSz);
-        iv.add_size(blockSz);
-    }
-    
-    uint ivSz = iv.get_size();
-    output.allocate(sz);
-    output << rlHeader << iv << msg;
-    
-    opaque digest[SHA_LEN];                  // max size
-    if (ssl.isTLS())
-        TLS_hmac(ssl, digest, output.get_buffer() + RECORD_HEADER + ivSz,
-                 output.get_size() - RECORD_HEADER - ivSz, msg.get_type());
-    else
-        hmac(ssl, digest, output.get_buffer() + RECORD_HEADER,
-             output.get_size() - RECORD_HEADER, msg.get_type());
-    output.write(digest, digestSz);
-
-    if (ssl.getSecurity().get_parms().cipher_type_ == block)
-        for (uint i = 0; i <= pad; i++) output[AUTO] = pad; // pad byte gets
-                                                              // pad value too
-    input_buffer cipher(rlHeader.length_);
-    ssl.useCrypto().use_cipher().encrypt(cipher.get_buffer(),
-       output.get_buffer() + RECORD_HEADER, output.get_size() - RECORD_HEADER);
-    output.set_current(RECORD_HEADER);
-    output.write(cipher.get_buffer(), cipher.get_capacity());
-}
-
-
-// build alert message
-void buildAlert(SSL& ssl, output_buffer& output, const Alert& alert)
-{
-    if (ssl.getSecurity().get_parms().pending_ == false) // encrypted
-        buildMessage(ssl, output, alert);
-    else {
-        RecordLayerHeader rlHeader;
-        buildHeader(ssl, rlHeader, alert);
-        buildOutput(output, rlHeader, alert);
-    }
-}
-
-
-// build TLS finished message
-void buildFinishedTLS(SSL& ssl, Finished& fin, const opaque* sender) 
-{
-    opaque handshake_hash[FINISHED_SZ];
-
-    ssl.useHashes().use_MD5().get_digest(handshake_hash);
-    ssl.useHashes().use_SHA().get_digest(&handshake_hash[MD5_LEN]);
-
-    const opaque* side;
-    if ( strncmp((const char*)sender, (const char*)client, SIZEOF_SENDER) == 0)
-        side = tls_client;
-    else
-        side = tls_server;
-
-    PRF(fin.set_md5(), TLS_FINISHED_SZ, 
-        ssl.getSecurity().get_connection().master_secret_, SECRET_LEN, 
-        side, FINISHED_LABEL_SZ, 
-        handshake_hash, FINISHED_SZ);
-
-    fin.set_length(TLS_FINISHED_SZ);  // shorter length for TLS
-}
-
-
-// compute p_hash for MD5 or SHA-1 for TLSv1 PRF
-void p_hash(output_buffer& result, const output_buffer& secret,
-            const output_buffer& seed, MACAlgorithm hash)
-{
-    uint   len = hash == md5 ? MD5_LEN : SHA_LEN;
-    uint   times = result.get_capacity() / len;
-    uint   lastLen = result.get_capacity() % len;
-    opaque previous[SHA_LEN];  // max size
-    opaque current[SHA_LEN];   // max size
-    mySTL::auto_ptr hmac;
-
-    if (lastLen) times += 1;
-
-    if (hash == md5)
-        hmac.reset(NEW_YS HMAC_MD5(secret.get_buffer(), secret.get_size()));
-    else
-        hmac.reset(NEW_YS HMAC_SHA(secret.get_buffer(), secret.get_size()));
-                                                                   // A0 = seed
-    hmac->get_digest(previous, seed.get_buffer(), seed.get_size());// A1
-    uint lastTime = times - 1;
-
-    for (uint i = 0; i < times; i++) {
-        hmac->update(previous, len);  
-        hmac->get_digest(current, seed.get_buffer(), seed.get_size());
-
-        if (lastLen && (i == lastTime))
-            result.write(current, lastLen);
-        else {
-            result.write(current, len);
-            //memcpy(previous, current, len);
-            hmac->get_digest(previous, previous, len);
-        }
-    }
-}
-
-
-// calculate XOR for TLSv1 PRF
-void get_xor(byte *digest, uint digLen, output_buffer& md5,
-             output_buffer& sha)
-{
-    for (uint i = 0; i < digLen; i++) 
-        digest[i] = md5[AUTO] ^ sha[AUTO];
-}
-
-
-// build MD5 part of certificate verify
-void buildMD5_CertVerify(SSL& ssl, byte* digest)
-{
-    opaque md5_result[MD5_LEN];
-    opaque md5_inner[SECRET_LEN + PAD_MD5];
-    opaque md5_outer[SECRET_LEN + PAD_MD5 + MD5_LEN];
-
-    const opaque* master_secret = 
-        ssl.getSecurity().get_connection().master_secret_;
-
-    // make md5 inner
-    memcpy(md5_inner, master_secret, SECRET_LEN);
-    memcpy(&md5_inner[SECRET_LEN], PAD1, PAD_MD5);
-
-    ssl.useHashes().use_MD5().get_digest(md5_result, md5_inner,
-                                         sizeof(md5_inner));
-
-    // make md5 outer
-    memcpy(md5_outer, master_secret, SECRET_LEN);
-    memcpy(&md5_outer[SECRET_LEN], PAD2, PAD_MD5);
-    memcpy(&md5_outer[SECRET_LEN + PAD_MD5], md5_result, MD5_LEN);
-
-    ssl.useHashes().use_MD5().get_digest(digest, md5_outer, sizeof(md5_outer));
-}
-
-
-// build SHA part of certificate verify
-void buildSHA_CertVerify(SSL& ssl, byte* digest)
-{
-    opaque sha_result[SHA_LEN];
-    opaque sha_inner[SECRET_LEN + PAD_SHA];
-    opaque sha_outer[SECRET_LEN + PAD_SHA + SHA_LEN];
-
-    const opaque* master_secret = 
-        ssl.getSecurity().get_connection().master_secret_;
-
-     // make sha inner
-    memcpy(sha_inner, master_secret, SECRET_LEN);
-    memcpy(&sha_inner[SECRET_LEN], PAD1, PAD_SHA);
-
-    ssl.useHashes().use_SHA().get_digest(sha_result, sha_inner,
-                                         sizeof(sha_inner));
-
-    // make sha outer
-    memcpy(sha_outer, master_secret, SECRET_LEN);
-    memcpy(&sha_outer[SECRET_LEN], PAD2, PAD_SHA);
-    memcpy(&sha_outer[SECRET_LEN + PAD_SHA], sha_result, SHA_LEN);
-
-    ssl.useHashes().use_SHA().get_digest(digest, sha_outer, sizeof(sha_outer));
-}
-
-
-} // namespace for locals
-
-
-// some clients still send sslv2 client hello
-void ProcessOldClientHello(input_buffer& input, SSL& ssl)
-{
-    if (input.get_error() || input.get_remaining() < 2) {
-        ssl.SetError(bad_input);
-        return;
-    }
-    byte b0 = input[AUTO];
-    byte b1 = input[AUTO];
-
-    uint16 sz = ((b0 & 0x7f) << 8) | b1;
-
-    if (sz > input.get_remaining()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    // hashHandShake manually
-    const opaque* buffer = input.get_buffer() + input.get_current();
-    ssl.useHashes().use_MD5().update(buffer, sz);
-    ssl.useHashes().use_SHA().update(buffer, sz);
-
-    b1 = input[AUTO];  // does this value mean client_hello?
-
-    ClientHello ch;
-    ch.client_version_.major_ = input[AUTO];
-    ch.client_version_.minor_ = input[AUTO];
-
-    byte len[2];
-
-    len[0] = input[AUTO];
-    len[1] = input[AUTO];
-    ato16(len, ch.suite_len_);
-
-    len[0] = input[AUTO];
-    len[1] = input[AUTO];
-    uint16 sessionLen;
-    ato16(len, sessionLen);
-    ch.id_len_ = sessionLen;
-
-    len[0] = input[AUTO];
-    len[1] = input[AUTO];
-    uint16 randomLen;
-    ato16(len, randomLen);
-
-    if (input.get_error() || ch.suite_len_ > MAX_SUITE_SZ ||
-                             ch.suite_len_ > input.get_remaining() ||
-                             sessionLen > ID_LEN || randomLen > RAN_LEN) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    int j = 0;
-    for (uint16 i = 0; i < ch.suite_len_; i += 3) {    
-        byte first = input[AUTO];
-        if (first)  // sslv2 type
-            input.read(len, SUITE_LEN); // skip
-        else {
-            input.read(&ch.cipher_suites_[j], SUITE_LEN);
-            j += SUITE_LEN;
-        }
-    }
-    ch.suite_len_ = j;
-
-    if (ch.id_len_)
-        input.read(ch.session_id_, ch.id_len_);   // id_len_ from sessionLen
-
-    if (randomLen < RAN_LEN)
-        memset(ch.random_, 0, RAN_LEN - randomLen);
-    input.read(&ch.random_[RAN_LEN - randomLen], randomLen);
- 
-    ch.Process(input, ssl);
-}
-
-
-// Build a finished message, see 7.6.9
-void buildFinished(SSL& ssl, Finished& fin, const opaque* sender) 
-{
-    // store current states, building requires get_digest which resets state
-    MD5 md5(ssl.getHashes().get_MD5());
-    SHA sha(ssl.getHashes().get_SHA());
-
-    if (ssl.isTLS())
-        buildFinishedTLS(ssl, fin, sender);
-    else {
-        buildMD5(ssl, fin, sender);
-        buildSHA(ssl, fin, sender);
-    }
-
-    // restore
-    ssl.useHashes().use_MD5() = md5;
-    ssl.useHashes().use_SHA() = sha;
-}
-
-
-/* compute SSLv3 HMAC into digest see
- * buffer is of sz size and includes HandShake Header but not a Record Header
- * verify means to check peers hmac
-*/
-void hmac(SSL& ssl, byte* digest, const byte* buffer, uint sz,
-          ContentType content, bool verify)
-{
-    Digest& mac = ssl.useCrypto().use_digest();
-    opaque inner[SHA_LEN + PAD_MD5 + SEQ_SZ + SIZEOF_ENUM + LENGTH_SZ];
-    opaque outer[SHA_LEN + PAD_MD5 + SHA_LEN]; 
-    opaque result[SHA_LEN];                              // max possible sizes
-    uint digestSz = mac.get_digestSize();              // actual sizes
-    uint padSz    = mac.get_padSize();
-    uint innerSz  = digestSz + padSz + SEQ_SZ + SIZEOF_ENUM + LENGTH_SZ;
-    uint outerSz  = digestSz + padSz + digestSz;
-
-    // data
-    const opaque* mac_secret = ssl.get_macSecret(verify);
-    opaque seq[SEQ_SZ] = { 0x00, 0x00, 0x00, 0x00 };
-    opaque length[LENGTH_SZ];
-    c16toa(sz, length);
-    c32toa(ssl.get_SEQIncrement(verify), &seq[sizeof(uint32)]);
-
-    // make inner
-    memcpy(inner, mac_secret, digestSz);
-    memcpy(&inner[digestSz], PAD1, padSz);
-    memcpy(&inner[digestSz + padSz], seq, SEQ_SZ);
-    inner[digestSz + padSz + SEQ_SZ] = content;
-    memcpy(&inner[digestSz + padSz + SEQ_SZ + SIZEOF_ENUM], length, LENGTH_SZ);
-
-    mac.update(inner, innerSz);
-    mac.get_digest(result, buffer, sz);      // append content buffer
-
-    // make outer
-    memcpy(outer, mac_secret, digestSz);
-    memcpy(&outer[digestSz], PAD2, padSz);
-    memcpy(&outer[digestSz + padSz], result, digestSz);
-
-    mac.get_digest(digest, outer, outerSz);
-}
-
-
-// TLS type HAMC
-void TLS_hmac(SSL& ssl, byte* digest, const byte* buffer, uint sz,
-              ContentType content, bool verify)
-{
-    mySTL::auto_ptr hmac;
-    opaque seq[SEQ_SZ] = { 0x00, 0x00, 0x00, 0x00 };
-    opaque length[LENGTH_SZ];
-    opaque inner[SIZEOF_ENUM + VERSION_SZ + LENGTH_SZ]; // type + version + len
-
-    c16toa(sz, length);
-    c32toa(ssl.get_SEQIncrement(verify), &seq[sizeof(uint32)]);
-
-    MACAlgorithm algo = ssl.getSecurity().get_parms().mac_algorithm_;
-
-    if (algo == sha)
-        hmac.reset(NEW_YS HMAC_SHA(ssl.get_macSecret(verify), SHA_LEN));
-    else if (algo == rmd)
-        hmac.reset(NEW_YS HMAC_RMD(ssl.get_macSecret(verify), RMD_LEN));
-    else
-        hmac.reset(NEW_YS HMAC_MD5(ssl.get_macSecret(verify), MD5_LEN));
-    
-    hmac->update(seq, SEQ_SZ);                                       // seq_num
-    inner[0] = content;                                              // type
-    inner[SIZEOF_ENUM] = ssl.getSecurity().get_connection().version_.major_;  
-    inner[SIZEOF_ENUM + SIZEOF_ENUM] = 
-        ssl.getSecurity().get_connection().version_.minor_;          // version
-    memcpy(&inner[SIZEOF_ENUM + VERSION_SZ], length, LENGTH_SZ);     // length
-    hmac->update(inner, sizeof(inner));
-    hmac->get_digest(digest, buffer, sz);                            // content
-}
-
-
-// compute TLSv1 PRF (pseudo random function using HMAC)
-void PRF(byte* digest, uint digLen, const byte* secret, uint secLen,
-         const byte* label, uint labLen, const byte* seed, uint seedLen)
-{
-    uint half = (secLen + 1) / 2;
-
-    output_buffer md5_half(half);
-    output_buffer sha_half(half);
-    output_buffer labelSeed(labLen + seedLen);
-
-    md5_half.write(secret, half);
-    sha_half.write(secret + half - secLen % 2, half);
-    labelSeed.write(label, labLen);
-    labelSeed.write(seed, seedLen);
-
-    output_buffer md5_result(digLen);
-    output_buffer sha_result(digLen);
-
-    p_hash(md5_result, md5_half, labelSeed, md5);
-    p_hash(sha_result, sha_half, labelSeed, sha);
-
-    md5_result.set_current(0);
-    sha_result.set_current(0);
-    get_xor(digest, digLen, md5_result, sha_result);
-}
-
-
-// build certificate hashes
-void build_certHashes(SSL& ssl, Hashes& hashes)
-{
-    // store current states, building requires get_digest which resets state
-    MD5 md5(ssl.getHashes().get_MD5());
-    SHA sha(ssl.getHashes().get_SHA());
-
-    if (ssl.isTLS()) {
-        ssl.useHashes().use_MD5().get_digest(hashes.md5_);
-        ssl.useHashes().use_SHA().get_digest(hashes.sha_);
-    }
-    else {
-        buildMD5_CertVerify(ssl, hashes.md5_);
-        buildSHA_CertVerify(ssl, hashes.sha_);
-    }
-
-    // restore
-    ssl.useHashes().use_MD5() = md5;
-    ssl.useHashes().use_SHA() = sha;
-}
-
-
-
-// do process input requests, return 0 is done, 1 is call again to complete
-int DoProcessReply(SSL& ssl)
-{
-    uint ready = ssl.getSocket().get_ready();
-    if (!ready)
-      ready= 64;
-
-    // add buffered data if its there
-    input_buffer* buffered = ssl.useBuffers().TakeRawInput();
-    uint buffSz = buffered ? buffered->get_size() : 0;
-    input_buffer buffer(buffSz + ready);
-    if (buffSz) {
-        buffer.assign(buffered->get_buffer(), buffSz);
-        ysDelete(buffered);
-        buffered = 0;
-    }
-
-    // add new data
-    uint read  = ssl.useSocket().receive(buffer.get_buffer() + buffSz, ready);
-    if (read == static_cast(-1)) {
-        ssl.SetError(receive_error);
-        return 0;
-    }
-    buffer.add_size(read);
-    uint offset = 0;
-    const MessageFactory& mf = ssl.getFactory().getMessage();
-
-    // old style sslv2 client hello?
-    if (ssl.getSecurity().get_parms().entity_ == server_end &&
-                  ssl.getStates().getServer() == clientNull) 
-        if (buffer.peek() != handshake) {
-            ProcessOldClientHello(buffer, ssl);
-            if (ssl.GetError())
-                return 0;
-        }
-
-    while(!buffer.eof()) {
-        // each record
-        RecordLayerHeader hdr;
-        bool              needHdr = false;
-
-        if (static_cast(RECORD_HEADER) > buffer.get_remaining())
-            needHdr = true;
-        else {
-            buffer >> hdr;
-            ssl.verifyState(hdr);
-        }
-
-        if (ssl.GetError())
-            return 0;
-
-        // make sure we have enough input in buffer to process this record
-        if (needHdr || hdr.length_ > buffer.get_remaining()) {
-            // put header in front for next time processing
-            uint extra = needHdr ? 0 : RECORD_HEADER;
-            uint sz = buffer.get_remaining() + extra;
-            ssl.useBuffers().SetRawInput(NEW_YS input_buffer(sz,
-                      buffer.get_buffer() + buffer.get_current() - extra, sz));
-            return 1;
-        }
-
-        while (buffer.get_current() < hdr.length_ + RECORD_HEADER + offset) {
-            // each message in record, can be more than 1 if not encrypted
-            if (ssl.GetError())
-                return 0;
-
-            if (ssl.getSecurity().get_parms().pending_ == false) { // cipher on
-                // sanity check for malicious/corrupted/illegal input
-                if (buffer.get_remaining() < hdr.length_) {
-                    ssl.SetError(bad_input);
-                    return 0;
-                }
-                decrypt_message(ssl, buffer, hdr.length_);
-                if (ssl.GetError())
-                    return 0;
-            }
-                
-            mySTL::auto_ptr msg(mf.CreateObject(hdr.type_));
-            if (!msg.get()) {
-                ssl.SetError(factory_error);
-                return 0;
-            }
-            buffer >> *msg;
-            msg->Process(buffer, ssl);
-            if (ssl.GetError())
-                return 0;
-        }
-        offset += hdr.length_ + RECORD_HEADER;
-    }
-    return 0;
-}
-
-
-// process input requests
-void processReply(SSL& ssl)
-{
-    if (ssl.GetError()) return;
-  
-    if (DoProcessReply(ssl)) {
-        // didn't complete process
-        if (!ssl.getSocket().IsNonBlocking()) {
-            // keep trying now, blocking ok
-            while (!ssl.GetError())
-                if (DoProcessReply(ssl) == 0) break;
-        }
-        else
-            // user will have try again later, non blocking
-            ssl.SetError(YasslError(SSL_ERROR_WANT_READ));
-    }
-}
-
-
-// send client_hello, no buffering
-void sendClientHello(SSL& ssl)
-{
-    ssl.verifyState(serverNull);
-    if (ssl.GetError()) return;
-
-    ClientHello       ch(ssl.getSecurity().get_connection().version_,
-                         ssl.getSecurity().get_connection().compression_);
-    RecordLayerHeader rlHeader;
-    HandShakeHeader   hsHeader;
-    output_buffer     out;
-
-    buildClientHello(ssl, ch);
-    ssl.set_random(ch.get_random(), client_end);
-    buildHeaders(ssl, hsHeader, rlHeader, ch);
-    buildOutput(out, rlHeader, hsHeader, ch);
-    hashHandShake(ssl, out);
-
-    ssl.Send(out.get_buffer(), out.get_size());
-}
-
-
-// send client key exchange
-void sendClientKeyExchange(SSL& ssl, BufferOutput buffer)
-{
-    ssl.verifyState(serverHelloDoneComplete);
-    if (ssl.GetError()) return;
-
-    ClientKeyExchange ck(ssl);
-    ck.build(ssl);
-    ssl.makeMasterSecret();
-
-    RecordLayerHeader rlHeader;
-    HandShakeHeader   hsHeader;
-    mySTL::auto_ptr out(NEW_YS output_buffer);
-    buildHeaders(ssl, hsHeader, rlHeader, ck);
-    buildOutput(*out.get(), rlHeader, hsHeader, ck);
-    hashHandShake(ssl, *out.get());
-
-    if (buffer == buffered)
-        ssl.addBuffer(out.release());
-    else
-        ssl.Send(out->get_buffer(), out->get_size());
-}
-
-
-// send server key exchange
-void sendServerKeyExchange(SSL& ssl, BufferOutput buffer)
-{
-    if (ssl.GetError()) return;
-    ServerKeyExchange sk(ssl);
-    sk.build(ssl);
-    if (ssl.GetError()) return;
-
-    RecordLayerHeader rlHeader;
-    HandShakeHeader   hsHeader;
-    mySTL::auto_ptr out(NEW_YS output_buffer);
-    buildHeaders(ssl, hsHeader, rlHeader, sk);
-    buildOutput(*out.get(), rlHeader, hsHeader, sk);
-    hashHandShake(ssl, *out.get());
-
-    if (buffer == buffered)
-        ssl.addBuffer(out.release());
-    else
-        ssl.Send(out->get_buffer(), out->get_size());
-}
-
-
-// send change cipher
-void sendChangeCipher(SSL& ssl, BufferOutput buffer)
-{
-    if (ssl.getSecurity().get_parms().entity_ == server_end) {
-        if (ssl.getSecurity().get_resuming())
-            ssl.verifyState(clientKeyExchangeComplete);
-        else
-            ssl.verifyState(clientFinishedComplete);
-    }
-    if (ssl.GetError()) return;
-
-    ChangeCipherSpec ccs;
-    RecordLayerHeader rlHeader;
-    buildHeader(ssl, rlHeader, ccs);
-    mySTL::auto_ptr out(NEW_YS output_buffer);
-    buildOutput(*out.get(), rlHeader, ccs);
-   
-    if (buffer == buffered)
-        ssl.addBuffer(out.release());
-    else
-        ssl.Send(out->get_buffer(), out->get_size());
-}
-
-
-// send finished
-void sendFinished(SSL& ssl, ConnectionEnd side, BufferOutput buffer)
-{
-    if (ssl.GetError()) return;
-
-    Finished fin;
-    buildFinished(ssl, fin, side == client_end ? client : server);
-    mySTL::auto_ptr out(NEW_YS output_buffer);
-    cipherFinished(ssl, fin, *out.get());                   // hashes handshake
-
-    if (ssl.getSecurity().get_resuming()) {
-        if (side == server_end)
-            buildFinished(ssl, ssl.useHashes().use_verify(), client); // client
-    }
-    else {
-        if (!ssl.getSecurity().GetContext()->GetSessionCacheOff())
-            GetSessions().add(ssl);  // store session
-        if (side == client_end)
-            buildFinished(ssl, ssl.useHashes().use_verify(), server); // server
-    }   
-    ssl.useSecurity().use_connection().CleanMaster();
-
-    if (buffer == buffered)
-        ssl.addBuffer(out.release());
-    else
-        ssl.Send(out->get_buffer(), out->get_size());
-}
-
-
-// send data
-int sendData(SSL& ssl, const void* buffer, int sz)
-{
-    int sent = 0;
-
-    if (ssl.GetError() == YasslError(SSL_ERROR_WANT_READ))
-        ssl.SetError(no_error);
-
-    if (ssl.GetError() == YasslError(SSL_ERROR_WANT_WRITE)) {
-        ssl.SetError(no_error);
-        ssl.SendWriteBuffered();
-        if (!ssl.GetError()) {
-            // advance sent to prvevious sent + plain size just sent
-            sent = ssl.useBuffers().prevSent + ssl.useBuffers().plainSz;
-        }
-    }
-
-    ssl.verfiyHandShakeComplete();
-    if (ssl.GetError()) return -1;
-
-    for (;;) {
-        int len = min(sz - sent, MAX_RECORD_SIZE);
-        output_buffer out;
-        input_buffer tmp;
-
-        Data data;
-
-        if (sent == sz) break;
-
-        if (ssl.CompressionOn()) {
-            if (Compress(static_cast(buffer) + sent, len,
-                         tmp) == -1) {
-                ssl.SetError(compress_error);
-                return -1;
-            }
-            data.SetData(tmp.get_size(), tmp.get_buffer());
-        }
-        else
-            data.SetData(len, static_cast(buffer) + sent);
-
-        buildMessage(ssl, out, data);
-        ssl.Send(out.get_buffer(), out.get_size());
-
-        if (ssl.GetError()) {
-            if (ssl.GetError() == YasslError(SSL_ERROR_WANT_WRITE)) {
-                ssl.useBuffers().plainSz  = len;
-                ssl.useBuffers().prevSent = sent;
-            }
-            return -1;
-        }
-        sent += len;
-    }
-    ssl.useLog().ShowData(sent, true);
-    return sent;
-}
-
-
-// send alert
-int sendAlert(SSL& ssl, const Alert& alert)
-{
-    output_buffer out;
-    buildAlert(ssl, out, alert);
-    ssl.Send(out.get_buffer(), out.get_size());
-
-    return alert.get_length();
-}
-
-
-// process input data
-int receiveData(SSL& ssl, Data& data, bool peek)
-{
-    if (ssl.GetError() == YasslError(SSL_ERROR_WANT_READ))
-        ssl.SetError(no_error);
-
-    ssl.verfiyHandShakeComplete();
-    if (ssl.GetError()) return -1;
-
-    if (!ssl.HasData())
-        processReply(ssl);
-
-    if (peek)
-        ssl.PeekData(data);
-    else
-        ssl.fillData(data);
-
-    ssl.useLog().ShowData(data.get_length());
-    if (ssl.GetError()) return -1;
-
-    if (data.get_length() == 0 && ssl.getSocket().WouldBlock()) {
-        ssl.SetError(YasslError(SSL_ERROR_WANT_READ));
-        return SSL_WOULD_BLOCK;
-    }
-    return data.get_length(); 
-}
-
-
-// send server hello
-void sendServerHello(SSL& ssl, BufferOutput buffer)
-{
-    if (ssl.getSecurity().get_resuming())
-        ssl.verifyState(clientKeyExchangeComplete);
-    else
-        ssl.verifyState(clientHelloComplete);
-    if (ssl.GetError()) return;
-
-    ServerHello       sh(ssl.getSecurity().get_connection().version_,
-                         ssl.getSecurity().get_connection().compression_);
-    RecordLayerHeader rlHeader;
-    HandShakeHeader   hsHeader;
-    mySTL::auto_ptr out(NEW_YS output_buffer);
-
-    buildServerHello(ssl, sh);
-    ssl.set_random(sh.get_random(), server_end);
-    buildHeaders(ssl, hsHeader, rlHeader, sh);
-    buildOutput(*out.get(), rlHeader, hsHeader, sh);
-    hashHandShake(ssl, *out.get());
-
-    if (buffer == buffered)
-        ssl.addBuffer(out.release());
-    else
-        ssl.Send(out->get_buffer(), out->get_size());
-}
-
-
-// send server hello done
-void sendServerHelloDone(SSL& ssl, BufferOutput buffer)
-{
-    if (ssl.GetError()) return;
-
-    ServerHelloDone   shd;
-    RecordLayerHeader rlHeader;
-    HandShakeHeader   hsHeader;
-    mySTL::auto_ptr out(NEW_YS output_buffer);
-
-    buildHeaders(ssl, hsHeader, rlHeader, shd);
-    buildOutput(*out.get(), rlHeader, hsHeader, shd);
-    hashHandShake(ssl, *out.get());
-
-    if (buffer == buffered)
-        ssl.addBuffer(out.release());
-    else
-        ssl.Send(out->get_buffer(), out->get_size());
-}
-
-
-// send certificate
-void sendCertificate(SSL& ssl, BufferOutput buffer)
-{
-    if (ssl.GetError()) return;
-
-    Certificate       cert(ssl.getCrypto().get_certManager().get_cert());
-    RecordLayerHeader rlHeader;
-    HandShakeHeader   hsHeader;
-    mySTL::auto_ptr out(NEW_YS output_buffer);
-
-    buildHeaders(ssl, hsHeader, rlHeader, cert);
-    buildOutput(*out.get(), rlHeader, hsHeader, cert);
-    hashHandShake(ssl, *out.get());
-
-    if (buffer == buffered)
-        ssl.addBuffer(out.release());
-    else
-        ssl.Send(out->get_buffer(), out->get_size());
-}
-
-
-// send certificate request
-void sendCertificateRequest(SSL& ssl, BufferOutput buffer)
-{
-    if (ssl.GetError()) return;
-
-    CertificateRequest request;
-    request.Build();
-    RecordLayerHeader  rlHeader;
-    HandShakeHeader    hsHeader;
-    mySTL::auto_ptr out(NEW_YS output_buffer);
-
-    buildHeaders(ssl, hsHeader, rlHeader, request);
-    buildOutput(*out.get(), rlHeader, hsHeader, request);
-    hashHandShake(ssl, *out.get());
-
-    if (buffer == buffered)
-        ssl.addBuffer(out.release());
-    else
-        ssl.Send(out->get_buffer(), out->get_size());
-}
-
-
-// send certificate verify
-void sendCertificateVerify(SSL& ssl, BufferOutput buffer)
-{
-    if (ssl.GetError()) return;
-
-    if(ssl.getCrypto().get_certManager().sendBlankCert()) return;
-
-    CertificateVerify  verify;
-    verify.Build(ssl);
-    if (ssl.GetError()) return;
-
-    RecordLayerHeader  rlHeader;
-    HandShakeHeader    hsHeader;
-    mySTL::auto_ptr out(NEW_YS output_buffer);
-
-    buildHeaders(ssl, hsHeader, rlHeader, verify);
-    buildOutput(*out.get(), rlHeader, hsHeader, verify);
-    hashHandShake(ssl, *out.get());
-
-    if (buffer == buffered)
-        ssl.addBuffer(out.release());
-    else
-        ssl.Send(out->get_buffer(), out->get_size());
-}
-
-
-} // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/src/lock.cpp b/mysql-wsrep-5.6/extra/yassl/src/lock.cpp
deleted file mode 100644
index c74ea1c6..00000000
--- a/mysql-wsrep-5.6/extra/yassl/src/lock.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-   Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/*  Locking functions
- */
-
-#include "runtime.hpp"
-#include "lock.hpp"
-
-
-namespace yaSSL {
-
-
-#ifdef MULTI_THREADED
-    #ifdef _WIN32
-        
-        Mutex::Mutex()
-        {
-            InitializeCriticalSection(&cs_);
-        }
-
-
-        Mutex::~Mutex()
-        {
-            DeleteCriticalSection(&cs_);
-        }
-
-            
-        Mutex::Lock::Lock(Mutex& lm) : mutex_(lm)
-        {
-            EnterCriticalSection(&mutex_.cs_); 
-        }
-
-
-        Mutex::Lock::~Lock()
-        {
-            LeaveCriticalSection(&mutex_.cs_); 
-        }
-            
-    #else  // _WIN32
-        
-        Mutex::Mutex()
-        {
-            pthread_mutex_init(&mutex_, 0);
-        }
-
-
-        Mutex::~Mutex()
-        {
-            pthread_mutex_destroy(&mutex_);
-        }
-
-
-        Mutex::Lock::Lock(Mutex& lm) : mutex_(lm)
-        {
-            pthread_mutex_lock(&mutex_.mutex_); 
-        }
-
-
-        Mutex::Lock::~Lock()
-        {
-            pthread_mutex_unlock(&mutex_.mutex_); 
-        }
-         
-
-    #endif // _WIN32
-#endif // MULTI_THREADED
-
-
-
-} // namespace yaSSL
-
diff --git a/mysql-wsrep-5.6/extra/yassl/src/log.cpp b/mysql-wsrep-5.6/extra/yassl/src/log.cpp
deleted file mode 100644
index 2f112ac3..00000000
--- a/mysql-wsrep-5.6/extra/yassl/src/log.cpp
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
-   Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/*  Debug logging functions
- */
-
-
-#include "runtime.hpp"
-#include "log.hpp"
-
-#ifdef YASSL_LOG
-    #include 
-    #include 
-    #include 
-#endif
-
-
-
-namespace yaSSL {
-
-
-#ifdef YASSL_LOG
-
-    enum { MAX_MSG = 81 };
-
-    Log::Log(const char* str)
-    {
-        log_ = fopen(str, "w");
-        Trace("********** Logger Attached **********");
-    }
-
-
-    Log::~Log()
-    {
-        Trace("********** Logger Detached **********");
-        fclose(log_);
-    }
-
-
-    // Trace a message
-    void Log::Trace(const char* str)
-    {
-        if (!log_) return;
-
-        time_t clicks = time(0);
-        char   timeStr[32];
-
-        memset(timeStr, 0, sizeof(timeStr));
-        // get rid of newline
-        strncpy(timeStr, ctime(&clicks), sizeof(timeStr));
-        unsigned int len = strlen(timeStr);
-        timeStr[len - 1] = 0;
-
-        char msg[MAX_MSG];
-
-        strncpy(msg, timeStr, sizeof(timeStr));
-        strncat(msg, ":", 1);
-        strncat(msg, str, MAX_MSG - sizeof(timeStr) - 2);
-        strncat(msg, "\n", 1);
-        msg[MAX_MSG - 1] = 0;
-
-        fputs(msg, log_);
-    }
-
-
-    #if defined(_WIN32) || defined(__MACH__) || defined(__hpux__)
-        typedef int socklen_t;
-    #endif
-
-
-    // write tcp address
-    void Log::ShowTCP(socket_t fd, bool ended)
-    {
-        sockaddr_in peeraddr;
-        socklen_t   len = sizeof(peeraddr);
-        if (getpeername(fd, (sockaddr*)&peeraddr, &len) != 0)
-            return;
-
-        const char* p = reinterpret_cast(&peeraddr.sin_addr);
-        char msg[MAX_MSG];
-        char number[16];
-    
-        if (ended)
-            strncpy(msg, "yaSSL conn DONE  w/ peer ", 26);
-        else
-            strncpy(msg, "yaSSL conn BEGUN w/ peer ", 26);
-        for (int i = 0; i < 4; ++i) {
-            sprintf(number, "%u", static_cast(p[i]));
-            strncat(msg, number, 8);
-            if (i < 3)
-                strncat(msg, ".", 1);
-        }
-        strncat(msg, " port ", 8);
-        sprintf(number, "%d", htons(peeraddr.sin_port));
-        strncat(msg, number, 8);
-
-        msg[MAX_MSG - 1] = 0;
-        Trace(msg);
-    }
-
-
-    // log processed data
-    void Log::ShowData(uint bytes, bool sent)
-    {
-        char msg[MAX_MSG];
-        char number[16];
-
-        if (sent)
-            strncpy(msg, "Sent     ", 10); 
-        else
-            strncpy(msg, "Received ", 10);
-        sprintf(number, "%u", bytes);
-        strncat(msg, number, 8);
-        strncat(msg, " bytes of application data", 27);
-
-        msg[MAX_MSG - 1] = 0;
-        Trace(msg);
-    }
-
-
-#else // no YASSL_LOG
-
-
-    Log::Log(const char*) {}
-    Log::~Log() {}
-    void Log::Trace(const char*) {}
-    void Log::ShowTCP(socket_t, bool) {}
-    void Log::ShowData(uint, bool) {}
-
-
-#endif // YASSL_LOG
-} // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/src/make.bat b/mysql-wsrep-5.6/extra/yassl/src/make.bat
deleted file mode 100644
index e47307ac..00000000
--- a/mysql-wsrep-5.6/extra/yassl/src/make.bat
+++ /dev/null
@@ -1,42 +0,0 @@
-REM Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
-REM 
-REM This program is free software; you can redistribute it and/or modify
-REM it under the terms of the GNU General Public License as published by
-REM the Free Software Foundation; version 2 of the License.
-REM 
-REM This program is distributed in the hope that it will be useful,
-REM but WITHOUT ANY WARRANTY; without even the implied warranty of
-REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-REM GNU General Public License for more details.
-REM 
-REM You should have received a copy of the GNU General Public License
-REM along with this program; if not, write to the Free Software
-REM Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-
-REM quick and dirty build file for testing different MSDEVs
-setlocal 
-
-set myFLAGS= /I../include /I../taocrypt/mySTL /I../taocrypt/include /W3 /c /ZI
-
-cl %myFLAGS% buffer.cpp
-cl %myFLAGS% cert_wrapper.cpp
-cl %myFLAGS% crypto_wrapper.cpp
-cl %myFLAGS% handshake.cpp
-
-cl %myFLAGS% lock.cpp
-cl %myFLAGS% log.cpp
-cl %myFLAGS% socket_wrapper.cpp
-cl %myFLAGS% ssl.cpp
-
-cl %myFLAGS% template_instnt.cpp
-cl %myFLAGS% timer.cpp
-cl %myFLAGS% yassl.cpp
-cl %myFLAGS% yassl_error.cpp
-
-cl %myFLAGS% yassl_imp.cpp
-cl %myFLAGS% yassl_int.cpp
-
-link.exe -lib /out:yassl.lib buffer.obj cert_wrapper.obj crypto_wrapper.obj handshake.obj lock.obj log.obj socket_wrapper.obj ssl.obj template_instnt.obj timer.obj yassl.obj yassl_error.obj yassl_imp.obj yassl_int.obj
-
-
-
diff --git a/mysql-wsrep-5.6/extra/yassl/src/socket_wrapper.cpp b/mysql-wsrep-5.6/extra/yassl/src/socket_wrapper.cpp
deleted file mode 100644
index a23c1c12..00000000
--- a/mysql-wsrep-5.6/extra/yassl/src/socket_wrapper.cpp
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
-   Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* The socket wrapper source implements a Socket class that hides the 
- * differences between Berkely style sockets and Windows sockets, allowing 
- * transparent TCP access.
- */
-
-
-#include "runtime.hpp"
-#include "socket_wrapper.hpp"
-
-#ifndef _WIN32
-    #include 
-    #include 
-    #include 
-    #include 
-    #include 
-    #include 
-    #include 
-    #include 
-#endif // _WIN32
-
-#if defined(__sun) || defined(__SCO_VERSION__)
-    #include 
-#endif
-
-#ifdef _WIN32
-    const int SOCKET_EINVAL = WSAEINVAL;
-    const int SOCKET_EWOULDBLOCK = WSAEWOULDBLOCK;
-    const int SOCKET_EAGAIN = WSAEWOULDBLOCK;
-#else
-    const int SOCKET_EINVAL = EINVAL;
-    const int SOCKET_EWOULDBLOCK = EWOULDBLOCK;
-    const int SOCKET_EAGAIN = EAGAIN;
-#endif // _WIN32
-
-
-namespace {
-
-
-extern "C" long system_recv(void *ptr, void *buf, size_t count)
-{
-  yaSSL::socket_t *socket = (yaSSL::socket_t *) ptr;
-  return ::recv(*socket, reinterpret_cast(buf), count, 0);
-}
-
-
-extern "C" long system_send(void *ptr, const void *buf, size_t count)
-{
-  yaSSL::socket_t *socket = (yaSSL::socket_t *) ptr;
-  return ::send(*socket, reinterpret_cast(buf), count, 0);
-}
-
-
-}
-
-
-namespace yaSSL {
-
-
-Socket::Socket(socket_t s) 
-    : socket_(s), wouldBlock_(false), nonBlocking_(false),
-      ptr_(&socket_), send_func_(system_send), recv_func_(system_recv)
-{}
-
-
-void Socket::set_fd(socket_t s)
-{
-    socket_ = s;
-}
-
-
-socket_t Socket::get_fd() const
-{
-    return socket_;
-}
-
-
-Socket::~Socket()
-{
-    // don't close automatically now
-}
-
-
-void Socket::closeSocket()
-{
-    if (socket_ != INVALID_SOCKET) {
-#ifdef _WIN32
-        closesocket(socket_);
-#else
-        close(socket_);
-#endif
-        socket_ = INVALID_SOCKET;
-    }
-}
-
-
-uint Socket::get_ready() const
-{
-#ifdef _WIN32
-    unsigned long ready = 0;
-    ioctlsocket(socket_, FIONREAD, &ready);
-#else
-    /*
-       64-bit Solaris requires the variable passed to
-       FIONREAD be a 32-bit value.
-    */
-    unsigned int ready = 0;
-    ioctl(socket_, FIONREAD, &ready);
-#endif
-
-    return ready;
-}
-
-
-void Socket::set_transport_ptr(void *ptr)
-{
-  ptr_ = ptr;
-}
-
-
-void Socket::set_transport_recv_function(yaSSL_recv_func_t recv_func)
-{
-  recv_func_ = recv_func;
-}
-
-
-void Socket::set_transport_send_function(yaSSL_send_func_t send_func)
-{
-  send_func_ = send_func;
-}
-
-
-uint Socket::send(const byte* buf, unsigned int sz, unsigned int& written)
-{
-    const byte* pos = buf;
-    const byte* end = pos + sz;
-
-    wouldBlock_ = false;
-
-    /* Remove send()/recv() hooks once non-blocking send is implemented. */
-    while (pos != end) {
-        int sent = send_func_(ptr_, pos, static_cast(end - pos));
-        if (sent == -1) {
-            if (get_lastError() == SOCKET_EWOULDBLOCK || 
-                get_lastError() == SOCKET_EAGAIN) {
-                wouldBlock_  = true; // would have blocked this time only
-                nonBlocking_ = true; // nonblocking, win32 only way to tell 
-                return 0;
-            }
-            return static_cast(-1);
-        }
-        pos += sent;
-        written += sent;
-    }
-
-    return sz;
-}
-
-
-uint Socket::receive(byte* buf, unsigned int sz)
-{
-    wouldBlock_ = false;
-
-    int recvd = recv_func_(ptr_, buf, sz);
-
-    // idea to seperate error from would block by arnetheduck@gmail.com
-    if (recvd == -1) {
-        if (get_lastError() == SOCKET_EWOULDBLOCK || 
-            get_lastError() == SOCKET_EAGAIN) {
-            wouldBlock_  = true; // would have blocked this time only
-            nonBlocking_ = true; // socket nonblocking, win32 only way to tell
-            return 0;
-        }
-    }
-    else if (recvd == 0)
-        return static_cast(-1);
-
-    return recvd;
-}
-
-
-void Socket::shutDown(int how)
-{
-    shutdown(socket_, how);
-}
-
-
-int Socket::get_lastError()
-{
-#ifdef _WIN32
-    return WSAGetLastError();
-#else
-    return errno;
-#endif
-}
-
-
-bool Socket::WouldBlock() const
-{
-    return wouldBlock_;
-}
-
-
-bool Socket::IsNonBlocking() const
-{
-    return nonBlocking_;
-}
-
-
-void Socket::set_lastError(int errorCode)
-{
-#ifdef _WIN32
-    WSASetLastError(errorCode);
-#else
-    errno = errorCode;
-#endif
-}
-
-
-} // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/src/ssl.cpp b/mysql-wsrep-5.6/extra/yassl/src/ssl.cpp
deleted file mode 100644
index 8d447365..00000000
--- a/mysql-wsrep-5.6/extra/yassl/src/ssl.cpp
+++ /dev/null
@@ -1,1780 +0,0 @@
-/*
-   Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/*  SSL source implements all openssl compatibility API functions
- *
- *  TODO: notes are mostly api additions to allow compilation with mysql
- *  they don't affect normal modes but should be provided for completeness
-
- *  stunnel functions at end of file
- */
-
-
-
-/*  see man pages for function descriptions */
-
-#include "runtime.hpp"
-#include "openssl/ssl.h"
-#include "handshake.hpp"
-#include "yassl_int.hpp"
-#include "md5.hpp"              // for TaoCrypt MD5 size assert
-#include "md4.hpp"              // for TaoCrypt MD4 size assert
-#include "file.hpp"             // for TaoCrypt Source
-#include "coding.hpp"           // HexDecoder
-#include "helpers.hpp"          // for placement new hack
-#include "rsa.hpp"              // for TaoCrypt RSA key decode
-#include "dsa.hpp"              // for TaoCrypt DSA key decode
-#include 
-
-#ifdef _WIN32
-    #include     // FindFirstFile etc..
-#else
-    #include   // file helper
-    #include    // stat
-    #include      // opendir
-#endif
-
-
-namespace yaSSL {
-
-
-
-int read_file(SSL_CTX* ctx, const char* file, int format, CertType type)
-{
-    int ret = SSL_SUCCESS;
-
-    if (format != SSL_FILETYPE_ASN1 && format != SSL_FILETYPE_PEM)
-        return SSL_BAD_FILETYPE;
-
-    if (file == NULL || !file[0])
-      return SSL_BAD_FILE;
-
-    FILE* input = fopen(file, "rb");
-    if (!input)
-        return SSL_BAD_FILE;
-
-    if (type == CA) {
-        // may have a bunch of CAs
-        x509* ptr;
-        while ( (ptr = PemToDer(input, Cert)) )
-            ctx->AddCA(ptr);
-
-        if (!feof(input)) {
-            fclose(input);
-            return SSL_BAD_FILE;
-        }
-    }
-    else {
-        x509*& x = (type == Cert) ? ctx->certificate_ : ctx->privateKey_;
-
-        if (format == SSL_FILETYPE_ASN1) {
-            fseek(input, 0, SEEK_END);
-            long sz = ftell(input);
-            rewind(input);
-            x = NEW_YS x509(sz); // takes ownership
-            size_t bytes = fread(x->use_buffer(), sz, 1, input);
-            if (bytes != 1) {
-                fclose(input);
-                return SSL_BAD_FILE;
-            }
-        }
-        else {
-            EncryptedInfo info;
-            x = PemToDer(input, type, &info);
-            if (!x) {
-                fclose(input);
-                return SSL_BAD_FILE;
-            }
-            if (info.set) {
-                // decrypt
-                char password[80];
-                pem_password_cb cb = ctx->GetPasswordCb();
-                if (!cb) {
-                    fclose(input);
-                    return SSL_BAD_FILE;
-                }
-                int passwordSz = cb(password, sizeof(password), 0,
-                                    ctx->GetUserData());
-                byte key[AES_256_KEY_SZ];  // max sizes
-                byte iv[AES_IV_SZ];
-                
-                // use file's salt for key derivation, but not real iv
-                TaoCrypt::Source source(info.iv, info.ivSz);
-                TaoCrypt::HexDecoder dec(source);
-                memcpy(info.iv, source.get_buffer(), min((uint)sizeof(info.iv),
-                                                         source.size()));
-                EVP_BytesToKey(info.name, "MD5", info.iv, (byte*)password,
-                               passwordSz, 1, key, iv);
-
-                mySTL::auto_ptr cipher;
-                if (strncmp(info.name, "DES-CBC", 7) == 0)
-                    cipher.reset(NEW_YS DES);
-                else if (strncmp(info.name, "DES-EDE3-CBC", 13) == 0)
-                    cipher.reset(NEW_YS DES_EDE);
-                else if (strncmp(info.name, "AES-128-CBC", 13) == 0)
-                    cipher.reset(NEW_YS AES(AES_128_KEY_SZ));
-                else if (strncmp(info.name, "AES-192-CBC", 13) == 0)
-                    cipher.reset(NEW_YS AES(AES_192_KEY_SZ));
-                else if (strncmp(info.name, "AES-256-CBC", 13) == 0)
-                    cipher.reset(NEW_YS AES(AES_256_KEY_SZ));
-                else {
-                    fclose(input);
-                    return SSL_BAD_FILE;
-                }
-                cipher->set_decryptKey(key, info.iv);
-                mySTL::auto_ptr newx(NEW_YS x509(x->get_length()));   
-                cipher->decrypt(newx->use_buffer(), x->get_buffer(),
-                                x->get_length());
-                ysDelete(x);
-                x = newx.release();
-            }
-        }
-    }
-
-    if (type == PrivateKey && ctx->privateKey_) {
-        // see if key is valid early
-        TaoCrypt::Source rsaSource(ctx->privateKey_->get_buffer(),
-                                   ctx->privateKey_->get_length());
-        TaoCrypt::RSA_PrivateKey rsaKey;
-        rsaKey.Initialize(rsaSource);
-
-        if (rsaSource.GetError().What()) {
-            // rsa failed see if DSA works
-
-            TaoCrypt::Source dsaSource(ctx->privateKey_->get_buffer(),
-                                       ctx->privateKey_->get_length());
-            TaoCrypt::DSA_PrivateKey dsaKey;
-            dsaKey.Initialize(dsaSource);
-
-            if (dsaSource.GetError().What()) {
-                // neither worked
-                ret = SSL_FAILURE;
-            }
-        }
-    }
-
-    fclose(input);
-    return ret;
-}
-
-
-extern "C" {
-
-
-SSL_METHOD* SSLv3_method()
-{
-    return SSLv3_client_method();
-}
-
-
-SSL_METHOD* SSLv3_server_method()
-{
-    return NEW_YS SSL_METHOD(server_end, ProtocolVersion(3,0));
-}
-
-
-SSL_METHOD* SSLv3_client_method()
-{
-    return NEW_YS SSL_METHOD(client_end, ProtocolVersion(3,0));
-}
-
-
-SSL_METHOD* TLSv1_server_method()
-{
-    return NEW_YS SSL_METHOD(server_end, ProtocolVersion(3,1));
-}
-
-
-SSL_METHOD* TLSv1_client_method()
-{
-    return NEW_YS SSL_METHOD(client_end, ProtocolVersion(3,1));
-}
-
-
-SSL_METHOD* TLSv1_1_server_method()
-{
-    return NEW_YS SSL_METHOD(server_end, ProtocolVersion(3,2));
-}
-
-
-SSL_METHOD* TLSv1_1_client_method()
-{
-    return NEW_YS SSL_METHOD(client_end, ProtocolVersion(3,2));
-}
-
-
-SSL_METHOD* SSLv23_server_method()
-{
-    // compatibility only, no version 2 support, but does SSL 3 and TLS 1
-    return NEW_YS SSL_METHOD(server_end, ProtocolVersion(3,2), true);
-}
-
-
-SSL_METHOD* SSLv23_client_method()
-{
-    // compatibility only, no version 2 support, but does SSL 3 and TLS 1
-    // though it sends TLS1 hello not SSLv2 so SSLv3 only servers will decline
-    // TODO: maybe add support to send SSLv2 hello ???
-    return NEW_YS SSL_METHOD(client_end, ProtocolVersion(3,2), true);
-}
-
-
-SSL_CTX* SSL_CTX_new(SSL_METHOD* method)
-{
-    return NEW_YS SSL_CTX(method);
-}
-
-
-void SSL_CTX_free(SSL_CTX* ctx)
-{
-    ysDelete(ctx);
-}
-
-
-SSL* SSL_new(SSL_CTX* ctx)
-{
-    return NEW_YS SSL(ctx);
-}
-
-
-void SSL_free(SSL* ssl)
-{
-    ysDelete(ssl);
-}
-
-
-int SSL_set_fd(SSL* ssl, YASSL_SOCKET_T fd)
-{
-    ssl->useSocket().set_fd(fd);
-    return SSL_SUCCESS;
-}
-
-
-YASSL_SOCKET_T SSL_get_fd(const SSL* ssl)
-{
-    return ssl->getSocket().get_fd();
-}
-
-
-// if you get an error from connect see note at top of README
-int SSL_connect(SSL* ssl)
-{
-    if (ssl->GetError() == YasslError(SSL_ERROR_WANT_READ))
-        ssl->SetError(no_error);
-
-    if (ssl->GetError() == YasslError(SSL_ERROR_WANT_WRITE)) {
-    
-        ssl->SetError(no_error);
-        ssl->SendWriteBuffered();
-        if (!ssl->GetError())
-            ssl->useStates().UseConnect() =
-                             ConnectState(ssl->getStates().GetConnect() + 1);
-    }
-
-    ClientState neededState;
-
-    switch (ssl->getStates().GetConnect()) {
-
-    case CONNECT_BEGIN :
-        sendClientHello(*ssl);
-        if (!ssl->GetError())
-            ssl->useStates().UseConnect() = CLIENT_HELLO_SENT;
-
-    case CLIENT_HELLO_SENT :
-        neededState = ssl->getSecurity().get_resuming() ?
-                      serverFinishedComplete : serverHelloDoneComplete;
-        while (ssl->getStates().getClient() < neededState) {
-            if (ssl->GetError()) break;
-            processReply(*ssl);
-            // if resumption failed, reset needed state 
-            if (neededState == serverFinishedComplete)
-                if (!ssl->getSecurity().get_resuming())
-                    neededState = serverHelloDoneComplete;
-        }
-        if (!ssl->GetError())
-            ssl->useStates().UseConnect() = FIRST_REPLY_DONE;
-
-    case FIRST_REPLY_DONE :
-        if(ssl->getCrypto().get_certManager().sendVerify())
-            sendCertificate(*ssl);
-
-        if (!ssl->getSecurity().get_resuming())
-            sendClientKeyExchange(*ssl);
-
-        if(ssl->getCrypto().get_certManager().sendVerify())
-            sendCertificateVerify(*ssl);
-
-        sendChangeCipher(*ssl);
-        sendFinished(*ssl, client_end);
-        ssl->flushBuffer();
-
-        if (!ssl->GetError())
-            ssl->useStates().UseConnect() = FINISHED_DONE;
-
-    case FINISHED_DONE :
-        if (!ssl->getSecurity().get_resuming())
-            while (ssl->getStates().getClient() < serverFinishedComplete) {
-                if (ssl->GetError()) break;
-                processReply(*ssl);
-            }
-        if (!ssl->GetError())
-            ssl->useStates().UseConnect() = SECOND_REPLY_DONE;
-
-    case SECOND_REPLY_DONE :
-        ssl->verifyState(serverFinishedComplete);
-        ssl->useLog().ShowTCP(ssl->getSocket().get_fd());
-
-        if (ssl->GetError()) {
-            GetErrors().Add(ssl->GetError());
-            return SSL_FATAL_ERROR;
-        }   
-        return SSL_SUCCESS;
-
-    default :
-        return SSL_FATAL_ERROR; // unkown state
-    }
-}
-
-
-int SSL_write(SSL* ssl, const void* buffer, int sz)
-{
-    return sendData(*ssl, buffer, sz);
-}
-
-
-int SSL_read(SSL* ssl, void* buffer, int sz)
-{
-    Data data(min(sz, MAX_RECORD_SIZE), static_cast(buffer));
-    return receiveData(*ssl, data);
-}
-
-
-int SSL_accept(SSL* ssl)
-{
-    if (ssl->GetError() == YasslError(SSL_ERROR_WANT_READ))
-        ssl->SetError(no_error);
-
-    if (ssl->GetError() == YasslError(SSL_ERROR_WANT_WRITE)) {
-    
-        ssl->SetError(no_error);
-        ssl->SendWriteBuffered();
-        if (!ssl->GetError())
-            ssl->useStates().UseAccept() =
-                             AcceptState(ssl->getStates().GetAccept() + 1);
-    }
-
-    switch (ssl->getStates().GetAccept()) {
-
-    case ACCEPT_BEGIN :
-        processReply(*ssl);
-        if (!ssl->GetError())
-            ssl->useStates().UseAccept() = ACCEPT_FIRST_REPLY_DONE;
-
-    case ACCEPT_FIRST_REPLY_DONE :
-        sendServerHello(*ssl);
-
-        if (!ssl->getSecurity().get_resuming()) {
-            sendCertificate(*ssl);
-
-            if (ssl->getSecurity().get_connection().send_server_key_)
-                sendServerKeyExchange(*ssl);
-
-            if(ssl->getCrypto().get_certManager().verifyPeer())
-                sendCertificateRequest(*ssl);
-
-            sendServerHelloDone(*ssl);
-            ssl->flushBuffer();
-        }
-      
-        if (!ssl->GetError())
-            ssl->useStates().UseAccept() = SERVER_HELLO_DONE;
-
-    case SERVER_HELLO_DONE :
-        if (!ssl->getSecurity().get_resuming()) {
-            while (ssl->getStates().getServer() < clientFinishedComplete) {
-                if (ssl->GetError()) break;
-                processReply(*ssl);
-            }
-        }
-        if (!ssl->GetError())
-            ssl->useStates().UseAccept() = ACCEPT_SECOND_REPLY_DONE;
-
-    case ACCEPT_SECOND_REPLY_DONE :
-        sendChangeCipher(*ssl);
-        sendFinished(*ssl, server_end);
-        ssl->flushBuffer();
-
-        if (!ssl->GetError())
-            ssl->useStates().UseAccept() = ACCEPT_FINISHED_DONE;
-
-    case ACCEPT_FINISHED_DONE :
-        if (ssl->getSecurity().get_resuming()) {
-            while (ssl->getStates().getServer() < clientFinishedComplete) {
-                if (ssl->GetError()) break;
-                processReply(*ssl);
-            }
-        }
-        if (!ssl->GetError())
-            ssl->useStates().UseAccept() = ACCEPT_THIRD_REPLY_DONE;
-
-    case ACCEPT_THIRD_REPLY_DONE :
-        ssl->useLog().ShowTCP(ssl->getSocket().get_fd());
-
-        if (ssl->GetError()) {
-            GetErrors().Add(ssl->GetError());
-            return SSL_FATAL_ERROR;
-        }
-        return SSL_SUCCESS;
-
-    default:
-        return SSL_FATAL_ERROR; // unknown state
-    }
-}
-
-
-int SSL_do_handshake(SSL* ssl)
-{
-    if (ssl->getSecurity().get_parms().entity_ == client_end)
-        return SSL_connect(ssl);
-    else
-        return SSL_accept(ssl);
-}
-
-
-int SSL_clear(SSL* ssl)
-{
-    GetErrors().Remove();
-
-    return SSL_SUCCESS;
-}
-
-
-int SSL_shutdown(SSL* ssl)
-{
-    if (!ssl->GetQuietShutdown()) {
-      Alert alert(warning, close_notify);
-      sendAlert(*ssl, alert);
-    }
-    ssl->useLog().ShowTCP(ssl->getSocket().get_fd(), true);
-
-    GetErrors().Remove();
-
-    return SSL_SUCCESS;
-}
-
-
-void SSL_set_quiet_shutdown(SSL *ssl,int mode)
-{
-    ssl->SetQuietShutdown(mode != 0);
-}
-
-
-int SSL_get_quiet_shutdown(SSL *ssl)
-{
-    return ssl->GetQuietShutdown();
-}
-
-
-/* on by default but allow user to turn off */
-long SSL_CTX_set_session_cache_mode(SSL_CTX* ctx, long mode)
-{
-    if (mode == SSL_SESS_CACHE_OFF)
-        ctx->SetSessionCacheOff();
-
-    if (mode == SSL_SESS_CACHE_NO_AUTO_CLEAR)
-        ctx->SetSessionCacheFlushOff();
-
-    return SSL_SUCCESS;
-}
-
-
-SSL_SESSION* SSL_get_session(SSL* ssl)
-{
-    if (ssl->getSecurity().GetContext()->GetSessionCacheOff())
-        return 0;
-
-    return GetSessions().lookup(
-        ssl->getSecurity().get_connection().sessionID_);
-}
-
-
-int SSL_set_session(SSL* ssl, SSL_SESSION* session)
-{
-    if (ssl->getSecurity().GetContext()->GetSessionCacheOff())
-        return SSL_FAILURE;
-
-    ssl->set_session(session);
-    return SSL_SUCCESS;
-}
-
-
-int SSL_session_reused(SSL* ssl)
-{
-    return ssl->getSecurity().get_resuming();
-}
-
-
-long SSL_SESSION_set_timeout(SSL_SESSION* sess, long t)
-{
-    if (!sess)
-        return SSL_ERROR_NONE;
-
-    sess->SetTimeOut(t);
-    return SSL_SUCCESS;
-}
-
-
-long SSL_get_default_timeout(SSL* /*ssl*/)
-{
-    return DEFAULT_TIMEOUT;
-}
-
-
-void SSL_flush_sessions(SSL_CTX *ctx, long /* tm */)
-{
-    if (ctx->GetSessionCacheOff())
-        return;
-
-    GetSessions().Flush();
-}
-
-
-const char* SSL_get_cipher_name(SSL* ssl)
-{ 
-    return SSL_get_cipher(ssl); 
-}
-
-
-const char* SSL_get_cipher(SSL* ssl)
-{
-    return ssl->getSecurity().get_parms().cipher_name_;
-}
-
-
-// SSLv2 only, not implemented
-char* SSL_get_shared_ciphers(SSL* /*ssl*/, char* buf, int len)
-{
-    return strncpy(buf, "Not Implemented, SSLv2 only", len);
-}
-
-
-const char* SSL_get_cipher_list(SSL* ssl, int priority)
-{
-    if (priority < 0 || priority >= MAX_CIPHERS)
-        return 0;
-
-    if (ssl->getSecurity().get_parms().cipher_list_[priority][0])
-        return ssl->getSecurity().get_parms().cipher_list_[priority];
-
-    return 0;
-}
-
-
-int SSL_CTX_set_cipher_list(SSL_CTX* ctx, const char* list)
-{
-    if (ctx->SetCipherList(list))
-        return SSL_SUCCESS;
-    else
-        return SSL_FAILURE;
-}
-
-
-const char* SSL_get_version(SSL* ssl)
-{
-    static const char* version3 =  "SSLv3";
-    static const char* version31 = "TLSv1";
-
-    return ssl->isTLS() ? version31 : version3;
-}
-
-const char* SSLeay_version(int)
-{
-    static const char* version = "SSLeay yaSSL compatibility";
-    return version;
-}
-
-
-int SSL_get_error(SSL* ssl, int /*previous*/)
-{
-    return ssl->getStates().What();
-}
-
-
-
-/* turn on yaSSL zlib compression
-   returns 0 for success, else error (not built in)
-   only need to turn on for client, becuase server on by default if built in
-   but calling for server will tell you whether it's available or not
-*/
-int SSL_set_compression(SSL* ssl)   /* Chad didn't rename to ya~ because it is prob. bug. */
-{
-    return ssl->SetCompression();
-}
-
-
-
-X509* SSL_get_peer_certificate(SSL* ssl)
-{
-    return ssl->getCrypto().get_certManager().get_peerX509();
-}
-
-
-void X509_free(X509* /*x*/)
-{
-    // peer cert set for deletion during destruction
-    // no need to delete now
-}
-
-
-X509* X509_STORE_CTX_get_current_cert(X509_STORE_CTX* ctx)
-{
-    return ctx->current_cert;
-}
-
-
-int X509_STORE_CTX_get_error(X509_STORE_CTX* ctx)
-{
-    return ctx->error;
-}
-
-
-int X509_STORE_CTX_get_error_depth(X509_STORE_CTX* ctx)
-{
-    return ctx->error_depth;
-}
-
-
-// copy name into buffer, at most sz bytes, if buffer is null
-// will malloc buffer, caller responsible for freeing
-char* X509_NAME_oneline(X509_NAME* name, char* buffer, int sz)
-{
-    if (!name->GetName()) return buffer;
-
-    int len    = (int)strlen(name->GetName()) + 1;
-    int copySz = min(len, sz);
-
-    if (!buffer) {
-        buffer = (char*)malloc(len);
-        if (!buffer) return buffer;
-        copySz = len;
-    }
-
-    if (copySz == 0)
-        return buffer;
-
-    memcpy(buffer, name->GetName(), copySz - 1);
-    buffer[copySz - 1] = 0;
-
-    return buffer;
-}
-
-
-X509_NAME* X509_get_issuer_name(X509* x)
-{
-    return  x->GetIssuer();
-}
-
-
-X509_NAME* X509_get_subject_name(X509* x)
-{
-    return x->GetSubject();
-}
-
-
-void SSL_load_error_strings()   // compatibility only 
-{}
-
-
-void SSL_set_connect_state(SSL*)
-{
-    // already a client by default
-}
-
-
-void SSL_set_accept_state(SSL* ssl)
-{
-    ssl->useSecurity().use_parms().entity_ = server_end;
-}
-
-
-long SSL_get_verify_result(SSL*)
-{
-    // won't get here if not OK
-    return X509_V_OK;
-}
-
-
-long SSL_CTX_sess_set_cache_size(SSL_CTX* /*ctx*/, long /*sz*/)
-{
-    // unlimited size, can't set for now
-    return 0;
-}
-
-
-long SSL_CTX_get_session_cache_mode(SSL_CTX*)
-{
-    // always 0, unlimited size for now
-    return 0;
-}
-
-
-long SSL_CTX_set_tmp_dh(SSL_CTX* ctx, DH* dh)
-{
-    if (ctx->SetDH(*dh))
-        return SSL_SUCCESS;
-    else
-        return SSL_FAILURE;
-}
-
-
-int SSL_CTX_use_certificate_file(SSL_CTX* ctx, const char* file, int format)
-{
-    return read_file(ctx, file, format, Cert);
-}
-
-
-int SSL_CTX_use_PrivateKey_file(SSL_CTX* ctx, const char* file, int format)
-{
-    return read_file(ctx, file, format, PrivateKey);
-}
-
-
-void SSL_CTX_set_verify(SSL_CTX* ctx, int mode, VerifyCallback vc)
-{
-    if (mode & SSL_VERIFY_PEER)
-        ctx->setVerifyPeer();
-
-    if (mode == SSL_VERIFY_NONE)
-        ctx->setVerifyNone();
-
-    if (mode & SSL_VERIFY_FAIL_IF_NO_PEER_CERT)
-        ctx->setFailNoCert();
-
-    ctx->setVerifyCallback(vc);
-}
-
-
-int SSL_CTX_load_verify_locations(SSL_CTX* ctx, const char* file,
-                                  const char* path)
-{
-    int       ret = SSL_FAILURE;
-    const int HALF_PATH = 128;
-
-    if (file) ret = read_file(ctx, file, SSL_FILETYPE_PEM, CA);
-
-    if (ret == SSL_SUCCESS && path) {
-        // call read_file for each reqular file in path
-#ifdef _WIN32
-
-        WIN32_FIND_DATA FindFileData;
-        HANDLE hFind;
-
-        const int DELIMITER_SZ      = 2;
-        const int DELIMITER_STAR_SZ = 3;
-        int pathSz = (int)strlen(path);
-        int nameSz = pathSz + DELIMITER_STAR_SZ + 1; // plus 1 for terminator
-        char* name = NEW_YS char[nameSz];  // directory specification
-        memset(name, 0, nameSz);
-        strncpy(name, path, nameSz - DELIMITER_STAR_SZ - 1);
-        strncat(name, "\\*", DELIMITER_STAR_SZ);
-
-        hFind = FindFirstFile(name, &FindFileData);
-        if (hFind == INVALID_HANDLE_VALUE) {
-            ysArrayDelete(name);
-            return SSL_BAD_PATH;
-        }
-
-        do {
-            if (!(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
-                int curSz = (int)strlen(FindFileData.cFileName);
-                if (pathSz + curSz + DELIMITER_SZ + 1 > nameSz) {
-                    ysArrayDelete(name);
-                    // plus 1 for terminator
-                    nameSz = pathSz + curSz + DELIMITER_SZ + 1;
-                    name = NEW_YS char[nameSz];
-                }
-                memset(name, 0, nameSz);
-                strncpy(name, path, nameSz - curSz - DELIMITER_SZ - 1);
-                strncat(name, "\\", DELIMITER_SZ);
-                strncat(name, FindFileData.cFileName,
-                                            nameSz - pathSz - DELIMITER_SZ - 1);
-                ret = read_file(ctx, name, SSL_FILETYPE_PEM, CA);
-            }
-        } while (ret == SSL_SUCCESS && FindNextFile(hFind, &FindFileData));
-
-        ysArrayDelete(name);
-        FindClose(hFind);
-
-#else   // _WIN32
-        DIR* dir = opendir(path);
-        if (!dir) return SSL_BAD_PATH;
-
-        struct dirent* entry;
-        struct stat    buf;
-        const int DELIMITER_SZ = 1;
-        int pathSz = (int)strlen(path);
-        int nameSz = pathSz + DELIMITER_SZ + 1; //plus 1 for null terminator
-        char* name = NEW_YS char[nameSz];  // directory specification
-
-        while (ret == SSL_SUCCESS && (entry = readdir(dir))) {
-            int curSz = (int)strlen(entry->d_name);
-            if (pathSz + curSz + DELIMITER_SZ + 1 > nameSz) {
-                ysArrayDelete(name);
-                nameSz = pathSz + DELIMITER_SZ + curSz + 1;
-                name = NEW_YS char[nameSz];
-            }
-            memset(name, 0, nameSz);
-            strncpy(name, path, nameSz - curSz - 1);
-            strncat(name, "/",  DELIMITER_SZ);
-            strncat(name, entry->d_name, nameSz - pathSz - DELIMITER_SZ - 1);
-
-            if (stat(name, &buf) < 0) {
-                ysArrayDelete(name);
-                closedir(dir);
-                return SSL_BAD_STAT;
-            }
-     
-            if (S_ISREG(buf.st_mode))
-                ret = read_file(ctx, name, SSL_FILETYPE_PEM, CA);
-        }
-
-        ysArrayDelete(name);
-        closedir(dir);
-
-#endif
-    }
-
-    return ret;
-}
-
-
-int SSL_CTX_set_default_verify_paths(SSL_CTX* /*ctx*/)
-{
-    // TODO: figure out way to set/store default path, then call load_verify
-    return SSL_NOT_IMPLEMENTED;
-}
-
-
-int SSL_CTX_set_session_id_context(SSL_CTX*, const unsigned char*,
-                                    unsigned int)
-{
-    // No application specific context needed for yaSSL
-    return SSL_SUCCESS;
-}
-
-
-int SSL_CTX_check_private_key(SSL_CTX* /*ctx*/)
-{
-    // TODO: check private against public for RSA match
-    return SSL_NOT_IMPLEMENTED;
-}
-
-
-// TODO: all session stats
-long SSL_CTX_sess_accept(SSL_CTX* ctx)
-{
-    return ctx->GetStats().accept_;
-}
-
-
-long SSL_CTX_sess_connect(SSL_CTX* ctx)
-{
-    return ctx->GetStats().connect_;
-}
-
-
-long SSL_CTX_sess_accept_good(SSL_CTX* ctx)
-{
-    return ctx->GetStats().acceptGood_;
-}
-
-
-long SSL_CTX_sess_connect_good(SSL_CTX* ctx)
-{
-    return ctx->GetStats().connectGood_;
-}
-
-
-long SSL_CTX_sess_accept_renegotiate(SSL_CTX* ctx)
-{
-    return ctx->GetStats().acceptRenegotiate_;
-}
-
-
-long SSL_CTX_sess_connect_renegotiate(SSL_CTX* ctx)
-{
-    return ctx->GetStats().connectRenegotiate_;
-}
-
-
-long SSL_CTX_sess_hits(SSL_CTX* ctx)
-{
-    return ctx->GetStats().hits_;
-}
-
-
-long SSL_CTX_sess_cb_hits(SSL_CTX* ctx)
-{
-    return ctx->GetStats().cbHits_;
-}
-
-
-long SSL_CTX_sess_cache_full(SSL_CTX* ctx)
-{
-    return ctx->GetStats().cacheFull_;
-}
-
-
-long SSL_CTX_sess_misses(SSL_CTX* ctx)
-{
-    return ctx->GetStats().misses_;
-}
-
-
-long SSL_CTX_sess_timeouts(SSL_CTX* ctx)
-{
-    return ctx->GetStats().timeouts_;
-}
-
-
-long SSL_CTX_sess_number(SSL_CTX* ctx)
-{
-    return ctx->GetStats().number_;
-}
-
-
-long SSL_CTX_sess_get_cache_size(SSL_CTX* ctx)
-{
-    return ctx->GetStats().getCacheSize_;
-}
-// end session stats TODO:
-
-
-int SSL_CTX_get_verify_mode(SSL_CTX* ctx)
-{
-    return ctx->GetStats().verifyMode_;
-}
-
-
-int SSL_get_verify_mode(SSL* ssl)
-{
-    return ssl->getSecurity().GetContext()->GetStats().verifyMode_;
-}
-
-
-int SSL_CTX_get_verify_depth(SSL_CTX* ctx)
-{
-    return ctx->GetStats().verifyDepth_;
-}
-
-
-int SSL_get_verify_depth(SSL* ssl)
-{
-    return ssl->getSecurity().GetContext()->GetStats().verifyDepth_;
-}
-
-
-long SSL_CTX_set_options(SSL_CTX*, long)
-{
-    // TDOD:
-    return SSL_SUCCESS;
-}
-
-
-void SSL_CTX_set_info_callback(SSL_CTX*, void (*)())
-{
-    // TDOD:
-}
-
-
-void OpenSSL_add_all_algorithms()  // compatibility only
-{}
-
-
-int SSL_library_init()  // compatiblity only
-{
-    return 1;
-}
-
-
-DH* DH_new(void)
-{
-    DH* dh = NEW_YS DH;
-    if (dh)
-        dh->p = dh->g = 0;
-    return dh;
-}
-
-
-void DH_free(DH* dh)
-{
-    ysDelete(dh->g);
-    ysDelete(dh->p);
-    ysDelete(dh);
-}
-
-
-// convert positive big-endian num of length sz into retVal, which may need to 
-// be created
-BIGNUM* BN_bin2bn(const unsigned char* num, int sz, BIGNUM* retVal)
-{
-    bool created = false;
-    mySTL::auto_ptr bn;
-
-    if (!retVal) {
-        created = true;
-        bn.reset(NEW_YS BIGNUM);
-        retVal = bn.get();
-    }
-
-    retVal->assign(num, sz);
-
-    if (created)
-        return bn.release();
-    else
-        return retVal;
-}
-
-
-unsigned long ERR_get_error_line_data(const char**, int*, const char**, int *)
-{
-    //return SSL_NOT_IMPLEMENTED;
-    return 0;
-}
-
-
-void ERR_print_errors_fp(FILE* /*fp*/)
-{
-    // need ssl access to implement TODO:
-    //fprintf(fp, "%s", ssl.get_states().errorString_.c_str());
-}
-
-
-char* ERR_error_string(unsigned long errNumber, char* buffer)
-{
-  static char* msg = (char*)"Please supply a buffer for error string";
-
-    if (buffer) {
-        SetErrorString(YasslError(errNumber), buffer);
-        return buffer;
-    }
-
-    return msg;
-}
-
-
-const char* X509_verify_cert_error_string(long /* error */)
-{
-    // TODO:
-    static const char* msg = "Not Implemented";
-    return msg;
-}
-
-
-const EVP_MD* EVP_md5(void)
-{
-    static const char* type = "MD5";
-    return type;
-}
-
-
-const EVP_CIPHER* EVP_des_ede3_cbc(void)
-{
-    static const char* type = "DES-EDE3-CBC";
-    return type;
-}
-
-
-int EVP_BytesToKey(const EVP_CIPHER* type, const EVP_MD* md, const byte* salt,
-                   const byte* data, int sz, int count, byte* key, byte* iv)
-{
-    // only support MD5 for now
-    if (strncmp(md, "MD5", 3)) return 0;
-
-    int keyLen = 0;
-    int ivLen  = 0;
-
-    // only support CBC DES and AES for now
-    if (strncmp(type, "DES-CBC", 7) == 0) {
-        keyLen = DES_KEY_SZ;
-        ivLen  = DES_IV_SZ;
-    }
-    else if (strncmp(type, "DES-EDE3-CBC", 12) == 0) {
-        keyLen = DES_EDE_KEY_SZ;
-        ivLen  = DES_IV_SZ;
-    }
-    else if (strncmp(type, "AES-128-CBC", 11) == 0) {
-        keyLen = AES_128_KEY_SZ;
-        ivLen  = AES_IV_SZ;
-    }
-    else if (strncmp(type, "AES-192-CBC", 11) == 0) {
-        keyLen = AES_192_KEY_SZ;
-        ivLen  = AES_IV_SZ;
-    }
-    else if (strncmp(type, "AES-256-CBC", 11) == 0) {
-        keyLen = AES_256_KEY_SZ;
-        ivLen  = AES_IV_SZ;
-    }
-    else
-        return 0;
-
-    yaSSL::MD5 myMD;
-    uint digestSz = myMD.get_digestSize();
-    byte digest[SHA_LEN];                   // max size
-
-    int keyLeft   = keyLen;
-    int ivLeft    = ivLen;
-    int keyOutput = 0;
-
-    while (keyOutput < (keyLen + ivLen)) {
-        int digestLeft = digestSz;
-        // D_(i - 1)
-        if (keyOutput)                      // first time D_0 is empty
-            myMD.update(digest, digestSz);
-        // data
-        myMD.update(data, sz);
-        // salt
-        if (salt)
-            myMD.update(salt, EVP_SALT_SZ);
-        myMD.get_digest(digest);
-        // count
-        for (int j = 1; j < count; j++) {
-            myMD.update(digest, digestSz);
-            myMD.get_digest(digest);
-        }
-
-        if (keyLeft) {
-            int store = min(keyLeft, static_cast(digestSz));
-            memcpy(&key[keyLen - keyLeft], digest, store);
-
-            keyOutput  += store;
-            keyLeft    -= store;
-            digestLeft -= store;
-        }
-
-        if (ivLeft && digestLeft) {
-            int store = min(ivLeft, digestLeft);
-            memcpy(&iv[ivLen - ivLeft], &digest[digestSz - digestLeft], store);
-
-            keyOutput += store;
-            ivLeft    -= store;
-        }
-    }
-    return keyOutput;
-}
-
-
-
-void DES_set_key_unchecked(const_DES_cblock* key, DES_key_schedule* schedule)
-{
-    memcpy(schedule, key, sizeof(const_DES_cblock));
-}
-
-
-void DES_ede3_cbc_encrypt(const byte* input, byte* output, long sz,
-                          DES_key_schedule* ks1, DES_key_schedule* ks2,
-                          DES_key_schedule* ks3, DES_cblock* ivec, int enc)
-{
-    DES_EDE des;
-    byte key[DES_EDE_KEY_SZ];
-
-    memcpy(key, *ks1, DES_BLOCK);
-    memcpy(&key[DES_BLOCK], *ks2, DES_BLOCK);
-    memcpy(&key[DES_BLOCK * 2], *ks3, DES_BLOCK);
-
-    if (enc) {
-        des.set_encryptKey(key, *ivec);
-        des.encrypt(output, input, sz);
-    }
-    else {
-        des.set_decryptKey(key, *ivec);
-        des.decrypt(output, input, sz);
-    }
-}
-
-
-// functions for libcurl
-int RAND_status()
-{
-    return 1;  /* TaoCrypt provides enough seed */
-}
-
-
-int DES_set_key(const_DES_cblock* key, DES_key_schedule* schedule)
-{
-    memcpy(schedule, key, sizeof(const_DES_cblock));
-    return 1;
-}
-
-
-void DES_set_odd_parity(DES_cblock* key)
-{
-    // not needed now for TaoCrypt
-}
-
-
-void DES_ecb_encrypt(DES_cblock* input, DES_cblock* output,
-                     DES_key_schedule* key, int enc)
-{
-    DES  des;
-
-    if (enc) {
-        des.set_encryptKey(*key, 0);
-        des.encrypt(*output, *input, DES_BLOCK);
-    }
-    else {
-        des.set_decryptKey(*key, 0);
-        des.decrypt(*output, *input, DES_BLOCK);
-    }
-}
-
-
-void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX* ctx, void* userdata)
-{
-    ctx->SetUserData(userdata);
-}
-
-
-X509* SSL_get_certificate(SSL* ssl)
-{
-    return ssl->getCrypto().get_certManager().get_selfX509();
-}
-
-
-EVP_PKEY* SSL_get_privatekey(SSL* ssl)
-{
-    // only called, not used
-    return 0;
-}
-
-
-void SSL_SESSION_free(SSL_SESSION* session)
-{
-    // managed by singleton
-}
-
-
-
-EVP_PKEY* X509_get_pubkey(X509* x)
-{
-    // called, not used though
-    return 0;
-}
-
-
-int EVP_PKEY_copy_parameters(EVP_PKEY* to, const EVP_PKEY* from)
-{
-    // called, not used though
-    return 0;
-}
-
-
-void EVP_PKEY_free(EVP_PKEY* pkey)
-{
-    // never allocated from above
-}
-
-
-void ERR_error_string_n(unsigned long e, char *buf, size_t len)
-{
-    if (len) ERR_error_string(e, buf);
-}
-
-
-void ERR_free_strings(void)
-{
-    // handled internally
-}
-
-
-void EVP_cleanup(void)
-{
-    // nothing to do yet
-}
-
-
-ASN1_TIME* X509_get_notBefore(X509* x)
-{
-    if (x) return x->GetBefore();
-    return 0;
-}
-
-
-ASN1_TIME* X509_get_notAfter(X509* x)
-{
-    if (x) return x->GetAfter();
-    return 0;
-}
-
-
-SSL_METHOD* SSLv2_client_method(void)   /* will never work, no v 2    */
-{
-    return 0;
-}
-
-
-SSL_SESSION* SSL_get1_session(SSL* ssl)  /* what's ref count */
-{
-    return SSL_get_session(ssl);
-}
-
-
-void GENERAL_NAMES_free(STACK_OF(GENERAL_NAME) *x)
-{
-    // no extension names supported yet
-}
-
-
-int sk_GENERAL_NAME_num(STACK_OF(GENERAL_NAME) *x)
-{
-    // no extension names supported yet
-    return 0;
-}
-
-
-GENERAL_NAME* sk_GENERAL_NAME_value(STACK_OF(GENERAL_NAME) *x, int i)
-{
-    // no extension names supported yet
-    return 0;
-}
-
-
-unsigned char* ASN1_STRING_data(ASN1_STRING* x)
-{
-    if (x) return x->data;
-    return 0;
-}
-
-
-int ASN1_STRING_length(ASN1_STRING* x)
-{
-    if (x) return x->length;
-    return 0;
-}
-
-
-int ASN1_STRING_type(ASN1_STRING *x)
-{
-    if (x) return x->type;
-    return 0;
-}
-
-
-int X509_NAME_get_index_by_NID(X509_NAME* name,int nid, int lastpos)
-{
-    int idx = -1;  // not found
-    int cnPos = -1;
-
-    switch (nid) {
-    case NID_commonName:
-         cnPos = name->GetCnPosition();
-         if (lastpos < cnPos)
-           idx = cnPos;
-         break;
-    }
-
-    return idx;
-}
-
-
-ASN1_STRING* X509_NAME_ENTRY_get_data(X509_NAME_ENTRY* ne)
-{
-    // the same in yaSSL
-    return ne;
-}
-
-
-X509_NAME_ENTRY* X509_NAME_get_entry(X509_NAME* name, int loc)
-{
-    return name->GetEntry(loc);
-}
-
-
-// already formatted, caller responsible for freeing *out
-int ASN1_STRING_to_UTF8(unsigned char** out, ASN1_STRING* in)
-{
-    if (!in) return 0;
-
-    *out = (unsigned char*)malloc(in->length + 1);
-    if (*out) {
-        memcpy(*out, in->data, in->length);
-        (*out)[in->length] = 0;
-    }
-    return in->length;
-}
-
-
-void* X509_get_ext_d2i(X509* x, int nid, int* crit, int* idx)
-{
-    // no extensions supported yet
-    return 0;
-}
-
-
-void MD4_Init(MD4_CTX* md4)
-{
-    // make sure we have a big enough buffer
-    typedef char ok[sizeof(md4->buffer) >= sizeof(TaoCrypt::MD4) ? 1 : -1];
-    (void) sizeof(ok);
-
-    // using TaoCrypt since no dynamic memory allocated
-    // and no destructor will be called
-    new (reinterpret_cast(md4->buffer)) TaoCrypt::MD4();
-}
-
-
-void MD4_Update(MD4_CTX* md4, const void* data, unsigned long sz)
-{
-    reinterpret_cast(md4->buffer)->Update(
-                static_cast(data), static_cast(sz));
-}
-
-
-void MD4_Final(unsigned char* hash, MD4_CTX* md4)
-{
-    reinterpret_cast(md4->buffer)->Final(hash);
-}
-
-
-void MD5_Init(MD5_CTX* md5)
-{
-    // make sure we have a big enough buffer
-    typedef char ok[sizeof(md5->buffer) >= sizeof(TaoCrypt::MD5) ? 1 : -1];
-    (void) sizeof(ok);
-
-    // using TaoCrypt since no dynamic memory allocated
-    // and no destructor will be called
-    new (reinterpret_cast(md5->buffer)) TaoCrypt::MD5();
-}
-
-
-void MD5_Update(MD5_CTX* md5, const void* data, unsigned long sz)
-{
-    reinterpret_cast(md5->buffer)->Update(
-                static_cast(data), static_cast(sz));
-}
-
-
-void MD5_Final(unsigned char* hash, MD5_CTX* md5)
-{
-    reinterpret_cast(md5->buffer)->Final(hash);
-}
-
-
-int RAND_bytes(unsigned char* buf, int num)
-{
-    RandomPool ran;
-
-    if (ran.GetError()) return 0;
-
-    ran.Fill(buf, num);
-    return 1;
-}
-
-
-int SSL_peek(SSL* ssl, void* buffer, int sz)
-{
-    Data data(min(sz, MAX_RECORD_SIZE), static_cast(buffer));
-    return receiveData(*ssl, data, true);
-}
-
-
-int SSL_pending(SSL* ssl)
-{
-    // Just in case there's pending data that hasn't been processed yet...
-    char c;
-    SSL_peek(ssl, &c, 1);
-    
-    return ssl->bufferedData();
-}
-
-
-void SSL_CTX_set_default_passwd_cb(SSL_CTX* ctx, pem_password_cb cb)
-{
-    ctx->SetPasswordCb(cb);
-}
-
-
-int SSLeay_add_ssl_algorithms()  // compatibility only
-{
-    return 1;
-}
-
-
-void ERR_remove_state(unsigned long)
-{
-    GetErrors().Remove();
-}
-
-
-int ERR_GET_REASON(int l)
-{
-    return l & 0xfff;
-}
-
-
-unsigned long err_helper(bool peek = false)
-{
-    int ysError = GetErrors().Lookup(peek);
-
-    // translate cert error for libcurl, it uses OpenSSL hex code
-    switch (ysError) {
-    case TaoCrypt::SIG_OTHER_E:
-        return CERTFICATE_ERROR;
-        break;
-    default :
-        return 0;
-    }
-
-    return 0;  // shut up compiler
-}
-
-
-unsigned long ERR_peek_error()
-{
-    return err_helper(true);
-}
-
-
-unsigned long ERR_get_error()
-{
-    return err_helper();
-}
-
-
-    // functions for stunnel
-
-    void RAND_screen()
-    {
-        // TODO:
-    }
-
-
-    const char* RAND_file_name(char*, size_t)
-    {
-        // TODO:
-        return 0;
-    }
-
-
-    int RAND_write_file(const char*)
-    {
-        // TODO:
-        return 0;
-    }
-
-
-    int RAND_load_file(const char*, long)
-    {
-        // TODO:
-        return 0;
-    }
-
-
-    void RSA_free(RSA*)
-    {
-        // TODO:
-    }
-
-
-    RSA* RSA_generate_key(int, unsigned long, void(*)(int, int, void*), void*)
-    {
-        //  TODO:
-        return 0;
-    }
-
-
-    int X509_LOOKUP_add_dir(X509_LOOKUP*, const char*, long)
-    {
-        // TODO:
-        return SSL_SUCCESS;
-    }
-
-
-    int X509_LOOKUP_load_file(X509_LOOKUP*, const char*, long)
-    {
-        // TODO:
-        return SSL_SUCCESS;
-    }
-
-
-    X509_LOOKUP_METHOD* X509_LOOKUP_hash_dir(void)
-    {
-        // TODO:
-        return 0;
-    }
-
-
-    X509_LOOKUP_METHOD* X509_LOOKUP_file(void)
-    {
-        // TODO:
-        return 0;
-    }
-
-
-    X509_LOOKUP* X509_STORE_add_lookup(X509_STORE*, X509_LOOKUP_METHOD*)
-    {
-        // TODO:
-        return 0;
-    }
-
-
-    int X509_STORE_get_by_subject(X509_STORE_CTX*, int, X509_NAME*, X509_OBJECT*)
-    {
-        // TODO:
-        return SSL_SUCCESS;
-    }
-
-
-    X509_STORE* X509_STORE_new(void)
-    {
-        // TODO:
-        return 0;
-    }
-
-    char* SSL_alert_type_string_long(int)
-    {
-        // TODO:
-        return 0;
-    }
-
-
-    char* SSL_alert_desc_string_long(int)
-    {
-        // TODO:
-        return 0;
-    }
-
-
-    char* SSL_state_string_long(SSL*)
-    {
-        // TODO:
-        return 0;
-    }
-
-
-    void SSL_CTX_set_tmp_rsa_callback(SSL_CTX*, RSA*(*)(SSL*, int, int))
-    {
-        // TDOD:
-    }
-
-
-    long SSL_CTX_set_timeout(SSL_CTX*, long)
-    {
-        // TDOD:
-        return SSL_SUCCESS;
-    }
-
-
-    int SSL_CTX_use_certificate_chain_file(SSL_CTX*, const char*)
-    {
-        // TDOD:
-        return SSL_SUCCESS;
-    }
-
-
-    int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX*, const char*, int)
-    {
-        // TDOD:
-        return SSL_SUCCESS;
-    }
-
-
-    int SSL_set_rfd(SSL*, int)
-    {
-        return SSL_SUCCESS; // TODO:
-    }
-
-
-    int SSL_set_wfd(SSL*, int)
-    {
-        return SSL_SUCCESS; // TODO:
-    }
-
-
-    int SSL_want_read(SSL*)
-    {
-        return 0; // TODO:
-    }
-
-
-    int SSL_want_write(SSL*)
-    {
-        return 0; // TODO:
-    }
-
-
-    void SSL_set_shutdown(SSL*, int)
-    {
-        // TODO:
-    }
-
-
-    SSL_CIPHER* SSL_get_current_cipher(SSL*)
-    {
-        // TODO:
-        return 0;
-    }
-
-
-    char* SSL_CIPHER_description(SSL_CIPHER*, char*, int)
-    {
-        // TODO:
-        return 0;
-    }
-
-
-
-    // end stunnel needs
-
-    char *yaSSL_ASN1_TIME_to_string(ASN1_TIME *time, char *buf, size_t len)
-    {
-      tm t;
-      static const char *month_names[12]=
-      {
-        "Jan","Feb","Mar","Apr","May","Jun",
-        "Jul","Aug","Sep","Oct","Nov","Dec"
-      };
-
-      TaoCrypt::ASN1_TIME_extract(time->data, time->type, &t);
-      snprintf(buf, len, "%s %2d %02d:%02d:%02d %d GMT",
-               month_names[t.tm_mon], t.tm_mday, t.tm_hour, t.tm_min, 
-               t.tm_sec, t.tm_year + 1900);
-      return buf;
-    }
-
-
-    void yaSSL_transport_set_ptr(SSL *ssl, void *ptr)
-    {
-      ssl->useSocket().set_transport_ptr(ptr);
-    }
-
-
-    void yaSSL_transport_set_recv_function(SSL *ssl, yaSSL_recv_func_t func)
-    {
-      ssl->useSocket().set_transport_recv_function(func);
-    }
-
-
-    void yaSSL_transport_set_send_function(SSL *ssl, yaSSL_send_func_t func)
-    {
-      ssl->useSocket().set_transport_send_function(func);
-    }
-
-} // extern "C"
-} // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/src/template_instnt.cpp b/mysql-wsrep-5.6/extra/yassl/src/template_instnt.cpp
deleted file mode 100644
index 618b73f4..00000000
--- a/mysql-wsrep-5.6/extra/yassl/src/template_instnt.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
-   Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/*  Explicit template instantiation requests 
- */
-
-
-#include "runtime.hpp"
-#include "handshake.hpp"
-#include "yassl_int.hpp"
-#include "crypto_wrapper.hpp"
-#include "hmac.hpp"
-#include "md5.hpp"
-#include "sha.hpp"
-#include "ripemd.hpp"
-#include "openssl/ssl.h"
-
-#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
-
-namespace mySTL {
-template class list;
-template yaSSL::del_ptr_zero for_each(mySTL::list::iterator, mySTL::list::iterator, yaSSL::del_ptr_zero);
-template pair* uninit_copy*, mySTL::pair*>(mySTL::pair*, mySTL::pair*, mySTL::pair*);
-template pair* uninit_copy*, mySTL::pair*>(mySTL::pair*, mySTL::pair*, mySTL::pair*);
-template void destroy*>(mySTL::pair*, mySTL::pair*);
-template void destroy*>(mySTL::pair*, mySTL::pair*);
-template pair* uninit_copy*, mySTL::pair*>(mySTL::pair*, mySTL::pair*, mySTL::pair*);
-template void destroy*>(mySTL::pair*, mySTL::pair*);
-template pair* uninit_copy*, mySTL::pair*>(mySTL::pair*, mySTL::pair*, mySTL::pair*);
-template class list;
-template class list;
-template class list;
-template class list;
-template class list;
-template class list;
-template class list;
-template void destroy*>(mySTL::pair*, mySTL::pair*);
-template yaSSL::del_ptr_zero for_each::iterator, yaSSL::del_ptr_zero>(mySTL::list::iterator, mySTL::list::iterator, yaSSL::del_ptr_zero);
-template yaSSL::del_ptr_zero for_each::iterator, yaSSL::del_ptr_zero>(mySTL::list::iterator, mySTL::list::iterator, yaSSL::del_ptr_zero);
-template yaSSL::del_ptr_zero for_each::iterator, yaSSL::del_ptr_zero>(mySTL::list::iterator, mySTL::list::iterator, yaSSL::del_ptr_zero);
-template yaSSL::del_ptr_zero for_each::iterator, yaSSL::del_ptr_zero>(mySTL::list::iterator, mySTL::list::iterator, yaSSL::del_ptr_zero);
-template yaSSL::del_ptr_zero for_each::iterator, yaSSL::del_ptr_zero>(mySTL::list::iterator, mySTL::list::iterator, yaSSL::del_ptr_zero);
-template yaSSL::del_ptr_zero for_each::iterator, yaSSL::del_ptr_zero>(mySTL::list::iterator, mySTL::list::iterator, yaSSL::del_ptr_zero);
-template yaSSL::del_ptr_zero for_each::iterator, yaSSL::del_ptr_zero>(mySTL::list::iterator, mySTL::list::iterator, yaSSL::del_ptr_zero);
-template bool list::erase(list::iterator);
-template void list::push_back(yaSSL::ThreadError);
-template void list::pop_front();
-template void list::pop_back();
-template list::~list();
-template pair* GetArrayMemory >(size_t);
-template void FreeArrayMemory >(pair*);
-template pair* GetArrayMemory >(size_t);
-template void FreeArrayMemory >(pair*);
-template pair* GetArrayMemory >(size_t);
-template void FreeArrayMemory >(pair*);
-template pair* GetArrayMemory >(size_t);
-template void FreeArrayMemory >(pair*);
-}
-
-namespace yaSSL {
-template void ysDelete(yaSSL::SSL_CTX*);
-template void ysDelete(yaSSL::SSL*);
-template void ysDelete(yaSSL::BIGNUM*);
-template void ysDelete(unsigned char*);
-template void ysDelete(yaSSL::DH*);
-template void ysDelete(TaoCrypt::Signer*);
-template void ysDelete(yaSSL::SSL_SESSION*);
-template void ysDelete(input_buffer*);
-template void ysDelete(output_buffer*);
-template void ysDelete(x509*);
-template void ysDelete(Auth*);
-template void ysDelete(HandShakeBase*);
-template void ysDelete(ServerKeyBase*);
-template void ysDelete(ClientKeyBase*);
-template void ysDelete(SSL_METHOD*);
-template void ysDelete(DiffieHellman*);
-template void ysDelete(BulkCipher*);
-template void ysDelete(Digest*);
-template void ysDelete(X509*);
-template void ysDelete(Message*);
-template void ysDelete(sslFactory*);
-template void ysDelete(Sessions*);
-template void ysDelete(Errors*);
-template void ysArrayDelete(unsigned char*);
-template void ysArrayDelete(char*);
-
-template int min(int, int);
-template uint16 min(uint16, uint16);
-template unsigned int min(unsigned int, unsigned int);
-template unsigned long min(unsigned long, unsigned long);
-}
-
-#endif // HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
-
diff --git a/mysql-wsrep-5.6/extra/yassl/src/timer.cpp b/mysql-wsrep-5.6/extra/yassl/src/timer.cpp
deleted file mode 100644
index bc1cc3d0..00000000
--- a/mysql-wsrep-5.6/extra/yassl/src/timer.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* timer.cpp implements a high res and low res timer
- *
-*/
-
-#include "runtime.hpp"
-#include "timer.hpp"
-
-#ifdef _WIN32
-#define WIN32_LEAN_AND_MEAN
-#include 
-#else
-#include 
-#endif
-
-namespace yaSSL {
-
-#ifdef _WIN32
-
-    timer_d timer()
-    {
-        static bool          init(false);
-        static LARGE_INTEGER freq;
-    
-        if (!init) {
-            QueryPerformanceFrequency(&freq);
-            init = true;
-        }
-
-        LARGE_INTEGER count;
-        QueryPerformanceCounter(&count);
-
-        return static_cast(count.QuadPart) / freq.QuadPart;
-    }
-
-
-    uint lowResTimer()
-    {
-        return static_cast(timer());
-    }
-
-#else // _WIN32
-
-    timer_d timer()
-    {
-        struct timeval tv;
-        gettimeofday(&tv, 0);
-
-        return static_cast(tv.tv_sec) 
-             + static_cast(tv.tv_usec) / 1000000;
-    }
-
-
-    uint lowResTimer()
-    {
-        struct timeval tv;
-        gettimeofday(&tv, 0);
-
-        return tv.tv_sec; 
-    }
-
-
-#endif // _WIN32
-} // namespace yaSSL
diff --git a/mysql-wsrep-5.6/extra/yassl/src/yassl.cpp b/mysql-wsrep-5.6/extra/yassl/src/yassl.cpp
deleted file mode 100644
index b6b9a87e..00000000
--- a/mysql-wsrep-5.6/extra/yassl/src/yassl.cpp
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* yaSSL implements external API
- */
-
-#include "runtime.hpp"
-#include "yassl.hpp"
-#include "yassl_int.hpp"
-#include "handshake.hpp"
-#include 
-
-#include "openssl/ssl.h"  // get rid of this
-
-
-
-namespace yaSSL {
-
-
-
-struct Base {
-    SSL_METHOD* method_;
-    SSL_CTX*    ctx_;
-    SSL*        ssl_;
-
-    char*       ca_;
-    char*       cert_;
-    char*       key_;
-
-    DH*         dh_;
-
-    Base() : method_(0), ctx_(0), ssl_(0), ca_(0), cert_(0), key_(0), dh_(0)
-    {}
-
-    ~Base()
-    {
-        if (dh_) DH_free(dh_);
-        delete[] key_;
-        delete[] cert_;
-        delete[] ca_;
-        SSL_CTX_free(ctx_);   // frees method_ too
-        SSL_free(ssl_);
-    }
-};
-
-
-void SetDH(Base&);
-
-void SetUpBase(Base& base, ConnectionEnd end, SOCKET_T s)
-{
-    base.method_ = new SSL_METHOD(end, ProtocolVersion(3,1));
-    base.ctx_ =    new SSL_CTX(base.method_);
-
-    if (base.ca_)
-        if (SSL_CTX_load_verify_locations(base.ctx_,
-            base.ca_, 0) != SSL_SUCCESS) throw(0);
-    if (base.cert_)
-        if (SSL_CTX_use_certificate_file(base.ctx_,
-            base.cert_, SSL_FILETYPE_PEM) != SSL_SUCCESS) throw(0);
-    if (base.key_)
-        if (SSL_CTX_use_PrivateKey_file(base.ctx_, base.key_,
-            SSL_FILETYPE_PEM) != SSL_SUCCESS) throw(0);
-
-    if (end == server_end) SetDH(base);
-
-    base.ssl_ = new SSL(base.ctx_);
-    base.ssl_->useSocket().set_fd(s);
-}
-
-
-void SetDH(Base& base)
-{
-    static unsigned char dh512_p[] =
-    {
-      0xDA,0x58,0x3C,0x16,0xD9,0x85,0x22,0x89,0xD0,0xE4,0xAF,0x75,
-      0x6F,0x4C,0xCA,0x92,0xDD,0x4B,0xE5,0x33,0xB8,0x04,0xFB,0x0F,
-      0xED,0x94,0xEF,0x9C,0x8A,0x44,0x03,0xED,0x57,0x46,0x50,0xD3,
-      0x69,0x99,0xDB,0x29,0xD7,0x76,0x27,0x6B,0xA2,0xD3,0xD4,0x12,
-      0xE2,0x18,0xF4,0xDD,0x1E,0x08,0x4C,0xF6,0xD8,0x00,0x3E,0x7C,
-      0x47,0x74,0xE8,0x33,
-    };
-
-    static unsigned char dh512_g[] =
-    {
-      0x02,
-    };
-
-    if ( (base.dh_ = DH_new()) ) {
-        base.dh_->p = BN_bin2bn(dh512_p, sizeof(dh512_p), 0);
-        base.dh_->g = BN_bin2bn(dh512_g, sizeof(dh512_g), 0);
-    }
-    if (!base.dh_->p || !base.dh_->g) {
-        DH_free(base.dh_);
-        base.dh_ = 0;
-    }
-    SSL_CTX_set_tmp_dh(base.ctx_, base.dh_);
-}
-
-
-void NewCopy(char*& dst, const char* src)
-{
-    size_t len = strlen(src) + 1;
-    dst = new char[len];
-
-    strncpy(dst, src, len);
-}
-
-
-// Client Implementation
-struct Client::ClientImpl {
-    Base base_;
-};
-
-
-Client::Client() : pimpl_(new ClientImpl)
-{}
-
-
-Client::~Client() { delete pimpl_; }
-
-
-int Client::Connect(SOCKET_T s)
-{
-    SetUpBase(pimpl_->base_, client_end, s);
-    return SSL_connect(pimpl_->base_.ssl_);
-}
-
-
-int Client::Write(const void* buffer, int sz)
-{
-    return sendData(*pimpl_->base_.ssl_, buffer, sz);
-}
-
-
-int Client::Read(void* buffer, int sz)
-{
-    Data data(min(sz, MAX_RECORD_SIZE), static_cast(buffer));
-    return receiveData(*pimpl_->base_.ssl_, data);
-}
-
-
-void Client::SetCA(const char* name)
-{
-    NewCopy(pimpl_->base_.ca_, name);
-}
-
-
-void Client::SetCert(const char* name)
-{
-    NewCopy(pimpl_->base_.cert_, name);
-}
-
-
-void Client::SetKey(const char* name)
-{
-    NewCopy(pimpl_->base_.key_, name);
-}
-
-
-
-// Server Implementation
-struct Server::ServerImpl {
-    Base base_;
-};
-
-
-Server::Server() : pimpl_(new ServerImpl)
-{}
-
-
-Server::~Server() { delete pimpl_; }
-
-
-int Server::Accept(SOCKET_T s)
-{
-    SetUpBase(pimpl_->base_, server_end, s);
-    return SSL_accept(pimpl_->base_.ssl_);
-}
-
-
-int Server::Write(const void* buffer, int sz)
-{
-    return sendData(*pimpl_->base_.ssl_, buffer, sz);
-}
-
-
-int Server::Read(void* buffer, int sz)
-{
-    Data data(min(sz, MAX_RECORD_SIZE), static_cast(buffer));
-    return receiveData(*pimpl_->base_.ssl_, data);
-}
-
-
-void Server::SetCA(const char* name)
-{
-    NewCopy(pimpl_->base_.ca_, name);
-}
-
-
-void Server::SetCert(const char* name)
-{
-    NewCopy(pimpl_->base_.cert_, name);
-}
-
-
-void Server::SetKey(const char* name)
-{
-    NewCopy(pimpl_->base_.key_, name);
-}
-
-
-
-} // namespace yaSSL
diff --git a/mysql-wsrep-5.6/extra/yassl/src/yassl_error.cpp b/mysql-wsrep-5.6/extra/yassl/src/yassl_error.cpp
deleted file mode 100644
index 5169b7dd..00000000
--- a/mysql-wsrep-5.6/extra/yassl/src/yassl_error.cpp
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
-   Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* yaSSL error implements and an exception class
- */
-
-#include "runtime.hpp"
-#include "yassl_error.hpp"
-#include "error.hpp"        // TaoCrypt error numbers
-#include "openssl/ssl.h"    // SSL_ERROR_WANT_READ
-#include          // strncpy
-
-#ifdef _MSC_VER
-    // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy
-    #pragma warning(disable: 4996)
-#endif
-
-namespace yaSSL {
-
-
-/* may bring back in future
-Error::Error(const char* s, YasslError e, Library l) 
-    : mySTL::runtime_error(s), error_(e), lib_(l) 
-{
-}
-
-
-YasslError Error::get_number() const
-{
-    return error_;
-}
-
-
-Library Error::get_lib() const
-{
-
-    return lib_;
-}
-*/
-
-
-void SetErrorString(YasslError error, char* buffer)
-{
-    using namespace TaoCrypt;
-    const int max = MAX_ERROR_SZ;  // shorthand
-    int localError = error;        // errors from a few enums 
-
-    switch (localError) {
-
-        // yaSSL proper errors
-    case range_error :
-        strncpy(buffer, "buffer index error, out of range", max);
-        break; 
-
-    case realloc_error :
-        strncpy(buffer, "trying to realloc a fixed buffer", max);
-        break; 
-
-    case factory_error : 
-        strncpy(buffer, "unknown factory create request", max);
-        break; 
-
-    case unknown_cipher :
-        strncpy(buffer, "trying to use an unknown cipher", max);
-        break; 
-
-    case prefix_error : 
-        strncpy(buffer, "bad master secret derivation, prefix too big", max);
-        break; 
-
-    case record_layer : 
-        strncpy(buffer, "record layer not ready yet", max);
-        break; 
-        
-    case handshake_layer :
-        strncpy(buffer, "handshake layer not ready yet", max);
-        break; 
-
-    case out_of_order :
-        strncpy(buffer, "handshake message received in wrong order", max);
-        break; 
-
-    case bad_input : 
-        strncpy(buffer, "bad cipher suite input", max);
-        break; 
-
-    case match_error :
-        strncpy(buffer, "unable to match a supported cipher suite", max);
-        break; 
-
-    case no_key_file : 
-        strncpy(buffer, "the server needs a private key file", max);
-        break; 
-
-    case verify_error :
-        strncpy(buffer, "unable to verify peer checksum", max);
-        break; 
-
-    case send_error :
-        strncpy(buffer, "socket layer send error", max);
-        break; 
-
-    case receive_error :
-        strncpy(buffer, "socket layer receive error", max);
-        break; 
-
-    case certificate_error :
-        strncpy(buffer, "unable to proccess cerificate", max);
-        break;
-
-    case privateKey_error :
-        strncpy(buffer, "unable to proccess private key, bad format", max);
-        break;
-
-    case badVersion_error :
-        strncpy(buffer, "protocol version mismatch", max);
-        break;
-
-    case compress_error :
-        strncpy(buffer, "compression error", max);
-        break;
-
-    case decompress_error :
-        strncpy(buffer, "decompression error", max);
-        break;
-
-    case pms_version_error :
-        strncpy(buffer, "bad PreMasterSecret version error", max);
-        break;
-
-    case sanityCipher_error :
-        strncpy(buffer, "sanity check on cipher text size error", max);
-        break;
-
-    case rsaSignFault_error:
-        strncpy(buffer, "rsa signature fault error", max);
-        break;
-
-        // openssl errors
-    case SSL_ERROR_WANT_READ :
-        strncpy(buffer, "the read operation would block", max);
-        break;
-
-    case SSL_ERROR_WANT_WRITE :
-        strncpy(buffer, "the write operation would block", max);
-        break;
-
-    case CERTFICATE_ERROR :
-        strncpy(buffer, "Unable to verify certificate", max);
-        break;
-
-        // TaoCrypt errors
-    case NO_ERROR_E :
-        strncpy(buffer, "not in error state", max);
-        break;
-
-    case WINCRYPT_E :
-        strncpy(buffer, "bad wincrypt acquire", max);
-        break;
-
-    case CRYPTGEN_E :
-        strncpy(buffer, "CryptGenRandom error", max);
-        break;
-
-    case OPEN_RAN_E :
-        strncpy(buffer, "unable to use random device", max);
-        break;
-
-    case READ_RAN_E :
-        strncpy(buffer, "unable to use random device", max);
-        break;
-
-    case INTEGER_E :
-        strncpy(buffer, "ASN: bad DER Integer Header", max);
-        break;
-
-    case SEQUENCE_E :
-        strncpy(buffer, "ASN: bad Sequence Header", max);
-        break;
-
-    case SET_E :
-        strncpy(buffer, "ASN: bad Set Header", max);
-        break;
-
-    case VERSION_E :
-        strncpy(buffer, "ASN: version length not 1", max);
-        break;
-
-    case SIG_OID_E :
-        strncpy(buffer, "ASN: signature OID mismatch", max);
-        break;
-
-    case BIT_STR_E :
-        strncpy(buffer, "ASN: bad BitString Header", max);
-        break;
-
-    case UNKNOWN_OID_E :
-        strncpy(buffer, "ASN: unknown key OID type", max);
-        break;
-
-    case OBJECT_ID_E :
-        strncpy(buffer, "ASN: bad Ojbect ID Header", max);
-        break;
-
-    case TAG_NULL_E :
-        strncpy(buffer, "ASN: expected TAG NULL", max);
-        break;
-
-    case EXPECT_0_E :
-        strncpy(buffer, "ASN: expected 0", max);
-        break;
-
-    case OCTET_STR_E :
-        strncpy(buffer, "ASN: bad Octet String Header", max);
-        break;
-
-    case TIME_E :
-        strncpy(buffer, "ASN: bad TIME", max);
-        break;
-
-    case DATE_SZ_E :
-        strncpy(buffer, "ASN: bad Date Size", max);
-        break;
-
-    case SIG_LEN_E :
-        strncpy(buffer, "ASN: bad Signature Length", max);
-        break;
-
-    case UNKOWN_SIG_E :
-        strncpy(buffer, "ASN: unknown signature OID", max);
-        break;
-
-    case UNKOWN_HASH_E :
-        strncpy(buffer, "ASN: unknown hash OID", max);
-        break;
-
-    case DSA_SZ_E :
-        strncpy(buffer, "ASN: bad DSA r or s size", max);
-        break;
-
-    case BEFORE_DATE_E :
-        strncpy(buffer, "ASN: before date in the future", max);
-        break;
-
-    case AFTER_DATE_E :
-        strncpy(buffer, "ASN: after date in the past", max);
-        break;
-
-    case SIG_CONFIRM_E :
-        strncpy(buffer, "ASN: bad self signature confirmation", max);
-        break;
-
-    case SIG_OTHER_E :
-        strncpy(buffer, "ASN: bad other signature confirmation", max);
-        break;
-
-    case CONTENT_E :
-        strncpy(buffer, "bad content processing", max);
-        break;
-
-    case PEM_E :
-        strncpy(buffer, "bad PEM format processing", max);
-        break;
-
-    default :
-        strncpy(buffer, "unknown error number", max);
-    }
-}
-
-
-
-}  // namespace yaSSL
diff --git a/mysql-wsrep-5.6/extra/yassl/src/yassl_imp.cpp b/mysql-wsrep-5.6/extra/yassl/src/yassl_imp.cpp
deleted file mode 100644
index c5892388..00000000
--- a/mysql-wsrep-5.6/extra/yassl/src/yassl_imp.cpp
+++ /dev/null
@@ -1,2636 +0,0 @@
-/*
-   Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/*  yaSSL source implements all SSL.v3 secification structures.
- */
-
-#include "runtime.hpp"
-#include "yassl_int.hpp"
-#include "handshake.hpp"
-
-#include "asn.hpp"  // provide crypto wrapper??
-
-
-
-namespace yaSSL {
-
-
-namespace { // locals
-
-bool isTLS(ProtocolVersion pv)
-{
-    if (pv.major_ >= 3 && pv.minor_ >= 1)
-        return true;
-
-    return false;
-}
-
-
-}  // namespace (locals)
-
-
-void hashHandShake(SSL&, const input_buffer&, uint);
-
-
-ProtocolVersion::ProtocolVersion(uint8 maj, uint8 min) 
-    : major_(maj), minor_(min) 
-{}
-
-
-// construct key exchange with known ssl parms
-void ClientKeyExchange::createKey(SSL& ssl)
-{
-    const ClientKeyFactory& ckf = ssl.getFactory().getClientKey();
-    client_key_ = ckf.CreateObject(ssl.getSecurity().get_parms().kea_);
-
-    if (!client_key_)
-        ssl.SetError(factory_error);
-}
-
-
-// construct key exchange with known ssl parms
-void ServerKeyExchange::createKey(SSL& ssl)
-{
-    const ServerKeyFactory& skf = ssl.getFactory().getServerKey();
-    server_key_ = skf.CreateObject(ssl.getSecurity().get_parms().kea_);
-
-    if (!server_key_)
-        ssl.SetError(factory_error);
-}
-
-
-// build/set PreMaster secret and encrypt, client side
-void EncryptedPreMasterSecret::build(SSL& ssl)
-{
-    opaque tmp[SECRET_LEN];
-    memset(tmp, 0, sizeof(tmp));
-    ssl.getCrypto().get_random().Fill(tmp, SECRET_LEN);
-    ProtocolVersion pv = ssl.getSecurity().get_connection().chVersion_;
-    tmp[0] = pv.major_;
-    tmp[1] = pv.minor_;
-    ssl.set_preMaster(tmp, SECRET_LEN);
-
-    const CertManager& cert = ssl.getCrypto().get_certManager();
-    RSA rsa(cert.get_peerKey(), cert.get_peerKeyLength());
-    bool tls = ssl.isTLS();     // if TLS, put length for encrypted data
-    alloc(rsa.get_cipherLength() + (tls ? 2 : 0));
-    byte* holder = secret_;
-    if (tls) {
-        byte len[2];
-        c16toa(rsa.get_cipherLength(), len);
-        memcpy(secret_, len, sizeof(len));
-        holder += 2;
-    }
-    rsa.encrypt(holder, tmp, SECRET_LEN, ssl.getCrypto().get_random());
-}
-
-
-// build/set premaster and Client Public key, client side
-void ClientDiffieHellmanPublic::build(SSL& ssl)
-{
-    DiffieHellman& dhServer = ssl.useCrypto().use_dh();
-    DiffieHellman  dhClient(dhServer);
-
-    uint keyLength = dhClient.get_agreedKeyLength(); // pub and agree same
-
-    alloc(keyLength, true);
-    dhClient.makeAgreement(dhServer.get_publicKey(),
-                           dhServer.get_publicKeyLength());
-    c16toa(keyLength, Yc_);
-    memcpy(Yc_ + KEY_OFFSET, dhClient.get_publicKey(), keyLength);
-
-    ssl.set_preMaster(dhClient.get_agreedKey(), keyLength);
-}
-
-
-// build server exhange, server side
-void DH_Server::build(SSL& ssl)
-{
-    DiffieHellman& dhServer = ssl.useCrypto().use_dh();
-
-    int pSz, gSz, pubSz;
-    dhServer.set_sizes(pSz, gSz, pubSz);
-    dhServer.get_parms(parms_.alloc_p(pSz), parms_.alloc_g(gSz),
-                       parms_.alloc_pub(pubSz));
-
-    short sigSz = 0;
-    mySTL::auto_ptr auth;
-    const CertManager& cert = ssl.getCrypto().get_certManager();
-    
-    if (ssl.getSecurity().get_parms().sig_algo_ == rsa_sa_algo) {
-        if (cert.get_keyType() != rsa_sa_algo) {
-            ssl.SetError(privateKey_error);
-            return;
-        }
-        auth.reset(NEW_YS RSA(cert.get_privateKey(),
-                   cert.get_privateKeyLength(), false));
-    }
-    else {
-        if (cert.get_keyType() != dsa_sa_algo) {
-            ssl.SetError(privateKey_error);
-            return;
-        }
-        auth.reset(NEW_YS DSS(cert.get_privateKey(),
-                   cert.get_privateKeyLength(), false));
-        sigSz += DSS_ENCODED_EXTRA;
-    }
-    
-    sigSz += auth->get_signatureLength();
-    if (!sigSz) {
-        ssl.SetError(privateKey_error);
-        return;
-    }
-
-    length_ = 8; // pLen + gLen + YsLen + SigLen
-    length_ += pSz + gSz + pubSz + sigSz;
-
-    output_buffer tmp(length_);
-    byte len[2];
-    // P
-    c16toa(pSz, len);
-    tmp.write(len, sizeof(len));
-    tmp.write(parms_.get_p(), pSz);
-    // G
-    c16toa(gSz, len);
-    tmp.write(len, sizeof(len));
-    tmp.write(parms_.get_g(), gSz);
-    // Ys
-    c16toa(pubSz, len);
-    tmp.write(len, sizeof(len));
-    tmp.write(parms_.get_pub(), pubSz);
-
-    // Sig
-    byte hash[FINISHED_SZ];
-    MD5  md5;
-    SHA  sha;
-    signature_ = NEW_YS byte[sigSz];
-
-    const Connection& conn = ssl.getSecurity().get_connection();
-    // md5
-    md5.update(conn.client_random_, RAN_LEN);
-    md5.update(conn.server_random_, RAN_LEN);
-    md5.update(tmp.get_buffer(), tmp.get_size());
-    md5.get_digest(hash);
-
-    // sha
-    sha.update(conn.client_random_, RAN_LEN);
-    sha.update(conn.server_random_, RAN_LEN);
-    sha.update(tmp.get_buffer(), tmp.get_size());
-    sha.get_digest(&hash[MD5_LEN]);
-
-    if (ssl.getSecurity().get_parms().sig_algo_ == rsa_sa_algo) {
-        auth->sign(signature_, hash, sizeof(hash),
-                   ssl.getCrypto().get_random());
-        // check for rsa signautre fault
-        if (!auth->verify(hash, sizeof(hash), signature_,
-                                              auth->get_signatureLength())) {
-            ssl.SetError(rsaSignFault_error);
-            return;
-        }
-    }
-    else {
-        auth->sign(signature_, &hash[MD5_LEN], SHA_LEN,
-                   ssl.getCrypto().get_random());
-        byte encoded[DSS_SIG_SZ + DSS_ENCODED_EXTRA];
-        TaoCrypt::EncodeDSA_Signature(signature_, encoded);
-        memcpy(signature_, encoded, sizeof(encoded));
-    }
-
-    c16toa(sigSz, len);
-    tmp.write(len, sizeof(len));
-    tmp.write(signature_, sigSz);
-
-    // key message
-    keyMessage_ = NEW_YS opaque[length_];
-    memcpy(keyMessage_, tmp.get_buffer(), tmp.get_size());
-}
-
-
-// read PreMaster secret and decrypt, server side
-void EncryptedPreMasterSecret::read(SSL& ssl, input_buffer& input)
-{
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    const CertManager& cert = ssl.getCrypto().get_certManager();
-    RSA rsa(cert.get_privateKey(), cert.get_privateKeyLength(), false);
-    uint16 cipherLen = rsa.get_cipherLength();
-    if (ssl.isTLS()) {
-        byte len[2];
-        len[0] = input[AUTO];
-        len[1] = input[AUTO];
-        ato16(len, cipherLen);
-    }
-    alloc(cipherLen);
-    input.read(secret_, length_);
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    opaque preMasterSecret[SECRET_LEN];
-    memset(preMasterSecret, 0, sizeof(preMasterSecret));
-    rsa.decrypt(preMasterSecret, secret_, length_, 
-                ssl.getCrypto().get_random());
-
-    ProtocolVersion pv = ssl.getSecurity().get_connection().chVersion_;
-    if (pv.major_ != preMasterSecret[0] || pv.minor_ != preMasterSecret[1])
-        ssl.SetError(pms_version_error); // continue deriving for timing attack
-
-    ssl.set_preMaster(preMasterSecret, SECRET_LEN);
-    ssl.makeMasterSecret();
-}
-
-
-EncryptedPreMasterSecret::EncryptedPreMasterSecret()
-    : secret_(0), length_(0)
-{}
-
-
-EncryptedPreMasterSecret::~EncryptedPreMasterSecret()
-{
-    ysArrayDelete(secret_);
-}
-
-
-int EncryptedPreMasterSecret::get_length() const
-{
-    return length_;
-}
-
-
-opaque* EncryptedPreMasterSecret::get_clientKey() const
-{
-    return secret_;
-}
-
-
-void EncryptedPreMasterSecret::alloc(int sz)
-{
-    length_ = sz;
-    secret_ = NEW_YS opaque[sz];
-}
-
-
-// read client's public key, server side
-void ClientDiffieHellmanPublic::read(SSL& ssl, input_buffer& input)
-{
-    if (input.get_error() || input.get_remaining() < (uint)LENGTH_SZ) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    DiffieHellman& dh = ssl.useCrypto().use_dh();
-
-    uint16 keyLength;
-    byte tmp[2];
-    tmp[0] = input[AUTO];
-    tmp[1] = input[AUTO];
-    ato16(tmp, keyLength);
-
-    if (keyLength < dh.get_agreedKeyLength()/2) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    alloc(keyLength);
-    input.read(Yc_, keyLength);
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-    dh.makeAgreement(Yc_, keyLength); 
-
-    ssl.set_preMaster(dh.get_agreedKey(), dh.get_agreedKeyLength());
-    ssl.makeMasterSecret();
-}
-
-
-ClientDiffieHellmanPublic::ClientDiffieHellmanPublic()
-    : length_(0), Yc_(0)
-{}
-
-
-ClientDiffieHellmanPublic::~ClientDiffieHellmanPublic()
-{
-    ysArrayDelete(Yc_);
-}
-
-
-int ClientDiffieHellmanPublic::get_length() const
-{
-    return length_;
-}
-
-
-opaque* ClientDiffieHellmanPublic::get_clientKey() const
-{
-    return Yc_;
-}
-
-
-void ClientDiffieHellmanPublic::alloc(int sz, bool offset) 
-{
-    length_ = sz + (offset ? KEY_OFFSET : 0); 
-    Yc_ = NEW_YS opaque[length_];
-}
-
-
-// read server's p, g, public key and sig, client side
-void DH_Server::read(SSL& ssl, input_buffer& input)
-{
-    if (input.get_error() || input.get_remaining() < (uint)LENGTH_SZ) {
-        ssl.SetError(bad_input);
-        return;
-    }
-    uint16 length, messageTotal = 6; // pSz + gSz + pubSz
-    byte tmp[2];
-
-    // p
-    tmp[0] = input[AUTO];
-    tmp[1] = input[AUTO];
-    ato16(tmp, length);
-    messageTotal += length;
-
-    input.read(parms_.alloc_p(length), length);
-    if (input.get_error() || input.get_remaining() < (uint)LENGTH_SZ) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    // g
-    tmp[0] = input[AUTO];
-    tmp[1] = input[AUTO];
-    ato16(tmp, length);
-    messageTotal += length;
-
-    input.read(parms_.alloc_g(length), length);
-    if (input.get_error() || input.get_remaining() < (uint)LENGTH_SZ) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    // pub
-    tmp[0] = input[AUTO];
-    tmp[1] = input[AUTO];
-    ato16(tmp, length);
-    messageTotal += length;
-
-    input.read(parms_.alloc_pub(length), length);
-    if (input.get_error() || input.get_remaining() < (uint)LENGTH_SZ) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    // save message for hash verify
-    input_buffer message(messageTotal);
-    input.set_current(input.get_current() - messageTotal);
-    input.read(message.get_buffer(), messageTotal);
-    message.add_size(messageTotal);
-    if (input.get_error() || input.get_remaining() < (uint)LENGTH_SZ) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    // signature
-    tmp[0] = input[AUTO];
-    tmp[1] = input[AUTO];
-    ato16(tmp, length);
-
-    if (length == 0) {
-        ssl.SetError(bad_input);
-        return;
-    }
-    signature_ = NEW_YS byte[length];
-    input.read(signature_, length);
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    // verify signature
-    byte hash[FINISHED_SZ];
-    MD5  md5;
-    SHA  sha;
-
-    const Connection& conn = ssl.getSecurity().get_connection();
-    // md5
-    md5.update(conn.client_random_, RAN_LEN);
-    md5.update(conn.server_random_, RAN_LEN);
-    md5.update(message.get_buffer(), message.get_size());
-    md5.get_digest(hash);
-
-    // sha
-    sha.update(conn.client_random_, RAN_LEN);
-    sha.update(conn.server_random_, RAN_LEN);
-    sha.update(message.get_buffer(), message.get_size());
-    sha.get_digest(&hash[MD5_LEN]);
-
-    const CertManager& cert = ssl.getCrypto().get_certManager();
-    
-    if (ssl.getSecurity().get_parms().sig_algo_ == rsa_sa_algo) {
-        RSA rsa(cert.get_peerKey(), cert.get_peerKeyLength());
-        if (!rsa.verify(hash, sizeof(hash), signature_, length))
-            ssl.SetError(verify_error);
-    }
-    else {
-        byte decodedSig[DSS_SIG_SZ];
-        length = TaoCrypt::DecodeDSA_Signature(decodedSig, signature_, length);
-        
-        DSS dss(cert.get_peerKey(), cert.get_peerKeyLength());
-        if (!dss.verify(&hash[MD5_LEN], SHA_LEN, decodedSig, length))
-            ssl.SetError(verify_error);
-    }
-
-    // save input
-    ssl.useCrypto().SetDH(NEW_YS DiffieHellman(parms_.get_p(),
-               parms_.get_pSize(), parms_.get_g(), parms_.get_gSize(),
-               parms_.get_pub(), parms_.get_pubSize(),
-               ssl.getCrypto().get_random()));
-}
-
-
-DH_Server::DH_Server()
-    : signature_(0), length_(0), keyMessage_(0)
-{}
-
-
-DH_Server::~DH_Server()
-{
-    ysArrayDelete(keyMessage_);
-    ysArrayDelete(signature_);
-}
-
-
-int DH_Server::get_length() const
-{
-    return length_;
-}
-
-
-opaque* DH_Server::get_serverKey() const
-{
-    return keyMessage_;
-}
-
-
-// set available suites
-Parameters::Parameters(ConnectionEnd ce, const Ciphers& ciphers, 
-                       ProtocolVersion pv, bool haveDH) : entity_(ce)
-{
-    pending_ = true;	// suite not set yet
-    strncpy(cipher_name_, "NONE", 5);
-
-    removeDH_ = !haveDH;   // only use on server side for set suites
-
-    if (ciphers.setSuites_) {   // use user set list
-        suites_size_ = ciphers.suiteSz_;
-        memcpy(suites_, ciphers.suites_, ciphers.suiteSz_);
-        SetCipherNames();
-    }
-    else 
-        SetSuites(pv, ce == server_end && removeDH_);  // defaults
-
-}
-
-
-void Parameters::SetSuites(ProtocolVersion pv, bool removeDH, bool removeRSA,
-                           bool removeDSA)
-{
-    int i = 0;
-    // available suites, best first
-    // when adding more, make sure cipher_names is updated and
-    //      MAX_CIPHERS is big enough
-
-    if (isTLS(pv)) {
-        if (!removeDH) {
-            if (!removeRSA) {
-                suites_[i++] = 0x00;
-                suites_[i++] = TLS_DHE_RSA_WITH_AES_256_CBC_SHA;
-            }
-            if (!removeDSA) {
-                suites_[i++] = 0x00;
-                suites_[i++] = TLS_DHE_DSS_WITH_AES_256_CBC_SHA;
-            }
-        }
-        if (!removeRSA) {
-            suites_[i++] = 0x00;
-            suites_[i++] = TLS_RSA_WITH_AES_256_CBC_SHA;
-        }
-        if (!removeDH) {
-            if (!removeRSA) {
-                suites_[i++] = 0x00;
-                suites_[i++] = TLS_DHE_RSA_WITH_AES_128_CBC_SHA;
-            }
-            if (!removeDSA) {
-                suites_[i++] = 0x00;
-                suites_[i++] = TLS_DHE_DSS_WITH_AES_128_CBC_SHA;
-            }
-        }
-        if (!removeRSA) {
-            suites_[i++] = 0x00;
-            suites_[i++] = TLS_RSA_WITH_AES_128_CBC_SHA;
-            suites_[i++] = 0x00;
-            suites_[i++] = TLS_RSA_WITH_AES_256_CBC_RMD160;
-            suites_[i++] = 0x00;
-            suites_[i++] = TLS_RSA_WITH_AES_128_CBC_RMD160;
-            suites_[i++] = 0x00;
-            suites_[i++] = TLS_RSA_WITH_3DES_EDE_CBC_RMD160;
-        }
-        if (!removeDH) {
-            if (!removeRSA) {
-                suites_[i++] = 0x00;
-                suites_[i++] = TLS_DHE_RSA_WITH_AES_256_CBC_RMD160;
-                suites_[i++] = 0x00;
-                suites_[i++] = TLS_DHE_RSA_WITH_AES_128_CBC_RMD160;
-                suites_[i++] = 0x00;
-                suites_[i++] = TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD160;
-            }
-            if (!removeDSA) {
-                suites_[i++] = 0x00;
-                suites_[i++] = TLS_DHE_DSS_WITH_AES_256_CBC_RMD160;
-                suites_[i++] = 0x00;
-                suites_[i++] = TLS_DHE_DSS_WITH_AES_128_CBC_RMD160;
-                suites_[i++] = 0x00;
-                suites_[i++] = TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD160;
-            }
-        }
-    }
-
-    if (!removeRSA) {
-        suites_[i++] = 0x00;
-        suites_[i++] = SSL_RSA_WITH_RC4_128_SHA;  
-        suites_[i++] = 0x00;
-        suites_[i++] = SSL_RSA_WITH_RC4_128_MD5;
-
-        suites_[i++] = 0x00;
-        suites_[i++] = SSL_RSA_WITH_3DES_EDE_CBC_SHA;
-        suites_[i++] = 0x00;
-        suites_[i++] = SSL_RSA_WITH_DES_CBC_SHA;
-    }
-    if (!removeDH) {
-        if (!removeRSA) {
-            suites_[i++] = 0x00;
-            suites_[i++] = SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA;
-        }
-        if (!removeDSA) {
-            suites_[i++] = 0x00;
-            suites_[i++] = SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA;
-        }
-        if (!removeRSA) {
-            suites_[i++] = 0x00;
-            suites_[i++] = SSL_DHE_RSA_WITH_DES_CBC_SHA;
-        }
-        if (!removeDSA) {
-            suites_[i++] = 0x00;
-            suites_[i++] = SSL_DHE_DSS_WITH_DES_CBC_SHA;
-        }
-    }
-
-    suites_size_ = i;
-
-    SetCipherNames();
-}
-
-
-void Parameters::SetCipherNames()
-{
-    const int suites = suites_size_ / 2;
-    int pos = 0;
-
-    for (int j = 0; j < suites; j++) {
-        int index = suites_[j*2 + 1];  // every other suite is suite id
-        size_t len = strlen(cipher_names[index]) + 1;
-        strncpy(cipher_list_[pos++], cipher_names[index], len);
-    }
-    cipher_list_[pos][0] = 0;
-}
-
-
-// input operator for RecordLayerHeader, adjust stream
-input_buffer& operator>>(input_buffer& input, RecordLayerHeader& hdr)
-{
-    hdr.type_ = ContentType(input[AUTO]);
-    hdr.version_.major_ = input[AUTO];
-    hdr.version_.minor_ = input[AUTO];
-
-    // length
-    byte tmp[2];
-    tmp[0] = input[AUTO];
-    tmp[1] = input[AUTO];
-    ato16(tmp, hdr.length_);
-
-    return input;
-}
-
-
-// output operator for RecordLayerHeader
-output_buffer& operator<<(output_buffer& output, const RecordLayerHeader& hdr)
-{
-    output[AUTO] = hdr.type_;
-    output[AUTO] = hdr.version_.major_;
-    output[AUTO] = hdr.version_.minor_;
-    
-    // length
-    byte tmp[2];
-    c16toa(hdr.length_, tmp);
-    output[AUTO] = tmp[0];
-    output[AUTO] = tmp[1];
-
-    return output;
-}
-
-
-// virtual input operator for Messages
-input_buffer& operator>>(input_buffer& input, Message& msg)
-{
-    return msg.set(input);
-}
-
-// virtual output operator for Messages
-output_buffer& operator<<(output_buffer& output, const Message& msg)
-{
-    return msg.get(output);
-}
-
-
-// input operator for HandShakeHeader
-input_buffer& operator>>(input_buffer& input, HandShakeHeader& hs)
-{
-    hs.type_ = HandShakeType(input[AUTO]);
-
-    hs.length_[0] = input[AUTO];
-    hs.length_[1] = input[AUTO];
-    hs.length_[2] = input[AUTO];
-    
-    return input;
-}
-
-
-// output operator for HandShakeHeader
-output_buffer& operator<<(output_buffer& output, const HandShakeHeader& hdr)
-{
-    output[AUTO] = hdr.type_;
-    output.write(hdr.length_, sizeof(hdr.length_));
-    return output;
-}
-
-
-// HandShake Header Processing function
-void HandShakeHeader::Process(input_buffer& input, SSL& ssl)
-{
-    ssl.verifyState(*this);
-    if (ssl.GetError()) return;
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-    const HandShakeFactory& hsf = ssl.getFactory().getHandShake();
-    mySTL::auto_ptr hs(hsf.CreateObject(type_));
-    if (!hs.get()) {
-        ssl.SetError(factory_error);
-        return;
-    }
-
-    uint len = c24to32(length_);
-    if (len > input.get_remaining()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-    hashHandShake(ssl, input, len);
-
-    hs->set_length(len);
-    input >> *hs;
-    hs->Process(input, ssl);
-}
-
-
-ContentType HandShakeHeader::get_type() const
-{
-    return handshake;
-}
-
-
-uint16 HandShakeHeader::get_length() const
-{
-    return c24to32(length_);
-}
-
-
-HandShakeType HandShakeHeader::get_handshakeType() const
-{
-    return type_;
-}
-
-
-void HandShakeHeader::set_type(HandShakeType hst)
-{
-    type_ = hst;
-}
-
-
-void HandShakeHeader::set_length(uint32 u32)
-{
-    c32to24(u32, length_);
-}
-
-
-input_buffer& HandShakeHeader::set(input_buffer& in)
-{
-    return in >> *this;
-}
-
-
-output_buffer& HandShakeHeader::get(output_buffer& out) const
-{
-    return out << *this;
-}
-
-
-
-int HandShakeBase::get_length() const
-{
-    return length_;
-}
-
-
-void HandShakeBase::set_length(int l)
-{
-    length_ = l;
-}
-
-
-// for building buffer's type field
-HandShakeType HandShakeBase::get_type() const
-{
-    return no_shake;
-}
-
-
-input_buffer& HandShakeBase::set(input_buffer& in)
-{
-    return in;
-}
-
- 
-output_buffer& HandShakeBase::get(output_buffer& out) const
-{
-    return out;
-}
-
-
-void HandShakeBase::Process(input_buffer&, SSL&) 
-{}
-
-
-input_buffer& HelloRequest::set(input_buffer& in)
-{
-    return in;
-}
-
-
-output_buffer& HelloRequest::get(output_buffer& out) const
-{
-    return out;
-}
-
-
-void HelloRequest::Process(input_buffer&, SSL&)
-{}
-
-
-HandShakeType HelloRequest::get_type() const
-{
-    return hello_request;
-}
-
-
-// input operator for CipherSpec
-input_buffer& operator>>(input_buffer& input, ChangeCipherSpec& cs)
-{
-    cs.type_ = CipherChoice(input[AUTO]);
-    return input; 
-}
-
-// output operator for CipherSpec
-output_buffer& operator<<(output_buffer& output, const ChangeCipherSpec& cs)
-{
-    output[AUTO] = cs.type_;
-    return output;
-}
-
-
-ChangeCipherSpec::ChangeCipherSpec() 
-    : type_(change_cipher_spec_choice)
-{}
-
-
-input_buffer& ChangeCipherSpec::set(input_buffer& in)
-{
-    return in >> *this;
-}
-
-
-output_buffer& ChangeCipherSpec::get(output_buffer& out) const
-{
-    return out << *this;
-}
-
-
-ContentType ChangeCipherSpec::get_type() const
-{
-    return change_cipher_spec;
-}
-
-
-uint16 ChangeCipherSpec::get_length() const
-{
-    return SIZEOF_ENUM;
-}
-
-
-// CipherSpec processing handler
-void ChangeCipherSpec::Process(input_buffer& input, SSL& ssl)
-{
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    // detect duplicate change_cipher
-    if (ssl.getSecurity().get_parms().pending_ == false) {
-        ssl.order_error();
-        return;
-    }
-
-    ssl.useSecurity().use_parms().pending_ = false;
-    if (ssl.getSecurity().get_resuming()) {
-        if (ssl.getSecurity().get_parms().entity_ == client_end)
-            buildFinished(ssl, ssl.useHashes().use_verify(), server); // server
-    }
-    else if (ssl.getSecurity().get_parms().entity_ == server_end)
-        buildFinished(ssl, ssl.useHashes().use_verify(), client);     // client
-}
-
-
-Alert::Alert(AlertLevel al, AlertDescription ad)
-    : level_(al), description_(ad)
-{}
-
-
-ContentType Alert::get_type() const
-{
-    return alert;
-}
-
-
-uint16 Alert::get_length() const
-{
-    return SIZEOF_ENUM * 2;
-}
-
-
-input_buffer& Alert::set(input_buffer& in)
-{
-    return in >> *this;
-}
-
-
-output_buffer& Alert::get(output_buffer& out) const
-{
-    return out << *this;
-}
-
-
-// input operator for Alert
-input_buffer& operator>>(input_buffer& input, Alert& a)
-{
-    a.level_ = AlertLevel(input[AUTO]);
-    a.description_ = AlertDescription(input[AUTO]);
- 
-    return input;
-}
-
-
-// output operator for Alert
-output_buffer& operator<<(output_buffer& output, const Alert& a)
-{
-    output[AUTO] = a.level_;
-    output[AUTO] = a.description_;
-    return output;
-}
-
-
-// Alert processing handler
-void Alert::Process(input_buffer& input, SSL& ssl)
-{
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    if (ssl.getSecurity().get_parms().pending_ == false)  { // encrypted alert
-        int            aSz = get_length();  // alert size already read on input
-        opaque         verify[SHA_LEN];
-        const  opaque* data = input.get_buffer() + input.get_current() - aSz;
-
-        if (ssl.isTLS())
-            TLS_hmac(ssl, verify, data, aSz, alert, true);
-        else
-            hmac(ssl, verify, data, aSz, alert, true);
-
-        // read mac and skip fill
-        int    digestSz = ssl.getCrypto().get_digest().get_digestSize();
-        opaque mac[SHA_LEN];
-        input.read(mac, digestSz);
-
-        if (ssl.getSecurity().get_parms().cipher_type_ == block) {
-            int    ivExtra = 0;
-            opaque fill;
-
-            if (ssl.isTLSv1_1())
-                ivExtra = ssl.getCrypto().get_cipher().get_blockSize();
-            int padSz = ssl.getSecurity().get_parms().encrypt_size_ - ivExtra -
-                        aSz - digestSz;
-            for (int i = 0; i < padSz; i++) 
-                fill = input[AUTO];
-        }
-
-        if (input.get_error()) {
-            ssl.SetError(bad_input);
-            return;
-        }
-
-        // verify
-        if (memcmp(mac, verify, digestSz)) {
-            ssl.SetError(verify_error);
-            return;
-        }
-    }
-    if (level_ == fatal) {
-        ssl.useStates().useRecord()    = recordNotReady;
-        ssl.useStates().useHandShake() = handShakeNotReady;
-        ssl.SetError(YasslError(description_));
-    }
-}
-
-
-Data::Data()
-    : length_(0), buffer_(0), write_buffer_(0)
-{}
-
-
-Data::Data(uint16 len, opaque* b)
-    : length_(len), buffer_(b), write_buffer_(0)
-{}
-
-
-void Data::SetData(uint16 len, const opaque* buffer)
-{
-    length_ = len;
-    write_buffer_ = buffer;
-}
-
-input_buffer& Data::set(input_buffer& in)
-{
-    return in;
-}
-
-
-output_buffer& Data::get(output_buffer& out) const
-{
-    return out << *this;
-}
-
-
-ContentType Data::get_type() const
-{
-    return application_data;
-}
-
-
-uint16 Data::get_length() const
-{
-    return length_;
-}
-
-
-void Data::set_length(uint16 l)
-{
-    length_ = l;
-}
-
-
-opaque* Data::set_buffer()
-{
-    return buffer_;
-}
-
-
-// output operator for Data
-output_buffer& operator<<(output_buffer& output, const Data& data)
-{
-    output.write(data.write_buffer_, data.length_);
-    return output;
-}
-
-
-// check all bytes for equality 
-static int constant_compare(const byte* a, const byte* b, int len)
-{
-    int good = 0;
-    int bad  = 0;
-
-    for (int i = 0; i < len; i++) {
-        if (a[i] == b[i])
-            good++;
-        else
-            bad++;
-    }
-
-    if (good == len)
-        return 0;
-    else
-        return 0 - bad;  // failure
-}
-
-
-// check bytes for pad value
-static int pad_check(const byte* input, byte pad, int len)
-{
-    int good = 0;
-    int bad  = 0;
-
-    for (int i = 0; i < len; i++) {
-        if (input[i] == pad)
-            good++;
-        else
-            bad++;
-    }
-
-    if (good == len)
-        return 0;
-    else
-        return 0 - bad;  // failure
-}
-
-
-// get number of compression rounds
-static inline int get_rounds(int pLen, int padLen, int t)
-{
-    int  roundL1 = 1;  // round ups 
-    int  roundL2 = 1;
-
-    int L1 = COMPRESS_CONSTANT + pLen - t;
-    int L2 = COMPRESS_CONSTANT + pLen - padLen - 1 - t;
-
-    L1 -= COMPRESS_UPPER;
-    L2 -= COMPRESS_UPPER;
-
-    if ( (L1 % COMPRESS_LOWER) == 0)
-        roundL1 = 0;
-    if ( (L2 % COMPRESS_LOWER) == 0)
-        roundL2 = 0;
-
-    L1 /= COMPRESS_LOWER;
-    L2 /= COMPRESS_LOWER;
-
-    L1 += roundL1;
-    L2 += roundL2;
-
-    return L1 - L2;
-}
-
-
-// do compression rounds on dummy data
-static inline void compress_rounds(SSL& ssl, int rounds, const byte* dummy)
-{
-    if (rounds) {
-        Digest* digest = NULL;
-
-        MACAlgorithm ma = ssl.getSecurity().get_parms().mac_algorithm_;
-        if (ma == sha) 
-            digest = NEW_YS SHA;
-        else if (ma == md5)
-            digest = NEW_YS MD5;
-        else if (ma == rmd)
-            digest = NEW_YS RMD;
-        else
-            return;
-
-        for (int i = 0; i < rounds; i++)
-            digest->update(dummy, COMPRESS_LOWER);
-
-        ysDelete(digest);    
-    }
-}
-
-
-// timing resistant pad verification
-static int timing_verify(SSL& ssl, const byte* input, int padLen, int t,
-                         int pLen)
-{
-    byte verify[SHA_LEN];
-    byte dummy[MAX_PAD_SIZE];
-
-    memset(dummy, 1, sizeof(dummy));
-
-    if ( (t + padLen + 1) > pLen) {
-        pad_check(dummy, (byte)padLen, MAX_PAD_SIZE);
-        if (ssl.isTLS())
-            TLS_hmac(ssl, verify, input, pLen - t, application_data, 1);
-        else
-            hmac(ssl, verify, input, pLen - t, application_data, 1);
-        constant_compare(verify, input + pLen - t, t);
-
-        return -1;
-    }
-
-    if (pad_check(input + pLen - (padLen + 1), (byte)padLen, padLen + 1) != 0) {
-        pad_check(dummy, (byte)padLen, MAX_PAD_SIZE - padLen - 1);
-        if (ssl.isTLS())
-            TLS_hmac(ssl, verify, input, pLen - t, application_data, 1);
-        else
-            hmac(ssl, verify, input, pLen - t, application_data, 1);
-        constant_compare(verify, input + pLen - t, t);
-
-        return -1;
-    }
-
-    pad_check(dummy, (byte)padLen, MAX_PAD_SIZE - padLen - 1);
-    if (ssl.isTLS())
-        TLS_hmac(ssl, verify, input, pLen - padLen - 1 - t, application_data,1);
-    else
-        hmac(ssl, verify, input, pLen - padLen - 1 - t, application_data, 1);
-
-    compress_rounds(ssl, get_rounds(pLen, padLen, t), dummy);
-
-    if (constant_compare(verify, input + (pLen - padLen - 1 - t), t) != 0)
-        return -1;
-
-    return 0;
-}
-
-
-// Process handler for Data
-void Data::Process(input_buffer& input, SSL& ssl)
-{
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    int msgSz = ssl.getSecurity().get_parms().encrypt_size_;
-    int pad   = 0, padSz = 0;
-    int ivExtra = 0;
-    int digestSz = ssl.getCrypto().get_digest().get_digestSize();
-    const byte* rawData = input.get_buffer() + input.get_current();
-    opaque verify[SHA_LEN];
-
-    if (ssl.getSecurity().get_parms().cipher_type_ == block) {
-        if (ssl.isTLSv1_1())  // IV
-            ivExtra = ssl.getCrypto().get_cipher().get_blockSize();
-        pad = *(input.get_buffer() + input.get_current() + msgSz -ivExtra - 1);
-        padSz = 1;
-
-        if (ssl.isTLS()) {
-            if (timing_verify(ssl, rawData, pad,digestSz, msgSz-ivExtra) != 0) {
-                ssl.SetError(verify_error);
-                return;
-            }
-        }
-        else {   // SSLv3, some don't do this padding right
-            int sz3 = msgSz - digestSz - pad - 1; 
-            hmac(ssl, verify, rawData, sz3, application_data, true);
-            if (constant_compare(verify, rawData + sz3, digestSz) != 0) {
-                ssl.SetError(verify_error);
-                return;
-            }
-        } 
-    }
-    else {  // stream
-        int streamSz = msgSz - digestSz; 
-        if (ssl.isTLS())
-            TLS_hmac(ssl, verify, rawData, streamSz, application_data, true);
-        else
-            hmac(ssl, verify, rawData, streamSz, application_data, true);
-        if (constant_compare(verify, rawData + streamSz, digestSz) != 0) {
-            ssl.SetError(verify_error);
-            return;
-        }
-    }
-
-    int dataSz = msgSz - ivExtra - digestSz - pad - padSz;
-
-    if (dataSz < 0 || dataSz > (MAX_RECORD_SIZE + COMPRESS_EXTRA)) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    // read data
-    if (dataSz) {                               // could be compressed
-        if (ssl.CompressionOn()) {
-            input_buffer tmp;
-            if (DeCompress(input, dataSz, tmp) == -1) {
-                ssl.SetError(decompress_error);
-                return;
-            }
-            ssl.addData(NEW_YS input_buffer(tmp.get_size(),
-                                            tmp.get_buffer(), tmp.get_size()));
-        }
-        else {
-            input_buffer* data;
-            ssl.addData(data = NEW_YS input_buffer(dataSz));
-            input.read(data->get_buffer(), dataSz);
-            data->add_size(dataSz);
-        }
-    }
-
-    // advance past mac and fill
-    input.set_current(input.get_current() + digestSz + pad + padSz);
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-}
-
-
-// virtual input operator for HandShakes
-input_buffer& operator>>(input_buffer& input, HandShakeBase& hs)
-{
-    return hs.set(input);
-}
-
-
-// virtual output operator for HandShakes
-output_buffer& operator<<(output_buffer& output, const HandShakeBase& hs)
-{
-    return hs.get(output);
-}
-
-
-Certificate::Certificate(const x509* cert) : cert_(cert) 
-{
-    if (cert)
-      set_length(cert_->get_length() + 2 * CERT_HEADER); // list and cert size
-    else
-      set_length(CERT_HEADER); // total blank cert size, just list header
-}
-
-
-const opaque* Certificate::get_buffer() const
-{
-    if (cert_)
-      return cert_->get_buffer();
-
-    return NULL;
-}
-
-
-// output operator for Certificate
-output_buffer& operator<<(output_buffer& output, const Certificate& cert)
-{
-    uint sz = cert.get_length();
-    opaque tmp[CERT_HEADER];
-
-    if ((int)sz > CERT_HEADER)
-      sz -= 2 * CERT_HEADER;  // actual cert, not including headers
-    else {
-      sz = 0;                 // blank cert case
-      c32to24(sz, tmp);
-      output.write(tmp, CERT_HEADER);
-
-      return output;
-    }
-
-    c32to24(sz + CERT_HEADER, tmp);
-    output.write(tmp, CERT_HEADER);
-    c32to24(sz, tmp);
-    output.write(tmp, CERT_HEADER);
-    output.write(cert.get_buffer(), sz);
-
-    return output;
-}
-
-
-// certificate processing handler
-void Certificate::Process(input_buffer& input, SSL& ssl)
-{
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    CertManager& cm = ssl.useCrypto().use_certManager();
-  
-    uint32 list_sz;
-    byte   tmp[3];
-
-    if (input.get_remaining() < sizeof(tmp)) {
-        ssl.SetError(YasslError(bad_input));
-        return;
-    }
-    tmp[0] = input[AUTO];
-    tmp[1] = input[AUTO];
-    tmp[2] = input[AUTO];
-    c24to32(tmp, list_sz);
-
-    if (list_sz > (uint)MAX_RECORD_SIZE) { // sanity check
-        ssl.SetError(YasslError(bad_input));
-        return;
-    }
-    
-    while (list_sz) {
-        // cert size
-        uint32 cert_sz;
-
-        if (input.get_remaining() < sizeof(tmp)) {
-            ssl.SetError(YasslError(bad_input));
-            return;
-        }
-        tmp[0] = input[AUTO];
-        tmp[1] = input[AUTO];
-        tmp[2] = input[AUTO];
-        c24to32(tmp, cert_sz);
-        
-        if (cert_sz > (uint)MAX_RECORD_SIZE || input.get_remaining() < cert_sz){
-            ssl.SetError(YasslError(bad_input));
-            return;
-        }
-        if (cert_sz) {
-          x509* myCert;
-          cm.AddPeerCert(myCert = NEW_YS x509(cert_sz));
-          input.read(myCert->use_buffer(), myCert->get_length());
-        }
-
-        list_sz -= cert_sz + CERT_HEADER;
-    }
-    if (int err = cm.Validate())
-        ssl.SetError(YasslError(err));
-    else if (ssl.getSecurity().get_parms().entity_ == client_end)
-        ssl.useStates().useClient() = serverCertComplete;
-}
-
-
-Certificate::Certificate()
-    : cert_(0)
-{}
-
-
-input_buffer& Certificate::set(input_buffer& in)
-{
-    return in;
-}
-
-
-output_buffer& Certificate::get(output_buffer& out) const
-{
-    return out << *this;
-}
-
-
-HandShakeType Certificate::get_type() const
-{
-    return certificate;
-}
-
-
-ServerDHParams::ServerDHParams()
-    : pSz_(0), gSz_(0), pubSz_(0), p_(0), g_(0), Ys_(0)
-{}
-
-
-ServerDHParams::~ServerDHParams()
-{
-    ysArrayDelete(Ys_);
-    ysArrayDelete(g_);
-    ysArrayDelete(p_);
-}
-
-
-int ServerDHParams::get_pSize() const
-{
-    return pSz_;
-}
-
-
-int ServerDHParams::get_gSize() const
-{
-    return gSz_;
-}
-
-
-int ServerDHParams::get_pubSize() const
-{
-    return pubSz_;
-}
-
-
-const opaque* ServerDHParams::get_p() const
-{
-    return p_;
-}
-
-
-const opaque* ServerDHParams::get_g() const
-{
-    return g_;
-}
-
-
-const opaque* ServerDHParams::get_pub() const
-{
-    return Ys_;
-}
-
-
-opaque* ServerDHParams::alloc_p(int sz)
-{
-    p_ = NEW_YS opaque[pSz_ = sz];
-    return p_;
-}
-
-
-opaque* ServerDHParams::alloc_g(int sz)
-{
-    g_ = NEW_YS opaque[gSz_ = sz];
-    return g_;
-}
-
-
-opaque* ServerDHParams::alloc_pub(int sz)
-{
-    Ys_ = NEW_YS opaque[pubSz_ = sz];
-    return Ys_;
-}
-
-
-int ServerKeyBase::get_length() const
-{
-    return 0;
-}
-
-
-opaque* ServerKeyBase::get_serverKey() const
-{
-    return 0;
-}
-
-
-// input operator for ServerHello
-input_buffer& operator>>(input_buffer& input, ServerHello& hello)
-{ 
-    // Protocol
-    hello.server_version_.major_ = input[AUTO];
-    hello.server_version_.minor_ = input[AUTO];
-   
-    // Random
-    input.read(hello.random_, RAN_LEN);
-    
-    // Session
-    hello.id_len_ = input[AUTO];
-    if (hello.id_len_ > ID_LEN) {
-        input.set_error(); 
-        return input;
-    }
-    if (hello.id_len_)
-        input.read(hello.session_id_, hello.id_len_);
- 
-    // Suites
-    hello.cipher_suite_[0] = input[AUTO];
-    hello.cipher_suite_[1] = input[AUTO];
-   
-    // Compression
-    hello.compression_method_ = CompressionMethod(input[AUTO]);
-
-    return input;
-}
-
-
-// output operator for ServerHello
-output_buffer& operator<<(output_buffer& output, const ServerHello& hello)
-{
-    // Protocol
-    output[AUTO] = hello.server_version_.major_;
-    output[AUTO] = hello.server_version_.minor_;
-
-    // Random
-    output.write(hello.random_, RAN_LEN);
-
-    // Session
-    output[AUTO] = hello.id_len_;
-    output.write(hello.session_id_, ID_LEN);
-
-    // Suites
-    output[AUTO] = hello.cipher_suite_[0];
-    output[AUTO] = hello.cipher_suite_[1];
-
-    // Compression
-    output[AUTO] = hello.compression_method_;
-
-    return output;
-}
-
-
-// Server Hello processing handler
-void ServerHello::Process(input_buffer& input, SSL& ssl)
-{
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    if (ssl.GetMultiProtocol()) {   // SSLv23 support
-        if (ssl.isTLS() && server_version_.minor_ < 1)
-            // downgrade to SSLv3
-            ssl.useSecurity().use_connection().TurnOffTLS();
-        else if (ssl.isTLSv1_1() && server_version_.minor_ == 1)
-            // downdrage to TLSv1
-            ssl.useSecurity().use_connection().TurnOffTLS1_1();
-    }
-    else if (ssl.isTLSv1_1() && server_version_.minor_ < 2) {
-        ssl.SetError(badVersion_error);
-        return;
-    }
-    else if (ssl.isTLS() && server_version_.minor_ < 1) {
-        ssl.SetError(badVersion_error);
-        return;
-    }
-    else if (!ssl.isTLS() && (server_version_.major_ == 3 &&
-                              server_version_.minor_ >= 1)) {
-        ssl.SetError(badVersion_error);
-        return;
-    }
-    if (cipher_suite_[0] != 0x00) {
-        ssl.SetError(unknown_cipher);
-        return;
-    }
-    ssl.set_pending(cipher_suite_[1]);
-    ssl.set_random(random_, server_end);
-    if (id_len_)
-        ssl.set_sessionID(session_id_);
-    else
-        ssl.useSecurity().use_connection().sessionID_Set_ = false;
-
-    if (ssl.getSecurity().get_resuming()) {
-        if (memcmp(session_id_, ssl.getSecurity().get_resume().GetID(),
-                   ID_LEN) == 0) {
-            ssl.set_masterSecret(ssl.getSecurity().get_resume().GetSecret());
-            if (ssl.isTLS())
-                ssl.deriveTLSKeys();
-            else
-                ssl.deriveKeys();
-            ssl.useStates().useClient() = serverHelloDoneComplete;
-            return;
-        }
-        else {
-            ssl.useSecurity().set_resuming(false);
-            ssl.useLog().Trace("server denied resumption");
-        }
-    }
-
-    if (ssl.CompressionOn() && !compression_method_)
-        ssl.UnSetCompression(); // server isn't supporting yaSSL zlib request
-
-    ssl.useStates().useClient() = serverHelloComplete;
-}
-
-
-ServerHello::ServerHello()
-{
-    memset(random_, 0, RAN_LEN);
-    memset(session_id_, 0, ID_LEN);
-}
-
-
-ServerHello::ServerHello(ProtocolVersion pv, bool useCompression)
-    : server_version_(pv),
-      compression_method_(useCompression ? zlib : no_compression)
-{
-    memset(random_, 0, RAN_LEN);
-    memset(session_id_, 0, ID_LEN);
-}
-
-
-input_buffer& ServerHello::set(input_buffer& in)
-{
-    return in  >> *this;
-}
-
-
-output_buffer& ServerHello::get(output_buffer& out) const
-{
-    return out << *this;
-}
-
-
-HandShakeType ServerHello::get_type() const
-{
-    return server_hello;
-}
-
-
-const opaque* ServerHello::get_random() const
-{
-    return random_;
-}
-
-
-// Server Hello Done processing handler
-void ServerHelloDone::Process(input_buffer& input, SSL& ssl)
-{
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-    ssl.useStates().useClient() = serverHelloDoneComplete;
-}
-
-
-ServerHelloDone::ServerHelloDone()
-{
-    set_length(0);
-}
-
-
-input_buffer& ServerHelloDone::set(input_buffer& in)
-{
-    return in;
-}
-
-
-output_buffer& ServerHelloDone::get(output_buffer& out) const
-{
-    return out;
-}
-
-
-HandShakeType ServerHelloDone::get_type() const
-{
-    return server_hello_done;
-}
-
-
-int ClientKeyBase::get_length() const
-{
-    return 0;
-}
-
-
-opaque* ClientKeyBase::get_clientKey() const
-{
-    return 0;
-}
-
-
-// input operator for Client Hello
-input_buffer& operator>>(input_buffer& input, ClientHello& hello)
-{
-    uint begin = input.get_current();  // could have extensions at end
-
-    // Protocol
-    hello.client_version_.major_ = input[AUTO];
-    hello.client_version_.minor_ = input[AUTO];
-
-    // Random
-    input.read(hello.random_, RAN_LEN);
-
-    // Session
-    hello.id_len_ = input[AUTO];
-    if (hello.id_len_) input.read(hello.session_id_, ID_LEN);
-    
-    // Suites
-    byte   tmp[2];
-    uint16 len;
-    tmp[0] = input[AUTO];
-    tmp[1] = input[AUTO];
-    ato16(tmp, len);
-
-    hello.suite_len_ = min(len, static_cast(MAX_SUITE_SZ));
-    input.read(hello.cipher_suites_, hello.suite_len_);
-    if (len > hello.suite_len_)  // ignore extra suites
-        input.set_current(input.get_current() + len - hello.suite_len_);
-
-    // Compression
-    hello.comp_len_ = input[AUTO];
-    hello.compression_methods_ = no_compression;
-    while (hello.comp_len_--) {
-        CompressionMethod cm = CompressionMethod(input[AUTO]);
-        if (cm == zlib)
-            hello.compression_methods_ = zlib;
-    }
-
-    uint read = input.get_current() - begin;
-    uint expected = hello.get_length();
-
-    // ignore client hello extensions for now
-    if (read < expected)
-        input.set_current(input.get_current() + expected - read);
-
-    return input;
-}
-
-
-// output operaotr for Client Hello
-output_buffer& operator<<(output_buffer& output, const ClientHello& hello)
-{ 
-    // Protocol
-    output[AUTO] = hello.client_version_.major_;
-    output[AUTO] = hello.client_version_.minor_;
-
-    // Random
-    output.write(hello.random_, RAN_LEN);
-
-    // Session
-    output[AUTO] = hello.id_len_;
-    if (hello.id_len_) output.write(hello.session_id_, ID_LEN);
-
-    // Suites
-    byte tmp[2];
-    c16toa(hello.suite_len_, tmp);
-    output[AUTO] = tmp[0];
-    output[AUTO] = tmp[1];
-    output.write(hello.cipher_suites_, hello.suite_len_);
-  
-    // Compression
-    output[AUTO] = hello.comp_len_;
-    output[AUTO] = hello.compression_methods_;
-
-    return output;
-}
-
-
-// Client Hello processing handler
-void ClientHello::Process(input_buffer& input, SSL& ssl)
-{
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    // store version for pre master secret
-    ssl.useSecurity().use_connection().chVersion_ = client_version_;
-
-    if (client_version_.major_ != 3) {
-        ssl.SetError(badVersion_error);
-        return;
-    }
-    if (ssl.GetMultiProtocol()) {   // SSLv23 support
-        if (ssl.isTLS() && client_version_.minor_ < 1) {
-            // downgrade to SSLv3
-            ssl.useSecurity().use_connection().TurnOffTLS();
-            
-            ProtocolVersion pv = ssl.getSecurity().get_connection().version_;
-            bool removeDH  = ssl.getSecurity().get_parms().removeDH_;
-            bool removeRSA = false;
-            bool removeDSA = false;
-            
-            const CertManager& cm = ssl.getCrypto().get_certManager();
-            if (cm.get_keyType() == rsa_sa_algo)
-                removeDSA = true;
-            else
-                removeRSA = true;
-            
-            // reset w/ SSL suites
-            ssl.useSecurity().use_parms().SetSuites(pv, removeDH, removeRSA,
-                                                    removeDSA);
-        }
-        else if (ssl.isTLSv1_1() && client_version_.minor_ == 1)
-            // downgrade to TLSv1, but use same suites
-            ssl.useSecurity().use_connection().TurnOffTLS1_1();
-    }
-    else if (ssl.isTLSv1_1() && client_version_.minor_ < 2) {
-        ssl.SetError(badVersion_error);
-        return;
-    }
-    else if (ssl.isTLS() && client_version_.minor_ < 1) {
-        ssl.SetError(badVersion_error);
-        return;
-    }
-    else if (!ssl.isTLS() && client_version_.minor_ >= 1) {
-        ssl.SetError(badVersion_error);
-        return;
-    }
-
-    ssl.set_random(random_, client_end);
-
-    while (id_len_) {  // trying to resume
-        SSL_SESSION* session = 0;
-        if (!ssl.getSecurity().GetContext()->GetSessionCacheOff())
-            session = GetSessions().lookup(session_id_);
-        if (!session)  {
-            ssl.useLog().Trace("session lookup failed");
-            break;
-        }
-        ssl.set_session(session);
-        ssl.useSecurity().set_resuming(true);
-        ssl.matchSuite(session->GetSuite(), SUITE_LEN);
-        if (ssl.GetError()) return;
-        ssl.set_pending(ssl.getSecurity().get_parms().suite_[1]);
-        ssl.set_masterSecret(session->GetSecret());
-
-        opaque serverRandom[RAN_LEN];
-        ssl.getCrypto().get_random().Fill(serverRandom, sizeof(serverRandom));
-        ssl.set_random(serverRandom, server_end);
-        if (ssl.isTLS())
-            ssl.deriveTLSKeys();
-        else
-            ssl.deriveKeys();
-        ssl.useStates().useServer() = clientKeyExchangeComplete;
-        return;
-    }
-    ssl.matchSuite(cipher_suites_, suite_len_);
-    if (ssl.GetError()) return;
-    ssl.set_pending(ssl.getSecurity().get_parms().suite_[1]);
-
-    if (compression_methods_ == zlib)
-        ssl.SetCompression();
-
-    ssl.useStates().useServer() = clientHelloComplete;
-}
-
-
-input_buffer& ClientHello::set(input_buffer& in)
-{
-    return in  >> *this;
-}
-
-
-output_buffer& ClientHello::get(output_buffer& out) const
-{
-    return out << *this;
-}
-
-
-HandShakeType ClientHello::get_type() const
-{
-    return client_hello;
-}
-
-
-const opaque* ClientHello::get_random() const
-{
-    return random_;
-}
-
-
-ClientHello::ClientHello()
-{
-    memset(random_, 0, RAN_LEN);
-}
-
-
-ClientHello::ClientHello(ProtocolVersion pv, bool useCompression)
-    : client_version_(pv),
-      compression_methods_(useCompression ? zlib : no_compression)
-{
-    memset(random_, 0, RAN_LEN);
-}
-
-
-// output operator for ServerKeyExchange
-output_buffer& operator<<(output_buffer& output, const ServerKeyExchange& sk)
-{
-    output.write(sk.getKey(), sk.getKeyLength());
-    return output;
-}
-
-
-// Server Key Exchange processing handler
-void ServerKeyExchange::Process(input_buffer& input, SSL& ssl)
-{
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-    createKey(ssl);
-    if (ssl.GetError()) return;
-    server_key_->read(ssl, input);
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    ssl.useStates().useClient() = serverKeyExchangeComplete;
-}
-
-
-ServerKeyExchange::ServerKeyExchange(SSL& ssl)
-{
-    createKey(ssl);
-}
-
-
-ServerKeyExchange::ServerKeyExchange()
-    : server_key_(0)
-{}
-
-
-ServerKeyExchange::~ServerKeyExchange()
-{
-    ysDelete(server_key_);
-}
-
-
-void ServerKeyExchange::build(SSL& ssl) 
-{ 
-    server_key_->build(ssl); 
-    set_length(server_key_->get_length());
-}
-
-
-const opaque* ServerKeyExchange::getKey() const
-{
-    return server_key_->get_serverKey();
-}
-
-
-int ServerKeyExchange::getKeyLength() const
-{
-    return server_key_->get_length();
-}
-
-
-input_buffer& ServerKeyExchange::set(input_buffer& in)
-{
-    return in;      // process does
-}
-
-
-output_buffer& ServerKeyExchange::get(output_buffer& out) const
-{
-    return out << *this;
-}
-
-
-HandShakeType ServerKeyExchange::get_type() const
-{
-    return server_key_exchange;
-}
-
-
-// CertificateRequest 
-CertificateRequest::CertificateRequest()
-    : typeTotal_(0)
-{
-    memset(certificate_types_, 0, sizeof(certificate_types_));
-}
-
-
-CertificateRequest::~CertificateRequest()
-{
-
-    STL::for_each(certificate_authorities_.begin(),
-                  certificate_authorities_.end(),
-                  del_ptr_zero()) ;
-}
-
-
-void CertificateRequest::Build()
-{
-    certificate_types_[0] = rsa_sign;
-    certificate_types_[1] = dss_sign;
-
-    typeTotal_ = 2;
-
-    uint16 authCount = 0;
-    uint16 authSz = 0;
-  
-    for (int j = 0; j < authCount; j++) {
-        int sz = REQUEST_HEADER + MIN_DIS_SIZE;
-        DistinguishedName dn;
-        certificate_authorities_.push_back(dn = NEW_YS byte[sz]);
-
-        opaque tmp[REQUEST_HEADER];
-        c16toa(MIN_DIS_SIZE, tmp);
-        memcpy(dn, tmp, sizeof(tmp));
-  
-        // fill w/ junk for now
-        memcpy(dn, tmp, MIN_DIS_SIZE);
-        authSz += sz;
-    }
-
-    set_length(SIZEOF_ENUM + typeTotal_ + REQUEST_HEADER + authSz);
-}
-
-
-input_buffer& CertificateRequest::set(input_buffer& in)
-{
-    return in >> *this;
-}
-
-
-output_buffer& CertificateRequest::get(output_buffer& out) const
-{
-    return out << *this;
-}
-
-
-// input operator for CertificateRequest
-input_buffer& operator>>(input_buffer& input, CertificateRequest& request)
-{
-    // types
-    request.typeTotal_ = input[AUTO];
-    if (request.typeTotal_ > CERT_TYPES) {
-        input.set_error();
-        return input;
-    }
-    for (int i = 0; i < request.typeTotal_; i++)
-        request.certificate_types_[i] = ClientCertificateType(input[AUTO]);
-
-    byte tmp[2];
-    tmp[0] = input[AUTO];
-    tmp[1] = input[AUTO];
-    uint16 sz;
-    ato16(tmp, sz);
-
-    // authorities
-    while (sz) {
-        uint16 dnSz;
-        tmp[0] = input[AUTO];
-        tmp[1] = input[AUTO];
-        ato16(tmp, dnSz);
-       
-        input.set_current(input.get_current() + dnSz);
-
-        sz -= dnSz + REQUEST_HEADER;
-
-        if (input.get_error())
-            break;
-    }
-
-    return input;
-}
-
-
-// output operator for CertificateRequest
-output_buffer& operator<<(output_buffer& output,
-                          const CertificateRequest& request)
-{
-    // types
-    output[AUTO] = request.typeTotal_;
-    for (int i = 0; i < request.typeTotal_; i++)
-        output[AUTO] = request.certificate_types_[i];
-
-    // authorities
-    opaque tmp[REQUEST_HEADER];
-    c16toa(request.get_length() - SIZEOF_ENUM -
-           request.typeTotal_ - REQUEST_HEADER, tmp);
-    output.write(tmp, sizeof(tmp));
-
-    STL::list::const_iterator first =
-                                    request.certificate_authorities_.begin();
-    STL::list::const_iterator last =
-                                    request.certificate_authorities_.end();
-    while (first != last) {
-        uint16 sz;
-        ato16(*first, sz);
-        output.write(*first, sz + REQUEST_HEADER);
-
-        ++first;
-    }
-
-    return output;
-}
-
-
-// CertificateRequest processing handler
-void CertificateRequest::Process(input_buffer& input, SSL& ssl)
-{
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-    CertManager& cm = ssl.useCrypto().use_certManager();
-
-    cm.setSendVerify();
-    if (cm.get_cert() == NULL || cm.get_privateKey() == NULL)
-      cm.setSendBlankCert();  // send blank cert, OpenSSL requires now
-}
-
-
-HandShakeType CertificateRequest::get_type() const
-{
-    return certificate_request;
-}
-
-
-// CertificateVerify 
-CertificateVerify::CertificateVerify() : signature_(0)
-{}
-
-
-CertificateVerify::~CertificateVerify()
-{
-    ysArrayDelete(signature_);
-}
-
-
-void CertificateVerify::Build(SSL& ssl)
-{
-    build_certHashes(ssl, hashes_);
-
-    uint16 sz = 0;
-    byte   len[VERIFY_HEADER];
-    mySTL::auto_array sig;
-
-    // sign
-    const CertManager& cert = ssl.getCrypto().get_certManager();
-    if (cert.get_keyType() == rsa_sa_algo) {
-        RSA rsa(cert.get_privateKey(), cert.get_privateKeyLength(), false);
-
-        sz = rsa.get_cipherLength() + VERIFY_HEADER;
-        sig.reset(NEW_YS byte[sz]);
-
-        c16toa(sz - VERIFY_HEADER, len);
-        memcpy(sig.get(), len, VERIFY_HEADER);
-        rsa.sign(sig.get() + VERIFY_HEADER, hashes_.md5_, sizeof(Hashes),
-                 ssl.getCrypto().get_random());
-        // check for rsa signautre fault
-        if (!rsa.verify(hashes_.md5_, sizeof(Hashes), sig.get() + VERIFY_HEADER,
-                                                      rsa.get_cipherLength())) {
-            ssl.SetError(rsaSignFault_error);
-            return;
-        }
-    }
-    else {  // DSA
-        DSS dss(cert.get_privateKey(), cert.get_privateKeyLength(), false);
-
-        sz = DSS_SIG_SZ + DSS_ENCODED_EXTRA + VERIFY_HEADER;
-        sig.reset(NEW_YS byte[sz]);
-
-        c16toa(sz - VERIFY_HEADER, len);
-        memcpy(sig.get(), len, VERIFY_HEADER);
-        dss.sign(sig.get() + VERIFY_HEADER, hashes_.sha_, SHA_LEN,
-                 ssl.getCrypto().get_random());
-
-        byte encoded[DSS_SIG_SZ + DSS_ENCODED_EXTRA];
-        TaoCrypt::EncodeDSA_Signature(sig.get() + VERIFY_HEADER, encoded);
-        memcpy(sig.get() + VERIFY_HEADER, encoded, sizeof(encoded));
-    }
-    set_length(sz);
-    signature_ = sig.release();
-}
-
-
-input_buffer& CertificateVerify::set(input_buffer& in)
-{
-    return in >> *this;
-}
-
-
-output_buffer& CertificateVerify::get(output_buffer& out) const
-{
-    return out << *this;
-}
-
-
-// input operator for CertificateVerify
-input_buffer& operator>>(input_buffer& input, CertificateVerify& request)
-{
-    byte tmp[VERIFY_HEADER];
-    tmp[0] = input[AUTO];
-    tmp[1] = input[AUTO];
-
-    uint16 sz = 0;
-    ato16(tmp, sz);
-    request.set_length(sz);
-
-    if (sz == 0) {
-        input.set_error();
-        return input;
-    }
-
-    request.signature_ = NEW_YS byte[sz];
-    input.read(request.signature_, sz);
-
-    return input;
-}
-
-
-// output operator for CertificateVerify
-output_buffer& operator<<(output_buffer& output,
-                          const CertificateVerify& verify)
-{
-    output.write(verify.signature_, verify.get_length());
-
-    return output;
-}
-
-
-// CertificateVerify processing handler
-void CertificateVerify::Process(input_buffer& input, SSL& ssl)
-{
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    const Hashes&      hashVerify = ssl.getHashes().get_certVerify();
-    const CertManager& cert       = ssl.getCrypto().get_certManager();
-
-    if (cert.get_peerKeyType() == rsa_sa_algo) {
-        RSA rsa(cert.get_peerKey(), cert.get_peerKeyLength());
-
-        if (!rsa.verify(hashVerify.md5_, sizeof(hashVerify), signature_,
-                        get_length()))
-            ssl.SetError(verify_error);
-    }
-    else { // DSA
-        byte decodedSig[DSS_SIG_SZ];
-        TaoCrypt::DecodeDSA_Signature(decodedSig, signature_, get_length());
-        
-        DSS dss(cert.get_peerKey(), cert.get_peerKeyLength());
-        if (!dss.verify(hashVerify.sha_, SHA_LEN, decodedSig, get_length()))
-            ssl.SetError(verify_error);
-    }
-}
-
-
-HandShakeType CertificateVerify::get_type() const
-{
-    return certificate_verify;
-}
-
-
-// output operator for ClientKeyExchange
-output_buffer& operator<<(output_buffer& output, const ClientKeyExchange& ck)
-{
-    output.write(ck.getKey(), ck.getKeyLength());
-    return output;
-}
-
-
-// Client Key Exchange processing handler
-void ClientKeyExchange::Process(input_buffer& input, SSL& ssl)
-{
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-    createKey(ssl);
-    if (ssl.GetError()) return;
-    client_key_->read(ssl, input);
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    if (ssl.getCrypto().get_certManager().verifyPeer())
-        build_certHashes(ssl, ssl.useHashes().use_certVerify());
-
-    ssl.useStates().useServer() = clientKeyExchangeComplete;
-}
-
-
-ClientKeyExchange::ClientKeyExchange(SSL& ssl)
-{
-    createKey(ssl);
-}
-
-
-ClientKeyExchange::ClientKeyExchange()
-    : client_key_(0)
-{}
-
-
-ClientKeyExchange::~ClientKeyExchange()
-{
-    ysDelete(client_key_);
-}
-
-
-void ClientKeyExchange::build(SSL& ssl) 
-{ 
-    client_key_->build(ssl); 
-    set_length(client_key_->get_length());
-}
-
-const opaque* ClientKeyExchange::getKey() const
-{
-    return client_key_->get_clientKey();
-}
-
-
-int ClientKeyExchange::getKeyLength() const
-{
-    return client_key_->get_length();
-}
-
-
-input_buffer& ClientKeyExchange::set(input_buffer& in)
-{
-    return in;
-}
-
-
-output_buffer& ClientKeyExchange::get(output_buffer& out) const
-{
-    return out << *this;
-}
-
-
-HandShakeType ClientKeyExchange::get_type() const
-{
-    return client_key_exchange;
-}
-
-
-// input operator for Finished
-input_buffer& operator>>(input_buffer& input, Finished&)
-{
-    /*  do in process */
-
-    return input; 
-}
-
-// output operator for Finished
-output_buffer& operator<<(output_buffer& output, const Finished& fin)
-{
-    if (fin.get_length() == FINISHED_SZ) {
-        output.write(fin.hashes_.md5_, MD5_LEN);
-        output.write(fin.hashes_.sha_, SHA_LEN);
-    }
-    else    // TLS_FINISHED_SZ
-        output.write(fin.hashes_.md5_, TLS_FINISHED_SZ);
-
-    return output;
-}
-
-
-// Finished processing handler
-void Finished::Process(input_buffer& input, SSL& ssl)
-{
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-    // verify hashes
-    const  Finished& verify = ssl.getHashes().get_verify();
-    uint finishedSz = ssl.isTLS() ? TLS_FINISHED_SZ : FINISHED_SZ;
-    
-    input.read(hashes_.md5_, finishedSz);
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    if (memcmp(&hashes_, &verify.hashes_, finishedSz)) {
-        ssl.SetError(verify_error);
-        return;
-    }
-
-    // read verify mac
-    opaque verifyMAC[SHA_LEN];
-    uint macSz = finishedSz + HANDSHAKE_HEADER;
-
-    if (ssl.isTLS())
-        TLS_hmac(ssl, verifyMAC, input.get_buffer() + input.get_current()
-                 - macSz, macSz, handshake, true);
-    else
-        hmac(ssl, verifyMAC, input.get_buffer() + input.get_current() - macSz,
-             macSz, handshake, true);
-
-    // read mac and fill
-    opaque mac[SHA_LEN];   // max size
-    int    digestSz = ssl.getCrypto().get_digest().get_digestSize();
-    input.read(mac, digestSz);
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    uint ivExtra = 0;
-    if (ssl.getSecurity().get_parms().cipher_type_ == block)
-        if (ssl.isTLSv1_1())
-            ivExtra = ssl.getCrypto().get_cipher().get_blockSize();
-
-    opaque fill;
-    int    padSz = ssl.getSecurity().get_parms().encrypt_size_ - ivExtra -
-                     HANDSHAKE_HEADER - finishedSz - digestSz;
-    for (int i = 0; i < padSz; i++) 
-        fill = input[AUTO];
-    if (input.get_error()) {
-        ssl.SetError(bad_input);
-        return;
-    }
-
-    // update states
-    ssl.useStates().useHandShake() = handShakeReady;
-    if (ssl.getSecurity().get_parms().entity_ == client_end)
-        ssl.useStates().useClient() = serverFinishedComplete;
-    else
-        ssl.useStates().useServer() = clientFinishedComplete;
-}
-
-
-Finished::Finished()
-{
-    set_length(FINISHED_SZ);
-}
-
-
-uint8* Finished::set_md5()
-{
-    return hashes_.md5_;
-}
-
-
-uint8* Finished::set_sha()
-{
-    return hashes_.sha_;
-}
-
-
-input_buffer& Finished::set(input_buffer& in)
-{
-    return in  >> *this;
-}
-
-
-output_buffer& Finished::get(output_buffer& out) const
-{
-    return out << *this;
-}
-
-
-HandShakeType Finished::get_type() const
-{
-    return finished;
-}
-
-
-void clean(volatile opaque* p, uint sz, RandomPool& ran)
-{
-    uint i(0);
-
-    for (i = 0; i < sz; ++i)
-        p[i] = 0;
-
-    ran.Fill(const_cast(p), sz);
-
-    for (i = 0; i < sz; ++i)
-        p[i] = 0;
-}
-
-
-
-Connection::Connection(ProtocolVersion v, RandomPool& ran)
-    : pre_master_secret_(0), sequence_number_(0), peer_sequence_number_(0),
-      pre_secret_len_(0), send_server_key_(false), master_clean_(false),
-      TLS_(v.major_ >= 3 && v.minor_ >= 1),
-      TLSv1_1_(v.major_ >= 3 && v.minor_ >= 2), compression_(false),
-      version_(v), random_(ran)
-{
-    memset(sessionID_, 0, sizeof(sessionID_));
-}
-
-
-Connection::~Connection() 
-{ 
-    CleanMaster(); CleanPreMaster(); ysArrayDelete(pre_master_secret_);
-}
-
-
-void Connection::AllocPreSecret(uint sz) 
-{ 
-    pre_master_secret_ = NEW_YS opaque[pre_secret_len_ = sz];
-}
-
-
-void Connection::TurnOffTLS()
-{
-    TLS_ = false;
-    version_.minor_ = 0;
-}
-
-
-void Connection::TurnOffTLS1_1()
-{
-    TLSv1_1_ = false;
-    version_.minor_ = 1;
-}
-
-
-// wipeout master secret
-void Connection::CleanMaster()
-{
-    if (!master_clean_) {
-        volatile opaque* p = master_secret_;
-        clean(p, SECRET_LEN, random_);
-        master_clean_ = true;
-    }
-}
-
-
-// wipeout pre master secret
-void Connection::CleanPreMaster()
-{
-    if (pre_master_secret_) {
-        volatile opaque* p = pre_master_secret_;
-        clean(p, pre_secret_len_, random_);
-
-        ysArrayDelete(pre_master_secret_);
-        pre_master_secret_ = 0;
-    }
-}
-
-
-// Create functions for message factory
-Message* CreateCipherSpec() { return NEW_YS ChangeCipherSpec; }
-Message* CreateAlert()      { return NEW_YS Alert; }
-Message* CreateHandShake()  { return NEW_YS HandShakeHeader; }
-Message* CreateData()       { return NEW_YS Data; }
-
-// Create functions for handshake factory
-HandShakeBase* CreateHelloRequest()       { return NEW_YS HelloRequest; }
-HandShakeBase* CreateClientHello()        { return NEW_YS ClientHello; }
-HandShakeBase* CreateServerHello()        { return NEW_YS ServerHello; }
-HandShakeBase* CreateCertificate()        { return NEW_YS Certificate; }
-HandShakeBase* CreateServerKeyExchange()  { return NEW_YS ServerKeyExchange;}
-HandShakeBase* CreateCertificateRequest() { return NEW_YS 
-                                                    CertificateRequest; }
-HandShakeBase* CreateServerHelloDone()    { return NEW_YS ServerHelloDone; }
-HandShakeBase* CreateCertificateVerify()  { return NEW_YS CertificateVerify;}
-HandShakeBase* CreateClientKeyExchange()  { return NEW_YS ClientKeyExchange;}
-HandShakeBase* CreateFinished()           { return NEW_YS Finished; }
-
-// Create functions for server key exchange factory
-ServerKeyBase* CreateRSAServerKEA()       { return NEW_YS RSA_Server; }
-ServerKeyBase* CreateDHServerKEA()        { return NEW_YS DH_Server; }
-ServerKeyBase* CreateFortezzaServerKEA()  { return NEW_YS Fortezza_Server; }
-
-// Create functions for client key exchange factory
-ClientKeyBase* CreateRSAClient()      { return NEW_YS 
-                                                EncryptedPreMasterSecret; }
-ClientKeyBase* CreateDHClient()       { return NEW_YS 
-                                                ClientDiffieHellmanPublic; }
-ClientKeyBase* CreateFortezzaClient() { return NEW_YS FortezzaKeys; }
-
-
-// Constructor calls this to Register compile time callbacks
-void InitMessageFactory(MessageFactory& mf)
-{
-    mf.Reserve(4);
-    mf.Register(alert, CreateAlert);
-    mf.Register(change_cipher_spec, CreateCipherSpec);
-    mf.Register(handshake, CreateHandShake);
-    mf.Register(application_data, CreateData);
-}
-
-
-// Constructor calls this to Register compile time callbacks
-void InitHandShakeFactory(HandShakeFactory& hsf)
-{
-    hsf.Reserve(10);
-    hsf.Register(hello_request, CreateHelloRequest);
-    hsf.Register(client_hello, CreateClientHello);
-    hsf.Register(server_hello, CreateServerHello);
-    hsf.Register(certificate, CreateCertificate);
-    hsf.Register(server_key_exchange, CreateServerKeyExchange);
-    hsf.Register(certificate_request, CreateCertificateRequest);
-    hsf.Register(server_hello_done, CreateServerHelloDone);
-    hsf.Register(certificate_verify, CreateCertificateVerify);
-    hsf.Register(client_key_exchange, CreateClientKeyExchange);
-    hsf.Register(finished, CreateFinished);
-}
-
-
-// Constructor calls this to Register compile time callbacks
-void InitServerKeyFactory(ServerKeyFactory& skf)
-{
-    skf.Reserve(3);
-    skf.Register(rsa_kea, CreateRSAServerKEA);
-    skf.Register(diffie_hellman_kea, CreateDHServerKEA);
-    skf.Register(fortezza_kea, CreateFortezzaServerKEA);
-}
-
-
-// Constructor calls this to Register compile time callbacks
-void InitClientKeyFactory(ClientKeyFactory& ckf)
-{
-    ckf.Reserve(3);
-    ckf.Register(rsa_kea, CreateRSAClient);
-    ckf.Register(diffie_hellman_kea, CreateDHClient);
-    ckf.Register(fortezza_kea, CreateFortezzaClient);
-}
-
-
-} // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/src/yassl_int.cpp b/mysql-wsrep-5.6/extra/yassl/src/yassl_int.cpp
deleted file mode 100644
index cef12364..00000000
--- a/mysql-wsrep-5.6/extra/yassl/src/yassl_int.cpp
+++ /dev/null
@@ -1,2818 +0,0 @@
-/* Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */
-
-/* yaSSL internal source implements SSL supporting types not specified in the
- * draft along with type conversion functions.
- */
-
-// First include (the generated) my_config.h, to get correct platform defines.
-#include "my_config.h"
-#ifdef __WIN__
-#include
-#else
-#include 
-#endif
-
-#include "runtime.hpp"
-#include "yassl_int.hpp"
-#include "handshake.hpp"
-#include "timer.hpp"
-
-#ifdef HAVE_LIBZ
-    #include "zlib.h"
-#endif
-
-
-#ifdef YASSL_PURE_C
-
-    void* operator new(size_t sz, yaSSL::new_t)
-    {
-        void* ptr = malloc(sz ? sz : 1);
-        if (!ptr) abort();
-
-        return ptr;
-    }
-
-
-    void operator delete(void* ptr, yaSSL::new_t)
-    {
-        if (ptr) free(ptr);
-    }
-
-
-    void* operator new[](size_t sz, yaSSL::new_t nt)
-    {
-        return ::operator new(sz, nt);
-    }
-
-
-    void operator delete[](void* ptr, yaSSL::new_t nt)
-    {
-        ::operator delete(ptr, nt);
-    }
-
-    namespace yaSSL {
-
-        new_t ys;   // for yaSSL library new
-
-    }
-
-#endif // YASSL_PURE_C
-
-/* for the definition of get_tty_password() */
-#include 
-
-namespace yaSSL {
-
-
-
-
-
-
-// convert a 32 bit integer into a 24 bit one
-void c32to24(uint32 u32, uint24& u24)
-{
-    u24[0] = (u32 >> 16) & 0xff;
-    u24[1] = (u32 >>  8) & 0xff;
-    u24[2] =  u32 & 0xff;
-}
-
-
-// convert a 24 bit integer into a 32 bit one
-void c24to32(const uint24 u24, uint32& u32)
-{
-    u32 = 0;
-    u32 = (u24[0] << 16) | (u24[1] << 8) | u24[2];
-}
-
-
-// convert with return for ease of use
-uint32 c24to32(const uint24 u24)
-{
-    uint32 ret;
-    c24to32(u24, ret);
-
-    return ret;
-}
-
-
-// using a for opaque since underlying type is unsgined char and o is not a
-// good leading identifier
-
-// convert opaque to 16 bit integer
-void ato16(const opaque* c, uint16& u16)
-{
-    u16 = 0;
-    u16 = (c[0] << 8) | (c[1]);
-}
-
-
-// convert (copy) opaque to 24 bit integer
-void ato24(const opaque* c, uint24& u24)
-{
-    u24[0] = c[0];
-    u24[1] = c[1];
-    u24[2] = c[2];
-}
-
-
-// convert 16 bit integer to opaque
-void c16toa(uint16 u16, opaque* c)
-{
-    c[0] = (u16 >> 8) & 0xff;
-    c[1] =  u16 & 0xff;
-}
-
-
-// convert 24 bit integer to opaque
-void c24toa(const uint24 u24, opaque* c)
-{
-    c[0] =  u24[0]; 
-    c[1] =  u24[1];
-    c[2] =  u24[2];
-}
-
-
-// convert 32 bit integer to opaque
-void c32toa(uint32 u32, opaque* c)
-{
-    c[0] = (u32 >> 24) & 0xff;
-    c[1] = (u32 >> 16) & 0xff;
-    c[2] = (u32 >>  8) & 0xff;
-    c[3] =  u32 & 0xff;
-}
-
-
-States::States() : recordLayer_(recordReady), handshakeLayer_(preHandshake),
-           clientState_(serverNull),  serverState_(clientNull),
-           connectState_(CONNECT_BEGIN), acceptState_(ACCEPT_BEGIN),
-           what_(no_error) {}
-
-const RecordLayerState& States::getRecord() const 
-{
-    return recordLayer_;
-}
-
-
-const HandShakeState& States::getHandShake() const
-{
-    return handshakeLayer_;
-}
-
-
-const ClientState& States::getClient() const
-{
-    return clientState_;
-}
-
-
-const ServerState& States::getServer() const
-{
-    return serverState_;
-}
-
-
-const ConnectState& States::GetConnect() const
-{
-    return connectState_;
-}
-
-
-const AcceptState& States::GetAccept() const
-{
-    return acceptState_;
-}
-
-
-const char* States::getString() const
-{
-    return errorString_;
-}
-
-
-YasslError States::What() const
-{
-    return what_;
-}
-
-
-RecordLayerState& States::useRecord()
-{
-    return recordLayer_;
-}
-
-
-HandShakeState& States::useHandShake()
-{
-    return handshakeLayer_;
-}
-
-
-ClientState& States::useClient()
-{
-    return clientState_;
-}
-
-
-ServerState& States::useServer()
-{
-    return serverState_;
-}
-
-
-ConnectState& States::UseConnect()
-{
-    return connectState_;
-}
-
-
-AcceptState& States::UseAccept()
-{
-    return acceptState_;
-}
-
-
-char* States::useString()
-{
-    return errorString_;
-}
-
-
-void States::SetError(YasslError ye)
-{
-    what_ = ye;
-}
-
-
-// mark message recvd, check for duplicates, return 0 on success
-int States::SetMessageRecvd(HandShakeType hst)
-{
-    switch (hst) {
-        case hello_request:
-            break;  // could send more than one
-
-        case client_hello:
-            if (recvdMessages_.gotClientHello_)
-                return -1;
-            recvdMessages_.gotClientHello_ = 1;
-            break;
-
-        case server_hello:
-            if (recvdMessages_.gotServerHello_)
-                return -1;
-            recvdMessages_.gotServerHello_ = 1;
-            break;
-
-        case certificate:
-            if (recvdMessages_.gotCert_)
-                return -1;
-            recvdMessages_.gotCert_ = 1;
-            break;
-
-        case server_key_exchange:
-            if (recvdMessages_.gotServerKeyExchange_)
-                return -1;
-            recvdMessages_.gotServerKeyExchange_ = 1;
-            break;
-
-        case certificate_request:
-            if (recvdMessages_.gotCertRequest_)
-                return -1;
-            recvdMessages_.gotCertRequest_ = 1;
-            break;
-
-        case server_hello_done:
-            if (recvdMessages_.gotServerHelloDone_)
-                return -1;
-            recvdMessages_.gotServerHelloDone_ = 1;
-            break;
-
-        case certificate_verify:
-            if (recvdMessages_.gotCertVerify_)
-                return -1;
-            recvdMessages_.gotCertVerify_ = 1;
-            break;
-
-        case client_key_exchange:
-            if (recvdMessages_.gotClientKeyExchange_)
-                return -1;
-            recvdMessages_.gotClientKeyExchange_ = 1;
-            break;
-
-        case finished:
-            if (recvdMessages_.gotFinished_)
-                return -1;
-            recvdMessages_.gotFinished_ = 1;
-            break;
-
-
-        default:
-            return -1;
-
-    }
-
-    return 0;
-}
-
-
-sslFactory::sslFactory() :           
-        messageFactory_(InitMessageFactory),
-        handShakeFactory_(InitHandShakeFactory),
-        serverKeyFactory_(InitServerKeyFactory),
-        clientKeyFactory_(InitClientKeyFactory) 
-{}
-
-
-const MessageFactory& sslFactory::getMessage() const
-{
-    return messageFactory_;
-}
-
-
-const HandShakeFactory& sslFactory::getHandShake() const
-{
-    return handShakeFactory_;
-}
-
-
-const ServerKeyFactory& sslFactory::getServerKey() const
-{
-    return serverKeyFactory_;
-}
-
-
-const ClientKeyFactory& sslFactory::getClientKey() const
-{
-    return clientKeyFactory_;
-}
-
-
-// extract context parameters and store
-SSL::SSL(SSL_CTX* ctx) 
-    : secure_(ctx->getMethod()->getVersion(), crypto_.use_random(),
-              ctx->getMethod()->getSide(), ctx->GetCiphers(), ctx,
-              ctx->GetDH_Parms().set_), quietShutdown_(false), has_data_(false)
-{
-    if (int err = crypto_.get_random().GetError()) {
-        SetError(YasslError(err));
-        return;
-    }
-
-    CertManager& cm = crypto_.use_certManager();
-    cm.CopySelfCert(ctx->getCert());
-
-    bool serverSide = secure_.use_parms().entity_ == server_end;
-
-    if (ctx->getKey()) {
-        if (int err = cm.SetPrivateKey(*ctx->getKey())) {
-            SetError(YasslError(err));
-            return;
-        }
-        else if (serverSide && !(ctx->GetCiphers().setSuites_)) {
-            // remove RSA or DSA suites depending on cert key type
-            ProtocolVersion pv = secure_.get_connection().version_;
-            
-            bool removeDH  = secure_.use_parms().removeDH_;
-            bool removeRSA = false;
-            bool removeDSA = false;
-            
-            if (cm.get_keyType() == rsa_sa_algo)
-                removeDSA = true;
-            else
-                removeRSA = true;
-            secure_.use_parms().SetSuites(pv, removeDH, removeRSA, removeDSA);
-        }
-    }
-    else if (serverSide) {
-        SetError(no_key_file);
-        return;
-    }
-
-    if (ctx->getMethod()->verifyPeer())
-        cm.setVerifyPeer();
-    if (ctx->getMethod()->verifyNone())
-        cm.setVerifyNone();
-    if (ctx->getMethod()->failNoCert())
-        cm.setFailNoCert();
-    cm.setVerifyCallback(ctx->getVerifyCallback());
-
-    if (serverSide)
-        crypto_.SetDH(ctx->GetDH_Parms());
-
-    const SSL_CTX::CertList& ca = ctx->GetCA_List();
-    SSL_CTX::CertList::const_iterator first(ca.begin());
-    SSL_CTX::CertList::const_iterator last(ca.end());
-
-    while (first != last) {
-        if (int err = cm.CopyCaCert(*first)) {
-            SetError(YasslError(err));
-            return;
-        }
-        ++first;
-    }
-}
-
-
-// store pending security parameters from Server Hello
-void SSL::set_pending(Cipher suite)
-{
-    Parameters& parms = secure_.use_parms();
-
-    switch (suite) {
-
-    case TLS_RSA_WITH_AES_256_CBC_SHA:
-        parms.bulk_cipher_algorithm_ = aes;
-        parms.mac_algorithm_         = sha;
-        parms.kea_                   = rsa_kea;
-        parms.hash_size_ = SHA_LEN;
-        parms.key_size_  = AES_256_KEY_SZ;
-        parms.iv_size_   = AES_BLOCK_SZ;
-        parms.cipher_type_ = block;
-        crypto_.setDigest(NEW_YS SHA);
-        crypto_.setCipher(NEW_YS AES(AES_256_KEY_SZ));
-        strncpy(parms.cipher_name_, cipher_names[TLS_RSA_WITH_AES_256_CBC_SHA],
-                MAX_SUITE_NAME);
-        break;
-
-    case TLS_RSA_WITH_AES_128_CBC_SHA:
-        parms.bulk_cipher_algorithm_ = aes;
-        parms.mac_algorithm_         = sha;
-        parms.kea_                   = rsa_kea;
-        parms.hash_size_ = SHA_LEN;
-        parms.key_size_  = AES_128_KEY_SZ;
-        parms.iv_size_   = AES_BLOCK_SZ;
-        parms.cipher_type_ = block;
-        crypto_.setDigest(NEW_YS SHA);
-        crypto_.setCipher(NEW_YS AES);
-        strncpy(parms.cipher_name_, cipher_names[TLS_RSA_WITH_AES_128_CBC_SHA],
-                MAX_SUITE_NAME);
-        break;
-
-    case SSL_RSA_WITH_3DES_EDE_CBC_SHA:
-        parms.bulk_cipher_algorithm_ = triple_des;
-        parms.mac_algorithm_         = sha;
-        parms.kea_                   = rsa_kea;
-        parms.hash_size_ = SHA_LEN;
-        parms.key_size_  = DES_EDE_KEY_SZ;
-        parms.iv_size_   = DES_IV_SZ;
-        parms.cipher_type_ = block;
-        crypto_.setDigest(NEW_YS SHA);
-        crypto_.setCipher(NEW_YS DES_EDE);
-        strncpy(parms.cipher_name_, cipher_names[SSL_RSA_WITH_3DES_EDE_CBC_SHA]
-                , MAX_SUITE_NAME);
-        break;
-
-    case SSL_RSA_WITH_DES_CBC_SHA:
-        parms.bulk_cipher_algorithm_ = des;
-        parms.mac_algorithm_         = sha;
-        parms.kea_                   = rsa_kea;
-        parms.hash_size_ = SHA_LEN;
-        parms.key_size_  = DES_KEY_SZ;
-        parms.iv_size_   = DES_IV_SZ;
-        parms.cipher_type_ = block;
-        crypto_.setDigest(NEW_YS SHA);
-        crypto_.setCipher(NEW_YS DES);
-        strncpy(parms.cipher_name_, cipher_names[SSL_RSA_WITH_DES_CBC_SHA],
-                MAX_SUITE_NAME);
-        break;
-
-    case SSL_RSA_WITH_RC4_128_SHA:
-        parms.bulk_cipher_algorithm_ = rc4;
-        parms.mac_algorithm_         = sha;
-        parms.kea_                   = rsa_kea;
-        parms.hash_size_ = SHA_LEN;
-        parms.key_size_  = RC4_KEY_SZ;
-        parms.iv_size_   = 0;
-        parms.cipher_type_ = stream;
-        crypto_.setDigest(NEW_YS SHA);
-        crypto_.setCipher(NEW_YS RC4);
-        strncpy(parms.cipher_name_, cipher_names[SSL_RSA_WITH_RC4_128_SHA],
-                MAX_SUITE_NAME);
-        break;
-
-    case SSL_RSA_WITH_RC4_128_MD5:
-        parms.bulk_cipher_algorithm_ = rc4;
-        parms.mac_algorithm_         = md5;
-        parms.kea_                   = rsa_kea;
-        parms.hash_size_ = MD5_LEN;
-        parms.key_size_  = RC4_KEY_SZ;
-        parms.iv_size_   = 0;
-        parms.cipher_type_ = stream;
-        crypto_.setDigest(NEW_YS MD5);
-        crypto_.setCipher(NEW_YS RC4);
-        strncpy(parms.cipher_name_, cipher_names[SSL_RSA_WITH_RC4_128_MD5],
-                MAX_SUITE_NAME);
-        break;
-
-    case SSL_DHE_RSA_WITH_DES_CBC_SHA:
-        parms.bulk_cipher_algorithm_ = des;
-        parms.mac_algorithm_         = sha;
-        parms.kea_                   = diffie_hellman_kea;
-        parms.sig_algo_              = rsa_sa_algo;
-        parms.hash_size_ = SHA_LEN;
-        parms.key_size_  = DES_KEY_SZ;
-        parms.iv_size_   = DES_IV_SZ;
-        parms.cipher_type_ = block;
-        secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(NEW_YS SHA);
-        crypto_.setCipher(NEW_YS DES);
-        strncpy(parms.cipher_name_, cipher_names[SSL_DHE_RSA_WITH_DES_CBC_SHA],
-                MAX_SUITE_NAME);
-        break;
-
-    case SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA:
-        parms.bulk_cipher_algorithm_ = triple_des;
-        parms.mac_algorithm_         = sha;
-        parms.kea_                   = diffie_hellman_kea;
-        parms.sig_algo_              = rsa_sa_algo;
-        parms.hash_size_ = SHA_LEN;
-        parms.key_size_  = DES_EDE_KEY_SZ;
-        parms.iv_size_   = DES_IV_SZ;
-        parms.cipher_type_ = block;
-        secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(NEW_YS SHA);
-        crypto_.setCipher(NEW_YS DES_EDE);
-        strncpy(parms.cipher_name_,
-              cipher_names[SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA], MAX_SUITE_NAME);
-        break;
-
-    case TLS_DHE_RSA_WITH_AES_256_CBC_SHA:
-        parms.bulk_cipher_algorithm_ = aes;
-        parms.mac_algorithm_         = sha;
-        parms.kea_                   = diffie_hellman_kea;
-        parms.sig_algo_              = rsa_sa_algo;
-        parms.hash_size_ = SHA_LEN;
-        parms.key_size_  = AES_256_KEY_SZ;
-        parms.iv_size_   = AES_BLOCK_SZ;
-        parms.cipher_type_ = block;
-        secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(NEW_YS SHA);
-        crypto_.setCipher(NEW_YS AES(AES_256_KEY_SZ));
-        strncpy(parms.cipher_name_,
-               cipher_names[TLS_DHE_RSA_WITH_AES_256_CBC_SHA], MAX_SUITE_NAME);
-        break;
-
-    case TLS_DHE_RSA_WITH_AES_128_CBC_SHA:
-        parms.bulk_cipher_algorithm_ = aes;
-        parms.mac_algorithm_         = sha;
-        parms.kea_                   = diffie_hellman_kea;
-        parms.sig_algo_              = rsa_sa_algo;
-        parms.hash_size_ = SHA_LEN;
-        parms.key_size_  = AES_128_KEY_SZ;
-        parms.iv_size_   = AES_BLOCK_SZ;
-        parms.cipher_type_ = block;
-        secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(NEW_YS SHA);
-        crypto_.setCipher(NEW_YS AES);
-        strncpy(parms.cipher_name_,
-               cipher_names[TLS_DHE_RSA_WITH_AES_128_CBC_SHA], MAX_SUITE_NAME);
-        break;
-
-    case SSL_DHE_DSS_WITH_DES_CBC_SHA:
-        parms.bulk_cipher_algorithm_ = des;
-        parms.mac_algorithm_         = sha;
-        parms.kea_                   = diffie_hellman_kea;
-        parms.sig_algo_              = dsa_sa_algo;
-        parms.hash_size_ = SHA_LEN;
-        parms.key_size_  = DES_KEY_SZ;
-        parms.iv_size_   = DES_IV_SZ;
-        parms.cipher_type_ = block;
-        secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(NEW_YS SHA);
-        crypto_.setCipher(NEW_YS DES);
-        strncpy(parms.cipher_name_, cipher_names[SSL_DHE_DSS_WITH_DES_CBC_SHA],
-                MAX_SUITE_NAME);
-        break;
-
-    case SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA:
-        parms.bulk_cipher_algorithm_ = triple_des;
-        parms.mac_algorithm_         = sha;
-        parms.kea_                   = diffie_hellman_kea;
-        parms.sig_algo_              = dsa_sa_algo;
-        parms.hash_size_ = SHA_LEN;
-        parms.key_size_  = DES_EDE_KEY_SZ;
-        parms.iv_size_   = DES_IV_SZ;
-        parms.cipher_type_ = block;
-        secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(NEW_YS SHA);
-        crypto_.setCipher(NEW_YS DES_EDE);
-        strncpy(parms.cipher_name_,
-              cipher_names[SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA], MAX_SUITE_NAME);
-        break;
-
-    case TLS_DHE_DSS_WITH_AES_256_CBC_SHA:
-        parms.bulk_cipher_algorithm_ = aes;
-        parms.mac_algorithm_         = sha;
-        parms.kea_                   = diffie_hellman_kea;
-        parms.sig_algo_              = dsa_sa_algo;
-        parms.hash_size_ = SHA_LEN;
-        parms.key_size_  = AES_256_KEY_SZ;
-        parms.iv_size_   = AES_BLOCK_SZ;
-        parms.cipher_type_ = block;
-        secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(NEW_YS SHA);
-        crypto_.setCipher(NEW_YS AES(AES_256_KEY_SZ));
-        strncpy(parms.cipher_name_,
-               cipher_names[TLS_DHE_DSS_WITH_AES_256_CBC_SHA], MAX_SUITE_NAME);
-        break;
-
-    case TLS_DHE_DSS_WITH_AES_128_CBC_SHA:
-        parms.bulk_cipher_algorithm_ = aes;
-        parms.mac_algorithm_         = sha;
-        parms.kea_                   = diffie_hellman_kea;
-        parms.sig_algo_              = dsa_sa_algo;
-        parms.hash_size_ = SHA_LEN;
-        parms.key_size_  = AES_128_KEY_SZ;
-        parms.iv_size_   = AES_BLOCK_SZ;
-        parms.cipher_type_ = block;
-        secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(NEW_YS SHA);
-        crypto_.setCipher(NEW_YS AES);
-        strncpy(parms.cipher_name_,
-               cipher_names[TLS_DHE_DSS_WITH_AES_128_CBC_SHA], MAX_SUITE_NAME);
-        break;
-
-    case TLS_RSA_WITH_AES_256_CBC_RMD160:
-        parms.bulk_cipher_algorithm_ = aes;
-        parms.mac_algorithm_         = rmd;
-        parms.kea_                   = rsa_kea;
-        parms.hash_size_ = RMD_LEN;
-        parms.key_size_  = AES_256_KEY_SZ;
-        parms.iv_size_   = AES_BLOCK_SZ;
-        parms.cipher_type_ = block;
-        crypto_.setDigest(NEW_YS RMD);
-        crypto_.setCipher(NEW_YS AES(AES_256_KEY_SZ));
-        strncpy(parms.cipher_name_,
-                cipher_names[TLS_RSA_WITH_AES_256_CBC_RMD160], MAX_SUITE_NAME);
-        break;
-
-    case TLS_RSA_WITH_AES_128_CBC_RMD160:
-        parms.bulk_cipher_algorithm_ = aes;
-        parms.mac_algorithm_         = rmd;
-        parms.kea_                   = rsa_kea;
-        parms.hash_size_ = RMD_LEN;
-        parms.key_size_  = AES_128_KEY_SZ;
-        parms.iv_size_   = AES_BLOCK_SZ;
-        parms.cipher_type_ = block;
-        crypto_.setDigest(NEW_YS RMD);
-        crypto_.setCipher(NEW_YS AES);
-        strncpy(parms.cipher_name_,
-                cipher_names[TLS_RSA_WITH_AES_128_CBC_RMD160], MAX_SUITE_NAME);
-        break;
-
-    case TLS_RSA_WITH_3DES_EDE_CBC_RMD160:
-        parms.bulk_cipher_algorithm_ = triple_des;
-        parms.mac_algorithm_         = rmd;
-        parms.kea_                   = rsa_kea;
-        parms.hash_size_ = RMD_LEN;
-        parms.key_size_  = DES_EDE_KEY_SZ;
-        parms.iv_size_   = DES_IV_SZ;
-        parms.cipher_type_ = block;
-        crypto_.setDigest(NEW_YS RMD);
-        crypto_.setCipher(NEW_YS DES_EDE);
-        strncpy(parms.cipher_name_,
-               cipher_names[TLS_RSA_WITH_3DES_EDE_CBC_RMD160], MAX_SUITE_NAME);
-        break;
-
-    case TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD160:
-        parms.bulk_cipher_algorithm_ = triple_des;
-        parms.mac_algorithm_         = rmd;
-        parms.kea_                   = diffie_hellman_kea;
-        parms.sig_algo_              = rsa_sa_algo;
-        parms.hash_size_ = RMD_LEN;
-        parms.key_size_  = DES_EDE_KEY_SZ;
-        parms.iv_size_   = DES_IV_SZ;
-        parms.cipher_type_ = block;
-        secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(NEW_YS RMD);
-        crypto_.setCipher(NEW_YS DES_EDE);
-        strncpy(parms.cipher_name_,
-                cipher_names[TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD160],
-                MAX_SUITE_NAME);
-        break;
-
-    case TLS_DHE_RSA_WITH_AES_256_CBC_RMD160:
-        parms.bulk_cipher_algorithm_ = aes;
-        parms.mac_algorithm_         = rmd;
-        parms.kea_                   = diffie_hellman_kea;
-        parms.sig_algo_              = rsa_sa_algo;
-        parms.hash_size_ = RMD_LEN;
-        parms.key_size_  = AES_256_KEY_SZ;
-        parms.iv_size_   = AES_BLOCK_SZ;
-        parms.cipher_type_ = block;
-        secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(NEW_YS RMD);
-        crypto_.setCipher(NEW_YS AES(AES_256_KEY_SZ));
-        strncpy(parms.cipher_name_,
-                cipher_names[TLS_DHE_RSA_WITH_AES_256_CBC_RMD160],
-                MAX_SUITE_NAME);
-        break;
-
-    case TLS_DHE_RSA_WITH_AES_128_CBC_RMD160:
-        parms.bulk_cipher_algorithm_ = aes;
-        parms.mac_algorithm_         = rmd;
-        parms.kea_                   = diffie_hellman_kea;
-        parms.sig_algo_              = rsa_sa_algo;
-        parms.hash_size_ = RMD_LEN;
-        parms.key_size_  = AES_128_KEY_SZ;
-        parms.iv_size_   = AES_BLOCK_SZ;
-        parms.cipher_type_ = block;
-        secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(NEW_YS RMD);
-        crypto_.setCipher(NEW_YS AES);
-        strncpy(parms.cipher_name_,
-                cipher_names[TLS_DHE_RSA_WITH_AES_128_CBC_RMD160],
-                MAX_SUITE_NAME);
-        break;
-
-    case TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD160:
-        parms.bulk_cipher_algorithm_ = triple_des;
-        parms.mac_algorithm_         = rmd;
-        parms.kea_                   = diffie_hellman_kea;
-        parms.sig_algo_              = dsa_sa_algo;
-        parms.hash_size_ = RMD_LEN;
-        parms.key_size_  = DES_EDE_KEY_SZ;
-        parms.iv_size_   = DES_IV_SZ;
-        parms.cipher_type_ = block;
-        secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(NEW_YS RMD);
-        crypto_.setCipher(NEW_YS DES_EDE);
-        strncpy(parms.cipher_name_,
-                cipher_names[TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD160],
-                MAX_SUITE_NAME);
-        break;
-
-    case TLS_DHE_DSS_WITH_AES_256_CBC_RMD160:
-        parms.bulk_cipher_algorithm_ = aes;
-        parms.mac_algorithm_         = rmd;
-        parms.kea_                   = diffie_hellman_kea;
-        parms.sig_algo_              = dsa_sa_algo;
-        parms.hash_size_ = RMD_LEN;
-        parms.key_size_  = AES_256_KEY_SZ;
-        parms.iv_size_   = AES_BLOCK_SZ;
-        parms.cipher_type_ = block;
-        secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(NEW_YS RMD);
-        crypto_.setCipher(NEW_YS AES(AES_256_KEY_SZ));
-        strncpy(parms.cipher_name_,
-                cipher_names[TLS_DHE_DSS_WITH_AES_256_CBC_RMD160],
-                MAX_SUITE_NAME);
-        break;
-
-    case TLS_DHE_DSS_WITH_AES_128_CBC_RMD160:
-        parms.bulk_cipher_algorithm_ = aes;
-        parms.mac_algorithm_         = rmd;
-        parms.kea_                   = diffie_hellman_kea;
-        parms.sig_algo_              = dsa_sa_algo;
-        parms.hash_size_ = RMD_LEN;
-        parms.key_size_  = AES_128_KEY_SZ;
-        parms.iv_size_   = AES_BLOCK_SZ;
-        parms.cipher_type_ = block;
-        secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(NEW_YS RMD);
-        crypto_.setCipher(NEW_YS AES);
-        strncpy(parms.cipher_name_,
-                cipher_names[TLS_DHE_DSS_WITH_AES_128_CBC_RMD160],
-                MAX_SUITE_NAME);
-        break;
-
-    default:
-        SetError(unknown_cipher);
-    }
-}
-
-#ifdef __WIN__
-typedef volatile LONG yassl_pthread_once_t;
-#define YASSL_PTHREAD_ONCE_INIT  0
-#define YASSL_PTHREAD_ONCE_INPROGRESS 1
-#define YASSL_PTHREAD_ONCE_DONE 2
-
-int yassl_pthread_once(yassl_pthread_once_t *once_control,
-    void (*init_routine)(void))
-{
-  LONG state;
-
-  /*
-    Do "dirty" read to find out if initialization is already done, to
-    save an interlocked operation in common case. Memory barriers are ensured by 
-    Visual C++ volatile implementation.
-  */
-  if (*once_control == YASSL_PTHREAD_ONCE_DONE)
-    return 0;
-
-  state= InterlockedCompareExchange(once_control, YASSL_PTHREAD_ONCE_INPROGRESS,
-                                        YASSL_PTHREAD_ONCE_INIT);
-
-  switch(state)
-  {
-  case YASSL_PTHREAD_ONCE_INIT:
-    /* This is initializer thread */
-    (*init_routine)();
-    *once_control= YASSL_PTHREAD_ONCE_DONE;
-    break;
-
-  case YASSL_PTHREAD_ONCE_INPROGRESS:
-    /* init_routine in progress. Wait for its completion */
-    while(*once_control == YASSL_PTHREAD_ONCE_INPROGRESS)
-    {
-      Sleep(1);
-    }
-    break;
-  case YASSL_PTHREAD_ONCE_DONE:
-    /* Nothing to do */
-    break;
-  }
-  return 0;
-}
-#else
-#define yassl_pthread_once_t pthread_once_t
-#if defined(PTHREAD_ONCE_INITIALIZER)
-#define YASSL_PTHREAD_ONCE_INIT PTHREAD_ONCE_INITIALIZER
-#else
-#define YASSL_PTHREAD_ONCE_INIT PTHREAD_ONCE_INIT
-#endif
-#define yassl_pthread_once(C,F) pthread_once(C,F)
-#endif // __WIN__
-
-// store peer's random
-void SSL::set_random(const opaque* random, ConnectionEnd sender)
-{
-    if (sender == client_end)
-        memcpy(secure_.use_connection().client_random_, random, RAN_LEN);
-    else
-        memcpy(secure_.use_connection().server_random_, random, RAN_LEN);
-}
-
-
-// store client pre master secret
-void SSL::set_preMaster(const opaque* pre, uint sz)
-{
-    uint i(0);  // trim leading zeros
-    uint fullSz(sz);
-
-    while (i++ < fullSz && *pre == 0) {
-        sz--;
-        pre++;
-    }
-
-    if (sz == 0) {
-        SetError(bad_input);
-        return;
-    }
-
-    secure_.use_connection().AllocPreSecret(sz);
-    memcpy(secure_.use_connection().pre_master_secret_, pre, sz);
-}
-
-
-// set yaSSL zlib type compression
-int SSL::SetCompression()
-{
-#ifdef HAVE_LIBZ
-    secure_.use_connection().compression_ = true;
-    return 0;
-#else
-    return -1;  // not built in
-#endif
-}
-
-
-// unset yaSSL zlib type compression
-void SSL::UnSetCompression()
-{
-    secure_.use_connection().compression_ = false;
-}
-
-
-// is yaSSL zlib compression on
-bool SSL::CompressionOn() const
-{
-    return secure_.get_connection().compression_;
-}
-
-
-// store master secret
-void SSL::set_masterSecret(const opaque* sec)
-{
-    memcpy(secure_.use_connection().master_secret_, sec, SECRET_LEN);
-}
-
-// store server issued id
-void SSL::set_sessionID(const opaque* sessionID)
-{
-    memcpy(secure_.use_connection().sessionID_, sessionID, ID_LEN);
-    secure_.use_connection().sessionID_Set_ = true;
-}
-
-
-// store error 
-void SSL::SetError(YasslError ye)
-{
-    states_.SetError(ye);
-    //strncpy(states_.useString(), e.what(), mySTL::named_exception::NAME_SIZE);
-    // TODO: add string here
-}
-
-
-// set the quiet shutdown mode (close_nofiy not sent or received on shutdown)
-void SSL::SetQuietShutdown(bool mode)
-{
-  quietShutdown_ = mode;
-}
-
-
-Buffers& SSL::useBuffers()
-{
-    return buffers_;
-}
-
-
-// locals
-namespace {
-
-// DeriveKeys and MasterSecret helper sets prefix letters
-static bool setPrefix(opaque* sha_input, int i)
-{
-    switch (i) {
-    case 0:
-        memcpy(sha_input, "A", 1);
-        break;
-    case 1:
-        memcpy(sha_input, "BB", 2);
-        break;
-    case 2:
-        memcpy(sha_input, "CCC", 3);
-        break;
-    case 3:
-        memcpy(sha_input, "DDDD", 4);
-        break;
-    case 4:
-        memcpy(sha_input, "EEEEE", 5);
-        break;
-    case 5:
-        memcpy(sha_input, "FFFFFF", 6);
-        break;
-    case 6:
-        memcpy(sha_input, "GGGGGGG", 7);
-        break;
-    default:
-        return false;  // prefix_error
-    }
-    return true;
-}
-
-
-const char handshake_order[] = "Out of order HandShake Message!";
-
-
-} // namespcae for locals
-
-
-void SSL::order_error()
-{
-    SetError(out_of_order);
-}
-
-
-// Create and store the master secret see page 32, 6.1
-void SSL::makeMasterSecret()
-{
-    if (GetError()) return;
-
-    if (isTLS())
-        makeTLSMasterSecret();
-    else {
-        opaque sha_output[SHA_LEN];
-
-        const uint& preSz = secure_.get_connection().pre_secret_len_;
-        output_buffer md5_input(preSz + SHA_LEN);
-        output_buffer sha_input(PREFIX + preSz + 2 * RAN_LEN);
-
-        MD5 md5;
-        SHA sha;
-
-        md5_input.write(secure_.get_connection().pre_master_secret_, preSz);
-
-        for (int i = 0; i < MASTER_ROUNDS; ++i) {
-            opaque prefix[PREFIX];
-            if (!setPrefix(prefix, i)) {
-                SetError(prefix_error);
-                return;
-            }
-
-            sha_input.set_current(0);
-            sha_input.write(prefix, i + 1);
-
-            sha_input.write(secure_.get_connection().pre_master_secret_,preSz);
-            sha_input.write(secure_.get_connection().client_random_, RAN_LEN);
-            sha_input.write(secure_.get_connection().server_random_, RAN_LEN);
-            sha.get_digest(sha_output, sha_input.get_buffer(),
-                           sha_input.get_size());
-
-            md5_input.set_current(preSz);
-            md5_input.write(sha_output, SHA_LEN);
-            md5.get_digest(&secure_.use_connection().master_secret_[i*MD5_LEN],
-                           md5_input.get_buffer(), md5_input.get_size());
-        }
-        deriveKeys();
-    }
-    secure_.use_connection().CleanPreMaster();
-}
-
-
-// create TLSv1 master secret
-void SSL::makeTLSMasterSecret()
-{
-    opaque seed[SEED_LEN];
-    
-    memcpy(seed, secure_.get_connection().client_random_, RAN_LEN);
-    memcpy(&seed[RAN_LEN], secure_.get_connection().server_random_, RAN_LEN);
-
-    PRF(secure_.use_connection().master_secret_, SECRET_LEN,
-        secure_.get_connection().pre_master_secret_,
-        secure_.get_connection().pre_secret_len_,
-        master_label, MASTER_LABEL_SZ, 
-        seed, SEED_LEN);
-
-    deriveTLSKeys();
-}
-
-
-// derive mac, write, and iv keys for server and client, see page 34, 6.2.2
-void SSL::deriveKeys()
-{
-    int length = 2 * secure_.get_parms().hash_size_ + 
-                 2 * secure_.get_parms().key_size_  +
-                 2 * secure_.get_parms().iv_size_;
-    int rounds = (length + MD5_LEN - 1 ) / MD5_LEN;
-    input_buffer key_data(rounds * MD5_LEN);
-
-    opaque sha_output[SHA_LEN];
-    opaque md5_input[SECRET_LEN + SHA_LEN];
-    opaque sha_input[KEY_PREFIX + SECRET_LEN + 2 * RAN_LEN];
-  
-    MD5 md5;
-    SHA sha;
-
-    memcpy(md5_input, secure_.get_connection().master_secret_, SECRET_LEN);
-
-    for (int i = 0; i < rounds; ++i) {
-        int j = i + 1;
-        if (!setPrefix(sha_input, i)) {
-            SetError(prefix_error);
-            return;
-        }
-
-        memcpy(&sha_input[j], secure_.get_connection().master_secret_,
-               SECRET_LEN);
-        memcpy(&sha_input[j+SECRET_LEN],
-               secure_.get_connection().server_random_, RAN_LEN);
-        memcpy(&sha_input[j + SECRET_LEN + RAN_LEN],
-               secure_.get_connection().client_random_, RAN_LEN);
-        sha.get_digest(sha_output, sha_input,
-                       sizeof(sha_input) - KEY_PREFIX + j);
-
-        memcpy(&md5_input[SECRET_LEN], sha_output, SHA_LEN);
-        md5.get_digest(key_data.get_buffer() + i * MD5_LEN,
-                       md5_input, sizeof(md5_input));
-    }
-    storeKeys(key_data.get_buffer());
-}
-
-
-// derive mac, write, and iv keys for server and client
-void SSL::deriveTLSKeys()
-{
-    int length = 2 * secure_.get_parms().hash_size_ + 
-                 2 * secure_.get_parms().key_size_  +
-                 2 * secure_.get_parms().iv_size_;
-    opaque       seed[SEED_LEN];
-    input_buffer key_data(length);
-
-    memcpy(seed, secure_.get_connection().server_random_, RAN_LEN);
-    memcpy(&seed[RAN_LEN], secure_.get_connection().client_random_, RAN_LEN);
-
-    PRF(key_data.get_buffer(), length, secure_.get_connection().master_secret_,
-        SECRET_LEN, key_label, KEY_LABEL_SZ, seed, SEED_LEN);
-
-    storeKeys(key_data.get_buffer());
-}
-
-
-// store mac, write, and iv keys for client and server
-void SSL::storeKeys(const opaque* key_data)
-{
-    int sz = secure_.get_parms().hash_size_;
-    memcpy(secure_.use_connection().client_write_MAC_secret_, key_data, sz);
-    int i = sz;
-    memcpy(secure_.use_connection().server_write_MAC_secret_,&key_data[i], sz);
-    i += sz;
-
-    sz = secure_.get_parms().key_size_;
-    memcpy(secure_.use_connection().client_write_key_, &key_data[i], sz);
-    i += sz;
-    memcpy(secure_.use_connection().server_write_key_, &key_data[i], sz);
-    i += sz;
-
-    sz = secure_.get_parms().iv_size_;
-    memcpy(secure_.use_connection().client_write_IV_, &key_data[i], sz);
-    i += sz;
-    memcpy(secure_.use_connection().server_write_IV_, &key_data[i], sz);
-
-    setKeys();
-}
-
-
-// set encrypt/decrypt keys and ivs
-void SSL::setKeys()
-{
-    Connection& conn = secure_.use_connection();
-
-    if (secure_.get_parms().entity_ == client_end) {
-        crypto_.use_cipher().set_encryptKey(conn.client_write_key_, 
-                                            conn.client_write_IV_);
-        crypto_.use_cipher().set_decryptKey(conn.server_write_key_,
-                                            conn.server_write_IV_);
-    }
-    else {
-        crypto_.use_cipher().set_encryptKey(conn.server_write_key_,
-                                            conn.server_write_IV_);
-        crypto_.use_cipher().set_decryptKey(conn.client_write_key_,
-                                            conn.client_write_IV_);
-    }
-}
-
-
-
-// local functors
-namespace yassl_int_cpp_local1 {  // for explicit templates
-
-struct SumData {
-    uint total_;
-    SumData() : total_(0) {}
-    void operator()(input_buffer* data) { total_ += data->get_remaining(); }
-};
-
-
-struct SumBuffer {
-    uint total_;
-    SumBuffer() : total_(0) {}
-    void operator()(output_buffer* buffer) { total_ += buffer->get_size(); }
-};
-
-} // namespace for locals
-using namespace yassl_int_cpp_local1;
-
-
-uint SSL::bufferedData()
-{
-    return STL::for_each(buffers_.getData().begin(),buffers_.getData().end(),
-                           SumData()).total_;
-}
-
-
-// use input buffer to fill data
-void SSL::fillData(Data& data)
-{
-    if (GetError()) return;
-    uint dataSz   = data.get_length();        // input, data size to fill
-    size_t elements = buffers_.getData().size();
-
-    data.set_length(0);                         // output, actual data filled
-    dataSz = min(dataSz, bufferedData());
-
-    for (size_t i = 0; i < elements; i++) {
-        input_buffer* front = buffers_.getData().front();
-        uint frontSz = front->get_remaining();
-        uint readSz  = min(dataSz - data.get_length(), frontSz);
-
-        front->read(data.set_buffer() + data.get_length(), readSz);
-        data.set_length(data.get_length() + readSz);
-
-        if (readSz == frontSz) {
-            buffers_.useData().pop_front();
-            ysDelete(front);
-        }
-        if (data.get_length() == dataSz)
-            break;
-    }
-    
-    if (buffers_.getData().size() == 0) has_data_ = false;  // none left
-}
-
-
-// like Fill but keep data in buffer
-void SSL::PeekData(Data& data)
-{
-    if (GetError()) return;
-    uint   dataSz   = data.get_length();        // input, data size to fill
-    size_t elements = buffers_.getData().size();
-
-    data.set_length(0);                         // output, actual data filled
-    dataSz = min(dataSz, bufferedData());
-
-    Buffers::inputList::iterator front = buffers_.useData().begin();
-
-    while (elements) {
-        uint frontSz = (*front)->get_remaining();
-        uint readSz  = min(dataSz - data.get_length(), frontSz);
-        uint before  = (*front)->get_current();
-
-        (*front)->read(data.set_buffer() + data.get_length(), readSz);
-        data.set_length(data.get_length() + readSz);
-        (*front)->set_current(before);
-
-        if (data.get_length() == dataSz)
-            break;
-
-        elements--;
-        front++;
-    }
-}
-
-
-// flush output buffer
-void SSL::flushBuffer()
-{
-    if (GetError()) return;
-
-    uint sz = STL::for_each(buffers_.getHandShake().begin(),
-                            buffers_.getHandShake().end(),
-                            SumBuffer()).total_;
-    output_buffer out(sz);
-    size_t elements = buffers_.getHandShake().size();
-
-    for (size_t i = 0; i < elements; i++) {
-        output_buffer* front = buffers_.getHandShake().front();
-        out.write(front->get_buffer(), front->get_size());
-
-        buffers_.useHandShake().pop_front();
-        ysDelete(front);
-    }
-    Send(out.get_buffer(), out.get_size());
-}
-
-
-void SSL::Send(const byte* buffer, uint sz)
-{
-    unsigned int sent = 0;
-
-    if (socket_.send(buffer, sz, sent) != sz) {
-        if (socket_.WouldBlock()) {
-            buffers_.SetOutput(NEW_YS output_buffer(sz - sent, buffer + sent,
-                                                    sz - sent));
-            SetError(YasslError(SSL_ERROR_WANT_WRITE));
-        }
-        else
-            SetError(send_error);
-    }
-}
-
-
-void SSL::SendWriteBuffered()
-{
-    output_buffer* out = buffers_.TakeOutput();
-
-    if (out) {
-        mySTL::auto_ptr tmp(out);
-        Send(out->get_buffer(), out->get_size());
-    }
-}
-
-
-// get sequence number, if verify get peer's
-uint SSL::get_SEQIncrement(bool verify) 
-{ 
-    if (verify)
-        return secure_.use_connection().peer_sequence_number_++; 
-    else
-        return secure_.use_connection().sequence_number_++; 
-}
-
-
-const byte* SSL::get_macSecret(bool verify)
-{
-    if ( (secure_.get_parms().entity_ == client_end && !verify) ||
-         (secure_.get_parms().entity_ == server_end &&  verify) )
-        return secure_.get_connection().client_write_MAC_secret_;
-    else
-        return secure_.get_connection().server_write_MAC_secret_;
-}
-
-
-void SSL::verifyState(const RecordLayerHeader& rlHeader)
-{
-    if (GetError()) return;
-
-    if (rlHeader.version_.major_ != 3 || rlHeader.version_.minor_ > 2) {
-        SetError(badVersion_error);
-        return;
-    }
-
-    if (states_.getRecord() == recordNotReady || 
-            (rlHeader.type_ == application_data &&        // data and handshake
-             states_.getHandShake() != handShakeReady) )  // isn't complete yet
-              SetError(record_layer);
-}
-
-
-void SSL::verifyState(const HandShakeHeader& hsHeader)
-{
-    if (GetError()) return;
-
-    if (states_.getHandShake() == handShakeNotReady) {
-        SetError(handshake_layer);
-        return;
-    }
-
-    if (states_.SetMessageRecvd(hsHeader.get_handshakeType()) != 0) {
-        order_error();
-        return;
-    }
-
-    if (secure_.get_parms().entity_ == client_end)
-        verifyClientState(hsHeader.get_handshakeType());
-    else
-        verifyServerState(hsHeader.get_handshakeType());
-}
-
-
-void SSL::verifyState(ClientState cs)
-{
-    if (GetError()) return;
-    if (states_.getClient() != cs) order_error();
-}
-
-
-void SSL::verifyState(ServerState ss)
-{
-    if (GetError()) return;
-    if (states_.getServer() != ss) order_error();
-}
-
-
-void SSL::verfiyHandShakeComplete()
-{
-    if (GetError()) return;
-    if (states_.getHandShake() != handShakeReady) order_error();
-}
-
-
-void SSL::verifyClientState(HandShakeType hsType)
-{
-    if (GetError()) return;
-
-    switch(hsType) {
-    case server_hello :
-        if (states_.getClient() != serverNull)
-            order_error();
-        break;
-    case certificate :
-        if (states_.getClient() != serverHelloComplete)
-            order_error();
-        break;
-    case server_key_exchange :
-        if (states_.getClient() != serverCertComplete)
-            order_error();
-        break;
-    case certificate_request :
-        if (states_.getClient() != serverCertComplete &&
-            states_.getClient() != serverKeyExchangeComplete)
-            order_error();
-        break;
-    case server_hello_done :
-        if (states_.getClient() != serverCertComplete &&
-            states_.getClient() != serverKeyExchangeComplete)
-            order_error();
-        break;
-    case finished :
-        if (states_.getClient() != serverHelloDoneComplete || 
-            secure_.get_parms().pending_)    // no change
-                order_error();          // cipher yet
-        break;
-    default :
-        order_error();
-    };
-}
-
-
-void SSL::verifyServerState(HandShakeType hsType)
-{
-    if (GetError()) return;
-
-    switch(hsType) {
-    case client_hello :
-        if (states_.getServer() != clientNull)
-            order_error();
-        break;
-    case certificate :
-        if (states_.getServer() != clientHelloComplete)
-            order_error();
-        break;
-    case client_key_exchange :
-        if (states_.getServer() != clientHelloComplete)
-            order_error();
-        break;
-    case certificate_verify :
-        if (states_.getServer() != clientKeyExchangeComplete)
-            order_error();
-        break;
-    case finished :
-        if (states_.getServer() != clientKeyExchangeComplete || 
-            secure_.get_parms().pending_)    // no change
-                order_error();               // cipher yet
-        break;
-    default :
-        order_error();
-    };
-}
-
-
-// try to find a suite match
-void SSL::matchSuite(const opaque* peer, uint length)
-{
-    if (length == 0 || (length % 2) != 0) {
-        SetError(bad_input);
-        return;
-    }
-
-    // start with best, if a match we are good, Ciphers are at odd index
-    // since all SSL and TLS ciphers have 0x00 first byte
-    for (uint i = 1; i < secure_.get_parms().suites_size_; i += 2)
-        for (uint j = 0; (j + 1) < length; j+= 2) {
-            if (peer[j] != 0x00) {
-                continue; // only 0x00 first byte supported
-            }
-
-            if (secure_.use_parms().suites_[i] == peer[j + 1]) {
-                secure_.use_parms().suite_[0] = 0x00;
-                secure_.use_parms().suite_[1] = peer[j + 1];
-                return;
-            }
-        }
-
-    SetError(match_error);
-}
-
-
-void SSL::set_session(SSL_SESSION* s) 
-{
-    if (getSecurity().GetContext()->GetSessionCacheOff())
-        return;
-
-    if (s && GetSessions().lookup(s->GetID(), &secure_.use_resume())) {
-        secure_.set_resuming(true);
-        crypto_.use_certManager().setPeerX509(s->GetPeerX509());
-    }
-}
-
-
-const Crypto& SSL::getCrypto() const
-{
-    return crypto_;
-}
-
-
-const Security& SSL::getSecurity() const
-{
-    return secure_;
-}
-
-
-const States& SSL::getStates() const
-{
-    return states_;
-}
-
-
-const sslHashes& SSL::getHashes() const
-{
-    return hashes_;
-}
-
-
-const sslFactory& SSL::getFactory() const
-{
-    return GetSSL_Factory();
-}
-
-
-const Socket& SSL::getSocket() const
-{
-    return socket_;
-}
-
-
-YasslError SSL::GetError() const
-{
-    return states_.What();
-}
-
-
-bool SSL::GetQuietShutdown() const
-{
-    return quietShutdown_;
-}
-
-
-bool SSL::GetMultiProtocol() const
-{
-    return secure_.GetContext()->getMethod()->multipleProtocol();
-}
-
-
-Crypto& SSL::useCrypto()
-{
-    return crypto_;
-}
-
-
-Security& SSL::useSecurity()
-{
-    return secure_;
-}
-
-
-States& SSL::useStates()
-{
-    return states_;
-}
-
-
-sslHashes& SSL::useHashes()
-{
-    return hashes_;
-}
-
-
-Socket& SSL::useSocket()
-{
-    return socket_;
-}
-
-
-Log& SSL::useLog()
-{
-    return log_;
-}
-
-
-bool SSL::isTLS() const
-{
-    return secure_.get_connection().TLS_;
-}
-
-
-bool SSL::isTLSv1_1() const
-{
-    return secure_.get_connection().TLSv1_1_;
-}
-
-
-// is there buffered data available, optimization to remove iteration on buffer
-bool SSL::HasData() const
-{ 
-    return has_data_;
-}
-
-
-void SSL::addData(input_buffer* data)
-{
-    buffers_.useData().push_back(data);
-    if (!has_data_) has_data_ = true;
-}
-
-
-void SSL::addBuffer(output_buffer* b)
-{
-    buffers_.useHandShake().push_back(b);
-}
-
-
-void SSL_SESSION::CopyX509(X509* x)
-{
-    if (x == 0) return;
-
-    X509_NAME* issuer   = x->GetIssuer();
-    X509_NAME* subject  = x->GetSubject();
-    ASN1_TIME* before = x->GetBefore();
-    ASN1_TIME* after  = x->GetAfter();
-
-    peerX509_ = NEW_YS X509(issuer->GetName(), issuer->GetLength(),
-        subject->GetName(), subject->GetLength(),
-        before, after,
-        issuer->GetCnPosition(), issuer->GetCnLength(),
-        subject->GetCnPosition(), subject->GetCnLength());
-}
-
-
-// store connection parameters
-SSL_SESSION::SSL_SESSION(const SSL& ssl, RandomPool& ran) 
-    : timeout_(DEFAULT_TIMEOUT), random_(ran), peerX509_(0)
-{
-    const Connection& conn = ssl.getSecurity().get_connection();
-
-    memcpy(sessionID_, conn.sessionID_, ID_LEN);
-    memcpy(master_secret_, conn.master_secret_, SECRET_LEN);
-    memcpy(suite_, ssl.getSecurity().get_parms().suite_, SUITE_LEN);
-
-    bornOn_ = lowResTimer();
-
-    CopyX509(ssl.getCrypto().get_certManager().get_peerX509());
-}
-
-
-// for resumption copy in ssl::parameters
-SSL_SESSION::SSL_SESSION(RandomPool& ran) 
-    : bornOn_(0), timeout_(0), random_(ran), peerX509_(0)
-{
-    memset(sessionID_, 0, ID_LEN);
-    memset(master_secret_, 0, SECRET_LEN);
-    memset(suite_, 0, SUITE_LEN);
-}
-
-
-SSL_SESSION& SSL_SESSION::operator=(const SSL_SESSION& that)
-{
-    memcpy(sessionID_, that.sessionID_, ID_LEN);
-    memcpy(master_secret_, that.master_secret_, SECRET_LEN);
-    memcpy(suite_, that.suite_, SUITE_LEN);
-    
-    bornOn_  = that.bornOn_;
-    timeout_ = that.timeout_;
-
-    if (peerX509_) {
-        ysDelete(peerX509_);
-        peerX509_ = 0;
-    }
-    CopyX509(that.peerX509_);
-
-    return *this;
-}
-
-
-const opaque* SSL_SESSION::GetID() const
-{
-    return sessionID_;
-}
-
-
-const opaque* SSL_SESSION::GetSecret() const
-{
-    return master_secret_;
-}
-
-
-const Cipher* SSL_SESSION::GetSuite() const
-{
-    return suite_;
-}
-
-
-X509* SSL_SESSION::GetPeerX509() const
-{
-    return peerX509_;
-}
-
-
-uint SSL_SESSION::GetBornOn() const
-{
-    return bornOn_;
-}
-
-
-uint SSL_SESSION::GetTimeOut() const
-{
-    return timeout_;
-}
-
-
-void SSL_SESSION::SetTimeOut(uint t)
-{
-    timeout_ = t;
-}
-
-
-extern void clean(volatile opaque*, uint, RandomPool&);
-
-
-// clean up secret data
-SSL_SESSION::~SSL_SESSION()
-{
-    volatile opaque* p = master_secret_;
-    clean(p, SECRET_LEN, random_);
-
-    ysDelete(peerX509_);
-}
-
-
-static Sessions* sessionsInstance = 0;
-static yassl_pthread_once_t session_created= YASSL_PTHREAD_ONCE_INIT;
-
-void Session_initialize()
-{
-    sessionsInstance = NEW_YS Sessions;
-}
-
-extern "C"
-{
-  static void c_session_initialize() { Session_initialize(); }
-}
-
-
-Sessions& GetSessions()
-{
-    yassl_pthread_once(&session_created, c_session_initialize);
-    return *sessionsInstance;
-}
-
-
-static sslFactory* sslFactoryInstance = 0;
-
-sslFactory& GetSSL_Factory()
-{  
-    if (!sslFactoryInstance)
-        sslFactoryInstance = NEW_YS sslFactory;
-    return *sslFactoryInstance;
-}
-
-
-static Errors* errorsInstance = 0;
-
-Errors& GetErrors()
-{
-    if (!errorsInstance)
-        errorsInstance = NEW_YS Errors;
-    return *errorsInstance;
-}
-
-
-typedef Mutex::Lock Lock;
-
-
- 
-void Sessions::add(const SSL& ssl) 
-{
-    if (ssl.getSecurity().get_connection().sessionID_Set_) {
-        Lock guard(mutex_);
-        list_.push_back(NEW_YS SSL_SESSION(ssl, random_));
-        count_++;
-    }
-
-    if (count_ > SESSION_FLUSH_COUNT)
-        if (!ssl.getSecurity().GetContext()->GetSessionCacheFlushOff())
-            Flush();
-}
-
-
-Sessions::~Sessions() 
-{ 
-    STL::for_each(list_.begin(), list_.end(), del_ptr_zero()); 
-}
-
-
-// locals
-namespace yassl_int_cpp_local2 { // for explicit templates
-
-typedef STL::list::iterator sess_iterator;
-typedef STL::list::iterator  thr_iterator;
-
-struct sess_match {
-    const opaque* id_;
-    explicit sess_match(const opaque* p) : id_(p) {}
-
-    bool operator()(SSL_SESSION* sess)
-    {
-        if ( memcmp(sess->GetID(), id_, ID_LEN) == 0)
-            return true;
-        return false;
-    }
-};
-
-
-THREAD_ID_T GetSelf()
-{
-#ifndef _POSIX_THREADS
-    return GetCurrentThreadId();
-#else
-    return pthread_self();
-#endif
-}
-
-struct thr_match {
-    THREAD_ID_T id_;
-    explicit thr_match() : id_(GetSelf()) {}
-
-    bool operator()(ThreadError thr)
-    {
-        if (thr.threadID_ == id_)
-            return true;
-        return false;
-    }
-};
-
-
-} // local namespace
-using namespace yassl_int_cpp_local2;
-
-
-// lookup session by id, return a copy if space provided
-SSL_SESSION* Sessions::lookup(const opaque* id, SSL_SESSION* copy)
-{
-    Lock guard(mutex_);
-    sess_iterator find = STL::find_if(list_.begin(), list_.end(),
-                                        sess_match(id));
-    if (find != list_.end()) {
-        uint current = lowResTimer();
-        if ( ((*find)->GetBornOn() + (*find)->GetTimeOut()) < current) {
-            del_ptr_zero()(*find);
-            list_.erase(find);
-            return 0;
-        }
-        if (copy)
-            *copy = *(*find);
-        return *find;
-    }
-    return 0;
-}
-
-
-// remove a session by id
-void Sessions::remove(const opaque* id)
-{
-    Lock guard(mutex_);
-    sess_iterator find = STL::find_if(list_.begin(), list_.end(),
-                                        sess_match(id));
-    if (find != list_.end()) {
-        del_ptr_zero()(*find);
-        list_.erase(find);
-    }
-}
-
-
-// flush expired sessions from cache 
-void Sessions::Flush()
-{
-    Lock guard(mutex_);
-    sess_iterator next = list_.begin();
-    uint current = lowResTimer();
-
-    while (next != list_.end()) {
-        sess_iterator si = next;
-        ++next;
-        if ( ((*si)->GetBornOn() + (*si)->GetTimeOut()) < current) {
-            del_ptr_zero()(*si);
-            list_.erase(si);
-        }
-    }
-    count_ = 0;  // reset flush counter
-}
-
-
-// remove a self thread error
-void Errors::Remove()
-{
-    Lock guard(mutex_);
-    thr_iterator find = STL::find_if(list_.begin(), list_.end(),
-                                       thr_match());
-    if (find != list_.end())
-        list_.erase(find);
-}
-
-
-// lookup self error code
-int Errors::Lookup(bool peek)
-{
-    Lock guard(mutex_);
-    thr_iterator find = STL::find_if(list_.begin(), list_.end(),
-                                       thr_match());
-    if (find != list_.end()) {
-        int ret = find->errorID_;
-        if (!peek)
-            list_.erase(find);
-        return ret;
-    }
-    else
-        return 0;
-}
-
-
-// add a new error code for self
-void Errors::Add(int error)
-{
-    ThreadError add;
-    add.errorID_  = error;
-    add.threadID_ = GetSelf();
-
-    Remove();   // may have old error
-
-    Lock guard(mutex_);
-    list_.push_back(add);
-}
-
-
-SSL_METHOD::SSL_METHOD(ConnectionEnd ce, ProtocolVersion pv, bool multiProto) 
-    : version_(pv), side_(ce), verifyPeer_(false), verifyNone_(false),
-      failNoCert_(false), multipleProtocol_(multiProto)
-{}
-
-
-ProtocolVersion SSL_METHOD::getVersion() const
-{
-    return version_;
-}
-
-
-ConnectionEnd SSL_METHOD::getSide() const
-{
-    return side_;
-}
-
-
-void SSL_METHOD::setVerifyPeer()
-{
-    verifyPeer_ = true;
-}
-
-
-void SSL_METHOD::setVerifyNone()
-{
-    verifyNone_ = true;
-}
-
-
-void SSL_METHOD::setFailNoCert()
-{
-    failNoCert_ = true;
-}
-
-
-bool SSL_METHOD::verifyPeer() const
-{
-    return verifyPeer_;
-}
-
-
-bool SSL_METHOD::verifyNone() const
-{
-    return verifyNone_;
-}
-
-
-bool SSL_METHOD::failNoCert() const
-{
-    return failNoCert_;
-}
-
-
-bool SSL_METHOD::multipleProtocol() const
-{
-    return multipleProtocol_;
-}
-
-
-/** Implement a my_strdup replacement, so we can reuse get_password() */
-extern "C" char *yassl_mysql_strdup(const char *from, int)
-{
-  return from ? strdup(from) : NULL;
-}
-
-
-extern "C"
-{
-static int
-default_password_callback(char * buffer, int size_arg, int rwflag,
-                          void * /* unused: callback_data */)
-{
-  char *passwd;
-  size_t passwd_len, size= (size_t) size_arg;
-
-  passwd= ::yassl_mysql_get_tty_password_ext("Enter PEM pass phrase:", 
-                                             yassl_mysql_strdup);
-
-  if (!passwd)
-    return 0;
-
-  passwd_len= strlen(passwd);
-
-  if (!passwd_len)
-    return 0;
-
-  if (size > 0)
-  {
-    size_t result_len= size - 1 > passwd_len ? 
-      passwd_len : size - 1;
-    memcpy(buffer, passwd, result_len);
-    buffer[result_len]= 0;
-  }
-  free(passwd);
-  return passwd_len;
-}
-}
-
-SSL_CTX::SSL_CTX(SSL_METHOD* meth) 
-    : method_(meth), certificate_(0), privateKey_(0), 
-      passwordCb_(default_password_callback),
-      userData_(0), sessionCacheOff_(false), sessionCacheFlushOff_(false),
-      verifyCallback_(0)
-{}
-
-
-SSL_CTX::~SSL_CTX()
-{
-    ysDelete(method_);
-    ysDelete(certificate_);
-    ysDelete(privateKey_);
-
-    STL::for_each(caList_.begin(), caList_.end(), del_ptr_zero());
-}
-
-
-void SSL_CTX::AddCA(x509* ca)
-{
-    caList_.push_back(ca);
-}
-
-
-const SSL_CTX::CertList& 
-SSL_CTX::GetCA_List() const
-{
-    return caList_;
-}
-
-
-const VerifyCallback SSL_CTX::getVerifyCallback() const
-{
-    return verifyCallback_;
-}
-
-
-const x509* SSL_CTX::getCert() const
-{
-    return certificate_;
-}
-
-
-const x509* SSL_CTX::getKey() const
-{
-    return privateKey_;
-}
-
-
-const SSL_METHOD* SSL_CTX::getMethod() const
-{
-    return method_;
-}
-
-
-const Ciphers& SSL_CTX::GetCiphers() const
-{
-    return ciphers_;
-}
-
-
-const DH_Parms& SSL_CTX::GetDH_Parms() const
-{
-    return dhParms_;
-}
-
-
-const Stats& SSL_CTX::GetStats() const
-{
-    return stats_;
-}
-
-
-pem_password_cb SSL_CTX::GetPasswordCb() const
-{
-    return passwordCb_;
-}
-
-
-void SSL_CTX::SetPasswordCb(pem_password_cb cb)
-{
-    passwordCb_ = cb;
-}
-
-
-void* SSL_CTX::GetUserData() const
-{
-    return userData_;
-}
-
-
-bool SSL_CTX::GetSessionCacheOff() const
-{
-    return sessionCacheOff_;
-}
-
-
-bool SSL_CTX::GetSessionCacheFlushOff() const
-{
-    return sessionCacheFlushOff_;
-}
-
-
-void SSL_CTX::SetUserData(void* data)
-{
-    userData_ = data;
-}
-
-
-void SSL_CTX::SetSessionCacheOff()
-{
-    sessionCacheOff_ = true;
-}
-
-
-void SSL_CTX::SetSessionCacheFlushOff()
-{
-    sessionCacheFlushOff_ = true;
-}
-
-
-void SSL_CTX::setVerifyPeer()
-{
-    method_->setVerifyPeer();
-}
-
-
-void SSL_CTX::setVerifyNone()
-{
-    method_->setVerifyNone();
-}
-
-
-void SSL_CTX::setFailNoCert()
-{
-    method_->setFailNoCert();
-}
-
-
-void SSL_CTX::setVerifyCallback(VerifyCallback vc)
-{
-    verifyCallback_ = vc;
-}
-
-
-bool SSL_CTX::SetDH(const DH& dh)
-{
-    dhParms_.p_ = dh.p->int_;
-    dhParms_.g_ = dh.g->int_;
-
-    return dhParms_.set_ = true;
-}
-
-
-bool SSL_CTX::SetCipherList(const char* list)
-{
-    if (!list)
-        return false;
-
-    bool ret = false;
-    char name[MAX_SUITE_NAME];
-
-    char  needle[] = ":";
-    char* haystack = const_cast(list);
-    char* prev;
-
-    const int suiteSz = sizeof(cipher_names) / sizeof(cipher_names[0]);
-    int idx = 0;
-
-    for(;;) {
-        size_t len;
-        prev = haystack;
-        haystack = strstr(haystack, needle);
-
-        if (!haystack)    // last cipher
-            len = min(sizeof(name), strlen(prev));
-        else
-            len = min(sizeof(name), (size_t)(haystack - prev));
-
-        strncpy(name, prev, len);
-        name[(len == sizeof(name)) ? len - 1 : len] = 0;
-
-        for (int i = 0; i < suiteSz; i++)
-            if (strncmp(name, cipher_names[i], sizeof(name)) == 0) {
-
-                ciphers_.suites_[idx++] = 0x00;  // first byte always zero
-                ciphers_.suites_[idx++] = i;
-
-                if (!ret) ret = true;   // found at least one
-                break;
-            }
-        if (!haystack) break;
-        haystack++;
-    }
-
-    if (ret) {
-        ciphers_.setSuites_ = true;
-        ciphers_.suiteSz_ = idx;
-    }
-
-    return ret;
-}
-
-
-void SSL_CTX::IncrementStats(StatsField fd)
-{
-
-    Lock guard(mutex_);
-    
-    switch (fd) {
-
-	case Accept:
-        ++stats_.accept_;
-        break;
-
-    case Connect:
-        ++stats_.connect_;
-        break;
-
-    case AcceptGood:
-        ++stats_.acceptGood_;
-        break;
-
-    case ConnectGood:
-        ++stats_.connectGood_;
-        break;
-
-    case AcceptRenegotiate:
-        ++stats_.acceptRenegotiate_;
-        break;
-
-    case ConnectRenegotiate:
-        ++stats_.connectRenegotiate_;
-        break;
-
-    case Hits:
-        ++stats_.hits_;
-        break;
-
-    case CbHits:
-        ++stats_.cbHits_;
-        break;
-
-    case CacheFull:
-        ++stats_.cacheFull_;
-        break;
-
-    case Misses:
-        ++stats_.misses_;
-        break;
-
-    case Timeouts:
-        ++stats_.timeouts_;
-        break;
-
-    case Number:
-        ++stats_.number_;
-        break;
-
-    case GetCacheSize:
-        ++stats_.getCacheSize_;
-        break;
-
-    case VerifyMode:
-        ++stats_.verifyMode_;
-        break;
-
-    case VerifyDepth:
-        ++stats_.verifyDepth_;
-        break;
-
-    default:
-        break;
-    }
-}
-
-
-Crypto::Crypto() 
-    : digest_(0), cipher_(0), dh_(0) 
-{}
-
-
-Crypto::~Crypto()
-{
-    ysDelete(dh_);
-    ysDelete(cipher_);
-    ysDelete(digest_);
-}
-
-
-const Digest& Crypto::get_digest() const
-{
-    return *digest_;
-}
-
-
-const BulkCipher& Crypto::get_cipher() const
-{
-    return *cipher_;
-}
-
-
-const DiffieHellman& Crypto::get_dh() const
-{
-    return *dh_;
-}
-
-
-const RandomPool& Crypto::get_random() const
-{
-    return random_;
-}
-
-
-const CertManager& Crypto::get_certManager() const
-{
-    return cert_;
-}
-
-
-      
-Digest& Crypto::use_digest()
-{
-    return *digest_;
-}
-
-
-BulkCipher& Crypto::use_cipher()
-{
-    return *cipher_;
-}
-
-
-DiffieHellman& Crypto::use_dh()
-{
-    return *dh_;
-}
-
-
-RandomPool& Crypto::use_random()
-{
-    return random_;
-}
-
-
-CertManager& Crypto::use_certManager()
-{
-    return cert_;
-}
-
-
-
-void Crypto::SetDH(DiffieHellman* dh)
-{
-    dh_ = dh;
-}
-
-
-void Crypto::SetDH(const DH_Parms& dh)
-{
-    if (dh.set_)
-        dh_ = NEW_YS DiffieHellman(dh.p_, dh.g_, random_);
-}
-
-
-bool Crypto::DhSet()
-{
-    return dh_ != 0;
-}
-
-
-void Crypto::setDigest(Digest* digest)
-{
-    digest_ = digest;
-}
-
-
-void Crypto::setCipher(BulkCipher* c)
-{
-    cipher_ = c;
-}
-
-
-const MD5& sslHashes::get_MD5() const
-{
-    return md5HandShake_;
-}
-
-
-const SHA& sslHashes::get_SHA() const
-{
-    return shaHandShake_;
-}
-
-
-const Finished& sslHashes::get_verify() const
-{
-    return verify_;
-}
-
-
-const Hashes& sslHashes::get_certVerify() const
-{
-    return certVerify_;
-}
-
-
-MD5& sslHashes::use_MD5(){
-    return md5HandShake_;
-}
-
-
-SHA& sslHashes::use_SHA()
-{
-    return shaHandShake_;
-}
-
-
-Finished& sslHashes::use_verify()
-{
-    return verify_;
-}
-
-
-Hashes& sslHashes::use_certVerify()
-{
-    return certVerify_;
-}
-
-
-Buffers::Buffers() : prevSent(0), plainSz(0), rawInput_(0), output_(0)
-{}
-
-
-Buffers::~Buffers()
-{
-    STL::for_each(handShakeList_.begin(), handShakeList_.end(),
-                  del_ptr_zero()) ;
-    STL::for_each(dataList_.begin(), dataList_.end(),
-                  del_ptr_zero()) ;
-    ysDelete(rawInput_);
-    ysDelete(output_);
-}
-
-
-void Buffers::SetOutput(output_buffer* ob)
-{
-    output_ = ob;
-}
-
-
-void Buffers::SetRawInput(input_buffer* ib)
-{
-    rawInput_ = ib;
-}
-
-
-input_buffer* Buffers::TakeRawInput()
-{
-    input_buffer* ret = rawInput_;
-    rawInput_ = 0;
-
-    return ret;
-}
-
-
-output_buffer* Buffers::TakeOutput()
-{
-    output_buffer* ret = output_;
-    output_ = 0;
-
-    return ret;
-}
-
-
-const Buffers::inputList& Buffers::getData() const
-{
-    return dataList_;
-}
-
-
-const Buffers::outputList& Buffers::getHandShake() const
-{
-    return handShakeList_;
-}
-
-
-Buffers::inputList& Buffers::useData()
-{
-    return dataList_;
-}
-
-
-Buffers::outputList& Buffers::useHandShake()
-{
-    return handShakeList_;
-}
-
-
-Security::Security(ProtocolVersion pv, RandomPool& ran, ConnectionEnd ce,
-                   const Ciphers& ciphers, SSL_CTX* ctx, bool haveDH)
-   : conn_(pv, ran), parms_(ce, ciphers, pv, haveDH), resumeSession_(ran),
-     ctx_(ctx), resuming_(false)
-{}
-
-
-const Connection& Security::get_connection() const
-{
-    return conn_;
-}
-
-
-const SSL_CTX* Security::GetContext() const
-{
-    return ctx_;
-}
-
-
-const Parameters& Security::get_parms() const
-{
-    return parms_;
-}
-
-
-const SSL_SESSION& Security::get_resume() const
-{
-    return resumeSession_;
-}
-
-
-bool Security::get_resuming() const
-{
-    return resuming_;
-}
-
-
-Connection& Security::use_connection()
-{
-    return conn_;
-}
-
-
-Parameters& Security::use_parms()
-{
-    return parms_;
-}
-
-
-SSL_SESSION& Security::use_resume()
-{
-    return resumeSession_;
-}
-
-
-void Security::set_resuming(bool b)
-{
-    resuming_ = b;
-}
-
-
-X509_NAME::X509_NAME(const char* n, size_t sz, int pos, int len)
-    : name_(0), sz_(sz), cnPosition_(pos), cnLen_(len)
-{
-    if (sz) {
-        name_ = NEW_YS char[sz];
-        memcpy(name_, n, sz);
-    }
-    entry_.data = 0;
-}
-
-
-X509_NAME::~X509_NAME()
-{
-    ysArrayDelete(name_);
-    ysArrayDelete(entry_.data);
-}
-
-
-const char* X509_NAME::GetName() const
-{
-    return name_;
-}
-
-
-size_t X509_NAME::GetLength() const
-{
-    return sz_;
-}
-
-
-X509::X509(const char* i, size_t iSz, const char* s, size_t sSz,
-           ASN1_STRING *b, ASN1_STRING *a,
-           int issPos, int issLen,
-           int subPos, int subLen)
-    : issuer_(i, iSz, issPos, issLen), subject_(s, sSz, subPos, subLen),
-      beforeDate_((char *) b->data, b->length, b->type),
-      afterDate_((char *) a->data, a->length, a->type)
-{}
-
-
-X509_NAME* X509::GetIssuer()
-{
-    return &issuer_;
-}
-
-
-X509_NAME* X509::GetSubject()
-{
-    return &subject_;
-}
-
-
-ASN1_TIME* X509::GetBefore()
-{
-    return beforeDate_.GetString();
-}
-
-
-ASN1_TIME* X509::GetAfter()
-{
-    return afterDate_.GetString();
-}
-
-
-ASN1_STRING* X509_NAME::GetEntry(int i)
-{
-    if (i < 0 || i >= int(sz_))
-        return 0;
-
-    if (i != cnPosition_ || cnLen_ <= 0)   // only entry currently supported
-        return 0;
-
-    if (cnLen_ > int(sz_-i))   // make sure there's room in read buffer
-        return 0;
-
-    if (entry_.data)
-        ysArrayDelete(entry_.data);
-    entry_.data = NEW_YS byte[cnLen_+1];       // max size;
-
-    memcpy(entry_.data, &name_[i], cnLen_);
-    entry_.data[cnLen_] = 0;
-    entry_.length = cnLen_;
-    entry_.type = 0;
-    return &entry_;
-}
-
-
-StringHolder::StringHolder(const char* str, int sz, byte type)
-{
-    asnString_.length = sz;
-    asnString_.data = NEW_YS byte[sz + 1];
-    memcpy(asnString_.data, str, sz);
-    asnString_.type = type;
-}
-
-
-StringHolder::~StringHolder()
-{
-    ysArrayDelete(asnString_.data);
-}
-
-
-ASN1_STRING* StringHolder::GetString()
-{
-    return &asnString_;
-}
-
-
-#ifdef HAVE_LIBZ
-
-    void* myAlloc(void* /* opaque */, unsigned int item, unsigned int size)
-    {
-        return NEW_YS unsigned char[item * size];
-    }
-
-
-    void myFree(void* /* opaque */, void* memory)
-    {
-        unsigned char* ptr = static_cast(memory);
-        yaSSL::ysArrayDelete(ptr);
-    }
-
-
-    // put size in front of compressed data
-    int Compress(const byte* in, int sz, input_buffer& buffer)
-    {
-        byte     tmp[LENGTH_SZ];
-        z_stream c_stream; /* compression stream */
-
-        buffer.allocate(sz + sizeof(uint16) + COMPRESS_EXTRA);
-
-        c_stream.zalloc = myAlloc;
-        c_stream.zfree  = myFree;
-        c_stream.opaque = (voidpf)0;
-
-        c_stream.next_in   = const_cast(in);
-        c_stream.avail_in  = sz;
-        c_stream.next_out  = buffer.get_buffer() + sizeof(tmp);
-        c_stream.avail_out = buffer.get_capacity() - sizeof(tmp);
-
-        if (deflateInit(&c_stream, 8) != Z_OK) return -1;
-        int err = deflate(&c_stream, Z_FINISH);
-        deflateEnd(&c_stream);
-        if (err != Z_OK && err != Z_STREAM_END) return -1;
-
-        c16toa(sz, tmp);
-        memcpy(buffer.get_buffer(), tmp, sizeof(tmp));
-        buffer.add_size(c_stream.total_out + sizeof(tmp));
-
-        return 0;
-    }
-
-
-    // get uncompressed size in front
-    int DeCompress(input_buffer& in, int sz, input_buffer& out)
-    {
-        byte tmp[LENGTH_SZ];
-   
-        tmp[0] = in[AUTO]; 
-        tmp[1] = in[AUTO]; 
-
-        uint16 len;
-        ato16(tmp, len);
-
-        out.allocate(len);
-
-        z_stream d_stream; /* decompression stream */
-
-        d_stream.zalloc = myAlloc;
-        d_stream.zfree  = myFree;
-        d_stream.opaque = (voidpf)0;
-
-        d_stream.next_in   = in.get_buffer() + in.get_current();
-        d_stream.avail_in  = sz - sizeof(tmp);
-        d_stream.next_out  = out.get_buffer();
-        d_stream.avail_out = out.get_capacity();
-
-        if (inflateInit(&d_stream) != Z_OK) return -1;
-        int err = inflate(&d_stream, Z_FINISH);
-        inflateEnd(&d_stream);
-        if (err != Z_OK && err != Z_STREAM_END) return -1;
-
-        out.add_size(d_stream.total_out);
-        in.set_current(in.get_current() + sz - sizeof(tmp));
-
-        return 0;
-    }
-
-
-#else  // LIBZ
-
-    // these versions should never get called
-    int Compress(const byte* in, int sz, input_buffer& buffer)
-    {
-        return -1;
-    } 
-
-
-    int DeCompress(input_buffer& in, int sz, input_buffer& out)
-    {
-        return -1;
-    } 
-
-
-#endif // LIBZ
-
-
-} // namespace
-
-
-
-extern "C" void yaSSL_CleanUp()
-{
-    TaoCrypt::CleanUp();
-    yaSSL::ysDelete(yaSSL::sslFactoryInstance);
-    yaSSL::ysDelete(yaSSL::sessionsInstance);
-    yaSSL::ysDelete(yaSSL::errorsInstance);
-
-    // In case user calls more than once, prevent seg fault
-    yaSSL::sslFactoryInstance = 0;
-    yaSSL::sessionsInstance = 0;
-    yaSSL::errorsInstance = 0;
-}
-
-
-#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
-namespace mySTL {
-template yaSSL::yassl_int_cpp_local1::SumData for_each::iterator, yaSSL::yassl_int_cpp_local1::SumData>(mySTL::list::iterator, mySTL::list::iterator, yaSSL::yassl_int_cpp_local1::SumData);
-template yaSSL::yassl_int_cpp_local1::SumBuffer for_each::iterator, yaSSL::yassl_int_cpp_local1::SumBuffer>(mySTL::list::iterator, mySTL::list::iterator, yaSSL::yassl_int_cpp_local1::SumBuffer);
-template mySTL::list::iterator find_if::iterator, yaSSL::yassl_int_cpp_local2::sess_match>(mySTL::list::iterator, mySTL::list::iterator, yaSSL::yassl_int_cpp_local2::sess_match);
-template mySTL::list::iterator find_if::iterator, yaSSL::yassl_int_cpp_local2::thr_match>(mySTL::list::iterator, mySTL::list::iterator, yaSSL::yassl_int_cpp_local2::thr_match);
-}
-#endif
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/CMakeLists.txt b/mysql-wsrep-5.6/extra/yassl/taocrypt/CMakeLists.txt
deleted file mode 100644
index a00fa8a1..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/CMakeLists.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
-# 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
-
-INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/compile_flags.cmake)
-
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/mySTL
-                    ${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/include)
-
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
-ADD_DEFINITIONS(${SSL_DEFINES})
-SET(TAOCRYPT_SOURCES		src/aes.cpp src/aestables.cpp src/algebra.cpp src/arc4.cpp src/asn.cpp src/coding.cpp 
-				src/des.cpp src/dh.cpp src/dsa.cpp src/file.cpp src/hash.cpp src/integer.cpp src/md2.cpp 
-				src/md4.cpp src/md5.cpp src/misc.cpp src/random.cpp src/ripemd.cpp src/rsa.cpp src/sha.cpp 
-				src/rabbit.cpp src/hc128.cpp
-				include/aes.hpp include/algebra.hpp include/arc4.hpp include/asn.hpp include/block.hpp 
-				include/coding.hpp include/des.hpp include/dh.hpp include/dsa.hpp include/dsa.hpp
-				include/error.hpp include/file.hpp include/hash.hpp include/hmac.hpp include/integer.hpp 
-				include/md2.hpp include/md5.hpp include/misc.hpp include/modarith.hpp include/modes.hpp
-				include/random.hpp include/ripemd.hpp include/rsa.hpp include/sha.hpp
-				include/rabbit.hpp include/hc128.hpp)
-
-# Segfaults with SIGILL at high optimization levels in:
-# ModularArithmetic::SimultaneousExponentiate
-IF(CMAKE_CXX_COMPILER_ID MATCHES "SunPro")
-  IF(CMAKE_CXX_FLAGS MATCHES "-std=")
-    ADD_COMPILE_FLAGS(src/integer.cpp COMPILE_FLAGS "-xO1")
-  ENDIF()
-ENDIF()
-
-IF(HAVE_EXPLICIT_TEMPLATE_INSTANTIATION)
-  SET(TAOCRYPT_SOURCES ${TAOCRYPT_SOURCES} src/template_instnt.cpp)
-ENDIF()
-
-ADD_CONVENIENCE_LIBRARY(taocrypt ${TAOCRYPT_SOURCES})
-RESTRICT_SYMBOL_EXPORTS(taocrypt)
-
-IF(MSVC)
-   INSTALL_DEBUG_TARGET(taocrypt DESTINATION ${INSTALL_LIBDIR}/debug)
-ENDIF()
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/COPYING b/mysql-wsrep-5.6/extra/yassl/taocrypt/COPYING
deleted file mode 100644
index 845980af..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/COPYING
+++ /dev/null
@@ -1,340 +0,0 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    
-    Copyright (C)   
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year  name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  , 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/INSTALL b/mysql-wsrep-5.6/extra/yassl/taocrypt/INSTALL
deleted file mode 100644
index 54caf7c1..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/INSTALL
+++ /dev/null
@@ -1,229 +0,0 @@
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
-Foundation, Inc.
-
-   This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
-
-Basic Installation
-==================
-
-   These are generic installation instructions.
-
-   The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation.  It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions.  Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, and a
-file `config.log' containing compiler output (useful mainly for
-debugging `configure').
-
-   It can also use an optional file (typically called `config.cache'
-and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring.  (Caching is
-disabled by default to prevent problems with accidental use of stale
-cache files.)
-
-   If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release.  If you are using the cache, and at
-some point `config.cache' contains results you don't want to keep, you
-may remove or edit it.
-
-   The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'.  You only need
-`configure.ac' if you want to change it or regenerate `configure' using
-a newer version of `autoconf'.
-
-The simplest way to compile this package is:
-
-  1. `cd' to the directory containing the package's source code and type
-     `./configure' to configure the package for your system.  If you're
-     using `csh' on an old version of System V, you might need to type
-     `sh ./configure' instead to prevent `csh' from trying to execute
-     `configure' itself.
-
-     Running `configure' takes awhile.  While running, it prints some
-     messages telling which features it is checking for.
-
-  2. Type `make' to compile the package.
-
-  3. Optionally, type `make check' to run any self-tests that come with
-     the package.
-
-  4. Type `make install' to install the programs and any data files and
-     documentation.
-
-  5. You can remove the program binaries and object files from the
-     source code directory by typing `make clean'.  To also remove the
-     files that `configure' created (so you can compile the package for
-     a different kind of computer), type `make distclean'.  There is
-     also a `make maintainer-clean' target, but that is intended mainly
-     for the package's developers.  If you use it, you may have to get
-     all sorts of other programs in order to regenerate files that came
-     with the distribution.
-
-Compilers and Options
-=====================
-
-   Some systems require unusual options for compilation or linking that
-the `configure' script does not know about.  Run `./configure --help'
-for details on some of the pertinent environment variables.
-
-   You can give `configure' initial values for configuration parameters
-by setting variables in the command line or in the environment.  Here
-is an example:
-
-     ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
-
-   *Note Defining Variables::, for more details.
-
-Compiling For Multiple Architectures
-====================================
-
-   You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory.  To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'.  `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script.  `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
-   If you have to use a `make' that does not support the `VPATH'
-variable, you have to compile the package for one architecture at a
-time in the source code directory.  After you have installed the
-package for one architecture, use `make distclean' before reconfiguring
-for another architecture.
-
-Installation Names
-==================
-
-   By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc.  You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
-
-   You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files.  If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
-
-   In addition, if you use an unusual directory layout you can give
-options like `--bindir=PATH' to specify different values for particular
-kinds of files.  Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
-
-   If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
-
-   Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System).  The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
-   For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
-Specifying the System Type
-==========================
-
-   There may be some features `configure' cannot figure out
-automatically, but needs to determine by the type of machine the package
-will run on.  Usually, assuming the package is built to be run on the
-_same_ architectures, `configure' can figure that out, but if it prints
-a message saying it cannot guess the machine type, give it the
-`--build=TYPE' option.  TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name which has the form:
-
-     CPU-COMPANY-SYSTEM
-
-where SYSTEM can have one of these forms:
-
-     OS KERNEL-OS
-
-   See the file `config.sub' for the possible values of each field.  If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the machine type.
-
-   If you are _building_ compiler tools for cross-compiling, you should
-use the `--target=TYPE' option to select the type of system they will
-produce code for.
-
-   If you want to _use_ a cross compiler, that generates code for a
-platform different from the build platform, you should specify the
-"host" platform (i.e., that on which the generated programs will
-eventually be run) with `--host=TYPE'.
-
-Sharing Defaults
-================
-
-   If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists.  Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Defining Variables
-==================
-
-   Variables not defined in a site shell script can be set in the
-environment passed to `configure'.  However, some packages may run
-configure again during the build, and the customized values of these
-variables may be lost.  In order to avoid this problem, you should set
-them in the `configure' command line, using `VAR=value'.  For example:
-
-     ./configure CC=/usr/local2/bin/gcc
-
-will cause the specified gcc to be used as the C compiler (unless it is
-overridden in the site shell script).
-
-`configure' Invocation
-======================
-
-   `configure' recognizes the following options to control how it
-operates.
-
-`--help'
-`-h'
-     Print a summary of the options to `configure', and exit.
-
-`--version'
-`-V'
-     Print the version of Autoconf used to generate the `configure'
-     script, and exit.
-
-`--cache-file=FILE'
-     Enable the cache: use and save the results of the tests in FILE,
-     traditionally `config.cache'.  FILE defaults to `/dev/null' to
-     disable caching.
-
-`--config-cache'
-`-C'
-     Alias for `--cache-file=config.cache'.
-
-`--quiet'
-`--silent'
-`-q'
-     Do not print messages saying which checks are being made.  To
-     suppress all normal output, redirect it to `/dev/null' (any error
-     messages will still be shown).
-
-`--srcdir=DIR'
-     Look for the package's source code in directory DIR.  Usually
-     `configure' can determine that directory automatically.
-
-`configure' also accepts some other, not widely useful, options.  Run
-`configure --help' for more details.
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/README b/mysql-wsrep-5.6/extra/yassl/taocrypt/README
deleted file mode 100644
index bd786b7c..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/README
+++ /dev/null
@@ -1,48 +0,0 @@
-TaoCrypt release 0.9.2   02/5/2007
-
-
-This release includes bug fixes, portability enhancements, and some 
-optimiations.
-
-See 0.9.0 for build instructions.
-
-
-
-
-******************TaoCrypt release 0.9.0   09/18/2006
-
-This is the first release of TaoCrypt, it was previously only included with
-yaSSL. TaoCrypt is highly portable and fast, its features include:
-
-One way hash functions: SHA-1, MD2, MD4, MD5, RIPEMD-160
-Message authentication codes: HMAC
-Block Ciphers: DES, Triple-DES, AES, Blowfish, Twofish
-Stream Ciphers: ARC4
-Public Key Crypto: RSA, DSA, Diffie-Hellman
-Password based key derivation: PBKDF2 from PKCS #5
-Pseudo Random Number Generators
-Large Integer Support
-Base 16/64 encoding/decoding
-DER encoding/decoding
-X.509 processing
-SSE2 and ia32 asm for the right processors and compilers
-
-
-To build on Unix
-
-    ./configure
-    make
-
-    To test the build, from the ./test directory run ./test
-
-
-On Windows
-
-    Open the taocrypt project workspace
-    Choose (Re)Build All
-
-    To test the build, run the test executable
-
-
-Please send any questions or comments to todd@yassl.com.
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/benchmark/benchmark.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/benchmark/benchmark.cpp
deleted file mode 100644
index 1051b2a4..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/benchmark/benchmark.cpp
+++ /dev/null
@@ -1,458 +0,0 @@
-/*
-   Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-// benchmark.cpp
-// TaoCrypt benchmark
-
-#include 
-#include 
-
-#include "runtime.hpp"
-#include "des.hpp"
-#include "aes.hpp"
-#include "twofish.hpp"
-#include "blowfish.hpp"
-#include "arc4.hpp"
-#include "md5.hpp"
-#include "sha.hpp"
-#include "ripemd.hpp"
-#include "rsa.hpp"
-#include "dh.hpp"
-#include "dsa.hpp"
-
-
-using namespace TaoCrypt;
-
-void bench_aes(bool show);
-void bench_des();
-void bench_blowfish();
-void bench_twofish();
-void bench_arc4();
-
-void bench_md5();
-void bench_sha();
-void bench_ripemd();
-
-void bench_rsa();
-void bench_dh();
-void bench_dsa();
-
-double current_time();
-
-
-
-
-int main(int argc, char** argv)
-{
-    bench_aes(false);
-    bench_aes(true);
-    bench_blowfish();
-    bench_twofish();
-    bench_arc4();
-    bench_des();
-    
-    printf("\n");
-
-    bench_md5();
-    bench_sha();
-    bench_ripemd();
-
-    printf("\n");
-    
-    bench_rsa();
-    bench_dh();
-    bench_dsa();
-
-    return 0;
-}
-
-const int megs = 5;  // how much to test
-
-const byte key[] = 
-{
-    0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,
-    0xfe,0xde,0xba,0x98,0x76,0x54,0x32,0x10,
-    0x89,0xab,0xcd,0xef,0x01,0x23,0x45,0x67
-};
-
-const byte iv[] = 
-{
-    0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef,
-    0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-    0x11,0x21,0x31,0x41,0x51,0x61,0x71,0x81
-    
-};
-
-
-byte plain [1024*1024];
-byte cipher[1024*1024];
-
-
-void bench_des()
-{
-    DES_EDE3_CBC_Encryption enc;
-    enc.SetKey(key, 16, iv);
-
-    double start = current_time();
-
-    for(int i = 0; i < megs; i++)
-        enc.Process(plain, cipher, sizeof(plain));
-
-    double total = current_time() - start;
-
-    double persec = 1 / total * megs;
-
-    printf("3DES     %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total,
-                                                             persec);
-}
-
-
-void bench_aes(bool show)
-{
-    AES_CBC_Encryption enc;
-    enc.SetKey(key, 16, iv);
-
-    double start = current_time();
- 
-    for(int i = 0; i < megs; i++)
-        enc.Process(plain, cipher, sizeof(plain));
-
-    double total = current_time() - start;
-
-    double persec = 1 / total * megs;
-
-    if (show)
-        printf("AES      %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total,
-                                                                 persec);
-}
-
-
-void bench_twofish()
-{
-    Twofish_CBC_Encryption enc;
-    enc.SetKey(key, 16, iv);
-
-    double start = current_time();
-
-    for(int i = 0; i < megs; i++)
-        enc.Process(plain, cipher, sizeof(plain));
-
-    double total = current_time() - start;
-
-    double persec = 1 / total * megs;
-
-    printf("Twofish  %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total,
-                                                            persec);
-
-}
-
-
-void bench_blowfish()
-{
-    Blowfish_CBC_Encryption enc;
-    enc.SetKey(key, 16, iv);
-
-    double start = current_time();
-
-    for(int i = 0; i < megs; i++)
-        enc.Process(plain, cipher, sizeof(plain));
-
-    double total = current_time() - start;
-
-    double persec = 1 / total * megs;
-
-    printf("Blowfish %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total,
-                                                             persec);
-}
-
-
-void bench_arc4()
-{
-    ARC4 enc;
-    enc.SetKey(key, 16);
-
-    double start = current_time();
-
-    for(int i = 0; i < megs; i++)
-        enc.Process(cipher, plain, sizeof(plain));
-
-    double total = current_time() - start;
-
-    double persec = 1 / total * megs;
-
-    printf("ARC4     %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total,
-                                                             persec);
-}
-
-
-void bench_md5()
-{
-    MD5 hash;
-    byte digest[MD5::DIGEST_SIZE];
-
-    double start = current_time();
-
-    
-    for(int i = 0; i < megs; i++)
-        hash.Update(plain, sizeof(plain));
-   
-    hash.Final(digest);
-
-    double total = current_time() - start;
-
-    double persec = 1 / total * megs;
-
-    printf("MD5      %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total,
-                                                             persec);
-}
-
-
-void bench_sha()
-{
-    SHA hash;
-    byte digest[SHA::DIGEST_SIZE];
-
-    double start = current_time();
-
-    
-    for(int i = 0; i < megs; i++)
-        hash.Update(plain, sizeof(plain));
-   
-    hash.Final(digest);
-
-    /*
-    for(int i = 0; i < megs; i++)
-        hash.AsmTransform(plain, 16384);
-    */
-
-
-    double total = current_time() - start;
-
-    double persec = 1 / total * megs;
-
-    printf("SHA      %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total,
-                                                             persec);
-}
-
-
-void bench_ripemd()
-{
-    RIPEMD160 hash;
-    byte digest[RIPEMD160::DIGEST_SIZE];
-
-    double start = current_time();
-
-    
-    for(int i = 0; i < megs; i++)
-        hash.Update(plain, sizeof(plain));
-   
-    hash.Final(digest);
-
-    double total = current_time() - start;
-
-    double persec = 1 / total * megs;
-
-    printf("RIPEMD   %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total,
-                                                             persec);
-}
-
-RandomNumberGenerator rng;
-
-void bench_rsa()
-{
-    const int times = 100;
-
-    Source source;
-    FileSource("./rsa1024.der", source);
-
-    if (source.size() == 0) {
-        printf("can't find ./rsa1024.der\n");
-        return;
-    }
-    RSA_PrivateKey priv(source);
-    RSAES_Encryptor enc(priv);
-
-    byte      message[] = "Everyone gets Friday off.";
-    byte      cipher[128];  // for 1024 bit
-    byte      plain[128];   // for 1024 bit
-    const int len = (word32)strlen((char*)message);
-    
-    int i;    
-    double start = current_time();
-
-    for (i = 0; i < times; i++)
-        enc.Encrypt(message, len, cipher, rng);
-
-    double total = current_time() - start;
-    double each  = total / times;   // per second
-    double milliEach = each * 1000; // milliseconds
-
-    printf("RSA 1024 encryption took %6.2f milliseconds, avg over %d" 
-           " iterations\n", milliEach, times);
-
-    RSAES_Decryptor dec(priv);
-
-    start = current_time();
-
-    for (i = 0; i < times; i++)
-        dec.Decrypt(cipher, 128, plain, rng);
-
-    total = current_time() - start;
-    each  = total / times;   // per second
-    milliEach = each * 1000; // milliseconds
-
-    printf("RSA 1024 decryption took %6.2f milliseconds, avg over %d" 
-           " iterations\n", milliEach, times);
-}
-
-
-void bench_dh()
-{
-    const int times = 100;
-
-    Source source;
-    FileSource("./dh1024.der", source);
-
-    if (source.size() == 0) {
-        printf("can't find ./dh1024.der\n");
-        return;
-    }
-    DH dh(source);
-
-    byte      pub[128];    // for 1024 bit
-    byte      priv[128];   // for 1024 bit
-    
-    int i;    
-    double start = current_time();
-
-    for (i = 0; i < times; i++)
-        dh.GenerateKeyPair(rng, priv, pub);
-
-    double total = current_time() - start;
-    double each  = total / times;   // per second
-    double milliEach = each * 1000; // milliseconds
-
-    printf("DH  1024 key generation  %6.2f milliseconds, avg over %d" 
-           " iterations\n", milliEach, times);
-
-    DH dh2(dh); 
-    byte      pub2[128];    // for 1024 bit
-    byte      priv2[128];   // for 1024 bit
-    dh2.GenerateKeyPair(rng, priv2, pub2);
-    unsigned char key[256];
-
-    start = current_time();
-
-    for (i = 0; i < times; i++)
-        dh.Agree(key, priv, pub2);
-
-    total = current_time() - start;
-    each  = total / times;      // per second
-    milliEach = each * 1000;   //  in milliseconds
-
-    printf("DH  1024 key agreement   %6.2f milliseconds, avg over %d"
-           " iterations\n", milliEach, times);
-}
-
-void bench_dsa()
-{
-    const int times = 100;
-
-    Source source;
-    FileSource("./dsa1024.der", source);
-
-    if (source.size() == 0) {
-        printf("can't find ./dsa1024.der\n");
-        return;
-    }
-
-    DSA_PrivateKey key(source);
-    DSA_Signer signer(key);
-
-    SHA sha;
-    byte digest[SHA::DIGEST_SIZE];
-    byte signature[40];
-    const char msg[] = "this is the message";
-    sha.Update((byte*)msg, sizeof(msg));
-    sha.Final(digest);
-    
-    int i;    
-    double start = current_time();
-
-    for (i = 0; i < times; i++)
-        signer.Sign(digest, signature, rng); 
-
-    double total = current_time() - start;
-    double each  = total / times;   // per second
-    double milliEach = each * 1000; // milliseconds
-
-    printf("DSA 1024 sign   took     %6.2f milliseconds, avg over %d" 
-           " iterations\n", milliEach, times);
-
-    DSA_Verifier verifier(key);
-
-    start = current_time();
-
-    for (i = 0; i < times; i++)
-        verifier.Verify(digest, signature); 
-
-    total = current_time() - start;
-    each  = total / times;      // per second
-    milliEach = each * 1000;   //  in milliseconds
-
-    printf("DSA 1024 verify took     %6.2f milliseconds, avg over %d"
-           " iterations\n", milliEach, times);
-}
-
-
-
-#ifdef _WIN32
-
-    #define WIN32_LEAN_AND_MEAN
-    #include 
-
-    double current_time()
-    {
-        static bool          init(false);
-        static LARGE_INTEGER freq;
-    
-        if (!init) {
-            QueryPerformanceFrequency(&freq);
-            init = true;
-        }
-
-        LARGE_INTEGER count;
-        QueryPerformanceCounter(&count);
-
-        return static_cast(count.QuadPart) / freq.QuadPart;
-    }
-
-#else
-
-    #include 
-
-    double current_time()
-    {
-        struct timeval tv;
-        gettimeofday(&tv, 0);
-
-        return static_cast(tv.tv_sec) 
-             + static_cast(tv.tv_usec) / 1000000;
-    }
-
-#endif // _WIN32
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/benchmark/benchmark.dsp b/mysql-wsrep-5.6/extra/yassl/taocrypt/benchmark/benchmark.dsp
deleted file mode 100644
index 449299a1..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/benchmark/benchmark.dsp
+++ /dev/null
@@ -1,101 +0,0 @@
-# Microsoft Developer Studio Project File - Name="benchmark" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=benchmark - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "benchmark.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "benchmark.mak" CFG="benchmark - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "benchmark - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "benchmark - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "benchmark - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "benchmark___Win32_Release"
-# PROP BASE Intermediate_Dir "benchmark___Win32_Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\include" /I "..\mySTL" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-
-!ELSEIF  "$(CFG)" == "benchmark - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "benchmark___Win32_Debug"
-# PROP BASE Intermediate_Dir "benchmark___Win32_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\include" /I "..\mySTL" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ  /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-
-!ENDIF 
-
-# Begin Target
-
-# Name "benchmark - Win32 Release"
-# Name "benchmark - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\benchmark.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/benchmark/dh1024.der b/mysql-wsrep-5.6/extra/yassl/taocrypt/benchmark/dh1024.der
deleted file mode 100644
index 1a85d90f3f73bfac8eadcce347ac184517b7696f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 140
zcmV;70CWE^frkQtfdJzSP$YVrg24|O8KaTE_~w4Yl;};FUoGsR9lw0C(6T;r
u7lz80Qg_hFWcwke)}*PMa1+xurq+{@w?<}rUFSuFc-iKdchdp^0tyNQaz)+%

diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/benchmark/dsa1024.der b/mysql-wsrep-5.6/extra/yassl/taocrypt/benchmark/dsa1024.der
deleted file mode 100644
index 1fcb37fad6a8faa17c04840ad011e4c8244e588d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 448
zcmV;x0YCmQf&sb$0RRGlfdGY;GA122v6Zit#o~2yEAdw|`9S}F6VlbhZ%oJ{udl2?
z8$kW+RDugM9mCw>YTyqlLLi+v{@G1Qx9}O>X+J6;k5Np*1%QyYiORw=kP`76+^0`6
zN)~9}BSK*KgIk37ql+^1#&ybI%Z>MmmvWhqyaZ
z1aWrcK}^J&B13cKWP7al9mk2EXe;pm!1}sI^^IH%#OGEGsS>qr(S8qWz*BuoIRcE$
z`#0&NUd1!Bv8e7=>J9sE_$q`M+J<%8%zwHsZ;*8|1i%Ks>Q5uY0)c>E;P0KPS5H(1
z@T5?dF?)a+&&VHlZ|_ge+5E3uEjEh|u$Fm^LAjtJTD2EJBP8HXYXqCvff3Y^7cwiJ
z)a*L`!&-uB2H@{T8j7Hi>|7wsuWCFawo5V>P>l&K0
zrX%jPSh6J$`^r=F_JsI}%?7h0d@7l*0~d`1%uf{zH|jmi0uox9!Mm0iEA!FLl<2x7UhANydFKV?z@k^zn*
zm@au#H~F0Dcsoz%MQ^BVHr(K|l^RFSgZz1Lg
z&3=g5e|kQ>W)2lM5dGmbm^Gh@p#cIx0OW)I+q=HyA=q`(oQl3N+66CaS-E3oyc3C_
zyXm7kK|U~?^JnvW1+#MK^;t@{`;X>VqndLY{ujltq{@8K^#VZv-L3|iOpZ9xxKziP
z7m*Y3HzEu8lRCqf4vN{EEU4U&AX)CQ)EB6OC8ZEO8?xSY0!aP|(zV
wur`ZFW8N|E>PSda;r-oUvyn->=ib1Phx0tDuwOPetj4i{W@d6X(P8Kc3RWQ=vH$=8

diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/certs/dh1024.dat b/mysql-wsrep-5.6/extra/yassl/taocrypt/certs/dh1024.dat
deleted file mode 100644
index 86a95518..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/certs/dh1024.dat
+++ /dev/null
@@ -1 +0,0 @@
-30818702818100DA9A18547FF03B385CC16508C173A7EF4EB61CB40EF8FEF3B31F145051676166BCDC3FE6B799FC394D08C26385F9413F896E09117E46209D6923602683CEA100924A6EE695281775C619DAA94EA8CB3691B4275B0183F1D39639EBC92995FE645D6C1BC28D409E585549BBD2C5DCDD6C208B04EADD8B7A6D997F72CBAD88390F020102
\ No newline at end of file
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/aes.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/aes.hpp
deleted file mode 100644
index bccf6e73..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/aes.hpp
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* aes.hpp defines AES
-*/
-
-
-#ifndef TAO_CRYPT_AES_HPP
-#define TAO_CRYPT_AES_HPP
-
-#include "misc.hpp"
-#include "modes.hpp"
-
-
-#if defined(TAOCRYPT_X86ASM_AVAILABLE) && defined(TAO_ASM)
-    #define DO_AES_ASM
-#endif
-
-
-
-namespace TaoCrypt {
-
-
-enum { AES_BLOCK_SIZE = 16 };
-
-
-// AES encryption and decryption, see FIPS-197
-class AES : public Mode_BASE {
-public:
-    enum { BLOCK_SIZE = AES_BLOCK_SIZE };
-
-    AES(CipherDir DIR, Mode MODE)
-        : Mode_BASE(BLOCK_SIZE, DIR, MODE) {}
-
-#ifdef DO_AES_ASM
-    void Process(byte*, const byte*, word32);
-#endif
-    void SetKey(const byte* key, word32 sz, CipherDir fake = ENCRYPTION);
-    void SetIV(const byte* iv) { memcpy(r_, iv, BLOCK_SIZE); }
-private:
-    static const word32 rcon_[];
-
-    word32      rounds_;
-    word32      key_[60];                        // max size
-
-    static const word32 Te[5][256];
-    static const word32 Td[5][256];
-    static const byte   CTd4[256];
-
-    static const word32* Te0;
-    static const word32* Te1;
-    static const word32* Te2;
-    static const word32* Te3;
-    static const word32* Te4;
-
-    static const word32* Td0;
-    static const word32* Td1;
-    static const word32* Td2;
-    static const word32* Td3;
-    static const word32* Td4;
-
-    void encrypt(const byte*, const byte*, byte*) const;
-    void AsmEncrypt(const byte*, byte*, void*) const;
-    void decrypt(const byte*, const byte*, byte*) const;
-    void AsmDecrypt(const byte*, byte*, void*) const;
-
-    void ProcessAndXorBlock(const byte*, const byte*, byte*) const;
-
-    word32 PreFetchTe() const;
-    word32 PreFetchTd() const;
-    word32 PreFetchCTd4() const;
-
-    AES(const AES&);            // hide copy
-    AES& operator=(const AES&); // and assign
-};
-
-
-#if defined(__x86_64__) || defined(_M_X64) || \
-           (defined(__ILP32__) && (__ILP32__ >= 1))
-    #define TC_CACHE_LINE_SZ 64
-#else
-    /* default cache line size */
-    #define TC_CACHE_LINE_SZ 32
-#endif
-
-inline word32 AES::PreFetchTe() const
-{
-    word32 x = 0;
-
-    /* 4 tables of 256 entries */
-    for (int i = 0; i < 4; i++) {
-        /* each entry is 4 bytes */
-        for (int j = 0; j < 256; j += TC_CACHE_LINE_SZ/4) {
-            x &= Te[i][j];
-        }
-    }
-
-    return x;
-}
-
-
-inline word32 AES::PreFetchTd() const
-{
-    word32 x = 0;
-
-    /* 4 tables of 256 entries */
-    for (int i = 0; i < 4; i++) {
-        /* each entry is 4 bytes */
-        for (int j = 0; j < 256; j += TC_CACHE_LINE_SZ/4) {
-            x &= Td[i][j];
-        }
-    }
-
-    return x;
-}
-
-
-inline word32 AES::PreFetchCTd4() const
-{
-    word32 x = 0;
-    int i;
-
-    for (i = 0; i < 256; i += TC_CACHE_LINE_SZ) {
-        x &= CTd4[i];
-    }
-
-    return x;
-}
-
-
-typedef BlockCipher AES_ECB_Encryption;
-typedef BlockCipher AES_ECB_Decryption;
-
-typedef BlockCipher AES_CBC_Encryption;
-typedef BlockCipher AES_CBC_Decryption;
-
-
-} // naemspace
-
-#endif // TAO_CRYPT_AES_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/algebra.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/algebra.hpp
deleted file mode 100644
index 5ce7038b..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/algebra.hpp
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* based on Wei Dai's algebra.h from CryptoPP */
-
-#ifndef TAO_CRYPT_ALGEBRA_HPP
-#define TAO_CRYPT_ALGEBRA_HPP
-
-#include "integer.hpp"
-
-namespace TaoCrypt {
-
-
-// "const Element&" returned by member functions are references
-// to internal data members. Since each object may have only
-// one such data member for holding results, the following code
-// will produce incorrect results:
-// abcd = group.Add(group.Add(a,b), group.Add(c,d));
-// But this should be fine:
-// abcd = group.Add(a, group.Add(b, group.Add(c,d));
-
-// Abstract Group
-class TAOCRYPT_NO_VTABLE AbstractGroup : public virtual_base
-{
-public:
-    typedef Integer Element;
-
-    virtual ~AbstractGroup() {}
-
-    virtual bool Equal(const Element &a, const Element &b) const =0;
-    virtual const Element& Identity() const =0;
-    virtual const Element& Add(const Element &a, const Element &b) const =0;
-    virtual const Element& Inverse(const Element &a) const =0;
-    virtual bool InversionIsFast() const {return false;}
-
-    virtual const Element& Double(const Element &a) const;
-    virtual const Element& Subtract(const Element &a, const Element &b) const;
-    virtual Element& Accumulate(Element &a, const Element &b) const;
-    virtual Element& Reduce(Element &a, const Element &b) const;
-
-    virtual Element ScalarMultiply(const Element &a, const Integer &e) const;
-    virtual Element CascadeScalarMultiply(const Element &x, const Integer &e1,
-                                    const Element &y, const Integer &e2) const;
-
-    virtual void SimultaneousMultiply(Element *results, const Element &base,
-                  const Integer *exponents, unsigned int exponentsCount) const;
-};
-
-// Abstract Ring
-class TAOCRYPT_NO_VTABLE AbstractRing : public AbstractGroup
-{
-public:
-    typedef Integer Element;
-
-    AbstractRing() : AbstractGroup() {m_mg.m_pRing = this;}
-    AbstractRing(const AbstractRing &source) : AbstractGroup()
-                                                {m_mg.m_pRing = this;}
-    AbstractRing& operator=(const AbstractRing &source) {return *this;}
-
-    virtual bool IsUnit(const Element &a) const =0;
-    virtual const Element& MultiplicativeIdentity() const =0;
-    virtual const Element& Multiply(const Element&, const Element&) const =0;
-    virtual const Element& MultiplicativeInverse(const Element &a) const =0;
-
-    virtual const Element& Square(const Element &a) const;
-    virtual const Element& Divide(const Element &a, const Element &b) const;
-
-    virtual Element Exponentiate(const Element &a, const Integer &e) const;
-    virtual Element CascadeExponentiate(const Element &x, const Integer &e1,
-                                    const Element &y, const Integer &e2) const;
-
-    virtual void SimultaneousExponentiate(Element *results, const Element&,
-                  const Integer *exponents, unsigned int exponentsCount) const;
-
-    virtual const AbstractGroup& MultiplicativeGroup() const
-        {return m_mg;}
-
-private:
-    class MultiplicativeGroupT : public AbstractGroup
-    {
-    public:
-        const AbstractRing& GetRing() const
-            {return *m_pRing;}
-
-        bool Equal(const Element &a, const Element &b) const
-            {return GetRing().Equal(a, b);}
-
-        const Element& Identity() const
-            {return GetRing().MultiplicativeIdentity();}
-
-        const Element& Add(const Element &a, const Element &b) const
-            {return GetRing().Multiply(a, b);}
-
-        Element& Accumulate(Element &a, const Element &b) const
-            {return a = GetRing().Multiply(a, b);}
-
-        const Element& Inverse(const Element &a) const
-            {return GetRing().MultiplicativeInverse(a);}
-
-        const Element& Subtract(const Element &a, const Element &b) const
-            {return GetRing().Divide(a, b);}
-
-        Element& Reduce(Element &a, const Element &b) const
-            {return a = GetRing().Divide(a, b);}
-
-        const Element& Double(const Element &a) const
-            {return GetRing().Square(a);}
-
-        Element ScalarMultiply(const Element &a, const Integer &e) const
-            {return GetRing().Exponentiate(a, e);}
-
-        Element CascadeScalarMultiply(const Element &x, const Integer &e1,
-                                     const Element &y, const Integer &e2) const
-            {return GetRing().CascadeExponentiate(x, e1, y, e2);}
-
-        void SimultaneousMultiply(Element *results, const Element &base,
-                   const Integer *exponents, unsigned int exponentsCount) const
-            {GetRing().SimultaneousExponentiate(results, base, exponents,
-                                                exponentsCount);}
-
-        const AbstractRing* m_pRing;
-    };
-
-    MultiplicativeGroupT m_mg;
-};
-
-
-// Abstract Euclidean Domain
-class TAOCRYPT_NO_VTABLE AbstractEuclideanDomain
-    : public AbstractRing
-{
-public:
-    typedef Integer Element;
-
-    virtual void DivisionAlgorithm(Element &r, Element &q, const Element &a,
-                                   const Element &d) const =0;
-
-    virtual const Element& Mod(const Element &a, const Element &b) const =0;
-    virtual const Element& Gcd(const Element &a, const Element &b) const;
-
-protected:
-    mutable Element result;
-};
-
-
-// EuclideanDomainOf
-class EuclideanDomainOf : public AbstractEuclideanDomain
-{
-public:
-    typedef Integer Element;
-
-    EuclideanDomainOf() {}
-
-    bool Equal(const Element &a, const Element &b) const
-        {return a==b;}
-
-    const Element& Identity() const
-        {return Element::Zero();}
-
-    const Element& Add(const Element &a, const Element &b) const
-        {return result = a+b;}
-
-    Element& Accumulate(Element &a, const Element &b) const
-        {return a+=b;}
-
-    const Element& Inverse(const Element &a) const
-        {return result = -a;}
-
-    const Element& Subtract(const Element &a, const Element &b) const
-        {return result = a-b;}
-
-    Element& Reduce(Element &a, const Element &b) const
-        {return a-=b;}
-
-    const Element& Double(const Element &a) const
-        {return result = a.Doubled();}
-
-    const Element& MultiplicativeIdentity() const
-        {return Element::One();}
-
-    const Element& Multiply(const Element &a, const Element &b) const
-        {return result = a*b;}
-
-    const Element& Square(const Element &a) const
-        {return result = a.Squared();}
-
-    bool IsUnit(const Element &a) const
-        {return a.IsUnit();}
-
-    const Element& MultiplicativeInverse(const Element &a) const
-        {return result = a.MultiplicativeInverse();}
-
-    const Element& Divide(const Element &a, const Element &b) const
-        {return result = a/b;}
-
-    const Element& Mod(const Element &a, const Element &b) const
-        {return result = a%b;}
-
-    void DivisionAlgorithm(Element &r, Element &q, const Element &a,
-                           const Element &d) const
-        {Element::Divide(r, q, a, d);}
-
-private:
-    mutable Element result;
-};
-
-
-
-} // namespace
-
-#endif // TAO_CRYPT_ALGEBRA_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/arc4.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/arc4.hpp
deleted file mode 100644
index be64ba43..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/arc4.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* arc4.hpp defines ARC4
-*/
-
-
-#ifndef TAO_CRYPT_ARC4_HPP
-#define TAO_CRYPT_ARC4_HPP
-
-#include "misc.hpp"
-
-namespace TaoCrypt {
-
-
-// ARC4 encryption and decryption
-class ARC4 {
-public:
-    enum { STATE_SIZE = 256 };
-
-    typedef ARC4 Encryption;
-    typedef ARC4 Decryption;
-
-    ARC4() {}
-
-    void Process(byte*, const byte*, word32);
-    void SetKey(const byte*, word32);
-private:
-    byte x_;
-    byte y_;
-    byte state_[STATE_SIZE];
-
-    ARC4(const ARC4&);                  // hide copy
-    const ARC4 operator=(const ARC4&);  // and assign
-
-    void AsmProcess(byte*, const byte*, word32);
-};
-
-} // namespace
-
-
-#endif // TAO_CRYPT_ARC4_HPP
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/asn.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/asn.hpp
deleted file mode 100644
index 28c7c8f5..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/asn.hpp
+++ /dev/null
@@ -1,392 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* asn.hpp provides ASN1 BER, PublicKey, and x509v3 decoding 
-*/
-
-
-#ifndef TAO_CRYPT_ASN_HPP
-#define TAO_CRYPT_ASN_HPP
-
-
-#include 
-#include "misc.hpp"
-#include "block.hpp"
-#include "error.hpp"
-#ifdef USE_SYS_STL
-    #include 
-#else
-    #include "list.hpp"
-#endif
-
-
-namespace STL = STL_NAMESPACE;
-
-
-namespace TaoCrypt {
-
-// these tags and flags are not complete
-enum ASNTag
-{
-    BOOLEAN             = 0x01,
-    INTEGER             = 0x02,
-    BIT_STRING          = 0x03,
-    OCTET_STRING        = 0x04,
-    TAG_NULL            = 0x05,
-    OBJECT_IDENTIFIER   = 0x06,
-    OBJECT_DESCRIPTOR   = 0x07,
-    EXTERNAL            = 0x08,
-    REAL                = 0x09,
-    ENUMERATED          = 0x0a,
-    UTF8_STRING         = 0x0c,
-    SEQUENCE            = 0x10,
-    SET                 = 0x11,
-    NUMERIC_STRING      = 0x12,
-    PRINTABLE_STRING    = 0x13,
-    T61_STRING          = 0x14,
-    VIDEOTEXT_STRING    = 0x15,
-    IA5_STRING          = 0x16,
-    UTC_TIME            = 0x17,
-    GENERALIZED_TIME    = 0x18,
-    GRAPHIC_STRING      = 0x19,
-    VISIBLE_STRING      = 0x1a,
-    GENERAL_STRING      = 0x1b,
-    LONG_LENGTH         = 0x80
-};
-
-enum ASNIdFlag
-{
-    UNIVERSAL           = 0x00,
-    DATA                = 0x01,
-    HEADER              = 0x02,
-    CONSTRUCTED         = 0x20,
-    APPLICATION         = 0x40,
-    CONTEXT_SPECIFIC    = 0x80,
-    PRIVATE             = 0xc0
-};
-
-
-enum DNTags
-{
-    COMMON_NAME         = 0x03,  // CN
-    SUR_NAME            = 0x04,  // SN
-    COUNTRY_NAME        = 0x06,  // C
-    LOCALITY_NAME       = 0x07,  // L
-    STATE_NAME          = 0x08,  // ST
-    ORG_NAME            = 0x0a,  // O
-    ORGUNIT_NAME        = 0x0b   // OU
-};
-
-
-enum PCKS12_Tags
-{
-    /* DATA                      = 1, */ // from ASN1
-    SIGNED_DATA               = 2,
-    ENVELOPED_DATA            = 3,
-    SIGNED_AND_ENVELOPED_DATA = 4,
-    DIGESTED_DATA             = 5,
-    ENCRYPTED_DATA            = 6
-};
-
-
-enum Constants
-{
-    MIN_DATE_SZ   = 13,
-    MAX_DATE_SZ   = 16,
-    MAX_ALGO_SZ   = 16,
-    MAX_LENGTH_SZ =  5,    
-    MAX_SEQ_SZ    =  5,    // enum(seq|con) + length(4)
-    MAX_ALGO_SIZE =  9,
-    MAX_DIGEST_SZ = 69,    // SHA512 + enum(Bit or Octet) + length(4)
-    DSA_SIG_SZ    = 40,
-    ASN_NAME_MAX  = 512    // max total of all included names
-};
-
-
-class Source;
-class RSA_PublicKey;
-class RSA_PrivateKey;
-class DSA_PublicKey;
-class DSA_PrivateKey;
-class Integer;
-class DH;
-
-
-// General BER decoding
-class BER_Decoder : public virtual_base {
-protected:
-    Source& source_;
-public:
-    explicit BER_Decoder(Source& s) : source_(s) {}
-    virtual ~BER_Decoder() {}
-
-    Integer& GetInteger(Integer&);
-    word32   GetSequence();
-    word32   GetSet();
-    word32   GetVersion();
-    word32   GetExplicitVersion();
-
-    Error GetError();
-private:
-    virtual void ReadHeader() = 0;
-
-    BER_Decoder(const BER_Decoder&);            // hide copy
-    BER_Decoder& operator=(const BER_Decoder&); // and assign
-};
-
-
-// RSA Private Key BER Decoder
-class RSA_Private_Decoder : public BER_Decoder {
-public:
-    explicit RSA_Private_Decoder(Source& s) : BER_Decoder(s) {}
-    void Decode(RSA_PrivateKey&);
-private:
-    void ReadHeader();
-};
-
-
-// RSA Public Key BER Decoder
-class RSA_Public_Decoder : public BER_Decoder {
-public:
-    explicit RSA_Public_Decoder(Source& s) : BER_Decoder(s) {}
-    void Decode(RSA_PublicKey&);
-private:
-    void ReadHeader();
-    void ReadHeaderOpenSSL();
-};
-
-
-// DSA Private Key BER Decoder
-class DSA_Private_Decoder : public BER_Decoder {
-public:
-    explicit DSA_Private_Decoder(Source& s) : BER_Decoder(s) {}
-    void Decode(DSA_PrivateKey&);
-private:
-    void ReadHeader();
-};
-
-
-// DSA Public Key BER Decoder
-class DSA_Public_Decoder : public BER_Decoder {
-public:
-    explicit DSA_Public_Decoder(Source& s) : BER_Decoder(s) {}
-    void Decode(DSA_PublicKey&);
-private:
-    void ReadHeader();
-};
-
-
-// DH Key BER Decoder
-class DH_Decoder : public BER_Decoder {
-public:
-    explicit DH_Decoder(Source& s) : BER_Decoder(s) {}
-    void Decode(DH&);
-private:
-    void ReadHeader();
-};
-
-
-// PKCS12 BER Decoder
-class PKCS12_Decoder : public BER_Decoder {
-public:
-    explicit PKCS12_Decoder(Source& s) : BER_Decoder(s) {}
-    void Decode();
-private:
-    void ReadHeader();
-};
-
-
-// General PublicKey
-class PublicKey {
-    byte*  key_;
-    word32 sz_;
-public:
-    explicit PublicKey(const byte* k = 0, word32 s = 0);
-    ~PublicKey() { tcArrayDelete(key_); }
-
-    const byte* GetKey() const { return key_; }
-    word32      size()   const { return sz_; }
-
-    void SetKey(const byte*);
-    void SetSize(word32 s);
-
-    void AddToEnd(const byte*, word32);
-private:
-    PublicKey(const PublicKey&);            // hide copy
-    PublicKey& operator=(const PublicKey&); // and assign
-};
-
-
-enum { SHA_SIZE = 20 };
-
-
-// A Signing Authority
-class Signer {
-    PublicKey key_;
-    char      name_[ASN_NAME_MAX];
-    byte      hash_[SHA_SIZE];
-public:
-    Signer(const byte* k, word32 kSz, const char* n, const byte* h);
-    ~Signer();
-
-    const PublicKey& GetPublicKey()  const { return key_; }
-    const char*      GetName()       const { return name_; }
-    const byte*      GetHash()       const { return hash_; }
-
-private:
-    Signer(const Signer&);              // hide copy
-    Signer& operator=(const Signer&);   // and assign
-};
-
-
-typedef STL::list SignerList;
-
-
-enum ContentType { HUH = 651 };
-enum SigType  { SHAwDSA = 517, MD2wRSA = 646, MD5wRSA = 648, SHAwRSA = 649,
-                SHA256wRSA = 655, SHA384wRSA = 656, SHA512wRSA = 657,
-                SHA256wDSA = 416 };
-enum HashType { MD2h = 646, MD5h = 649, SHAh = 88, SHA256h = 414, SHA384h = 415,
-                SHA512h = 416 };
-enum KeyType  { DSAk = 515, RSAk = 645 };     // sums of algo OID
-
-
-// an x509v Certificate BER Decoder
-class CertDecoder : public BER_Decoder {
-public:
-    enum DateType { BEFORE, AFTER };   
-    enum NameType { ISSUER, SUBJECT };
-    enum CertType { CA, USER };
-
-    explicit CertDecoder(Source&, bool decode = true, SignerList* sl = 0,
-                         bool noVerify = false, CertType ct = USER);
-    ~CertDecoder();
-
-    const PublicKey& GetPublicKey()  const { return key_; }
-    KeyType          GetKeyType()    const { return KeyType(keyOID_); }
-    const char*      GetIssuer()     const { return issuer_; }
-    const char*      GetCommonName() const { return subject_; }
-    const byte*      GetHash()       const { return subjectHash_; }
-    const char*      GetBeforeDate() const { return beforeDate_; }
-    byte             GetBeforeDateType() const { return beforeDateType_; }
-    const char*      GetAfterDate()  const { return afterDate_; }
-    byte             GetAfterDateType() const { return afterDateType_; }
-    int              GetSubjectCnStart()  const { return subCnPos_; }
-    int              GetIssuerCnStart()   const { return issCnPos_; }
-    int              GetSubjectCnLength() const { return subCnLen_; }
-    int              GetIssuerCnLength()  const { return issCnLen_; }
-    void DecodeToKey();
-private:
-    PublicKey key_;
-    word32    certBegin_;               // offset to start of cert
-    word32    sigIndex_;                // offset to start of signature
-    word32    sigLength_;               // length of signature
-    word32    signatureOID_;            // sum of algorithm object id
-    word32    keyOID_;                  // sum of key algo  object id
-    int       subCnPos_;                // subject common name start, -1 is none
-    int       subCnLen_;                // length of above
-    int       issCnPos_;                // issuer common name start, -1 is none
-    int       issCnLen_;                // length of above
-    byte      subjectHash_[SHA_SIZE];   // hash of all Names
-    byte      issuerHash_[SHA_SIZE];    // hash of all Names
-    byte*     signature_;
-    char      issuer_[ASN_NAME_MAX];    // Names
-    char      subject_[ASN_NAME_MAX];   // Names
-    char      beforeDate_[MAX_DATE_SZ+1]; // valid before date, +null term
-    byte      beforeDateType_;            // beforeDate time type
-    char      afterDate_[MAX_DATE_SZ+1];  // valid after date, +null term
-    byte      afterDateType_;             // afterDate time type
-    bool      verify_;                    // Default to yes, but could be off
-
-    void   ReadHeader();
-    void   Decode(SignerList*, CertType);
-    void   StoreKey();
-    void   AddDSA();
-    bool   ValidateSelfSignature();
-    bool   ValidateSignature(SignerList*);
-    bool   ConfirmSignature(Source&);
-    void   GetKey();
-    char*  AddTag(char*, const char*, const char*, word32, word32);
-    void   GetName(NameType);
-    void   GetValidity();
-    void   GetDate(DateType);
-    void   GetCompareHash(const byte*, word32, byte*, word32);
-    word32 GetAlgoId();
-    word32 GetSignature();
-    word32 GetDigest();
-};
-
-
-word32 GetLength(Source&);
-
-word32 SetLength(word32, byte*);
-word32 SetSequence(word32, byte*);
-
-word32 EncodeDSA_Signature(const byte* signature, byte* output);
-word32 EncodeDSA_Signature(const Integer& r, const Integer& s, byte* output);
-word32 DecodeDSA_Signature(byte* decoded, const byte* encoded, word32 sz);
-
-
-// General DER encoding
-class DER_Encoder : public virtual_base {
-public:
-    DER_Encoder() {}
-    virtual ~DER_Encoder() {}
-
-    word32 SetAlgoID(HashType, byte*);
-
-    Error  GetError() const { return error_; }
-private:
-    //virtual void WriteHeader() = 0;
-    Error error_;
-
-    DER_Encoder(const DER_Encoder&);            // hide copy
-    DER_Encoder& operator=(const DER_Encoder&); // and assign
-};
-
-
-
-class Signature_Encoder : public DER_Encoder {
-    const byte* digest_;
-    word32      digestSz_;
-    SigType     digestOID_;
-public:
-    explicit Signature_Encoder(const byte*, word32, HashType, Source&);
-
-private:
-    void   WriteHeader();
-    word32 SetDigest(const byte*, word32, byte*);
-
-    Signature_Encoder(const Signature_Encoder&);            // hide copy
-    Signature_Encoder& operator=(const Signature_Encoder&); // and assign
-};
-
-
-// Get Cert in PEM format from BEGIN to END
-int GetCert(Source&);
-
-// Get Cert in PEM format from pkcs12 file
-int GetPKCS_Cert(const char* password, Source&);
-
-bool ASN1_TIME_extract(const unsigned char* date, unsigned char format,
-                       tm *parsed_time);
-
-} // namespace
-
-
-#endif // TAO_CRYPT_ASN_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/block.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/block.hpp
deleted file mode 100644
index 4f58c82f..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/block.hpp
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* block.hpp provides word and byte blocks with configurable allocators
-*/
-
-
-#ifndef TAO_CRYPT_BLOCK_HPP
-#define TAO_CRYPT_BLOCK_HPP
-
-#include "misc.hpp"
-#include          // memcpy
-#include          // ptrdiff_t
-
-#ifdef USE_SYS_STL
-    #include 
-#else
-    #include "algorithm.hpp"
-#endif
-
-
-namespace STL = STL_NAMESPACE;
-
-
-namespace TaoCrypt {
-
-
-// a Base class for Allocators
-template
-class AllocatorBase
-{
-public:
-    typedef T         value_type;
-    typedef size_t    size_type;
-    typedef ptrdiff_t difference_type;
-    typedef T*        pointer;
-    typedef const T*  const_pointer;
-    typedef T&        reference;
-    typedef const T&  const_reference;
-
-    pointer       address(reference r) const {return (&r);}
-    const_pointer address(const_reference r) const {return (&r); }
-    void          construct(pointer p, const T& val) {new (p) T(val);}
-    void          destroy(pointer p) {p->~T();}
-    size_type     max_size() const {return ~size_type(0)/sizeof(T);}
-protected:
-};
-
-
-// General purpose realloc
-template
-typename A::pointer StdReallocate(A& a, T* p, typename A::size_type oldSize,
-                                  typename A::size_type newSize, bool preserve)
-{
-    if (oldSize == newSize)
-        return p;
-
-    if (preserve) {
-        A b = A();
-        typename A::pointer newPointer = b.allocate(newSize, 0);
-        memcpy(newPointer, p, sizeof(T) * min(oldSize, newSize));
-        a.deallocate(p, oldSize);
-        STL::swap(a, b);
-        return newPointer;
-    }
-    else {
-        a.deallocate(p, oldSize);
-        return a.allocate(newSize, 0);
-    }
-}
-
-
-// Allocator that zeros out memory on deletion
-template 
-class AllocatorWithCleanup : public AllocatorBase
-{
-public:
-    typedef typename AllocatorBase::pointer   pointer;
-    typedef typename AllocatorBase::size_type size_type;
-
-    pointer allocate(size_type n, const void* = 0)
-    {
-        if (n > this->max_size())
-            return 0;
-        if (n == 0)
-            return 0;
-        return NEW_TC T[n];
-    }
-
-    void deallocate(void* p, size_type n)
-    {
-        memset(p, 0, n * sizeof(T));
-        tcArrayDelete((T*)p);
-    }
-
-    pointer reallocate(T* p, size_type oldSize, size_type newSize,
-                       bool preserve)
-    {
-        return StdReallocate(*this, p, oldSize, newSize, preserve);
-    }
-
-    // VS.NET STL enforces the policy of "All STL-compliant allocators have to
-    // provide a template class member called rebind".
-    template  struct rebind { typedef AllocatorWithCleanup other;};
-};
-
-
-// Block class template
-template >
-class Block {
-public:
-    explicit Block(word32 s = 0) : sz_(s), buffer_(allocator_.allocate(sz_)) 
-                    { CleanNew(sz_); }
-
-    Block(const T* buff, word32 s) : sz_(s), buffer_(allocator_.allocate(sz_))
-        { memcpy(buffer_, buff, sz_ * sizeof(T)); }
-
-    Block(const Block& that) : sz_(that.sz_), buffer_(allocator_.allocate(sz_))
-        { memcpy(buffer_, that.buffer_, sz_ * sizeof(T)); }
-
-    Block& operator=(const Block& that) {
-        Block tmp(that);
-        Swap(tmp);
-        return *this;
-    }
-
-    T& operator[] (word32 i) { return buffer_[i]; }
-    const T& operator[] (word32 i) const { return buffer_[i]; }
-
-    T* operator+ (word32 i) { return buffer_ + i; }
-    const T* operator+ (word32 i) const { return buffer_ + i; }
-
-    word32 size() const { return sz_; }
-
-    T* get_buffer() const { return buffer_; }
-    T* begin()      const { return get_buffer(); }
-
-    void CleanGrow(word32 newSize)
-    {
-        if (newSize > sz_) {
-            buffer_ = allocator_.reallocate(buffer_, sz_, newSize, true);
-            memset(buffer_ + sz_, 0, (newSize - sz_) * sizeof(T));
-            sz_ = newSize;
-        }
-    }
-
-    void CleanNew(word32 newSize)
-    {
-        New(newSize);
-        memset(buffer_, 0, sz_ * sizeof(T));
-    }
-
-    void New(word32 newSize)
-    {
-        buffer_ = allocator_.reallocate(buffer_, sz_, newSize, false);
-        sz_ = newSize;
-    }
-
-    void resize(word32 newSize)
-    {
-        buffer_ = allocator_.reallocate(buffer_, sz_, newSize, true);
-        sz_ = newSize;
-    }
-
-    void Swap(Block& other) {
-        STL::swap(sz_, other.sz_);
-        STL::swap(buffer_, other.buffer_);
-        STL::swap(allocator_, other.allocator_);
-    }
-
-    ~Block() { allocator_.deallocate(buffer_, sz_); }
-private:
-    A      allocator_;
-    word32 sz_;     // size in Ts
-    T*     buffer_;
-};
-
-
-typedef Block   ByteBlock;
-typedef Block   WordBlock;
-typedef Block Word32Block;
-
-
-} // namespace
-
-#endif // TAO_CRYPT_BLOCK_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/blowfish.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/blowfish.hpp
deleted file mode 100644
index 1f8d0589..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/blowfish.hpp
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
-   Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* blowfish.hpp defines Blowfish
-*/
-
-
-#ifndef TAO_CRYPT_BLOWFISH_HPP
-#define TAO_CRYPT_BLOWFISH_HPP
-
-#include "misc.hpp"
-#include "modes.hpp"
-#ifdef USE_SYS_STL
-    #include 
-#else
-    #include "algorithm.hpp"
-#endif
-
-
-namespace STL = STL_NAMESPACE;
-
-
-#if defined(TAOCRYPT_X86ASM_AVAILABLE) && defined(TAO_ASM)
-    #define DO_BLOWFISH_ASM
-#endif
-
-
-namespace TaoCrypt {
-
-enum { BLOWFISH_BLOCK_SIZE = 8 };
-
-
-// Blowfish encryption and decryption, see 
-class Blowfish : public Mode_BASE {
-public:
-    enum { BLOCK_SIZE = BLOWFISH_BLOCK_SIZE, ROUNDS = 16 };
-
-    Blowfish(CipherDir DIR, Mode MODE)
-        : Mode_BASE(BLOCK_SIZE, DIR, MODE), sbox_(pbox_ + ROUNDS + 2) {}
-
-#ifdef DO_BLOWFISH_ASM
-    void Process(byte*, const byte*, word32);
-#endif
-    void SetKey(const byte* key, word32 sz, CipherDir fake = ENCRYPTION);
-    void SetIV(const byte* iv) { memcpy(r_, iv, BLOCK_SIZE); }
-private:
-    static const word32 p_init_[ROUNDS + 2];
-    static const word32 s_init_[4 * 256];
-
-    word32 pbox_[ROUNDS + 2 + 4 * 256];
-    word32* sbox_;
-
-    void crypt_block(const word32 in[2], word32 out[2]) const;
-    void AsmProcess(const byte* in, byte* out) const;
-    void ProcessAndXorBlock(const byte*, const byte*, byte*) const;
-
-    Blowfish(const Blowfish&);            // hide copy
-    Blowfish& operator=(const Blowfish&); // and assign
-};
-
-
-typedef BlockCipher Blowfish_ECB_Encryption;
-typedef BlockCipher Blowfish_ECB_Decryption;
-
-typedef BlockCipher Blowfish_CBC_Encryption;
-typedef BlockCipher Blowfish_CBC_Decryption;
-
-
-
-} // namespace
-
-#endif // TAO_CRYPT_BLOWFISH_HPP
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/coding.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/coding.hpp
deleted file mode 100644
index 61ac9935..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/coding.hpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* coding.hpp defines hex and base64 encoding/decoing
-*/
-
-#ifndef TAO_CRYPT_CODING_HPP
-#define TAO_CRYPT_CODING_HPP
-
-#include "misc.hpp"
-#include "block.hpp"
-
-namespace TaoCrypt {
-
-class Source;
-
-
-// Hex Encoding, see RFC 3548
-class HexEncoder {
-    ByteBlock encoded_;
-    Source&     plain_;
-public:
-    explicit HexEncoder(Source& s) : plain_(s) { Encode(); }
-private:
-    void Encode();
-
-    HexEncoder(const HexEncoder&);              // hide copy
-    HexEncoder& operator=(const HexEncoder&);   // and assign
-};
-
-
-// Hex Decoding, see RFC 3548
-class HexDecoder {
-    ByteBlock decoded_;
-    Source&     coded_;
-public:
-    explicit HexDecoder(Source& s) : coded_(s) { Decode(); }
-private:
-    void Decode();
-
-    HexDecoder(const HexDecoder&);              // hide copy
-    HexDecoder& operator=(const HexDecoder&);   // and assign
-};
-
-
-// Base 64 encoding, see RFC 3548
-class Base64Encoder {
-    ByteBlock encoded_;
-    Source&     plain_;
-public:
-    explicit Base64Encoder(Source& s) : plain_(s) { Encode(); }
-private:
-    void Encode();
-
-    Base64Encoder(const Base64Encoder&);              // hide copy
-    Base64Encoder& operator=(const Base64Encoder&);   // and assign
-};
-
-
-// Base 64 decoding, see RFC 3548
-class Base64Decoder {
-    ByteBlock decoded_;
-    Source&     coded_;
-public:
-    explicit Base64Decoder(Source& s) : coded_(s) { Decode(); }
-private:
-    void Decode();
-
-    Base64Decoder(const Base64Decoder&);              // hide copy
-    Base64Decoder& operator=(const Base64Decoder&);   // and assign
-};
-
-
-}  // namespace
-
-#endif // TAO_CRYPT_CODING_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/des.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/des.hpp
deleted file mode 100644
index d88e9ef2..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/des.hpp
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* des.hpp defines DES, DES_EDE2, and DES_EDE3
-   see FIPS 46-2 and FIPS 81
-*/
-
-
-#ifndef TAO_CRYPT_DES_HPP
-#define TAO_CRYPT_DES_HPP
-
-#include "misc.hpp"
-#include "modes.hpp"
-
-
-#if defined(TAOCRYPT_X86ASM_AVAILABLE) && defined(TAO_ASM)
-    #define DO_DES_ASM
-#endif
-
-
-namespace TaoCrypt {
-
-
-enum { DES_BLOCK_SIZE = 8, DES_KEY_SIZE = 32 };
-
-
-class BasicDES {
-public:
-    void SetKey(const byte*, word32, CipherDir dir);
-    void RawProcessBlock(word32&, word32&) const;
-protected:
-    word32 k_[DES_KEY_SIZE];
-};
-
-
-// DES 
-class DES : public Mode_BASE, public BasicDES {
-public:
-    DES(CipherDir DIR, Mode MODE) 
-        : Mode_BASE(DES_BLOCK_SIZE, DIR, MODE) {}
-
-private:
-    void ProcessAndXorBlock(const byte*, const byte*, byte*) const;
-
-    DES(const DES&);              // hide copy
-    DES& operator=(const DES&);   // and assign
-};
-
-
-// DES_EDE2
-class DES_EDE2 : public Mode_BASE {
-public:
-    DES_EDE2(CipherDir DIR, Mode MODE) 
-        : Mode_BASE(DES_BLOCK_SIZE, DIR, MODE) {}
-
-    void SetKey(const byte*, word32, CipherDir dir);
-private:
-    BasicDES  des1_;
-    BasicDES  des2_;
-
-    void ProcessAndXorBlock(const byte*, const byte*, byte*) const;
-
-    DES_EDE2(const DES_EDE2&);              // hide copy
-    DES_EDE2& operator=(const DES_EDE2&);   // and assign
-};
-
-
-
-// DES_EDE3
-class DES_EDE3 : public Mode_BASE {
-public:
-    DES_EDE3(CipherDir DIR, Mode MODE)
-        : Mode_BASE(DES_BLOCK_SIZE, DIR, MODE) {}
-
-    void SetKey(const byte*, word32, CipherDir dir);
-    void SetIV(const byte* iv) { memcpy(r_, iv, DES_BLOCK_SIZE); }
-#ifdef DO_DES_ASM
-    void Process(byte*, const byte*, word32);
-#endif
-private:
-    BasicDES  des1_;
-    BasicDES  des2_;
-    BasicDES  des3_;
-
-    void AsmProcess(const byte* in, byte* out, void* box) const;
-    void ProcessAndXorBlock(const byte*, const byte*, byte*) const;
-
-    DES_EDE3(const DES_EDE3&);              // hide copy
-    DES_EDE3& operator=(const DES_EDE3&);   // and assign
-};
-
-
-typedef BlockCipher DES_ECB_Encryption;
-typedef BlockCipher DES_ECB_Decryption;
-
-typedef BlockCipher DES_CBC_Encryption;
-typedef BlockCipher DES_CBC_Decryption;
-
-typedef BlockCipher DES_EDE2_ECB_Encryption;
-typedef BlockCipher DES_EDE2_ECB_Decryption;
-
-typedef BlockCipher DES_EDE2_CBC_Encryption;
-typedef BlockCipher DES_EDE2_CBC_Decryption;
-
-typedef BlockCipher DES_EDE3_ECB_Encryption;
-typedef BlockCipher DES_EDE3_ECB_Decryption;
-
-typedef BlockCipher DES_EDE3_CBC_Encryption;
-typedef BlockCipher DES_EDE3_CBC_Decryption;
-
-
-} // namespace
-
-
-#endif // TAO_CRYPT_DES_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/dh.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/dh.hpp
deleted file mode 100644
index bdb90dda..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/dh.hpp
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* dh.hpp provides Diffie-Hellman support
-*/
-
-
-#ifndef TAO_CRYPT_DH_HPP
-#define TAO_CRYPT_DH_HPP
-
-#include "misc.hpp"
-#include "integer.hpp"
-
-namespace TaoCrypt {
-
-
-class Source;
-
-
-// Diffie-Hellman
-class DH {
-public:
-    DH() {}
-    DH(Integer& p, Integer& g) : p_(p), g_(g) {}
-    explicit DH(Source&);
-
-    DH(const DH& that) : p_(that.p_), g_(that.g_) {}
-    DH& operator=(const DH& that) 
-    {
-        DH tmp(that);
-        Swap(tmp);
-        return *this;
-    }
-
-    void Swap(DH& other)
-    {
-        p_.Swap(other.p_);
-        g_.Swap(other.g_);
-    }
-
-    void Initialize(Source&);
-    void Initialize(Integer& p, Integer& g)
-    {
-        SetP(p);
-        SetG(g);
-    }
-
-    void GenerateKeyPair(RandomNumberGenerator&, byte*, byte*);
-    void Agree(byte*, const byte*, const byte*, word32 otherSz = 0);
-
-    void SetP(const Integer& p) { p_ = p; }
-    void SetG(const Integer& g) { g_ = g; }
-
-    Integer& GetP() { return p_; }
-    Integer& GetG() { return g_; }
-
-    // for p and agree
-    word32 GetByteLength() const { return p_.ByteCount(); }
-private:
-    // group parms
-    Integer p_;
-    Integer g_;
-
-    void GeneratePrivate(RandomNumberGenerator&, byte*);
-    void GeneratePublic(const byte*, byte*);    
-};
-
-
-} // namespace
-
-#endif // TAO_CRYPT_DH_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/dsa.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/dsa.hpp
deleted file mode 100644
index d7f81c27..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/dsa.hpp
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* dsa.hpp provides Digitial Signautre Algorithm see FIPS 186-2
-*/
-
-#ifndef TAO_CRYPT_DSA_HPP
-#define TAO_CRYPT_DSA_HPP
-
-#include "integer.hpp"
-
-
-namespace TaoCrypt {
-
-class Source;
-
-
-class DSA_PublicKey {
-protected:
-    Integer p_;
-    Integer q_;
-    Integer g_;
-    Integer y_;
-public:
-    DSA_PublicKey() {}
-    explicit DSA_PublicKey(Source&);
-
-    void Initialize(Source&);
-    void Initialize(const Integer& p, const Integer& q, const Integer& g,
-                    const Integer& y);
-    
-    const Integer& GetModulus() const;
-    const Integer& GetSubGroupOrder() const;
-    const Integer& GetSubGroupGenerator() const;
-    const Integer& GetPublicPart() const;
-
-    void SetModulus(const Integer&);
-    void SetSubGroupOrder(const Integer&);
-    void SetSubGroupGenerator(const Integer&);
-    void SetPublicPart(const Integer&);
-
-    word32 SignatureLength() const;
- 
-    DSA_PublicKey(const DSA_PublicKey&);
-    DSA_PublicKey& operator=(const DSA_PublicKey&);
-
-    void Swap(DSA_PublicKey& other);
-};
-
-
-
-class DSA_PrivateKey : public DSA_PublicKey {
-    Integer x_;
-public:
-    DSA_PrivateKey() {}
-    explicit DSA_PrivateKey(Source&);
-
-    void Initialize(Source&);
-    void Initialize(const Integer& p, const Integer& q, const Integer& g,
-                    const Integer& y, const Integer& x);
-    
-    const Integer& GetPrivatePart() const;
-
-    void SetPrivatePart(const Integer&);
-private:
-    DSA_PrivateKey(const DSA_PrivateKey&);            // hide copy
-    DSA_PrivateKey& operator=(const DSA_PrivateKey&); // and assign
-};
-
-
-
-class DSA_Signer {
-    const DSA_PrivateKey& key_;
-    Integer               r_;
-    Integer               s_;
-public:
-    explicit DSA_Signer(const DSA_PrivateKey&);
-
-    word32 Sign(const byte* sha_digest, byte* sig, RandomNumberGenerator&);
-
-    const Integer& GetR() const;
-    const Integer& GetS() const;
-private:
-    DSA_Signer(const DSA_Signer&);      // hide copy
-    DSA_Signer& operator=(DSA_Signer&); // and assign
-};
-
-
-class DSA_Verifier {
-    const DSA_PublicKey& key_;
-    Integer              r_;
-    Integer              s_;
-public:
-    explicit DSA_Verifier(const DSA_PublicKey&);
-
-    bool Verify(const byte* sha_digest, const byte* sig);
-
-    const Integer& GetR() const;
-    const Integer& GetS() const;
-private:
-    DSA_Verifier(const DSA_Verifier&);              // hide copy
-    DSA_Verifier& operator=(const DSA_Verifier&);   // and assign
-};
-
-
-
-
-
-} // namespace
-
-#endif // TAO_CRYPT_DSA_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/error.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/error.hpp
deleted file mode 100644
index cb2130d4..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/error.hpp
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* error.hpp provides a taocrypt error numbers
- *
- */
-
-
-#ifndef TAO_CRYPT_ERROR_HPP
-#define TAO_CRYPT_ERROR_HPP
-
-
-namespace TaoCrypt {
-
-
-enum ErrorNumber {
-
-NO_ERROR_E   =    0, // "not in error state"
-
-// RandomNumberGenerator
-WINCRYPT_E      = 1001, // "bad wincrypt acquire"
-CRYPTGEN_E      = 1002, // "CryptGenRandom error"
-OPEN_RAN_E      = 1003, // "open /dev/urandom error"
-READ_RAN_E      = 1004, // "read /dev/urandom error"
-
-// Integer
-INTEGER_E       = 1010, // "bad DER Integer Header"
-
-
-// ASN.1
-SEQUENCE_E      = 1020, // "bad Sequence Header"
-SET_E           = 1021, // "bad Set Header"
-VERSION_E       = 1022, // "version length not 1"
-SIG_OID_E       = 1023, // "signature OID mismatch"
-BIT_STR_E       = 1024, // "bad BitString Header"
-UNKNOWN_OID_E   = 1025, // "unknown key OID type"
-OBJECT_ID_E     = 1026, // "bad Ojbect ID Header"
-TAG_NULL_E      = 1027, // "expected TAG NULL"
-EXPECT_0_E      = 1028, // "expected 0"
-OCTET_STR_E     = 1029, // "bad Octet String Header"
-TIME_E          = 1030, // "bad TIME"
-
-DATE_SZ_E       = 1031, // "bad Date Size"
-SIG_LEN_E       = 1032, // "bad Signature Length"
-UNKOWN_SIG_E    = 1033, // "unknown signature OID"
-UNKOWN_HASH_E   = 1034, // "unknown hash OID"
-DSA_SZ_E        = 1035, // "bad DSA r or s size"
-BEFORE_DATE_E   = 1036, // "before date in the future"
-AFTER_DATE_E    = 1037, // "after date in the past"
-SIG_CONFIRM_E   = 1038, // "bad self  signature confirmation"
-SIG_OTHER_E     = 1039, // "bad other signature confirmation"
-
-CONTENT_E       = 1040, // "bad content processing"
-PEM_E           = 1041  // "bad pem format error"
-
-    //  add error string to yassl/src/yassl_error.cpp !!! 
-};
-
-
-struct Error {
-    ErrorNumber  what_;    // description number, 0 for no error
-
-    explicit Error(ErrorNumber w = NO_ERROR_E) : what_(w) {}
-
-    ErrorNumber What()            const  { return what_; }
-    void        SetError(ErrorNumber w)  { what_ = w; }
-};
-
-
-
-} // namespace TaoCrypt
-
-#endif // TAO_CRYPT_ERROR_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/file.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/file.hpp
deleted file mode 100644
index 9851a001..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/file.hpp
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* file.hpp provies File Sources and Sinks
-*/
-
-
-#ifndef TAO_CRYPT_FILE_HPP
-#define TAO_CRYPT_FILE_HPP
-
-#include "misc.hpp"
-#include "block.hpp"
-#include "error.hpp"
-#include 
-
-namespace TaoCrypt {
-
-
-class Source {
-    ByteBlock buffer_;
-    word32    current_;
-    Error     error_;
-public:
-    explicit Source(word32 sz = 0) : buffer_(sz), current_(0) {}
-    Source(const byte* b, word32 sz) : buffer_(b, sz), current_(0) {}
-
-    word32 remaining()         { if (GetError().What()) return 0;
-                                 else return buffer_.size() - current_; } 
-    word32 size() const        { return buffer_.size(); }
-    void   grow(word32 sz)     { buffer_.CleanGrow(sz); }
-
-    bool IsLeft(word32 sz) { if (remaining() >= sz) return true;
-                             else { SetError(CONTENT_E); return false; } }
-   
-    const byte*  get_buffer()  const { return buffer_.get_buffer(); }
-    const byte*  get_current() const { return &buffer_[current_]; }
-    word32       get_index()   const { return current_; }
-    void         set_index(word32 i) { if (i < size()) current_ = i; }
-
-    byte operator[] (word32 i) { current_ = i; return next(); }
-    byte next() { if (IsLeft(1)) return buffer_[current_++]; else return 0; }
-    byte prev() { if (current_)  return buffer_[--current_]; else return 0; }
-
-    void add(const byte* data, word32 len)
-    {
-        if (IsLeft(len)) {
-            memcpy(buffer_.get_buffer() + current_, data, len);
-            current_ += len;
-        }
-    }
-
-    void advance(word32 i) { if (IsLeft(i)) current_ += i; }
-    void reset(ByteBlock&);
-
-    Error  GetError()              { return error_; }
-    void   SetError(ErrorNumber w) { error_.SetError(w); }
-
-    friend class FileSource;  // for get()
-
-    Source(const Source& that)
-        : buffer_(that.buffer_), current_(that.current_) {}
-
-    Source& operator=(const Source& that)
-    {
-        Source tmp(that);
-        Swap(tmp);
-        return *this;
-    }
-
-    void Swap(Source& other) 
-    {
-        buffer_.Swap(other.buffer_);
-        STL::swap(current_, other.current_);
-    }
-
-};
-
-
-// File Source
-class FileSource {
-    FILE* file_;
-public:
-    FileSource(const char* fname, Source& source);
-    ~FileSource();
-   
-    word32   size(bool use_current = false);
-private:
-    word32   get(Source&);
-    word32   size_left();                     
-
-    FileSource(const FileSource&);            // hide
-    FileSource& operator=(const FileSource&); // hide
-};
-
-
-// File Sink
-class FileSink {
-    FILE* file_;
-public:
-    FileSink(const char* fname, Source& source);
-    ~FileSink();
-
-    word32 size(bool use_current = false);
-private:
-    void put(Source&);
-
-    FileSink(const FileSink&);            // hide
-    FileSink& operator=(const FileSink&); // hide
-};
-
-
-
-} // namespace
-
-#endif // TAO_CRYPT_FILE_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/hash.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/hash.hpp
deleted file mode 100644
index 4d2f7dd3..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/hash.hpp
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* hash.hpp provides a base for digest types
-*/
-
-
-#ifndef TAO_CRYPT_HASH_HPP
-#define TAO_CRYPT_HASH_HPP
-
-#include "misc.hpp"
-
-namespace TaoCrypt {
-
-
-// HASH
-class HASH : public virtual_base {
-public:
-    virtual ~HASH() {}
-
-    virtual void Update(const byte*, word32) = 0;
-    virtual void Final(byte*)                = 0;
-
-    virtual void Init() = 0;
-
-    virtual word32 getBlockSize()  const = 0;
-    virtual word32 getDigestSize() const = 0;
-};
-
-
-// HASH with Transform
-class HASHwithTransform : public HASH {
-public:
-    HASHwithTransform(word32 digSz, word32 buffSz);
-    virtual ~HASHwithTransform() {}
-    virtual ByteOrder getByteOrder()  const = 0;
-    virtual word32    getPadSize()    const = 0;
-
-    virtual void Update(const byte*, word32);
-    virtual void Final(byte*);
-
-    word32  GetBitCountLo() const { return  loLen_ << 3; }
-    word32  GetBitCountHi() const { return (loLen_ >> (8*sizeof(loLen_) - 3)) +
-                                           (hiLen_ << 3); } 
-    enum { MaxDigestSz = 8, MaxBufferSz = 64 };
-protected:
-    typedef word32 HashLengthType;
-    word32          buffLen_;   // in bytes
-    HashLengthType  loLen_;     // length in bytes
-    HashLengthType  hiLen_;     // length in bytes
-    word32          digest_[MaxDigestSz];
-    word32          buffer_[MaxBufferSz / sizeof(word32)];
-
-    virtual void Transform() = 0;
-
-    void AddLength(word32);
-};
-
-
-#ifdef WORD64_AVAILABLE
-
-// 64-bit HASH with Transform
-class HASH64withTransform : public HASH {
-public:
-    HASH64withTransform(word32 digSz, word32 buffSz);
-    virtual ~HASH64withTransform() {}
-    virtual ByteOrder getByteOrder()  const = 0;
-    virtual word32    getPadSize()    const = 0;
-
-    virtual void Update(const byte*, word32);
-    virtual void Final(byte*);
-
-    word32  GetBitCountLo() const { return  loLen_ << 3; }
-    word32  GetBitCountHi() const { return (loLen_ >> (8*sizeof(loLen_) - 3)) +
-                                           (hiLen_ << 3); } 
-    enum { MaxDigestSz = 8, MaxBufferSz = 128 };
-protected:
-    typedef word32 HashLengthType;
-    word32          buffLen_;   // in bytes
-    HashLengthType  loLen_;     // length in bytes
-    HashLengthType  hiLen_;     // length in bytes
-    word64          digest_[MaxDigestSz];
-    word64          buffer_[MaxBufferSz / sizeof(word64)];
-
-    virtual void Transform() = 0;
-
-    void AddLength(word32);
-};
-
-#endif // WORD64_AVAILABLE
-
-
-} // namespace
-
-#endif // TAO_CRYPT_HASH_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/hc128.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/hc128.hpp
deleted file mode 100644
index 69e9d638..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/hc128.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-   Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* hc128.hpp defines HC128
-*/
-
-
-#ifndef TAO_CRYPT_HC128_HPP
-#define TAO_CRYPT_HC128_HPP
-
-#include "misc.hpp"
-
-namespace TaoCrypt {
-
-
-// HC128 encryption and decryption
-class HC128 {
-public:
-
-    typedef HC128 Encryption;
-    typedef HC128 Decryption;
-
-
-    HC128() {}
-
-    void Process(byte*, const byte*, word32);
-    void SetKey(const byte*, const byte*);
-private:
-    word32 T_[1024];             /* P[i] = T[i];  Q[i] = T[1024 + i ]; */
-    word32 X_[16];
-    word32 Y_[16];
-    word32 counter1024_;         /* counter1024 = i mod 1024 at the ith step */
-    word32 key_[8];
-    word32 iv_[8];
-
-    void SetIV(const byte*);
-    void GenerateKeystream(word32*);
-    void SetupUpdate();
-
-    HC128(const HC128&);                  // hide copy
-    const HC128 operator=(const HC128&);  // and assign
-};
-
-} // namespace
-
-
-#endif // TAO_CRYPT_HC128_HPP
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/hmac.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/hmac.hpp
deleted file mode 100644
index 4df081b8..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/hmac.hpp
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* hamc.hpp implements HMAC, see RFC 2104
-*/
-
-
-#ifndef TAO_CRYPT_HMAC_HPP
-#define TAO_CRYPT_HMAC_HPP
-
-#include "hash.hpp"
-
-namespace TaoCrypt {
-
-
-// HMAC class template
-template 
-class HMAC {
-public:
-    enum { IPAD = 0x36, OPAD = 0x5C };
-
-    HMAC() : ipad_(reinterpret_cast(&ip_)), 
-             opad_(reinterpret_cast(&op_)),
-             innerHash_(reinterpret_cast(&innerH_)) 
-    { 
-        Init(); 
-    }
-    void Update(const byte*, word32);
-    void Final(byte*);
-    void Init();
-
-    void SetKey(const byte*, word32);
-private:
-    byte* ipad_;
-    byte* opad_;
-    byte* innerHash_;
-    bool  innerHashKeyed_;
-    T     mac_;
-
-    // MSVC 6 HACK, gives compiler error if calculated in array
-    enum { HMAC_BSIZE = T::BLOCK_SIZE  / sizeof(word32),
-           HMAC_DSIZE = T::DIGEST_SIZE / sizeof(word32) };
-
-    word32 ip_[HMAC_BSIZE];          // align ipad_ on word32
-    word32 op_[HMAC_BSIZE];          // align opad_ on word32
-    word32 innerH_[HMAC_DSIZE];      // align innerHash_ on word32
-
-    void KeyInnerHash();
-
-    HMAC(const HMAC&);
-    HMAC& operator= (const HMAC&);
-};
-
-
-// Setup
-template 
-void HMAC::Init()
-{
-    mac_.Init();
-    innerHashKeyed_ = false;
-}
-
-
-// Key generation
-template 
-void HMAC::SetKey(const byte* key, word32 length)
-{
-    Init();
-
-    if (length <= T::BLOCK_SIZE)
-        memcpy(ipad_, key, length);
-    else {
-        mac_.Update(key, length);
-        mac_.Final(ipad_);
-        length = T::DIGEST_SIZE;
-    }
-    memset(ipad_ + length, 0, T::BLOCK_SIZE - length);
-
-    for (word32 i = 0; i < T::BLOCK_SIZE; i++) {
-        opad_[i] = ipad_[i] ^ OPAD;
-        ipad_[i] ^= IPAD;
-    }
-}
-
-
-// Inner Key Hash
-template 
-void HMAC::KeyInnerHash()
-{
-    mac_.Update(ipad_, T::BLOCK_SIZE);
-    innerHashKeyed_ = true;
-}
-
-
-// Update
-template 
-void HMAC::Update(const byte* msg, word32 length)
-{
-    if (!innerHashKeyed_)
-        KeyInnerHash();
-    mac_.Update(msg, length);
-}
-
-
-// Final
-template 
-void HMAC::Final(byte* hash)
-{
-    if (!innerHashKeyed_)
-        KeyInnerHash();
-    mac_.Final(innerHash_);
-
-    mac_.Update(opad_, T::BLOCK_SIZE);
-    mac_.Update(innerHash_, T::DIGEST_SIZE);
-    mac_.Final(hash);
-
-    innerHashKeyed_ = false;
-}
-
-
-} // namespace
-
-#endif // TAO_CRYPT_HMAC_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/integer.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/integer.hpp
deleted file mode 100644
index 05fe189f..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/integer.hpp
+++ /dev/null
@@ -1,332 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* based on Wei Dai's integer.h from CryptoPP */
-
-
-#ifndef TAO_CRYPT_INTEGER_HPP
-#define TAO_CRYPT_INTEGER_HPP
-
-
-#ifdef _MSC_VER
-    // 4250: dominance
-    // 4660: explicitly instantiating a class already implicitly instantiated
-    // 4661: no suitable definition provided for explicit template request
-    // 4786: identifer was truncated in debug information
-    // 4355: 'this' : used in base member initializer list
-#   pragma warning(disable: 4250 4660 4661 4786 4355)
-#endif
-
-
-#include "misc.hpp"
-#include "block.hpp"
-#include "random.hpp"
-#include "file.hpp"
-#include 
-#ifdef USE_SYS_STL
-    #include 
-#else
-    #include "algorithm.hpp"
-#endif
-
-
-#ifdef TAOCRYPT_X86ASM_AVAILABLE
-    #if defined(__GNUC__) && (__GNUC__ >= 4)
-        // GCC 4 or greater optimizes too much inline on recursive for bigint, 
-        // -O3 just as fast without asm here anyway
-        #undef TAOCRYPT_X86ASM_AVAILABLE
-    #endif
-#endif
-
-#ifdef TAOCRYPT_X86ASM_AVAILABLE
-
-#ifdef _M_IX86
-    #if (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 500)) || \
-      (defined(__ICL) && (__ICL >= 500))
-        #define SSE2_INTRINSICS_AVAILABLE
-        #define TAOCRYPT_MM_MALLOC_AVAILABLE
-    #elif defined(_MSC_VER)
-        // _mm_free seems to be the only way to tell if the Processor Pack is
-        //installed or not
-        #include 
-        #if defined(_mm_free)
-            #define SSE2_INTRINSICS_AVAILABLE
-            #define TAOCRYPT_MM_MALLOC_AVAILABLE
-        #endif
-    #endif
-#endif
-
-// SSE2 intrinsics work in GCC 3.3 or later
-#if defined(__SSE2__) && (__GNUC__ == 4 || __GNUC_MAJOR__ > 3 ||  \
-                          __GNUC_MINOR__ > 2)
-    #define SSE2_INTRINSICS_AVAILABLE
-#endif
-
-#endif  // X86ASM
-
-
-
-
-namespace TaoCrypt {
-
-#if defined(SSE2_INTRINSICS_AVAILABLE)
-
-    // Allocator handling proper alignment
-    template 
-    class AlignedAllocator : public AllocatorBase
-    {
-    public:
-        typedef typename AllocatorBase::pointer   pointer;
-        typedef typename AllocatorBase::size_type size_type;
-
-        pointer allocate(size_type n, const void* = 0);
-        void deallocate(void* p, size_type n);
-        pointer reallocate(T* p, size_type oldSize, size_type newSize,
-                           bool preserve)
-        {
-            return StdReallocate(*this, p, oldSize, newSize, preserve);
-        }
-
-    #if !(defined(TAOCRYPT_MALLOC_ALIGNMENT_IS_16) || \
-        defined(TAOCRYPT_MEMALIGN_AVAILABLE) || \
-        defined(TAOCRYPT_MM_MALLOC_AVAILABLE))
-    #define TAOCRYPT_NO_ALIGNED_ALLOC
-        AlignedAllocator() : m_pBlock(0) {}
-    protected:
-        void *m_pBlock;
-    #endif
-    };
-
-    typedef Block > AlignedWordBlock;
-#else
-    typedef WordBlock AlignedWordBlock;
-#endif
-
-
-
-#ifdef _WIN32
-    #undef max // avoid name clash
-#endif
-// general MAX
-template inline
-const T& max(const T& a, const T& b)
-{
-    return a > b ? a : b;
-}
-
-
-// Large Integer class
-class Integer {
-public:
-        enum Sign {POSITIVE = 0, NEGATIVE = 1 };
-        enum Signedness { UNSIGNED, SIGNED };
-        enum RandomNumberType { ANY, PRIME };
-
-        class DivideByZero {};
-
-        Integer();
-        Integer(const Integer& t);
-        Integer(signed long value);
-        Integer(Sign s, word highWord, word lowWord);
-
-        // BER Decode Source
-        explicit Integer(Source&);
-
-        Integer(const byte* encodedInteger, unsigned int byteCount,
-                Signedness s = UNSIGNED);
-
-        ~Integer() {}
-      
-        static const Integer& Zero();
-        static const Integer& One();
-
-        Integer& Ref() { return *this; }
-
-        Integer(RandomNumberGenerator& rng, const Integer& min,
-                const Integer& max);
-
-        static Integer Power2(unsigned int e);
-
-        unsigned int MinEncodedSize(Signedness = UNSIGNED) const;
-        unsigned int Encode(byte* output, unsigned int outputLen,
-                            Signedness = UNSIGNED) const;
-
-        void Decode(const byte* input, unsigned int inputLen,
-                    Signedness = UNSIGNED);
-        void Decode(Source&);
-
-        bool  IsConvertableToLong() const;
-        signed long ConvertToLong() const;
-
-        unsigned int BitCount() const;
-        unsigned int ByteCount() const;
-        unsigned int WordCount() const;
-
-        bool GetBit(unsigned int i) const;
-        byte GetByte(unsigned int i) const;
-        unsigned long GetBits(unsigned int i, unsigned int n) const;
-
-        bool IsZero()      const { return !*this; }
-        bool NotZero()     const { return !IsZero(); }
-        bool IsNegative()  const { return sign_ == NEGATIVE; }
-        bool NotNegative() const { return !IsNegative(); }
-        bool IsPositive()  const { return NotNegative() && NotZero(); }
-        bool NotPositive() const { return !IsPositive(); }
-        bool IsEven()      const { return GetBit(0) == 0; }
-        bool IsOdd()       const { return GetBit(0) == 1; }
-
-        Integer&  operator=(const Integer& t);
-        Integer&  operator+=(const Integer& t);
-        Integer&  operator-=(const Integer& t);
-        Integer&  operator*=(const Integer& t)	{ return *this = Times(t); }
-        Integer&  operator/=(const Integer& t)	
-                        { return *this = DividedBy(t);}
-        Integer&  operator%=(const Integer& t)	{ return *this = Modulo(t); }
-        Integer&  operator/=(word t)  { return *this = DividedBy(t); }
-        Integer&  operator%=(word t)  { return *this = Modulo(t); }
-        Integer&  operator<<=(unsigned int);
-        Integer&  operator>>=(unsigned int);
-
-     
-        void Randomize(RandomNumberGenerator &rng, unsigned int bitcount);
-        void Randomize(RandomNumberGenerator &rng, const Integer &min,
-                       const Integer &max);
-
-        void SetBit(unsigned int n, bool value = 1);
-        void SetByte(unsigned int n, byte value);
-
-        void Negate();		
-        void SetPositive() { sign_ = POSITIVE; }
-        void SetNegative() { if (!!(*this)) sign_ = NEGATIVE; }
-        void Swap(Integer& a);
-
-        bool	    operator!() const;
-        Integer     operator+() const {return *this;}
-        Integer     operator-() const;
-        Integer&    operator++();
-        Integer&    operator--();
-        Integer     operator++(int) 
-            { Integer temp = *this; ++*this; return temp; }
-        Integer     operator--(int) 
-            { Integer temp = *this; --*this; return temp; }
-
-        int Compare(const Integer& a) const;
-
-        Integer Plus(const Integer &b) const;
-        Integer Minus(const Integer &b) const;
-        Integer Times(const Integer &b) const;
-        Integer DividedBy(const Integer &b) const;
-        Integer Modulo(const Integer &b) const;
-        Integer DividedBy(word b) const;
-        word    Modulo(word b) const;
-
-        Integer operator>>(unsigned int n) const { return Integer(*this)>>=n; }
-        Integer operator<<(unsigned int n) const { return Integer(*this)<<=n; }
-
-        Integer AbsoluteValue() const;
-        Integer Doubled() const { return Plus(*this); }
-        Integer Squared() const { return Times(*this); }
-        Integer SquareRoot() const;
-
-        bool    IsSquare() const;
-        bool    IsUnit() const;
-
-        Integer MultiplicativeInverse() const;
-
-        friend Integer a_times_b_mod_c(const Integer& x, const Integer& y,
-                                       const Integer& m);
-        friend Integer a_exp_b_mod_c(const Integer& x, const Integer& e,
-                                     const Integer& m);
-
-        static void Divide(Integer& r, Integer& q, const Integer& a,
-                           const Integer& d);
-        static void Divide(word& r, Integer& q, const Integer& a, word d);
-        static void DivideByPowerOf2(Integer& r, Integer& q, const Integer& a,
-                                     unsigned int n);
-        static Integer Gcd(const Integer& a, const Integer& n);
-
-        Integer InverseMod(const Integer& n) const;
-        word InverseMod(word n) const;
-
-private:
-    friend class ModularArithmetic;
-    friend class MontgomeryRepresentation;
-
-    Integer(word value, unsigned int length);
-    int PositiveCompare(const Integer& t) const;
-
-    friend void PositiveAdd(Integer& sum, const Integer& a, const Integer& b);
-    friend void PositiveSubtract(Integer& diff, const Integer& a,
-                                 const Integer& b);
-    friend void PositiveMultiply(Integer& product, const Integer& a,
-                                 const Integer& b);
-    friend void PositiveDivide(Integer& remainder, Integer& quotient, const
-                               Integer& dividend, const Integer& divisor);
-    AlignedWordBlock reg_;
-    Sign             sign_;
-};
-
-inline bool operator==(const Integer& a, const Integer& b) 
-                        {return a.Compare(b)==0;}
-inline bool operator!=(const Integer& a, const Integer& b) 
-                        {return a.Compare(b)!=0;}
-inline bool operator> (const Integer& a, const Integer& b) 
-                        {return a.Compare(b)> 0;}
-inline bool operator>=(const Integer& a, const Integer& b) 
-                        {return a.Compare(b)>=0;}
-inline bool operator< (const Integer& a, const Integer& b) 
-                        {return a.Compare(b)< 0;}
-inline bool operator<=(const Integer& a, const Integer& b) 
-                        {return a.Compare(b)<=0;}
-
-inline Integer operator+(const Integer &a, const Integer &b) 
-                        {return a.Plus(b);}
-inline Integer operator-(const Integer &a, const Integer &b) 
-                        {return a.Minus(b);}
-inline Integer operator*(const Integer &a, const Integer &b) 
-                        {return a.Times(b);}
-inline Integer operator/(const Integer &a, const Integer &b) 
-                        {return a.DividedBy(b);}
-inline Integer operator%(const Integer &a, const Integer &b) 
-                        {return a.Modulo(b);}
-inline Integer operator/(const Integer &a, word b) {return a.DividedBy(b);}
-inline word    operator%(const Integer &a, word b) {return a.Modulo(b);}
-
-inline void swap(Integer &a, Integer &b)
-{
-    a.Swap(b);
-}
-
-
-Integer CRT(const Integer& xp, const Integer& p, const Integer& xq,
-            const Integer& q,  const Integer& u);
-
-inline Integer ModularExponentiation(const Integer& a, const Integer& e,
-                                     const Integer& m)
-{
-    return a_exp_b_mod_c(a, e, m);
-}
-
-Integer ModularRoot(const Integer& a, const Integer& dp, const Integer& dq,
-                    const Integer& p, const Integer& q,  const Integer& u);
-
-
-
-}   // namespace
-
-#endif // TAO_CRYPT_INTEGER_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/kernelc.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/kernelc.hpp
deleted file mode 100644
index 0840b3f2..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/kernelc.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* kernelc.hpp provides support for C std lib when compiled in kernel mode
-*/
-
-#ifndef TAOCRYPT_KERNELC_HPP
-#define TAOCRYPT_KERNELC_HPP
-
-#include    // get right size_t
-
-// system functions that c++ doesn't like headers for 
-
-extern "C" void* memcpy(void*, const void*, size_t);
-extern "C" void* memset(void*, int, size_t);
-extern "C" void  printk(char *fmt, ...);
-
-
-#endif // TAOCRYPT_KERNELC_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/md2.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/md2.hpp
deleted file mode 100644
index 5c2b1416..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/md2.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* md2.hpp provides MD2 digest support, see RFC 1319
-*/
-
-#ifndef TAO_CRYPT_MD2_HPP
-#define TAO_CRYPT_MD2_HPP
-
-
-#include "hash.hpp"
-#include "block.hpp"
-
-
-namespace TaoCrypt {
-
-
-// MD2 digest
-class MD2 : public HASH {
-public:
-    enum { BLOCK_SIZE = 16, DIGEST_SIZE = 16, PAD_SIZE = 16, X_SIZE = 48 };
-    MD2();
-
-    word32 getBlockSize()  const { return BLOCK_SIZE; }
-    word32 getDigestSize() const { return DIGEST_SIZE; }
-
-    void Update(const byte*, word32);
-    void Final(byte*);
-
-    void Init();
-    void Swap(MD2&);
-private:
-    ByteBlock X_, C_, buffer_;
-    word32    count_;           // bytes % PAD_SIZE
-
-    MD2(const MD2&);
-    MD2& operator=(const MD2&);
-};
-
-inline void swap(MD2& a, MD2& b)
-{
-    a.Swap(b);
-}
-
-
-} // namespace
-
-#endif // TAO_CRYPT_MD2_HPP
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/md4.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/md4.hpp
deleted file mode 100644
index 424c744e..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/md4.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* md4.hpp provides MD4 digest support
- * WANRING: MD4 is considered insecure, only use if you have to, e.g., yaSSL
- * libcurl supports needs this for NTLM authentication
-*/
-
-#ifndef TAO_CRYPT_MD4_HPP
-#define TAO_CRYPT_MD4_HPP
-
-#include "hash.hpp"
-
-namespace TaoCrypt {
-
-
-// MD4 digest
-class MD4 : public HASHwithTransform {
-public:
-    enum { BLOCK_SIZE = 64, DIGEST_SIZE = 16, PAD_SIZE = 56,
-           TAO_BYTE_ORDER = LittleEndianOrder };   // in Bytes
-    MD4() : HASHwithTransform(DIGEST_SIZE / sizeof(word32), BLOCK_SIZE) 
-                { Init(); }
-    ByteOrder getByteOrder()  const { return ByteOrder(TAO_BYTE_ORDER); }
-    word32    getBlockSize()  const { return BLOCK_SIZE; }
-    word32    getDigestSize() const { return DIGEST_SIZE; }
-    word32    getPadSize()    const { return PAD_SIZE; }
-
-    MD4(const MD4&);
-    MD4& operator= (const MD4&);
-
-    void Init();
-    void Swap(MD4&);
-private:
-    void Transform();
-};
-
-inline void swap(MD4& a, MD4& b)
-{
-    a.Swap(b);
-}
-
-
-} // namespace
-
-#endif // TAO_CRYPT_MD4_HPP
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/md5.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/md5.hpp
deleted file mode 100644
index fce37bd5..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/md5.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* md5.hpp provides MD5 digest support, see RFC 1321
-*/
-
-#ifndef TAO_CRYPT_MD5_HPP
-#define TAO_CRYPT_MD5_HPP
-
-#include "hash.hpp"
-
-
-#if defined(TAOCRYPT_X86ASM_AVAILABLE) && defined(TAO_ASM)
-    #define DO_MD5_ASM
-#endif
-
-namespace TaoCrypt {
-
-
-// MD5 digest
-class MD5 : public HASHwithTransform {
-public:
-    enum { BLOCK_SIZE = 64, DIGEST_SIZE = 16, PAD_SIZE = 56,
-           TAO_BYTE_ORDER = LittleEndianOrder };   // in Bytes
-    MD5() : HASHwithTransform(DIGEST_SIZE / sizeof(word32), BLOCK_SIZE) 
-                { Init(); }
-    ByteOrder getByteOrder()  const { return ByteOrder(TAO_BYTE_ORDER); }
-    word32    getBlockSize()  const { return BLOCK_SIZE; }
-    word32    getDigestSize() const { return DIGEST_SIZE; }
-    word32    getPadSize()    const { return PAD_SIZE; }
-
-    MD5(const MD5&);
-    MD5& operator= (const MD5&);
-
-#ifdef DO_MD5_ASM
-    void Update(const byte*, word32);
-#endif
-
-    void Init();
-    void Swap(MD5&);
-private:
-    void Transform();
-    void AsmTransform(const byte* data, word32 times);
-};
-
-inline void swap(MD5& a, MD5& b)
-{
-    a.Swap(b);
-}
-
-
-} // namespace
-
-#endif // TAO_CRYPT_MD5_HPP
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/misc.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/misc.hpp
deleted file mode 100644
index cb4d26e7..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/misc.hpp
+++ /dev/null
@@ -1,888 +0,0 @@
-/*
-   Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* based on Wei Dai's misc.h from CryptoPP */
-
-#ifndef TAO_CRYPT_MISC_HPP
-#define TAO_CRYPT_MISC_HPP
-
-
-#if !defined(DO_TAOCRYPT_KERNEL_MODE)
-    #include 
-    #include 
-#else
-    #include "kernelc.hpp"
-#endif
-
-#include "types.hpp"
-#include "type_traits.hpp"
-
-
-
-namespace TaoCrypt {
-
-
-// Delete static singleton holders
-void CleanUp();
-
-
-#ifdef YASSL_PURE_C
-
-    // library allocation
-    struct new_t {};      // TaoCrypt New type
-    extern new_t tc;      // pass in parameter
-
-    } // namespace TaoCrypt
-
-    void* operator new  (size_t, TaoCrypt::new_t);
-    void* operator new[](size_t, TaoCrypt::new_t);
-
-    void operator delete  (void*, TaoCrypt::new_t);
-    void operator delete[](void*, TaoCrypt::new_t);
-
-
-    namespace TaoCrypt {
-
-    template
-    void tcDelete(T* ptr)
-    {
-        if (ptr) ptr->~T();
-        ::operator delete(ptr, TaoCrypt::tc);
-    }
-
-    template
-    void tcArrayDelete(T* ptr)
-    {
-        // can't do array placement destruction since not tracking size in
-        // allocation, only allow builtins to use array placement since they
-        // don't need destructors called
-        typedef char builtin[IsFundamentalType::Yes ? 1 : -1];
-        (void)sizeof(builtin);
-
-        ::operator delete[](ptr, TaoCrypt::tc);
-    }
-
-    #define NEW_TC new (TaoCrypt::tc)
-
-
-    // to resolve compiler generated operator delete on base classes with
-    // virtual destructors (when on stack)
-    class virtual_base {
-    public:
-        static void operator delete(void*) { }
-    };
-
-#else // YASSL_PURE_C
-
-
-    template
-    void tcDelete(T* ptr)
-    {
-        delete ptr;
-    }
-
-    template
-    void tcArrayDelete(T* ptr)
-    {
-        delete[] ptr;
-    }
-
-    #define NEW_TC new
-
-    class virtual_base {};
-   
- 
-#endif // YASSL_PURE_C
-
-
-#if defined(_MSC_VER) || defined(__BCPLUSPLUS__)
-	#define INTEL_INTRINSICS
-	#define FAST_ROTATE
-#elif defined(__MWERKS__) && TARGET_CPU_PPC
-	#define PPC_INTRINSICS
-	#define FAST_ROTATE
-#elif defined(__GNUC__) && defined(__i386__)
-        // GCC does peephole optimizations which should result in using rotate
-        // instructions
-	#define FAST_ROTATE
-#endif
-
-
-// no gas on these systems ?, disable for now
-#if defined(__sun__)
-    #undef  TAOCRYPT_DISABLE_X86ASM
-    #define TAOCRYPT_DISABLE_X86ASM
-#endif
-
-// icc problem with -03 and integer, disable for now
-#if defined(__INTEL_COMPILER)
-    #undef  TAOCRYPT_DISABLE_X86ASM
-    #define TAOCRYPT_DISABLE_X86ASM
-#endif
-
-// indpedent of build system, unless ia32 asm is enabled disable it
-#if !defined(TAOCRYPT_ENABLE_X86ASM)
-    #undef  TAOCRYPT_DISABLE_X86ASM
-    #define TAOCRYPT_DISABLE_X86ASM
-#endif
-
-// Turn on ia32 ASM for Big Integer
-// CodeWarrior defines _MSC_VER
-#if !defined(TAOCRYPT_DISABLE_X86ASM) && ((defined(_MSC_VER) && \
-   !defined(__MWERKS__) && defined(_M_IX86)) || \
-   (defined(__GNUC__) && defined(__i386__)))
-    #define TAOCRYPT_X86ASM_AVAILABLE
-#endif
-
-
-#ifdef TAOCRYPT_X86ASM_AVAILABLE
-    bool HaveCpuId();
-    bool IsPentium();
-    void CpuId(word32 input, word32 *output);
-
-    extern bool isMMX;
-#endif
-
-
-
-
-// Turn on ia32 ASM for Ciphers and Message Digests
-// Seperate define since these are more complex, use member offsets
-// and user may want to turn off while leaving Big Integer optos on 
-#if defined(TAOCRYPT_X86ASM_AVAILABLE) && !defined(DISABLE_TAO_ASM)
-    #define TAO_ASM
-#endif
-
-
-//  Extra word in older vtable implementations, for ASM member offset
-#if defined(__GNUC__) && __GNUC__ < 3
-    #define OLD_GCC_OFFSET
-#endif
-
-
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
-#	define TAOCRYPT_MALLOC_ALIGNMENT_IS_16
-#endif
-
-#if defined(__linux__) || defined(__sun__) || defined(__CYGWIN__)
-#	define TAOCRYPT_MEMALIGN_AVAILABLE
-#endif
-
-
-#if defined(_WIN32) || defined(__CYGWIN__)
-    #define TAOCRYPT_WIN32_AVAILABLE
-#endif
-
-#if defined(__unix__) || defined(__MACH__)
-    #define TAOCRYPT_UNIX_AVAILABLE
-#endif
-
-
-// VC60 workaround: it doesn't allow typename in some places
-#if defined(_MSC_VER) && (_MSC_VER < 1300)
-    #define CPP_TYPENAME
-#else
-    #define CPP_TYPENAME typename
-#endif
-
-
-#ifdef _MSC_VER
-    #define TAOCRYPT_NO_VTABLE __declspec(novtable)
-#else
-    #define TAOCRYPT_NO_VTABLE
-#endif
-
-
-#ifdef USE_SYS_STL
-    // use system STL
-    #define STL_NAMESPACE       std
-#else
-    // use mySTL
-    #define STL_NAMESPACE       mySTL
-#endif
-
-
-// ***************** DLL related ********************
-
-#ifdef TAOCRYPT_WIN32_AVAILABLE
-
-#ifdef TAOCRYPT_EXPORTS
-    #define TAOCRYPT_IS_DLL
-    #define TAOCRYPT_DLL __declspec(dllexport)
-#elif defined(TAOCRYPT_IMPORTS)
-    #define TAOCRYPT_IS_DLL
-    #define TAOCRYPT_DLL __declspec(dllimport)
-#else
-    #define TAOCRYPT_DLL
-#endif  // EXPORTS
-
-#define TAOCRYPT_API __stdcall
-#define TAOCRYPT_CDECL __cdecl
-
-#else	// TAOCRYPT_WIN32_AVAILABLE
-
-#define TAOCRYPT_DLL
-#define TAOCRYPT_API
-#define TAOCRYPT_CDECL
-
-#endif	// TAOCRYPT_WIN32_AVAILABLE
-
-
-// ****************** tempalte stuff *******************
-
-
-#if defined(TAOCRYPT_MANUALLY_INSTANTIATE_TEMPLATES) && \
-  !defined(TAOCRYPT_IMPORTS)
-    #define TAOCRYPT_DLL_TEMPLATE_CLASS template class TAOCRYPT_DLL
-#elif defined(__MWERKS__)
-    #define TAOCRYPT_DLL_TEMPLATE_CLASS extern class TAOCRYPT_DLL
-#else
-    #define TAOCRYPT_DLL_TEMPLATE_CLASS extern template class TAOCRYPT_DLL
-#endif
-
-
-#if defined(TAOCRYPT_MANUALLY_INSTANTIATE_TEMPLATES) && \
-  !defined(TAOCRYPT_EXPORTS)
-    #define TAOCRYPT_STATIC_TEMPLATE_CLASS template class
-#elif defined(__MWERKS__)
-    #define TAOCRYPT_STATIC_TEMPLATE_CLASS extern class
-#else
-    #define TAOCRYPT_STATIC_TEMPLATE_CLASS extern template class
-#endif
-
-
-// ************** compile-time assertion ***************
-
-template 
-struct CompileAssert
-{
-	static char dummy[2*b-1];
-};
-
-#define TAOCRYPT_COMPILE_ASSERT(assertion) \
-    TAOCRYPT_COMPILE_ASSERT_INSTANCE(assertion, __LINE__)
-
-#if defined(TAOCRYPT_EXPORTS) || defined(TAOCRYPT_IMPORTS)
-    #define TAOCRYPT_COMPILE_ASSERT_INSTANCE(assertion, instance)
-#else
-    #define TAOCRYPT_COMPILE_ASSERT_INSTANCE(assertion, instance) \
-    (void)sizeof(CompileAssert<(assertion)>)
-#endif
-
-#define TAOCRYPT_ASSERT_JOIN(X, Y) TAOCRYPT_DO_ASSERT_JOIN(X, Y)
-
-#define TAOCRYPT_DO_ASSERT_JOIN(X, Y) X##Y
-
-
-/***************  helpers  *****************************/
-
-inline unsigned int BitsToBytes(unsigned int bitCount)
-{
-    return ((bitCount+7)/(8));
-}
-
-inline unsigned int BytesToWords(unsigned int byteCount)
-{
-    return ((byteCount+WORD_SIZE-1)/WORD_SIZE);
-}
-
-inline unsigned int BitsToWords(unsigned int bitCount)
-{
-    return ((bitCount+WORD_BITS-1)/(WORD_BITS));
-}
-
-inline void CopyWords(word* r, const word* a, word32 n)
-{
-    for (word32 i = 0; i < n; i++)
-        r[i] = a[i];
-}
-
-inline unsigned int CountWords(const word* X, unsigned int N)
-{
-    while (N && X[N-1]==0)
-        N--;
-    return N;
-}
-
-inline void SetWords(word* r, word a, unsigned int n)
-{
-    for (unsigned int i=0; i
-struct EnumToType
-{
-    static ENUM_TYPE ToEnum() { return (ENUM_TYPE)VALUE; }
-};
-
-typedef EnumToType LittleEndian;
-typedef EnumToType    BigEndian;
-
-
-#ifndef BIG_ENDIAN_ORDER
-    typedef LittleEndian HostByteOrder;
-#else
-    typedef BigEndian    HostByteOrder;
-#endif
-
-inline ByteOrder GetHostByteOrder()
-{
-    return HostByteOrder::ToEnum();
-}
-
-inline bool HostByteOrderIs(ByteOrder order)
-{
-    return order == GetHostByteOrder();
-}
-
-
-void xorbuf(byte*, const byte*, unsigned int);
-
-
-template 
-inline bool IsPowerOf2(T n)
-{
-    return n > 0 && (n & (n-1)) == 0;
-}
-
-template 
-inline T2 ModPowerOf2(T1 a, T2 b)
-{
-    return T2(a) & (b-1);
-}
-
-template 
-inline T RoundDownToMultipleOf(T n, T m)
-{
-    return n - (IsPowerOf2(m) ? ModPowerOf2(n, m) : (n%m));
-}
-
-template 
-inline T RoundUpToMultipleOf(T n, T m)
-{
-    return RoundDownToMultipleOf(n+m-1, m);
-}
-
-template 
-inline unsigned int GetAlignment(T* dummy = 0)	// VC60 workaround
-{
-#if (_MSC_VER >= 1300)
-    return __alignof(T);
-#elif defined(__GNUC__)
-    return __alignof__(T);
-#else
-    return sizeof(T);
-#endif
-}
-
-inline bool IsAlignedOn(const void* p, unsigned int alignment)
-{
-    return IsPowerOf2(alignment) ? ModPowerOf2((size_t)p, alignment) == 0
-        : (size_t)p % alignment == 0;
-}
-
-template 
-inline bool IsAligned(const void* p, T* dummy = 0)	// VC60 workaround
-{
-    return IsAlignedOn(p, GetAlignment());
-}
-
-
-template  inline T rotlFixed(T x, unsigned int y)
-{
-    return (x<>(sizeof(T)*8-y));
-}
-
-template  inline T rotrFixed(T x, unsigned int y)
-{
-    return (x>>y) | (x<<(sizeof(T)*8-y));
-}
-
-#ifdef INTEL_INTRINSICS
-
-#pragma intrinsic(_lrotl, _lrotr)
-
-template<> inline word32 rotlFixed(word32 x, word32 y)
-{
-    return y ? _lrotl(x, y) : x;
-}
-
-template<> inline word32 rotrFixed(word32 x, word32 y)
-{
-    return y ? _lrotr(x, y) : x;
-}
-
-#endif // INTEL_INTRINSICS
-
-#ifdef min
-#undef min
-#endif 
-
-
-template 
-inline const T& min(const T& a, const T& b)
-{
-    return a < b ? a : b;
-}
-
-
-inline word32 ByteReverse(word32 value)
-{
-#ifdef PPC_INTRINSICS
-    // PPC: load reverse indexed instruction
-    return (word32)__lwbrx(&value,0);
-#elif defined(FAST_ROTATE)
-    // 5 instructions with rotate instruction, 9 without
-    return (rotrFixed(value, 8U) & 0xff00ff00) |
-           (rotlFixed(value, 8U) & 0x00ff00ff);
-#else
-    // 6 instructions with rotate instruction, 8 without
-    value = ((value & 0xFF00FF00) >> 8) | ((value & 0x00FF00FF) << 8);
-    return rotlFixed(value, 16U);
-#endif
-}
-
-
-#ifdef WORD64_AVAILABLE
-
-inline word64 ByteReverse(word64 value)
-{
-#ifdef TAOCRYPT_SLOW_WORD64
-	return (word64(ByteReverse(word32(value))) << 32) | 
-                   ByteReverse(word32(value>>32));
-#else
-	value = ((value & W64LIT(0xFF00FF00FF00FF00)) >> 8) |
-            ((value & W64LIT(0x00FF00FF00FF00FF)) << 8);
-	value = ((value & W64LIT(0xFFFF0000FFFF0000)) >> 16) |
-            ((value & W64LIT(0x0000FFFF0000FFFF)) << 16);
-	return rotlFixed(value, 32U);
-#endif
-}
-
-#endif // WORD64_AVAILABLE
-
-
-template 
-inline void ByteReverse(T* out, const T* in, word32 byteCount)
-{
-    word32 count = byteCount/sizeof(T);
-    for (word32 i=0; i(out);
-    const word32* i = reinterpret_cast(in);
-    ByteReverse(o, i, byteCount);
-}
-
-
-template 
-inline T ByteReverseIf(T value, ByteOrder order)
-{
-    return HostByteOrderIs(order) ? value : ByteReverse(value);
-}
-
-
-template 
-inline void ByteReverseIf(T* out, const T* in, word32 bc, ByteOrder order)
-{
-    if (!HostByteOrderIs(order)) 
-        ByteReverse(out, in, bc);
-    else if (out != in)
-        memcpy(out, in, bc);
-}
-
-
-
-// do Asm Reverse is host is Little and x86asm 
-#ifdef LITTLE_ENDIAN_ORDER
-    #ifdef TAOCRYPT_X86ASM_AVAILABLE
-        #define LittleReverse AsmReverse
-    #else
-        #define LittleReverse ByteReverse
-    #endif
-#else
-    #define LittleReverse
-#endif
-
-
-// do Asm Reverse is host is Big and x86asm 
-#ifdef BIG_ENDIAN_ORDER
-    #ifdef TAOCRYPT_X86ASM_AVAILABLE
-        #define BigReverse AsmReverse
-    #else
-        #define BigReverse ByteReverse
-    #endif
-#else
-    #define BigReverse
-#endif
-
-
-#ifdef TAOCRYPT_X86ASM_AVAILABLE
-
-    // faster than rotate, use bswap
-
-    inline word32 AsmReverse(word32 wd)
-    {
-    #ifdef __GNUC__
-        __asm__ 
-        (
-            "bswap %1"
-            : "=r"(wd)
-            : "0"(wd)
-        );
-    #else
-        __asm 
-        {
-            mov   eax, wd
-            bswap eax
-            mov   wd, eax
-        }
-    #endif
-        return wd;
-    }
-
-#endif 
-
-
-template 
-inline void GetUserKey(ByteOrder order, T* out, word32 outlen, const byte* in,
-                       word32 inlen)
-{
-    const unsigned int U = sizeof(T);
-    memcpy(out, in, inlen);
-    memset((byte *)out+inlen, 0, outlen*U-inlen);
-    ByteReverseIf(out, out, RoundUpToMultipleOf(inlen, U), order);
-}
-
-
-#ifdef _MSC_VER
-    // disable conversion warning
-    // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy
-    #pragma warning(disable:4244 4996)
-#endif
-
-
-inline byte UnalignedGetWordNonTemplate(ByteOrder order, const byte *block,
-                                        byte*)
-{
-    return block[0];
-}
-
-inline word16 UnalignedGetWordNonTemplate(ByteOrder order, const byte* block,
-                                          word16*)
-{
-    return (order == BigEndianOrder)
-        ? block[1] | (block[0] << 8)
-        : block[0] | (block[1] << 8);
-}
-
-inline word32 UnalignedGetWordNonTemplate(ByteOrder order, const byte* block,
-                                          word32*)
-{
-    return (order == BigEndianOrder)
-        ? word32(block[3]) | (word32(block[2]) << 8) | (word32(block[1]) << 16)
-            | (word32(block[0]) << 24)
-        : word32(block[0]) | (word32(block[1]) << 8) | (word32(block[2]) << 16)
-            | (word32(block[3]) << 24);
-}
-
-template 
-inline T UnalignedGetWord(ByteOrder order, const byte *block, T* dummy = 0)
-{
-    return UnalignedGetWordNonTemplate(order, block, dummy);
-}
-
-inline void UnalignedPutWord(ByteOrder order, byte *block, byte value,
-                             const byte *xorBlock = 0)
-{
-    block[0] = xorBlock ? (value ^ xorBlock[0]) : value;
-}
-
-#define GETBYTE(x, y) (unsigned int)byte((x)>>(8*(y)))
-
-inline void UnalignedPutWord(ByteOrder order, byte *block, word16 value,
-                             const byte *xorBlock = 0)
-{
-    if (order == BigEndianOrder)
-    {
-        block[0] = GETBYTE(value, 1);
-        block[1] = GETBYTE(value, 0);
-    }
-    else
-    {
-        block[0] = GETBYTE(value, 0);
-        block[1] = GETBYTE(value, 1);
-    }
-
-    if (xorBlock)
-    {
-        block[0] ^= xorBlock[0];
-        block[1] ^= xorBlock[1];
-    }
-}
-
-inline void UnalignedPutWord(ByteOrder order, byte* block, word32 value,
-                             const byte* xorBlock = 0)
-{
-    if (order == BigEndianOrder)
-    {
-        block[0] = GETBYTE(value, 3);
-        block[1] = GETBYTE(value, 2);
-        block[2] = GETBYTE(value, 1);
-        block[3] = GETBYTE(value, 0);
-    }
-    else
-    {
-        block[0] = GETBYTE(value, 0);
-        block[1] = GETBYTE(value, 1);
-        block[2] = GETBYTE(value, 2);
-        block[3] = GETBYTE(value, 3);
-    }
-
-    if (xorBlock)
-    {
-        block[0] ^= xorBlock[0];
-        block[1] ^= xorBlock[1];
-        block[2] ^= xorBlock[2];
-        block[3] ^= xorBlock[3];
-    }
-}
-
-
-template 
-inline T GetWord(bool assumeAligned, ByteOrder order, const byte *block)
-{
-    if (assumeAligned)
-        return ByteReverseIf(*reinterpret_cast(block), order);
-    else
-        return UnalignedGetWord(order, block);
-}
-
-template 
-inline void GetWord(bool assumeAligned, ByteOrder order, T &result,
-                    const byte *block)
-{
-    result = GetWord(assumeAligned, order, block);
-}
-
-template 
-inline void PutWord(bool assumeAligned, ByteOrder order, byte* block, T value,
-                    const byte *xorBlock = 0)
-{
-    if (assumeAligned)
-    {
-        if (xorBlock)
-            *reinterpret_cast(block) = ByteReverseIf(value, order) 
-                ^ *reinterpret_cast(xorBlock);
-        else
-            *reinterpret_cast(block) = ByteReverseIf(value, order);
-    }
-    else
-        UnalignedPutWord(order, block, value, xorBlock);
-}
-
-template 
-class GetBlock
-{
-public:
-    GetBlock(const void *block)
-        : m_block((const byte *)block) {}
-
-    template 
-    inline GetBlock & operator()(U &x)
-    {
-        TAOCRYPT_COMPILE_ASSERT(sizeof(U) >= sizeof(T));
-        x = GetWord(A, B::ToEnum(), m_block);
-        m_block += sizeof(T);
-        return *this;
-    }
-
-private:
-    const byte *m_block;
-};
-
-template 
-class PutBlock
-{
-public:
-    PutBlock(const void *xorBlock, void *block)
-        : m_xorBlock((const byte *)xorBlock), m_block((byte *)block) {}
-
-    template 
-    inline PutBlock & operator()(U x)
-    {
-        PutWord(A, B::ToEnum(), m_block, (T)x, m_xorBlock);
-        m_block += sizeof(T);
-        if (m_xorBlock)
-            m_xorBlock += sizeof(T);
-        return *this;
-    }
-
-private:
-    const byte *m_xorBlock;
-    byte *m_block;
-};
-
-/*
-  XXX MYSQL: Setting A (assumeAligned) to false,
-  keeping it true might trigger segfault on SPARC.
-*/
-template 
-struct BlockGetAndPut
-{
-    // function needed because of C++ grammatical ambiguity between
-    // expression-statements and declarations
-    static inline GetBlock Get(const void *block) 
-        {return GetBlock(block);}
-    typedef PutBlock Put;
-};
-
-
-
-template  struct SafeShifter;
-
-template<> struct SafeShifter
-{
-    template 
-    static inline T RightShift(T value, unsigned int bits)
-    {
-        return 0;
-    }
-
-    template 
-    static inline T LeftShift(T value, unsigned int bits)
-    {
-        return 0;
-    }
-};
-
-template<> struct SafeShifter
-{
-    template 
-    static inline T RightShift(T value, unsigned int bits)
-    {
-        return value >> bits;
-    }
-
-    template 
-    static inline T LeftShift(T value, unsigned int bits)
-    {
-        return value << bits;
-    }
-};
-
-template 
-inline T SafeRightShift(T value)
-{
-    return SafeShifter<(bits>=(8*sizeof(T)))>::RightShift(value, bits);
-}
-
-template 
-inline T SafeLeftShift(T value)
-{
-    return SafeShifter<(bits>=(8*sizeof(T)))>::LeftShift(value, bits);
-}
-
-
-inline
-word ShiftWordsLeftByBits(word* r, unsigned int n, unsigned int shiftBits)
-{
-    word u, carry=0;
-    if (shiftBits)
-        for (unsigned int i=0; i> (WORD_BITS-shiftBits);
-        }
-    return carry;
-}
-
-
-inline
-word ShiftWordsRightByBits(word* r, unsigned int n, unsigned int shiftBits)
-{
-    word u, carry=0;
-    if (shiftBits)
-        for (int i=n-1; i>=0; i--)
-        {
-            u = r[i];
-            r[i] = (u >> shiftBits) | carry;
-            carry = u << (WORD_BITS-shiftBits);
-        }
-    return carry;
-}
-
-
-inline
-void ShiftWordsLeftByWords(word* r, unsigned int n, unsigned int shiftWords)
-{
-    shiftWords = min(shiftWords, n);
-    if (shiftWords)
-    {
-        for (unsigned int i=n-1; i>=shiftWords; i--)
-            r[i] = r[i-shiftWords];
-        SetWords(r, 0, shiftWords);
-    }
-}
-
-
-inline
-void ShiftWordsRightByWords(word* r, unsigned int n, unsigned int shiftWords)
-{
-    shiftWords = min(shiftWords, n);
-    if (shiftWords)
-    {
-        for (unsigned int i=0; i+shiftWords
-inline T1 SaturatingSubtract(T1 a, T2 b)
-{
-    TAOCRYPT_COMPILE_ASSERT_INSTANCE(T1(-1)>0, 0);  // T1 is unsigned type
-    TAOCRYPT_COMPILE_ASSERT_INSTANCE(T2(-1)>0, 1);  // T2 is unsigned type
-    return T1((a > b) ? (a - b) : 0);
-}
-
-
-// declares
-unsigned int  BytePrecision(word value);
-unsigned int  BitPrecision(word);
-word Crop(word value, unsigned int size);
-
-
-
-} // namespace
-
-#endif // TAO_CRYPT_MISC_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/modarith.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/modarith.hpp
deleted file mode 100644
index 5ac3f67a..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/modarith.hpp
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* based on Wei Dai's modarith.h from CryptoPP */
-
-
-#ifndef TAO_CRYPT_MODARITH_HPP
-#define TAO_CRYPT_MODARITH_HPP
-
-#include "misc.hpp"
-#include "algebra.hpp"
-
-namespace TaoCrypt {
-
-
-// ModularArithmetic
-class ModularArithmetic : public AbstractRing
-{
-public:
-
-    typedef int RandomizationParameter;
-    typedef Integer Element;
-
-    ModularArithmetic(const Integer &modulus = Integer::One())
-        : modulus(modulus), result((word)0, modulus.reg_.size()) {}
-
-    ModularArithmetic(const ModularArithmetic &ma)
-        : AbstractRing(),
-        modulus(ma.modulus), result((word)0, modulus.reg_.size()) {}
-
-    const Integer& GetModulus() const {return modulus;}
-    void SetModulus(const Integer &newModulus) 
-    {   
-        modulus = newModulus;
-        result.reg_.resize(modulus.reg_.size());
-    }
-
-    virtual bool IsMontgomeryRepresentation() const {return false;}
-
-    virtual Integer ConvertIn(const Integer &a) const
-        {return a%modulus;}
-
-    virtual Integer ConvertOut(const Integer &a) const
-        {return a;}
-
-    const Integer& Half(const Integer &a) const;
-
-    bool Equal(const Integer &a, const Integer &b) const
-        {return a==b;}
-
-    const Integer& Identity() const
-        {return Integer::Zero();}
-
-    const Integer& Add(const Integer &a, const Integer &b) const;
-
-    Integer& Accumulate(Integer &a, const Integer &b) const;
-
-    const Integer& Inverse(const Integer &a) const;
-
-    const Integer& Subtract(const Integer &a, const Integer &b) const;
-
-    Integer& Reduce(Integer &a, const Integer &b) const;
-
-    const Integer& Double(const Integer &a) const
-        {return Add(a, a);}
-
-    const Integer& MultiplicativeIdentity() const
-        {return Integer::One();}
-
-    const Integer& Multiply(const Integer &a, const Integer &b) const
-        {return result1 = a*b%modulus;}
-
-    const Integer& Square(const Integer &a) const
-        {return result1 = a.Squared()%modulus;}
-
-    bool IsUnit(const Integer &a) const
-        {return Integer::Gcd(a, modulus).IsUnit();}
-
-    const Integer& MultiplicativeInverse(const Integer &a) const
-        {return result1 = a.InverseMod(modulus);}
-
-    const Integer& Divide(const Integer &a, const Integer &b) const
-        {return Multiply(a, MultiplicativeInverse(b));}
-
-    Integer CascadeExponentiate(const Integer &x, const Integer &e1,
-                                const Integer &y, const Integer &e2) const;
-
-    void SimultaneousExponentiate(Element *results, const Element &base,
-                  const Integer *exponents, unsigned int exponentsCount) const;
-
-    unsigned int MaxElementBitLength() const
-        {return (modulus-1).BitCount();}
-
-    unsigned int MaxElementByteLength() const
-        {return (modulus-1).ByteCount();}
-
-
-    static const RandomizationParameter DefaultRandomizationParameter;
-
-protected:
-    Integer modulus;
-    mutable Integer result, result1;
-
-};
-
-
-
-//! do modular arithmetics in Montgomery representation for increased speed
-class MontgomeryRepresentation : public ModularArithmetic
-{
-public:
-    MontgomeryRepresentation(const Integer &modulus);	// modulus must be odd
-
-    bool IsMontgomeryRepresentation() const {return true;}
-
-    Integer ConvertIn(const Integer &a) const
-        {return (a<<(WORD_BITS*modulus.reg_.size()))%modulus;}
-
-    Integer ConvertOut(const Integer &a) const;
-
-    const Integer& MultiplicativeIdentity() const
-     {return result1 = Integer::Power2(WORD_BITS*modulus.reg_.size())%modulus;}
-
-    const Integer& Multiply(const Integer &a, const Integer &b) const;
-
-    const Integer& Square(const Integer &a) const;
-
-    const Integer& MultiplicativeInverse(const Integer &a) const;
-
-    Integer CascadeExponentiate(const Integer &x, const Integer &e1,
-                                const Integer &y, const Integer &e2) const
-        {return AbstractRing::CascadeExponentiate(x, e1, y, e2);}
-
-    void SimultaneousExponentiate(Element *results, const Element &base,
-            const Integer *exponents, unsigned int exponentsCount) const
-        {AbstractRing::SimultaneousExponentiate(results, base,
-                                                exponents, exponentsCount);}
-
-private:
-    Integer u;
-    mutable AlignedWordBlock workspace;
-};
-
-
-
-
-} // namespace
-
-#endif // TAO_CRYPT_MODARITH_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/modes.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/modes.hpp
deleted file mode 100644
index bfe8c6ec..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/modes.hpp
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
-   Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* modes.hpp provides ECB and CBC modes for block cipher encryption/decryption
-*/
-
-
-#ifndef TAO_CRYPT_MODES_HPP
-#define TAO_CRYPT_MODES_HPP
-
-#include "misc.hpp"
-
-namespace TaoCrypt {
-
-
-enum Mode { ECB, CBC };
-
-
-
-// BlockCipher abstraction
-template
-class BlockCipher {
-public:
-    BlockCipher() : cipher_(DIR, MODE) {}
-
-    void Process(byte* c, const byte* p, word32 sz) 
-            { cipher_.Process(c, p, sz); }
-    void SetKey(const byte* k, word32 sz)   
-            { cipher_.SetKey(k, sz, DIR); }
-    void SetKey(const byte* k, word32 sz, const byte* iv)   
-            { cipher_.SetKey(k, sz, DIR); cipher_.SetIV(iv); }
-private:
-    T cipher_;
-
-    BlockCipher(const BlockCipher&);            // hide copy
-    BlockCipher& operator=(const BlockCipher&); // and assign
-};
-
-
-// Mode Base for block ciphers, static size
-class Mode_BASE : public virtual_base {
-public:
-    enum { MaxBlockSz = 16 };
-
-    explicit Mode_BASE(int sz, CipherDir dir, Mode mode) 
-        : blockSz_(sz), reg_(reinterpret_cast(r_)),
-          tmp_(reinterpret_cast(t_)), dir_(dir), mode_(mode)
-    {}
-    virtual ~Mode_BASE() {}
-
-    virtual void Process(byte*, const byte*, word32);
-
-    void SetIV(const byte* iv) { memcpy(reg_, iv, blockSz_); }
-protected:
-    int   blockSz_;
-    byte* reg_;
-    byte* tmp_;
-
-    word32 r_[MaxBlockSz / sizeof(word32)];  // align reg_ on word32
-    word32 t_[MaxBlockSz / sizeof(word32)];  // align tmp_ on word32
-
-    CipherDir dir_;
-    Mode      mode_;
-
-    void ECB_Process(byte*, const byte*, word32);
-    void CBC_Encrypt(byte*, const byte*, word32);
-    void CBC_Decrypt(byte*, const byte*, word32);
-
-    Mode_BASE(const Mode_BASE&);            // hide copy
-    Mode_BASE& operator=(const Mode_BASE&); // and assign
-
-private:
-    virtual void ProcessAndXorBlock(const byte*, const byte*, byte*) const = 0;
-};
-
-
-inline void Mode_BASE::Process(byte* out, const byte* in, word32 sz)
-{
-    if (mode_ == ECB)
-        ECB_Process(out, in, sz);
-    else if (mode_ == CBC) {
-        if (dir_ == ENCRYPTION)
-            CBC_Encrypt(out, in, sz);
-        else
-            CBC_Decrypt(out, in, sz);
-    }
-}
-
-
-// ECB Process blocks
-inline void Mode_BASE::ECB_Process(byte* out, const byte* in, word32 sz)
-{
-    word32 blocks = sz / blockSz_;
-
-    while (blocks--) {
-        ProcessAndXorBlock(in, 0, out);
-        out += blockSz_;
-        in  += blockSz_;
-    }
-}
-
-
-// CBC Encrypt
-inline void Mode_BASE::CBC_Encrypt(byte* out, const byte* in, word32 sz)
-{
-    word32 blocks = sz / blockSz_;
-
-    while (blocks--) {
-        xorbuf(reg_, in, blockSz_);
-        ProcessAndXorBlock(reg_, 0, reg_);
-        memcpy(out, reg_, blockSz_);
-        out += blockSz_;
-        in  += blockSz_;
-    }
-}
-
-
-// CBC Decrypt
-inline void Mode_BASE::CBC_Decrypt(byte* out, const byte* in, word32 sz)
-{
-    word32 blocks = sz / blockSz_;
-    byte   hold[MaxBlockSz];
-
-    while (blocks--) {
-        memcpy(tmp_, in, blockSz_);
-        ProcessAndXorBlock(tmp_, 0, out);
-        xorbuf(out,  reg_, blockSz_);
-        memcpy(hold, reg_,   blockSz_); // swap reg_ and tmp_
-        memcpy(reg_,   tmp_, blockSz_);
-        memcpy(tmp_, hold, blockSz_);
-        out += blockSz_;
-        in  += blockSz_;
-    }
-}
-
-
-} // namespace
-
-#endif  // TAO_CRYPT_MODES_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/pwdbased.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/pwdbased.hpp
deleted file mode 100644
index cf4dff5c..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/pwdbased.hpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* pwdbased.hpp defines PBKDF2 from PKCS #5
-*/
-
-
-#ifndef TAO_CRYPT_PWDBASED_HPP
-#define TAO_CRYPT_PWDBASED_HPP
-
-#include 
-#include "misc.hpp"
-#include "block.hpp"
-#include "hmac.hpp"
-
-namespace TaoCrypt {
-
-
-// From PKCS #5, T must be type suitable for HMAC 
-template 
-class PBKDF2_HMAC {
-public:
-    word32 MaxDerivedKeyLength() const { return 0xFFFFFFFFU;} // avoid overflow
-
-    word32 DeriveKey(byte* derived, word32 dLen, const byte* pwd, word32 pLen,
-                     const byte* salt, word32 sLen, word32 iterations) const;
-}; 
-
-
-
-template 
-word32 PBKDF2_HMAC::DeriveKey(byte* derived, word32 dLen, const byte* pwd,
-                                 word32 pLen, const byte* salt, word32 sLen,
-                                 word32 iterations) const
-{
-	if (dLen > MaxDerivedKeyLength())
-        return 0;
-
-    ByteBlock buffer(T::DIGEST_SIZE);
-	HMAC   hmac;
-
-    hmac.SetKey(pwd, pLen);
-
-	word32 i = 1;
-
-	while (dLen > 0) {
-		hmac.Update(salt, sLen);
-		word32 j;
-		for (j = 0; j < 4; j++) {
-			byte b = i >> ((3-j)*8);
-			hmac.Update(&b, 1);
-		}
-		hmac.Final(buffer.get_buffer());
-
-		word32 segmentLen = min(dLen, buffer.size());
-		memcpy(derived, buffer.get_buffer(), segmentLen);
-
-		for (j = 1; j < iterations; j++) {
-			hmac.Update(buffer.get_buffer(), buffer.size());
-            hmac.Final(buffer.get_buffer());
-			xorbuf(derived, buffer.get_buffer(), segmentLen);
-		}
-		derived += segmentLen;
-		dLen    -= segmentLen;
-		i++;
-	}
-	return iterations;
-}
-
-
-
-
-} // naemspace
-
-#endif // TAO_CRYPT_PWDBASED_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/rabbit.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/rabbit.hpp
deleted file mode 100644
index d3ec9479..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/rabbit.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-   Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* rabbit.hpp defines Rabbit
-*/
-
-
-#ifndef TAO_CRYPT_RABBIT_HPP
-#define TAO_CRYPT_RABBIT_HPP
-
-#include "misc.hpp"
-
-namespace TaoCrypt {
-
-
-// Rabbit encryption and decryption
-class Rabbit {
-public:
-
-    typedef Rabbit Encryption;
-    typedef Rabbit Decryption;
-
-    enum RabbitCtx { Master = 0, Work = 1 };
-
-    Rabbit() {}
-
-    void Process(byte*, const byte*, word32);
-    void SetKey(const byte*, const byte*);
-private:
-    struct Ctx {
-        word32 x[8];
-        word32 c[8];
-        word32 carry;
-    };
-
-    Ctx masterCtx_;
-    Ctx workCtx_;
-
-    void NextState(RabbitCtx);
-    void SetIV(const byte*);
-
-    Rabbit(const Rabbit&);                  // hide copy
-    const Rabbit operator=(const Rabbit&);  // and assign
-};
-
-} // namespace
-
-
-#endif // TAO_CRYPT_RABBIT_HPP
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/random.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/random.hpp
deleted file mode 100644
index 70c4c0eb..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/random.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* random.hpp provides a crypto secure Random Number Generator using an OS
-   specific seed
-*/
-
-
-#ifndef TAO_CRYPT_RANDOM_HPP
-#define TAO_CRYPT_RANDOM_HPP
-
-#include "arc4.hpp"
-#include "error.hpp"
-
-namespace TaoCrypt {
-
-
-// OS specific seeder
-class OS_Seed {
-public:
-    OS_Seed();
-    ~OS_Seed();
-
-    void   GenerateSeed(byte*, word32 sz);
-    Error  GetError() const { return error_; }
-private:
-#if defined(_WIN32)
-    #if defined(_WIN64)
-        typedef unsigned __int64 ProviderHandle;
-        // type HCRYPTPROV, avoid #include 
-    #else
-        typedef unsigned long ProviderHandle;
-    #endif
-    ProviderHandle handle_;
-#else
-    int fd_;
-#endif
-    Error error_;
-
-    OS_Seed(const OS_Seed&);              // hide copy
-    OS_Seed& operator=(const OS_Seed&);   // hide assign
-};
-
-
-// secure Random Nnumber Generator
-class RandomNumberGenerator {
-public:
-    RandomNumberGenerator();
-    ~RandomNumberGenerator() {}
-
-    void GenerateBlock(byte*, word32 sz);
-    byte GenerateByte();
-
-    ErrorNumber GetError() const { return seed_.GetError().What(); }
-private:
-    OS_Seed seed_;
-    ARC4    cipher_;
-
-    RandomNumberGenerator(const RandomNumberGenerator&);           // hide copy
-    RandomNumberGenerator operator=(const RandomNumberGenerator&); // && assign
-};
-
-
-
-
-}  // namespace
-
-#endif // TAO_CRYPT_RANDOM_HPP
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/ripemd.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/ripemd.hpp
deleted file mode 100644
index 5fb8aa8d..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/ripemd.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* ripemd.hpp provides RIPEMD digest support
-*/
-
-#ifndef TAO_CRYPT_RIPEMD_HPP
-#define TAO_CRYPT_RIPEMD_HPP
-
-#include "hash.hpp"
-
-
-#if defined(TAOCRYPT_X86ASM_AVAILABLE) && defined(TAO_ASM)
-    #define DO_RIPEMD_ASM
-#endif
-
-namespace TaoCrypt {
-
-
-// RIPEMD160 digest
-class RIPEMD160 : public HASHwithTransform {
-public:
-    enum { BLOCK_SIZE = 64, DIGEST_SIZE = 20, PAD_SIZE = 56,
-           TAO_BYTE_ORDER = LittleEndianOrder };   // in Bytes
-    RIPEMD160() : HASHwithTransform(DIGEST_SIZE / sizeof(word32), BLOCK_SIZE)
-                { Init(); }
-    ByteOrder getByteOrder()  const { return ByteOrder(TAO_BYTE_ORDER); }
-    word32    getBlockSize()  const { return BLOCK_SIZE; }
-    word32    getDigestSize() const { return DIGEST_SIZE; }
-    word32    getPadSize()    const { return PAD_SIZE; }
-
-    RIPEMD160(const RIPEMD160&);
-    RIPEMD160& operator= (const RIPEMD160&);
-
-#ifdef DO_RIPEMD_ASM
-    void Update(const byte*, word32);
-#endif
-    void Init();
-    void Swap(RIPEMD160&);
-private:
-    void Transform();
-    void AsmTransform(const byte* data, word32 times);
-};
-
-inline void swap(RIPEMD160& a, RIPEMD160& b)
-{
-    a.Swap(b);
-}
-
-
-} // namespace
-
-#endif // TAO_CRYPT_RIPEMD_HPP
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/rsa.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/rsa.hpp
deleted file mode 100644
index ee3e378a..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/rsa.hpp
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* rsa.hpp provides RSA ES encrypt/decrypt, SSL (block type 1) sign and verify
-*/
-
-#ifndef TAO_CRYPT_RSA_HPP
-#define TAO_CRYPT_RSA_HPP
-
-#include "integer.hpp"
-#include "random.hpp"
-
-
-namespace TaoCrypt {
-
-class Source;
-
-
-// Public Key Length helper
-class PK_Lengths {
-    const Integer& image_;
-public:
-    explicit PK_Lengths(const Integer& i) : image_(i) {}
-
-    word32 PaddedBlockBitLength()  const {return image_.BitCount() - 1;}
-    word32 PaddedBlockByteLength() const 
-                {return BitsToBytes(PaddedBlockBitLength());}
-
-    word32 FixedCiphertextLength()   const {return image_.ByteCount();}
-    word32 FixedMaxPlaintextLength() const 
-                {return SaturatingSubtract(PaddedBlockBitLength() / 8, 10U); }
-};
-
-
-// RSA Public Key
-class RSA_PublicKey {
-protected:
-    Integer n_;
-    Integer e_;
-public:
-    RSA_PublicKey() {}
-    explicit RSA_PublicKey(Source&);
-
-    void Initialize(const Integer& n, const Integer& e) {n_ = n; e_ = e;}
-    void Initialize(Source&);
-
-    Integer ApplyFunction(const Integer& x) const;
-
-    const Integer& GetModulus() const {return n_;}
-    const Integer& GetPublicExponent() const {return e_;}
-
-    void SetModulus(const Integer& n) {n_ = n;}
-    void SetPublicExponent(const Integer& e) {e_ = e;}
-
-    word32 FixedCiphertextLength()
-    {
-        return PK_Lengths(n_).FixedCiphertextLength();
-    }
-
-    RSA_PublicKey(const RSA_PublicKey& other) : n_(other.n_), e_(other.e_) {}
-    RSA_PublicKey& operator=(const RSA_PublicKey& that)
-    {
-        RSA_PublicKey tmp(that);
-        Swap(tmp);
-        return *this;
-    }
-
-    void Swap(RSA_PublicKey& other)
-    {
-        n_.Swap(other.n_);
-        e_.Swap(other.e_);
-    }
-};
-
-
-// RSA Private Key
-class RSA_PrivateKey : public RSA_PublicKey {
-    Integer d_;
-    Integer p_;
-    Integer q_;
-    Integer dp_;
-    Integer dq_;
-    Integer u_;
-public:
-    RSA_PrivateKey() {}
-    explicit RSA_PrivateKey(Source&);
-
-    void Initialize(const Integer& n,  const Integer& e, const Integer& d,
-                    const Integer& p,  const Integer& q, const Integer& dp, 
-                    const Integer& dq, const Integer& u)
-        {n_ = n; e_ = e; d_ = d; p_ = p; q_ = q; dp_ = dp; dq_ = dq; u_ = u;}
-    void Initialize(Source&);
-
-    Integer CalculateInverse(RandomNumberGenerator&, const Integer&) const;
-
-    const Integer& GetPrime1() const {return p_;}
-    const Integer& GetPrime2() const {return q_;}
-    const Integer& GetPrivateExponent() const {return d_;}
-    const Integer& GetModPrime1PrivateExponent() const {return dp_;}
-    const Integer& GetModPrime2PrivateExponent() const {return dq_;}
-    const Integer& GetMultiplicativeInverseOfPrime2ModPrime1() const 
-                   {return u_;}
-
-    void SetPrime1(const Integer& p) {p_ = p;}
-    void SetPrime2(const Integer& q) {q_ = q;}
-    void SetPrivateExponent(const Integer& d) {d_ = d;}
-    void SetModPrime1PrivateExponent(const Integer& dp) {dp_ = dp;}
-    void SetModPrime2PrivateExponent(const Integer& dq) {dq_ = dq;}
-    void SetMultiplicativeInverseOfPrime2ModPrime1(const Integer& u) {u_ = u;}
-private:
-    RSA_PrivateKey(const RSA_PrivateKey&);              // hide copy
-    RSA_PrivateKey& operator=(const RSA_PrivateKey&);   // and assign
-};
-
-
-// block type 2 padding
-class RSA_BlockType2  {
-public:
-    void   Pad(const byte*, word32, byte*, word32,
-               RandomNumberGenerator&) const;
-    word32 UnPad(const byte*, word32, byte*) const;
-};
-
-
-// block type 1 padding
-class RSA_BlockType1  {
-public:
-    void   Pad(const byte*, word32, byte*, word32, 
-               RandomNumberGenerator&) const;
-    word32 UnPad(const byte*, word32, byte*) const;
-};
-
-
-// RSA Encryptor, can use any padding
-template
-class RSA_Encryptor {
-    const RSA_PublicKey& key_;
-    Pad                  padding_;
-public:
-    explicit RSA_Encryptor(const RSA_PublicKey& k) : key_(k) {}
-
-    void Encrypt(const byte*, word32, byte*, RandomNumberGenerator&);
-    bool SSL_Verify(const byte* msg, word32 sz, const byte* sig);
-};
-
-
-// RSA Decryptor, can use any padding
-template
-class RSA_Decryptor {
-    const RSA_PrivateKey& key_;
-    Pad                   padding_;
-public:
-    explicit RSA_Decryptor(const RSA_PrivateKey& k) : key_(k) {}
-
-    word32 Decrypt(const byte*, word32, byte*, RandomNumberGenerator&);
-    void   SSL_Sign(const byte*, word32, byte*, RandomNumberGenerator&);
-};
-
-
-// Public Encrypt
-template
-void RSA_Encryptor::Encrypt(const byte* plain, word32 sz, byte* cipher,
-                                 RandomNumberGenerator& rng)
-{
-    PK_Lengths lengths(key_.GetModulus());
-    if (sz > lengths.FixedMaxPlaintextLength())
-        return;
-
-    ByteBlock paddedBlock(lengths.PaddedBlockByteLength());
-    padding_.Pad(plain, sz, paddedBlock.get_buffer(),
-                 lengths.PaddedBlockBitLength(), rng);
-
-    key_.ApplyFunction(Integer(paddedBlock.get_buffer(), paddedBlock.size())).
-        Encode(cipher, lengths.FixedCiphertextLength());
-}
-
-
-// Private Decrypt
-template
-word32 RSA_Decryptor::Decrypt(const byte* cipher, word32 sz, byte* plain,
-                                   RandomNumberGenerator& rng)
-{
-    PK_Lengths lengths(key_.GetModulus());
-
-    if (sz != lengths.FixedCiphertextLength())
-        return 0;
-       
-    ByteBlock paddedBlock(lengths.PaddedBlockByteLength());
-    Integer x = key_.CalculateInverse(rng, Integer(cipher,
-                                      lengths.FixedCiphertextLength()).Ref());
-    if (x.ByteCount() > paddedBlock.size())
-        x = Integer::Zero();	// don't return false, prevents timing attack
-    x.Encode(paddedBlock.get_buffer(), paddedBlock.size());
-    return padding_.UnPad(paddedBlock.get_buffer(),
-                          lengths.PaddedBlockBitLength(), plain);
-}
-
-
-// Private SSL type (block 1) Encrypt
-template
-void RSA_Decryptor::SSL_Sign(const byte* message, word32 sz, byte* sig,
-                                  RandomNumberGenerator& rng)
-{
-    RSA_PublicKey inverse;
-    inverse.Initialize(key_.GetModulus(), key_.GetPrivateExponent());
-    RSA_Encryptor enc(inverse); // SSL Type
-    enc.Encrypt(message, sz, sig, rng);
-}
-
-
-word32 SSL_Decrypt(const RSA_PublicKey& key, const byte* sig, byte* plain);
-
-
-// Public SSL type (block 1) Decrypt
-template
-bool RSA_Encryptor::SSL_Verify(const byte* message, word32 sz,
-                                    const byte* sig)
-{
-    ByteBlock plain(PK_Lengths(key_.GetModulus()).FixedMaxPlaintextLength());
-    if (SSL_Decrypt(key_, sig, plain.get_buffer()) != sz)
-        return false;   // not right justified or bad padding
-
-    if ( (memcmp(plain.get_buffer(), message, sz)) == 0)
-        return true;
-    return false;
-}
-
-
-typedef RSA_Encryptor<> RSAES_Encryptor;
-typedef RSA_Decryptor<> RSAES_Decryptor;
-
-
-} // namespace
-
-#endif // TAO_CRYPT_RSA_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/runtime.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/runtime.hpp
deleted file mode 100644
index 4c743625..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/runtime.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* runtime.hpp provides C++ runtime support functions when building a pure C
- * version of yaSSL, user must define YASSL_PURE_C
-*/
-
-
-
-#ifndef yaSSL_NEW_HPP
-#define yaSSL_NEW_HPP
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef __sun
- 
-
-// Handler for pure virtual functions
-namespace __Crun {
-    static void pure_error(void)
-    {
-       // "Pure virtual method called, Aborted", GCC 4.2 str cmp fix
-    }
-} // namespace __Crun
-
-#endif // __sun
-
-
-#if defined(__GNUC__) && !(defined(__ICC) || defined(__INTEL_COMPILER))
-
-#if __GNUC__ > 2
-
-extern "C" {
-#if defined(DO_TAOCRYPT_KERNEL_MODE)
-    #include "kernelc.hpp"
-#endif
-
-/* Disallow inline __cxa_pure_virtual() */
-static int __cxa_pure_virtual() __attribute__((noinline, used));
-static int __cxa_pure_virtual()
-{
-    // oops, pure virtual called!
-    return 0;
-}
-
-} // extern "C"
-
-#endif // __GNUC__ > 2
-#endif // compiler check
-#endif // yaSSL_NEW_HPP
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/sha.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/sha.hpp
deleted file mode 100644
index cf6d0d09..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/sha.hpp
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* sha.hpp provides SHA-1 digests, see RFC 3174
-*/
-
-#ifndef TAO_CRYPT_SHA_HPP
-#define TAO_CRYPT_SHA_HPP
-
-#include "hash.hpp"
-
-
-#if defined(TAOCRYPT_X86ASM_AVAILABLE) && defined(TAO_ASM)
-    #define DO_SHA_ASM
-#endif
-
-namespace TaoCrypt {
-
-
-// SHA-1 digest
-class SHA : public HASHwithTransform {
-public:
-    enum { BLOCK_SIZE = 64, DIGEST_SIZE = 20, PAD_SIZE = 56,
-           TAO_BYTE_ORDER = BigEndianOrder};   // in Bytes
-    SHA() : HASHwithTransform(DIGEST_SIZE / sizeof(word32), BLOCK_SIZE)
-                { Init(); }
-    ByteOrder getByteOrder()  const { return ByteOrder(TAO_BYTE_ORDER); }
-    word32    getBlockSize()  const { return BLOCK_SIZE; }
-    word32    getDigestSize() const { return DIGEST_SIZE; }
-    word32    getPadSize()    const { return PAD_SIZE; }
-
-#ifdef DO_SHA_ASM
-    void Update(const byte* data, word32 len);
-#endif
-    void Init();
-
-    SHA(const SHA&);
-    SHA& operator= (const SHA&);
-
-    void Swap(SHA&);
-private:
-    void Transform();
-    void AsmTransform(const byte* data, word32 times);
-};
-
-
-inline void swap(SHA& a, SHA& b)
-{
-    a.Swap(b);
-}
-
-// SHA-256 digest
-class SHA256 : public HASHwithTransform {
-public:
-    enum { BLOCK_SIZE = 64, DIGEST_SIZE = 32, PAD_SIZE = 56,
-           TAO_BYTE_ORDER = BigEndianOrder};   // in Bytes
-    SHA256() : HASHwithTransform(DIGEST_SIZE / sizeof(word32), BLOCK_SIZE)
-                { Init(); }
-    ByteOrder getByteOrder()  const { return ByteOrder(TAO_BYTE_ORDER); }
-    word32    getBlockSize()  const { return BLOCK_SIZE; }
-    word32    getDigestSize() const { return DIGEST_SIZE; }
-    word32    getPadSize()    const { return PAD_SIZE; }
-
-    void Init();
-
-    SHA256(const SHA256&);
-    SHA256& operator= (const SHA256&);
-
-    void Swap(SHA256&);
-private:
-    void Transform();
-};
-
-
-// SHA-224 digest
-class SHA224 : public HASHwithTransform {
-public:
-    enum { BLOCK_SIZE = 64, DIGEST_SIZE = 28, PAD_SIZE = 56,
-           TAO_BYTE_ORDER = BigEndianOrder};   // in Bytes
-    SHA224() : HASHwithTransform(SHA256::DIGEST_SIZE /sizeof(word32),BLOCK_SIZE)
-                { Init(); }
-    ByteOrder getByteOrder()  const { return ByteOrder(TAO_BYTE_ORDER); }
-    word32    getBlockSize()  const { return BLOCK_SIZE; }
-    word32    getDigestSize() const { return DIGEST_SIZE; }
-    word32    getPadSize()    const { return PAD_SIZE; }
-
-    void Init();
-
-    SHA224(const SHA224&);
-    SHA224& operator= (const SHA224&);
-
-    void Swap(SHA224&);
-private:
-    void Transform();
-};
-
-
-#ifdef WORD64_AVAILABLE
-
-// SHA-512 digest
-class SHA512 : public HASH64withTransform {
-public:
-    enum { BLOCK_SIZE = 128, DIGEST_SIZE = 64, PAD_SIZE = 112,
-           TAO_BYTE_ORDER = BigEndianOrder};   // in Bytes
-    SHA512() : HASH64withTransform(DIGEST_SIZE / sizeof(word64), BLOCK_SIZE)
-                { Init(); }
-    ByteOrder getByteOrder()  const { return ByteOrder(TAO_BYTE_ORDER); }
-    word32    getBlockSize()  const { return BLOCK_SIZE; }
-    word32    getDigestSize() const { return DIGEST_SIZE; }
-    word32    getPadSize()    const { return PAD_SIZE; }
-
-    void Init();
-
-    SHA512(const SHA512&);
-    SHA512& operator= (const SHA512&);
-
-    void Swap(SHA512&);
-private:
-    void Transform();
-};
-
-
-// SHA-384 digest
-class SHA384 : public HASH64withTransform {
-public:
-    enum { BLOCK_SIZE = 128, DIGEST_SIZE = 48, PAD_SIZE = 112,
-           TAO_BYTE_ORDER = BigEndianOrder};   // in Bytes
-    SHA384() : HASH64withTransform(SHA512::DIGEST_SIZE/ sizeof(word64),
-                                   BLOCK_SIZE)
-                { Init(); }
-    ByteOrder getByteOrder()  const { return ByteOrder(TAO_BYTE_ORDER); }
-    word32    getBlockSize()  const { return BLOCK_SIZE; }
-    word32    getDigestSize() const { return DIGEST_SIZE; }
-    word32    getPadSize()    const { return PAD_SIZE; }
-
-    void Init();
-
-    SHA384(const SHA384&);
-    SHA384& operator= (const SHA384&);
-
-    void Swap(SHA384&);
-private:
-    void Transform();
-};
-
-enum { MAX_SHA2_DIGEST_SIZE = 64 };   // SHA512
-
-#else
-
-enum { MAX_SHA2_DIGEST_SIZE = 32 };   // SHA256
-
-#endif // WORD64_AVAILABLE
-
-
-} // namespace
-
-
-#endif // TAO_CRYPT_SHA_HPP
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/twofish.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/twofish.hpp
deleted file mode 100644
index eeb9b6ab..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/twofish.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* twofish.hpp defines Twofish
-*/
-
-
-#ifndef TAO_CRYPT_TWOFISH_HPP
-#define TAO_CRYPT_TWOFISH_HPP
-
-#include "misc.hpp"
-#include "modes.hpp"
-#ifdef USE_SYS_STL
-    #include 
-#else
-    #include "algorithm.hpp"
-#endif
-
-
-namespace STL = STL_NAMESPACE;
-
-
-#if defined(TAOCRYPT_X86ASM_AVAILABLE) && defined(TAO_ASM)
-    #define DO_TWOFISH_ASM
-#endif
-
-namespace TaoCrypt {
-
-enum { TWOFISH_BLOCK_SIZE = 16 };
-
-
-// Twofish encryption and decryption, see 
-class Twofish : public Mode_BASE {
-public:
-    enum { BLOCK_SIZE = TWOFISH_BLOCK_SIZE };
-
-    Twofish(CipherDir DIR, Mode MODE)
-        : Mode_BASE(BLOCK_SIZE, DIR, MODE) {}
-
-#ifdef DO_TWOFISH_ASM
-    void Process(byte*, const byte*, word32);
-#endif
-    void SetKey(const byte* key, word32 sz, CipherDir fake = ENCRYPTION);
-    void SetIV(const byte* iv) { memcpy(r_, iv, BLOCK_SIZE); }
-private:
-	static const byte     q_[2][256];
-	static const word32 mds_[4][256];
-
-	word32 k_[40];
-	word32 s_[4][256];
-
-	static word32 h0(word32 x, const word32 *key, unsigned int kLen);
-	static word32 h(word32 x, const word32 *key, unsigned int kLen);
-
-    void ProcessAndXorBlock(const byte*, const byte*, byte*) const;
-
-    void encrypt(const byte*, const byte*, byte*) const;
-    void decrypt(const byte*, const byte*, byte*) const;
-
-    void AsmEncrypt(const byte* inBlock, byte* outBlock) const;
-    void AsmDecrypt(const byte* inBlock, byte* outBlock) const;
-
-    Twofish(const Twofish&);            // hide copy
-    Twofish& operator=(const Twofish&); // and assign
-};
-
-
-typedef BlockCipher Twofish_ECB_Encryption;
-typedef BlockCipher Twofish_ECB_Decryption;
-
-typedef BlockCipher Twofish_CBC_Encryption;
-typedef BlockCipher Twofish_CBC_Decryption;
-
-
-
-} // naemspace
-
-#endif // TAO_CRYPT_TWOFISH_HPP
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/type_traits.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/type_traits.hpp
deleted file mode 100644
index 8c6fe53b..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/type_traits.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* type_traits defines fundamental types
- * see discussion in C++ Templates, $19.1
-*/
-
-
-#ifndef TAO_CRYPT_TYPE_TRAITS_HPP
-#define TAO_CRYPT_TYPE_TRAITS_HPP
-
-#include "types.hpp"
-
-namespace TaoCrypt {
-
-
-// primary template: in general T is not a fundamental type
-
-template 
-class IsFundamentalType {
-    public:
-        enum { Yes = 0, No = 1 };
-};
-
-
-// macro to specialize for fundamental types
-#define MK_FUNDAMENTAL_TYPE(T)                  \
-    template<> class IsFundamentalType {     \
-        public:                                 \
-            enum { Yes = 1, No = 0 };           \
-    };
-
-
-MK_FUNDAMENTAL_TYPE(void)
-
-MK_FUNDAMENTAL_TYPE(bool)
-MK_FUNDAMENTAL_TYPE(         char)
-MK_FUNDAMENTAL_TYPE(signed   char)
-MK_FUNDAMENTAL_TYPE(unsigned char)
-
-MK_FUNDAMENTAL_TYPE(signed   short)
-MK_FUNDAMENTAL_TYPE(unsigned short)
-MK_FUNDAMENTAL_TYPE(signed   int)
-MK_FUNDAMENTAL_TYPE(unsigned int)
-MK_FUNDAMENTAL_TYPE(signed   long)
-MK_FUNDAMENTAL_TYPE(unsigned long)
-
-MK_FUNDAMENTAL_TYPE(float)
-MK_FUNDAMENTAL_TYPE(     double)
-MK_FUNDAMENTAL_TYPE(long double)
-
-#if defined(WORD64_AVAILABLE) && defined(WORD64_IS_DISTINCT_TYPE)
-    MK_FUNDAMENTAL_TYPE(word64)
-#endif
-
-
-#undef MK_FUNDAMENTAL_TYPE
-
-
-} // namespace
-
-#endif // TAO_CRYPT_TYPE_TRAITS_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/types.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/include/types.hpp
deleted file mode 100644
index 973e1d19..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/include/types.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* based on Wei Dai's misc.h from CryptoPP, basic crypt types */
-
-
-#ifndef TAO_CRYPT_TYPES_HPP
-#define TAO_CRYPT_TYPES_HPP
-
-#ifdef HAVE_CONFIG_H
-    #include "config.h"
-#endif
-
-namespace TaoCrypt {
-
-
-#if defined(WORDS_BIGENDIAN) || (defined(__MWERKS__) && !defined(__INTEL__))
-    #define BIG_ENDIAN_ORDER
-#endif
-
-#ifndef BIG_ENDIAN_ORDER
-    #define LITTLE_ENDIAN_ORDER
-#endif
-
-
-typedef unsigned char  byte;
-typedef unsigned short word16;
-typedef unsigned int   word32;
-
-#if defined(_MSC_VER) || defined(__BCPLUSPLUS__)
-    #define WORD64_AVAILABLE
-    #define WORD64_IS_DISTINCT_TYPE
-    typedef unsigned __int64 word64;
-    #define W64LIT(x) x##ui64
-#elif SIZEOF_LONG == 8
-    #define WORD64_AVAILABLE
-    typedef unsigned long word64;
-    #define W64LIT(x) x##LL
-#elif SIZEOF_LONG_LONG == 8 
-    #define WORD64_AVAILABLE
-    #define WORD64_IS_DISTINCT_TYPE
-    typedef unsigned long long word64;
-    #define W64LIT(x) x##LL
-#endif
-
-
-// compilers we've found 64-bit multiply insructions for
-#if defined(__GNUC__) || defined(_MSC_VER) || defined(__DECCXX)
-    #if !(defined(__ICC) || defined(__INTEL_COMPILER))
-        #define HAVE_64_MULTIPLY
-    #endif
-#endif
-
-    
-#if defined(HAVE_64_MULTIPLY) && (defined(__alpha__) || defined(__ia64__) \
-    || defined(_ARCH_PPC64) || defined(__mips64)  || defined(__x86_64__) \
-    || defined(_M_X64) || defined(_M_IA64)) 
-// These platforms have 64-bit CPU registers. Unfortunately most C++ compilers
-// don't allow any way to access the 64-bit by 64-bit multiply instruction
-// without using assembly, so in order to use word64 as word, the assembly
-// instruction must be defined in Dword::Multiply().
-    typedef word32 hword;
-    typedef word64 word;
-#else
-    #define TAOCRYPT_NATIVE_DWORD_AVAILABLE
-    #ifdef WORD64_AVAILABLE
-        #define TAOCRYPT_SLOW_WORD64
-        typedef word16 hword;
-        typedef word32 word;
-        typedef word64 dword;
-    #else
-        typedef byte   hword;
-        typedef word16 word;
-        typedef word32 dword;
-    #endif
-#endif
-
-const word32 WORD_SIZE = sizeof(word);
-const word32 WORD_BITS = WORD_SIZE * 8;
-
-
-}  // namespace
-
-#endif // TAO_CRYPT_TYPES_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/algorithm.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/algorithm.hpp
deleted file mode 100644
index 83be9644..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/algorithm.hpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* mySTL algorithm implements max, min, for_each, swap, find_if, copy,
- * copy_backward, fill
- */
-
-#ifndef mySTL_ALGORITHM_HPP
-#define mySTL_ALGORITHM_HPP
-
-
-namespace mySTL {
-
-
-template
-inline const T& max(const T& a, const T&b)
-{
-    return a < b ? b : a;
-}
-
-
-template
-inline const T& min(const T& a, const T&b)
-{
-    return b < a ? b : a;
-}
-
-
-template
-Func for_each(InIter first, InIter last, Func op)
-{
-    while (first != last) {
-        op(*first);
-        ++first;
-    }
-    return op;
-}
-
-
-template
-inline void swap(T& a, T& b)
-{
-    T tmp = a;
-    a = b;
-    b = tmp;
-}
-
-
-template
-InIter find_if(InIter first, InIter last, Pred pred)
-{
-    while (first != last && !pred(*first))
-        ++first;
-    return first;
-}
-
-
-template
-inline OutputIter copy(InputIter first, InputIter last, OutputIter place)
-{
-    while (first != last) {
-        *place = *first;
-        ++first;
-        ++place;
-    }
-    return place;
-}
-
-
-template
-inline OutputIter 
-copy_backward(InputIter first, InputIter last, OutputIter place)
-{
-    while (first != last)
-        *--place = *--last;
-    return place;
-}
-
-
-template
-void fill(InputIter first, InputIter last, const T& v)
-{
-    while (first != last) {
-        *first = v;
-        ++first;
-    }
-}
-
-
-}  // namespace mySTL
-
-#endif // mySTL_ALGORITHM_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/helpers.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/helpers.hpp
deleted file mode 100644
index fc6e89d2..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/helpers.hpp
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* mySTL helpers implements misc constructs for vector and list
- *
- */
-
-#ifndef mySTL_HELPERS_HPP
-#define mySTL_HELPERS_HPP
-
-#include 
-#ifdef _MSC_VER
-    #include 
-#endif
-
-/*
-      Workaround for the lack of operator new(size_t, void*)
-      in IBM VA C++ 6.0
-      Also used as a workaround to avoid including 
-*/
-    struct Dummy {};
-
-    inline void* operator new(size_t size, Dummy* d) 
-    { 
-        return static_cast(d);
-    }
-
-    // for compilers that want matching delete
-    inline void operator delete(void* ptr, Dummy* d) 
-    { 
-    }
-
-    typedef Dummy* yassl_pointer;
-
-namespace mySTL {
-
-
-template 
-inline void construct(T* p, const T2& value)
-{
-    new (reinterpret_cast(p)) T(value);
-}
-
-
-template 
-inline void construct(T* p)
-{
-    new (reinterpret_cast(p)) T();
-}
-
-
-template 
-inline void destroy(T* p)
-{
-    p->~T();
-}
-
-
-template 
-void destroy(Iter first, Iter last)
-{
-    while (first != last) {
-        destroy(&*first);
-        ++first;
-    }
-}
-
-
-template 
-PlaceIter uninit_copy(Iter first, Iter last, PlaceIter place)
-{
-    while (first != last) {
-        construct(&*place, *first);
-        ++first;
-        ++place;
-    }
-    return place;
-}
-
-
-template 
-PlaceIter uninit_fill_n(PlaceIter place, Size n, const T& value)
-{
-    while (n) {
-        construct(&*place, value);
-        --n;
-        ++place;
-    }
-    return place;
-}
-
-
-template 
-T* GetArrayMemory(size_t items)
-{
-    unsigned char* ret;
-
-    #ifdef YASSL_LIB
-        ret = NEW_YS unsigned char[sizeof(T) * items];
-    #else
-        ret = NEW_TC unsigned char[sizeof(T) * items];
-    #endif
-
-    return reinterpret_cast(ret);
-}
-
-
-template 
-void FreeArrayMemory(T* ptr)
-{
-    unsigned char* p = reinterpret_cast(ptr);
-
-    #ifdef YASSL_LIB
-        yaSSL::ysArrayDelete(p);
-    #else
-        TaoCrypt::tcArrayDelete(p);
-    #endif
-}
-
-
-
-inline void* GetMemory(size_t bytes)
-{
-    return GetArrayMemory(bytes);
-}
-
-
-inline void FreeMemory(void* ptr)
-{
-    FreeArrayMemory(ptr);
-}
-
-
-
-} // namespace mySTL
-
-#endif // mySTL_HELPERS_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/list.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/list.hpp
deleted file mode 100644
index df03e0ae..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/list.hpp
+++ /dev/null
@@ -1,367 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* mySTL list implements a simple list
- *
- */
-
-#ifndef mySTL_LIST_HPP
-#define mySTL_LIST_HPP
-
-
-#include "helpers.hpp"
-
-
-namespace mySTL {
-
-
-
-template 
-class list {
-
-#ifdef __SUNPRO_CC
-/*
-   Sun Forte 7 C++ v. 5.4 needs class 'node' public to be visible to
-   the nested class 'iterator' (a non-standard behaviour).
-*/
-public:
-#endif
-
-    struct node {
-        node(T t) : prev_(0), next_(0), value_(t) {}
-
-        node* prev_;
-        node* next_;
-        T     value_;
-    };   
-public:
-    list() : head_(0), tail_(0), sz_(0) {}
-    ~list();
-
-    void   push_front(T);
-    void   pop_front();
-    T      front() const;
-    void   push_back(T);
-    void   pop_back();
-    T      back() const;
-    bool   remove(T);
-    size_t size()  const { return sz_; }
-    bool   empty() const { return sz_ == 0; }
-
-    class iterator {
-        node* current_;
-    public:
-        explicit iterator(node* p = 0) : current_(p) {}
-
-        T& operator*() const
-        {
-            return current_->value_;
-        }
-
-        T* operator->() const
-        {
-            return &(operator*());
-        }
-
-        iterator& operator++()
-        {
-            current_ = current_->next_;
-            return *this;
-        }
-
-        iterator& operator--()
-        {
-            current_ = current_->prev_;
-            return *this;
-        }
-
-        iterator operator++(int)
-        {
-            iterator tmp = *this;
-            current_ = current_->next_;
-            return tmp;
-        }
-
-        iterator operator--(int)
-        {
-            iterator tmp = *this;
-            current_ = current_->prev_;
-            return tmp;
-        }
-
-        bool operator==(const iterator& other) const
-        { 
-            return current_ == other.current_;
-        }
-
-        bool operator!=(const iterator& other) const
-        {
-            return current_ != other.current_;
-        }
-
-        friend class list;
-    };
-
-
-    class reverse_iterator {
-        node* current_;
-    public:
-        explicit reverse_iterator(node* p = 0) : current_(p) {}
-
-        T& operator*() const
-        {
-            return current_->value_;
-        }
-
-        T* operator->() const
-        {
-            return &(operator*());
-        }
-
-        reverse_iterator& operator++()
-        {
-            current_ = current_->prev_;
-            return *this;
-        }
-
-        reverse_iterator& operator--()
-        {
-            current_ = current_->next_;
-            return *this;
-        }
-
-        reverse_iterator operator++(int)
-        {
-            reverse_iterator tmp = *this;
-            current_ = current_->prev_;
-            return tmp;
-        }
-
-        reverse_iterator operator--(int)
-        {
-            reverse_iterator tmp = *this;
-            current_ = current_->next_;
-            return tmp;
-        }
-
-        bool operator==(const reverse_iterator& other) const
-        { 
-            return current_ == other.current_;
-        }
-
-        bool operator!=(const reverse_iterator& other) const
-        {
-            return current_ != other.current_;
-        }
-
-        friend class list;
-    };
-
-    bool erase(iterator);
-
-    iterator         begin()  const { return iterator(head_); }
-    reverse_iterator rbegin() const { return reverse_iterator(tail_); }
-    iterator         end()    const { return iterator(); }
-    reverse_iterator rend()   const { return reverse_iterator(); }
-
-    typedef iterator const_iterator;    // for now
-
-    class underflow {};
-    class overflow {}; 
-private:
-    node*  head_;
-    node*  tail_;
-    size_t sz_;
-
-    node* look_up(T);
-
-    list(const list&);            // hide copy
-    list& operator=(const list&); // and assign
-};
-
-
-template 
-list::~list()
-{
-    node* start = head_;
-    node* next_;
-
-    for (; start; start = next_) {
-        next_ = start->next_;
-        destroy(start);
-        FreeMemory(start);
-    }
-}
-
-
-template 
-void list::push_front(T t)
-{
-    void* mem = GetMemory(sizeof(node));
-    node* add = new (reinterpret_cast(mem)) node(t);
-
-    if (head_) {
-        add->next_ = head_;
-        head_->prev_ = add;
-    }
-    else
-        tail_ = add;
-
-    head_ = add;
-    ++sz_; 
-}
-
-
-template 
-void list::pop_front()
-{
-    node* front = head_;
-
-    if (head_ == 0)
-        return;
-    else if (head_ == tail_)
-        head_ = tail_ = 0;
-    else {
-        head_ = head_->next_;
-        head_->prev_ = 0;
-    }
-    destroy(front);
-    FreeMemory(front);
-    --sz_;
-}
-
-
-template 
-T list::front() const
-{
-    if (head_ == 0) return T();
-    return head_->value_;
-}
-
-
-template 
-void list::push_back(T t)
-{
-    void* mem = GetMemory(sizeof(node));
-    node* add = new (reinterpret_cast(mem)) node(t);
-
-    if (tail_) {
-        tail_->next_ = add;
-        add->prev_ = tail_;
-    }
-    else
-        head_ = add;
-
-    tail_ = add;
-    ++sz_;
-}
-
-
-template 
-void list::pop_back()
-{
-    node* rear = tail_;
-
-    if (tail_ == 0)
-        return;
-    else if (tail_ == head_)
-        tail_ = head_ = 0;
-    else {
-        tail_ = tail_->prev_;
-        tail_->next_ = 0;
-    }
-    destroy(rear);
-    FreeMemory(rear);
-    --sz_;
-}
-
-
-template 
-T list::back() const
-{
-    if (tail_ == 0) return T();
-    return tail_->value_;
-}
-
-
-template
-typename list::node* list::look_up(T t)
-{
-    node* list = head_;
-
-    if (list == 0) return 0;
-
-    for (; list; list = list->next_)
-        if (list->value_ == t)
-            return list;
-
-    return 0;
-}
-
-
-template 
-bool list::remove(T t)
-{
-    node* del = look_up(t);
-
-    if (del == 0)
-        return false;
-    else if (del == head_)
-        pop_front();
-    else if (del == tail_)
-        pop_back();
-    else {
-        del->prev_->next_ = del->next_;
-        del->next_->prev_ = del->prev_;
-
-        destroy(del);
-        FreeMemory(del);
-        --sz_;
-    }
-    return true;
-}
-
-
-template 
-bool list::erase(iterator iter)
-{
-    node* del = iter.current_;
-
-    if (del == 0)
-        return false;
-    else if (del == head_)
-        pop_front();
-    else if (del == tail_)
-        pop_back();
-    else {
-        del->prev_->next_ = del->next_;
-        del->next_->prev_ = del->prev_;
-
-        destroy(del);
-        FreeMemory(del);
-        --sz_;
-    }
-    return true;
-}
-
-
-
-} // namespace mySTL
-
-#endif // mySTL_LIST_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/memory.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/memory.hpp
deleted file mode 100644
index 7e709be3..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/memory.hpp
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* mySTL memory implements auto_ptr
- *
- */
-
-#ifndef mySTL_MEMORY_HPP
-#define mySTL_MEMORY_HPP
-
-#include "memory_array.hpp"   // for auto_array
-
-#ifdef _MSC_VER
-    // disable operator-> warning for builtins
-    #pragma warning(disable:4284)
-#endif
-
-
-namespace mySTL {
-
-
-template
-struct auto_ptr_ref {
-    T* ptr_;
-    explicit auto_ptr_ref(T* p) : ptr_(p) {}
-};
-
-
-template
-class auto_ptr {
-    T*       ptr_;
-
-    void Destroy()
-    {
-        #ifdef YASSL_LIB
-            yaSSL::ysDelete(ptr_);
-        #else
-            TaoCrypt::tcDelete(ptr_);
-        #endif
-    }
-public:
-    explicit auto_ptr(T* p = 0) : ptr_(p) {}
-
-    ~auto_ptr() 
-    {
-        Destroy();
-    }
-
-
-    auto_ptr(auto_ptr& other) : ptr_(other.release()) {}
-
-    auto_ptr& operator=(auto_ptr& that)
-    {
-        if (this != &that) {
-            Destroy();
-            ptr_ = that.release();
-        }
-        return *this;
-    }
-
-
-    T* operator->() const
-    {
-        return ptr_;
-    }
-
-    T& operator*() const
-    {
-        return *ptr_;
-    }
-
-    T* get() const 
-    { 
-        return ptr_; 
-    }
-
-    T* release()
-    {
-        T* tmp = ptr_;
-        ptr_ = 0;
-        return tmp;
-    }
-
-    void reset(T* p = 0)
-    {
-        if (ptr_ != p) {
-            Destroy();
-            ptr_ = p;
-        }
-    }
-
-    // auto_ptr_ref conversions
-    auto_ptr(auto_ptr_ref ref) : ptr_(ref.ptr_) {}
-
-    auto_ptr& operator=(auto_ptr_ref ref)
-    {
-        if (this->ptr_ != ref.ptr_) {
-            Destroy();
-            ptr_ = ref.ptr_;
-        }
-        return *this;
-    }
-
-    template
-    operator auto_ptr()
-    {
-        return auto_ptr(this->release());
-    }
-
-    template
-    operator auto_ptr_ref()
-    {
-        return auto_ptr_ref(this->release());
-    }
-};
-
-
-} // namespace mySTL
-
-#endif // mySTL_MEMORY_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/memory_array.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/memory_array.hpp
deleted file mode 100644
index 1c238d9a..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/memory_array.hpp
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* mySTL memory_arry implements auto_array
- *
- */
-
-#ifndef mySTL_MEMORY_ARRAY_HPP
-#define mySTL_MEMORY_ARRAY_HPP
-
-
-#ifdef _MSC_VER
-    // disable operator-> warning for builtins
-    #pragma warning(disable:4284)
-#endif
-
-
-namespace mySTL {
-
-
-template
-struct auto_array_ref {
-    T* ptr_;
-    explicit auto_array_ref(T* p) : ptr_(p) {}
-};
-
-
-template
-class auto_array {
-    T*       ptr_;
-
-    void Destroy()
-    {
-        #ifdef YASSL_LIB
-            yaSSL::ysArrayDelete(ptr_);
-        #else
-            TaoCrypt::tcArrayDelete(ptr_);
-        #endif
-    }
-public:
-    explicit auto_array(T* p = 0) : ptr_(p) {}
-
-    ~auto_array() 
-    {
-        Destroy();
-    }
-
-
-    auto_array(auto_array& other) : ptr_(other.release()) {}
-
-    auto_array& operator=(auto_array& that)
-    {
-        if (this != &that) {
-            Destroy();
-            ptr_ = that.release();
-        }
-        return *this;
-    }
-
-
-    T* operator->() const
-    {
-        return ptr_;
-    }
-
-    T& operator*() const
-    {
-        return *ptr_;
-    }
-
-    T* get() const 
-    { 
-        return ptr_; 
-    }
-
-    T* release()
-    {
-        T* tmp = ptr_;
-        ptr_ = 0;
-        return tmp;
-    }
-
-    void reset(T* p = 0)
-    {
-        if (ptr_ != p) {
-            Destroy();
-            ptr_ = p;
-        }
-    }
-
-    // auto_array_ref conversions
-    auto_array(auto_array_ref ref) : ptr_(ref.ptr_) {}
-
-    auto_array& operator=(auto_array_ref ref)
-    {
-        if (this->ptr_ != ref.ptr_) {
-            Destroy();
-            ptr_ = ref.ptr_;
-        }
-        return *this;
-    }
-
-    template
-    operator auto_array()
-    {
-        return auto_array(this->release());
-    }
-
-    template
-    operator auto_array_ref()
-    {
-        return auto_array_ref(this->release());
-    }
-};
-
-
-} // namespace mySTL
-
-#endif // mySTL_MEMORY_ARRAY_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/pair.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/pair.hpp
deleted file mode 100644
index 545827a9..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/pair.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* mySTL pair implements pair
- *
- */
-
-#ifndef mySTL_PAIR_HPP
-#define mySTL_PAIR_HPP
-
-
-
-namespace mySTL {
-
-
-template
-struct pair {
-    typedef T1 first_type;
-    typedef T2 second_type;
-
-    first_type  first;
-    second_type second;
-
-    pair() {}
-    pair(const T1& t1, const T2& t2) : first(t1), second(t2) {}
-
-    template
-    pair(const pair& p) : first(p.first), second(p.second) {}
-};
-
-
-template
-inline pair make_pair(const T1& a, const T2& b)
-{
-    return pair(a, b);
-}
-
-
-
-} // namespace mySTL
-
-#endif // mySTL_PAIR_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/stdexcept.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/stdexcept.hpp
deleted file mode 100644
index 79ae6de3..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/stdexcept.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* mySTL memory implements exception, runtime_error
- *
- */
-
-#ifndef mySTL_STDEXCEPT_HPP
-#define mySTL_STDEXCEPT_HPP
-
-
-#include   // strncpy
-#include   // size_t
-
-
-namespace mySTL {
-
-
-class exception {
-public:
-    exception() {}
-    virtual ~exception() {}   // to shut up compiler warnings
-
-    virtual const char* what() const { return ""; }
-
-    // for compiler generated call, never used
-    static void operator delete(void*) { }
-private:
-    // don't allow dynamic creation of exceptions
-    static void* operator new(size_t);
-};
-
-
-class named_exception : public exception {
-public:
-    enum { NAME_SIZE = 80 };
-
-    explicit named_exception(const char* str) 
-    {
-        strncpy(name_, str, NAME_SIZE);
-        name_[NAME_SIZE - 1] = 0;
-    }
-
-    virtual const char* what() const { return name_; }
-private:
-    char name_[NAME_SIZE];
-};
-
-
-class runtime_error : public named_exception {
-public:
-    explicit runtime_error(const char* str) : named_exception(str) {}
-};
-
-
-
-
-} // namespace mySTL
-
-#endif // mySTL_STDEXCEPT_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/vector.hpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/vector.hpp
deleted file mode 100644
index f3702b75..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/mySTL/vector.hpp
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* mySTL vector implements simple vector, w/ swap
- *
- */
-
-#ifndef mySTL_VECTOR_HPP
-#define mySTL_VECTOR_HPP
-
-#include "helpers.hpp"    // construct, destory, fill, etc.
-#include "algorithm.hpp"  // swap
-
-
-namespace mySTL {
-
-
-template 
-struct vector_base {
-    T* start_;
-    T* finish_;
-    T* end_of_storage_;
-
-    vector_base() : start_(0), finish_(0), end_of_storage_(0) {}
-    vector_base(size_t n)
-    {
-        start_ = GetArrayMemory(n);
-        finish_ = start_;
-        end_of_storage_ = start_ + n;
-    }
-
-    ~vector_base() 
-    { 
-        FreeArrayMemory(start_);
-    }
-
-    void Swap(vector_base& that) 
-    {
-        swap(start_, that.start_);
-        swap(finish_, that.finish_);
-        swap(end_of_storage_, that.end_of_storage_);
-    }
-};
-
-
-
-template 
-class vector {
-public:
-    typedef T*       iterator;
-    typedef const T* const_iterator;
-
-    vector() {}
-    explicit vector(size_t n) : vec_(n) 
-    { 
-        vec_.finish_ = uninit_fill_n(vec_.start_, n, T()); 
-    }
-
-    ~vector() { destroy(vec_.start_, vec_.finish_); }
-
-    vector(const vector& other) : vec_(other.size())
-    {
-        vec_.finish_ = uninit_copy(other.vec_.start_, other.vec_.finish_,
-                                   vec_.start_);   
-    }
-
-    size_t capacity() const { return vec_.end_of_storage_ - vec_.start_; }
-
-    size_t size() const { return vec_.finish_ - vec_.start_; }
-
-    T&       operator[](size_t idx)       { return *(vec_.start_ + idx); }
-    const T& operator[](size_t idx) const { return *(vec_.start_ + idx); }
-
-    const T* begin() const { return vec_.start_; }
-    const T* end()   const { return vec_.finish_; }
-
-    void push_back(const T& v)
-    {
-        if (vec_.finish_ != vec_.end_of_storage_) {
-            construct(vec_.finish_, v);
-            ++vec_.finish_;
-        }
-        else {
-            vector tmp(size() * 2 + 1, *this);
-            construct(tmp.vec_.finish_, v);
-            ++tmp.vec_.finish_;
-            Swap(tmp);
-        }  
-    }
-
-    void resize(size_t n, const T& v)
-    {
-        if (n == size()) return;
-
-        if (n < size()) {
-            T* first = vec_.start_ + n;
-            destroy(first, vec_.finish_);
-            vec_.finish_ -= vec_.finish_ - first;
-        }
-        else {
-            vector tmp(n, *this);
-            tmp.vec_.finish_ = uninit_fill_n(tmp.vec_.finish_, n - size(), v);
-            Swap(tmp);
-        }
-    }
-
-    void reserve(size_t n)
-    {
-        if (capacity() < n) {
-            vector tmp(n, *this);
-            Swap(tmp);
-        }
-    }
-
-    void Swap(vector& that)
-    {
-        vec_.Swap(that.vec_);
-    }
-private:
-    vector_base vec_;
-
-    vector& operator=(const vector&);   // hide assign
-
-    // for growing, n must be bigger than other size
-    vector(size_t n, const vector& other) : vec_(n)
-    {
-        if (n > other.size())
-            vec_.finish_ = uninit_copy(other.vec_.start_, other.vec_.finish_,
-                                       vec_.start_);
-    }
-};
-
-
-
-} // namespace mySTL
-
-#endif // mySTL_VECTOR_HPP
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/aes.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/aes.cpp
deleted file mode 100644
index 3fcf80ac..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/aes.cpp
+++ /dev/null
@@ -1,1885 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* C++ based on Wei Dai's aes.cpp from CryptoPP */
-/* x86 asm original */
-
-#if defined(TAOCRYPT_KERNEL_MODE)
-    #define DO_TAOCRYPT_KERNEL_MODE
-#endif                                  // only some modules now support this
-
-#include "runtime.hpp"
-#include "aes.hpp"
-
-
-namespace TaoCrypt {
-
-
-#if defined(DO_AES_ASM)
-
-// ia32 optimized version
-void AES::Process(byte* out, const byte* in, word32 sz)
-{
-    if (!isMMX) {
-        Mode_BASE::Process(out, in, sz);
-        return;
-    }
-
-    word32 blocks = sz / BLOCK_SIZE;
-
-    if (mode_ == ECB)
-        while (blocks--) {
-            if (dir_ == ENCRYPTION)
-                AsmEncrypt(in, out, (void*)Te0);
-            else
-                AsmDecrypt(in, out, (void*)Td0);               
-            out += BLOCK_SIZE;
-            in  += BLOCK_SIZE;
-        }
-    else if (mode_ == CBC) {
-        if (dir_ == ENCRYPTION) {
-            while (blocks--) {
-                r_[0] ^= *(word32*)in;
-                r_[1] ^= *(word32*)(in +  4);
-                r_[2] ^= *(word32*)(in +  8);
-                r_[3] ^= *(word32*)(in + 12);
-
-                AsmEncrypt((byte*)r_, (byte*)r_, (void*)Te0);
-
-                memcpy(out, r_, BLOCK_SIZE);
-                out += BLOCK_SIZE;
-                in  += BLOCK_SIZE;
-            }
-        }
-        else {
-            while (blocks--) {
-                AsmDecrypt(in, out, (void*)Td0);
-                
-                *(word32*)out        ^= r_[0];
-                *(word32*)(out +  4) ^= r_[1];
-                *(word32*)(out +  8) ^= r_[2];
-                *(word32*)(out + 12) ^= r_[3];
-
-                memcpy(r_, in, BLOCK_SIZE);
-                out += BLOCK_SIZE;
-                in  += BLOCK_SIZE;
-            }
-        }
-    }
-}
-
-#endif // DO_AES_ASM
-
-
-void AES::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/)
-{
-    if (keylen <= 16)
-        keylen = 16;
-    else if (keylen >= 32)
-        keylen = 32;
-    else if (keylen != 24)
-        keylen = 24;
-    
-    rounds_ = keylen/4 + 6;
-
-    word32 temp, *rk = key_;
-    unsigned int i=0;
-
-    GetUserKey(BigEndianOrder, rk, keylen/4, userKey, keylen);
-
-    switch(keylen)
-    {
-    case 16:
-        while (true)
-        {
-            temp  = rk[3];
-            rk[4] = rk[0] ^
-                (Te2[GETBYTE(temp, 2)] & 0xff000000) ^
-                (Te3[GETBYTE(temp, 1)] & 0x00ff0000) ^
-                (Te0[GETBYTE(temp, 0)] & 0x0000ff00) ^
-                (Te1[GETBYTE(temp, 3)] & 0x000000ff) ^
-                rcon_[i];
-            rk[5] = rk[1] ^ rk[4];
-            rk[6] = rk[2] ^ rk[5];
-            rk[7] = rk[3] ^ rk[6];
-            if (++i == 10)
-                break;
-            rk += 4;
-        }
-        break;
-
-    case 24:
-        while (true)    // for (;;) here triggers a bug in VC60 SP4 w/ Pro Pack
-        {
-            temp = rk[ 5];
-            rk[ 6] = rk[ 0] ^
-                (Te2[GETBYTE(temp, 2)] & 0xff000000) ^
-                (Te3[GETBYTE(temp, 1)] & 0x00ff0000) ^
-                (Te0[GETBYTE(temp, 0)] & 0x0000ff00) ^
-                (Te1[GETBYTE(temp, 3)] & 0x000000ff) ^
-                rcon_[i];
-            rk[ 7] = rk[ 1] ^ rk[ 6];
-            rk[ 8] = rk[ 2] ^ rk[ 7];
-            rk[ 9] = rk[ 3] ^ rk[ 8];
-            if (++i == 8)
-                break;
-            rk[10] = rk[ 4] ^ rk[ 9];
-            rk[11] = rk[ 5] ^ rk[10];
-            rk += 6;
-        }
-        break;
-
-    case 32:
-        while (true)
-        {
-            temp = rk[ 7];
-            rk[ 8] = rk[ 0] ^
-                (Te2[GETBYTE(temp, 2)] & 0xff000000) ^
-                (Te3[GETBYTE(temp, 1)] & 0x00ff0000) ^
-                (Te0[GETBYTE(temp, 0)] & 0x0000ff00) ^
-                (Te1[GETBYTE(temp, 3)] & 0x000000ff) ^
-                rcon_[i];
-            rk[ 9] = rk[ 1] ^ rk[ 8];
-            rk[10] = rk[ 2] ^ rk[ 9];
-            rk[11] = rk[ 3] ^ rk[10];
-            if (++i == 7)
-                break;
-            temp = rk[11];
-            rk[12] = rk[ 4] ^
-                (Te2[GETBYTE(temp, 3)] & 0xff000000) ^
-                (Te3[GETBYTE(temp, 2)] & 0x00ff0000) ^
-                (Te0[GETBYTE(temp, 1)] & 0x0000ff00) ^
-                (Te1[GETBYTE(temp, 0)] & 0x000000ff);
-            rk[13] = rk[ 5] ^ rk[12];
-            rk[14] = rk[ 6] ^ rk[13];
-            rk[15] = rk[ 7] ^ rk[14];
-
-            rk += 8;
-        }
-        break;
-    }
-
-    if (dir_ == DECRYPTION)
-    {
-        unsigned int i, j;
-        rk = key_;
-
-        /* invert the order of the round keys: */
-        for (i = 0, j = 4*rounds_; i < j; i += 4, j -= 4) {
-            temp = rk[i    ]; rk[i    ] = rk[j    ]; rk[j    ] = temp;
-            temp = rk[i + 1]; rk[i + 1] = rk[j + 1]; rk[j + 1] = temp;
-            temp = rk[i + 2]; rk[i + 2] = rk[j + 2]; rk[j + 2] = temp;
-            temp = rk[i + 3]; rk[i + 3] = rk[j + 3]; rk[j + 3] = temp;
-        }
-        // apply the inverse MixColumn transform to all round keys but the
-        // first and the last:
-        for (i = 1; i < rounds_; i++) {
-            rk += 4;
-            rk[0] =
-                Td0[Te1[GETBYTE(rk[0], 3)] & 0xff] ^
-                Td1[Te1[GETBYTE(rk[0], 2)] & 0xff] ^
-                Td2[Te1[GETBYTE(rk[0], 1)] & 0xff] ^
-                Td3[Te1[GETBYTE(rk[0], 0)] & 0xff];
-            rk[1] =
-                Td0[Te1[GETBYTE(rk[1], 3)] & 0xff] ^
-                Td1[Te1[GETBYTE(rk[1], 2)] & 0xff] ^
-                Td2[Te1[GETBYTE(rk[1], 1)] & 0xff] ^
-                Td3[Te1[GETBYTE(rk[1], 0)] & 0xff];
-            rk[2] =
-                Td0[Te1[GETBYTE(rk[2], 3)] & 0xff] ^
-                Td1[Te1[GETBYTE(rk[2], 2)] & 0xff] ^
-                Td2[Te1[GETBYTE(rk[2], 1)] & 0xff] ^
-                Td3[Te1[GETBYTE(rk[2], 0)] & 0xff];
-            rk[3] =
-                Td0[Te1[GETBYTE(rk[3], 3)] & 0xff] ^
-                Td1[Te1[GETBYTE(rk[3], 2)] & 0xff] ^
-                Td2[Te1[GETBYTE(rk[3], 1)] & 0xff] ^
-                Td3[Te1[GETBYTE(rk[3], 0)] & 0xff];
-        }
-    }
-}
-
-
-void AES::ProcessAndXorBlock(const byte* in, const byte* xOr, byte* out) const
-{
-    if (dir_ == ENCRYPTION)
-        encrypt(in, xOr, out);
-    else
-        decrypt(in, xOr, out);
-}
-
-
-typedef BlockGetAndPut gpBlock;
-
-	
-void AES::encrypt(const byte* inBlock, const byte* xorBlock,
-                  byte* outBlock) const
-{
-    word32 s0, s1, s2, s3;
-    word32 t0, t1, t2, t3;
-
-    const word32 *rk = key_;
-    /*
-     * map byte array block to cipher state
-     * and add initial round key:
-     */
-    gpBlock::Get(inBlock)(s0)(s1)(s2)(s3);
-    s0 ^= rk[0];
-    s1 ^= rk[1];
-    s2 ^= rk[2];
-    s3 ^= rk[3];
-   
-    s0 |= PreFetchTe();
-    /*
-     * Nr - 1 full rounds:
-     */
-
-    unsigned int r = rounds_ >> 1;
-    for (;;) {
-        t0 =
-            Te0[GETBYTE(s0, 3)] ^
-            Te1[GETBYTE(s1, 2)]  ^
-            Te2[GETBYTE(s2, 1)]  ^
-            Te3[GETBYTE(s3, 0)]  ^
-            rk[4];
-        t1 =
-            Te0[GETBYTE(s1, 3)] ^
-            Te1[GETBYTE(s2, 2)]  ^
-            Te2[GETBYTE(s3, 1)]  ^
-            Te3[GETBYTE(s0, 0)]  ^
-            rk[5];
-        t2 =
-            Te0[GETBYTE(s2, 3)] ^
-            Te1[GETBYTE(s3, 2)]  ^
-            Te2[GETBYTE(s0, 1)]  ^
-            Te3[GETBYTE(s1, 0)]  ^
-            rk[6];
-        t3 =
-            Te0[GETBYTE(s3, 3)] ^
-            Te1[GETBYTE(s0, 2)]  ^
-            Te2[GETBYTE(s1, 1)]  ^
-            Te3[GETBYTE(s2, 0)]  ^
-            rk[7];
-
-        rk += 8;
-        if (--r == 0) {
-            break;
-        }
-        
-        s0 =
-            Te0[GETBYTE(t0, 3)] ^
-            Te1[GETBYTE(t1, 2)] ^
-            Te2[GETBYTE(t2, 1)] ^
-            Te3[GETBYTE(t3, 0)] ^
-            rk[0];
-        s1 =
-            Te0[GETBYTE(t1, 3)] ^
-            Te1[GETBYTE(t2, 2)] ^
-            Te2[GETBYTE(t3, 1)] ^
-            Te3[GETBYTE(t0, 0)] ^
-            rk[1];
-        s2 =
-            Te0[GETBYTE(t2, 3)] ^
-            Te1[GETBYTE(t3, 2)] ^
-            Te2[GETBYTE(t0, 1)] ^
-            Te3[GETBYTE(t1, 0)] ^
-            rk[2];
-        s3 =
-            Te0[GETBYTE(t3, 3)] ^
-            Te1[GETBYTE(t0, 2)] ^
-            Te2[GETBYTE(t1, 1)] ^
-            Te3[GETBYTE(t2, 0)] ^
-            rk[3];
-    }
-
-    /*
-     * apply last round and
-     * map cipher state to byte array block:
-     */
-
-    s0 =
-        (Te2[GETBYTE(t0, 3)] & 0xff000000) ^
-        (Te3[GETBYTE(t1, 2)] & 0x00ff0000) ^
-        (Te0[GETBYTE(t2, 1)] & 0x0000ff00) ^
-        (Te1[GETBYTE(t3, 0)] & 0x000000ff) ^
-        rk[0];
-    s1 =
-        (Te2[GETBYTE(t1, 3)] & 0xff000000) ^
-        (Te3[GETBYTE(t2, 2)] & 0x00ff0000) ^
-        (Te0[GETBYTE(t3, 1)] & 0x0000ff00) ^
-        (Te1[GETBYTE(t0, 0)] & 0x000000ff) ^
-        rk[1];
-    s2 =
-        (Te2[GETBYTE(t2, 3)] & 0xff000000) ^
-        (Te3[GETBYTE(t3, 2)] & 0x00ff0000) ^
-        (Te0[GETBYTE(t0, 1)] & 0x0000ff00) ^
-        (Te1[GETBYTE(t1, 0)] & 0x000000ff) ^
-        rk[2];
-    s3 =
-        (Te2[GETBYTE(t3, 3)] & 0xff000000) ^
-        (Te3[GETBYTE(t0, 2)] & 0x00ff0000) ^
-        (Te0[GETBYTE(t1, 1)] & 0x0000ff00) ^
-        (Te1[GETBYTE(t2, 0)] & 0x000000ff) ^
-        rk[3];
-
-
-    gpBlock::Put(xorBlock, outBlock)(s0)(s1)(s2)(s3);
-}
-
-
-void AES::decrypt(const byte* inBlock, const byte* xorBlock,
-                  byte* outBlock) const
-{
-    word32 s0, s1, s2, s3;
-    word32 t0, t1, t2, t3;
-    const word32* rk = key_;
-
-    /*
-     * map byte array block to cipher state
-     * and add initial round key:
-     */
-    gpBlock::Get(inBlock)(s0)(s1)(s2)(s3);
-    s0 ^= rk[0];
-    s1 ^= rk[1];
-    s2 ^= rk[2];
-    s3 ^= rk[3];
-
-    s0 |= PreFetchTd();
-
-    /*
-     * Nr - 1 full rounds:
-     */
-
-    unsigned int r = rounds_ >> 1;
-    for (;;) {
-        t0 =
-            Td0[GETBYTE(s0, 3)] ^
-            Td1[GETBYTE(s3, 2)] ^
-            Td2[GETBYTE(s2, 1)] ^
-            Td3[GETBYTE(s1, 0)] ^
-            rk[4];
-        t1 =
-            Td0[GETBYTE(s1, 3)] ^
-            Td1[GETBYTE(s0, 2)] ^
-            Td2[GETBYTE(s3, 1)] ^
-            Td3[GETBYTE(s2, 0)] ^
-            rk[5];
-        t2 =
-            Td0[GETBYTE(s2, 3)] ^
-            Td1[GETBYTE(s1, 2)] ^
-            Td2[GETBYTE(s0, 1)] ^
-            Td3[GETBYTE(s3, 0)] ^
-            rk[6];
-        t3 =
-            Td0[GETBYTE(s3, 3)] ^
-            Td1[GETBYTE(s2, 2)] ^
-            Td2[GETBYTE(s1, 1)] ^
-            Td3[GETBYTE(s0, 0)] ^
-            rk[7];
-
-        rk += 8;
-        if (--r == 0) {
-            break;
-        }
-
-        s0 =
-            Td0[GETBYTE(t0, 3)] ^
-            Td1[GETBYTE(t3, 2)] ^
-            Td2[GETBYTE(t2, 1)] ^
-            Td3[GETBYTE(t1, 0)] ^
-            rk[0];
-        s1 =
-            Td0[GETBYTE(t1, 3)] ^
-            Td1[GETBYTE(t0, 2)] ^
-            Td2[GETBYTE(t3, 1)] ^
-            Td3[GETBYTE(t2, 0)] ^
-            rk[1];
-        s2 =
-            Td0[GETBYTE(t2, 3)] ^
-            Td1[GETBYTE(t1, 2)] ^
-            Td2[GETBYTE(t0, 1)] ^
-            Td3[GETBYTE(t3, 0)] ^
-            rk[2];
-        s3 =
-            Td0[GETBYTE(t3, 3)] ^
-            Td1[GETBYTE(t2, 2)] ^
-            Td2[GETBYTE(t1, 1)] ^
-            Td3[GETBYTE(t0, 0)] ^
-            rk[3];
-    }
-    /*
-     * apply last round and
-     * map cipher state to byte array block:
-     */
-
-    t0 |= PreFetchCTd4();
-
-    s0 =
-        ((word32)CTd4[GETBYTE(t0, 3)] << 24) ^
-        ((word32)CTd4[GETBYTE(t3, 2)] << 16) ^
-        ((word32)CTd4[GETBYTE(t2, 1)] <<  8) ^
-        ((word32)CTd4[GETBYTE(t1, 0)]) ^
-        rk[0];
-    s1 =
-        ((word32)CTd4[GETBYTE(t1, 3)]  << 24) ^
-        ((word32)CTd4[GETBYTE(t0, 2)]  << 16) ^
-        ((word32)CTd4[GETBYTE(t3, 1)]  <<  8) ^
-        ((word32)CTd4[GETBYTE(t2, 0)]) ^
-        rk[1];
-    s2 =
-        ((word32)CTd4[GETBYTE(t2, 3)] << 24  ) ^
-        ((word32)CTd4[GETBYTE(t1, 2)] << 16 ) ^
-        ((word32)CTd4[GETBYTE(t0, 1)] <<  8 ) ^
-        ((word32)CTd4[GETBYTE(t3, 0)]) ^
-        rk[2];
-    s3 =
-        ((word32)CTd4[GETBYTE(t3, 3)] << 24) ^
-        ((word32)CTd4[GETBYTE(t2, 2)] << 16) ^
-        ((word32)CTd4[GETBYTE(t1, 1)] <<  8) ^
-        ((word32)CTd4[GETBYTE(t0, 0)]) ^
-        rk[3];
-
-    gpBlock::Put(xorBlock, outBlock)(s0)(s1)(s2)(s3);
-}
-
-
-#if defined(DO_AES_ASM)
-    #ifdef __GNUC__
-        #define AS1(x)    #x ";"
-        #define AS2(x, y) #x ", " #y ";"
-
-        #define PROLOG()  \
-        __asm__ __volatile__ \
-        ( \
-            ".intel_syntax noprefix;" \
-            "push ebx;" \
-            "push ebp;" \
-            "movd mm7, ebp;" \
-            "movd mm4, eax;" \
-            "mov  ebp, edx;"  \
-            "sub  esp, 4;" 
-        #define EPILOG()  \
-            "add esp, 4;" \
-            "pop ebp;" \
-            "pop ebx;" \
-       	    "emms;" \
-       	    ".att_syntax;" \
-                : \
-                : "c" (this), "S" (inBlock), "d" (boxes), "a" (outBlock) \
-                : "%edi", "memory", "cc" \
-        );
-
-    #else
-        #define AS1(x)    __asm x
-        #define AS2(x, y) __asm x, y
-
-        #define PROLOG() \
-            AS1(    push  ebp                           )   \
-            AS2(    mov   ebp, esp                      )   \
-            AS2(    movd  mm3, edi                      )   \
-            AS2(    movd  mm4, ebx                      )   \
-            AS2(    sub   esp, 4                        )   \
-            AS2(    movd  mm7, ebp                      )   \
-            AS2(    mov   [ebp - 4], esi                )   \
-            AS2(    mov   esi, DWORD PTR [ebp +  8]     )   \
-            AS2(    mov   ebp, DWORD PTR [ebp + 16]     )
-
-        // ebp is restored at end
-        #define EPILOG()  \
-            AS2(    mov   esi, [ebp - 4]                )   \
-            AS2(    movd  ebx, mm4                      )   \
-            AS2(    movd  edi, mm3                      )   \
-            AS2(    mov   esp, ebp                      )   \
-            AS1(    pop   ebp                           )   \
-            AS1(    emms                                )   \
-            AS1(    ret   12                            )
-            
-            
-    #endif
-
-
-#ifdef _MSC_VER
-    __declspec(naked) 
-#else
-    __attribute__ ((noinline))
-#endif
-void AES::AsmEncrypt(const byte* inBlock, byte* outBlock, void* boxes) const
-{
-
-    PROLOG()
-
-    #ifdef OLD_GCC_OFFSET
-        AS2(    mov   edx, DWORD PTR [ecx + 60]     )   // rounds
-        AS2(    lea   edi, [ecx + 64]               )   // rk
-    #else
-        AS2(    mov   edx, DWORD PTR [ecx + 56]     )   // rounds
-        AS2(    lea   edi, [ecx + 60]               )   // rk
-    #endif
-
-    AS1(    dec   edx                           )
-    AS2(    movd  mm6, edi                      )   // save rk
-    AS2(    movd  mm5, edx                      )   // save rounds
-  
-    AS2(    mov   eax, DWORD PTR [esi]                                  )
-    AS2(    mov   ebx, DWORD PTR [esi + 4]                              )
-    AS2(    mov   ecx, DWORD PTR [esi + 8]                              )
-    AS2(    mov   edx, DWORD PTR [esi + 12]                             )
-
-    AS1(    bswap eax                                                   )
-    AS1(    bswap ebx                                                   )
-    AS1(    bswap ecx                                                   )
-    AS1(    bswap edx                                                   )
-
-    AS2(    xor   eax, DWORD PTR [edi]               )   // s0
-    AS2(    xor   ebx, DWORD PTR [edi +  4]          )   // s1
-    AS2(    xor   ecx, DWORD PTR [edi +  8]          )   // s2
-    AS2(    xor   edx, DWORD PTR [edi + 12]          )   // s3
-
-#ifdef _MSC_VER
-    AS1( loop1: )  // loop1
-#else
-    AS1(1:  )      // loop1
-#endif
-            /* Put0 (mm0) =  
-                Te0[get0,rs 24] ^
-                Te1[get1,rs 16] ^
-                Te2[get2,rs  8] ^
-                Te3[get3,rs  0]
-            */
-       
-    AS2(    mov   esi, eax                                              )
-    AS2(    shr   esi, 24                                               )
-    AS2(    mov   esi, DWORD PTR [ebp + esi*4]                          )
-                                                    
-    AS2(    mov   edi, ebx                                              )
-    AS2(    shr   edi, 16                                               )
-    AS2(    and   edi, 255                                              )
-    AS2(    xor   esi, DWORD PTR [ebp + 1024 + edi*4]                   )
-
-    AS2(    movzx edi, ch                                               )
-    AS2(    xor   esi, DWORD PTR [ebp + 2048 + edi*4]                   )
-
-    AS2(    movzx edi, dl                                               )
-    AS2(    xor   esi, DWORD PTR [ebp + 3072 + edi*4]                   )
-
-    AS2(    movd  mm0, esi                                              )
-
-             /* Put1 (mm1) =  
-                Te0[get1,rs 24] ^
-                Te1[get2,rs 16] ^
-                Te2[get3,rs  8] ^
-                Te3[get0,rs  0]
-            */
-
-    AS2(    mov   esi, ebx                                              )
-    AS2(    shr   esi, 24                                               )
-    AS2(    mov   esi, DWORD PTR [ebp + esi*4]                          )
-
-    AS2(    mov   edi, ecx                                              )
-    AS2(    shr   edi, 16                                               )
-    AS2(    and   edi, 255                                              )
-    AS2(    xor   esi, DWORD PTR [ebp + 1024 + edi*4]                   )
-
-    AS2(    movzx edi, dh                                               )
-    AS2(    xor   esi, DWORD PTR [ebp + 2048 + edi*4]                   )
-
-    AS2(    movzx edi, al                                               )
-    AS2(    xor   esi, DWORD PTR [ebp + 3072 + edi*4]                   )
-
-    AS2(    movd  mm1, esi                                              )
-
-
-             /* Put2 (mm2) =  
-                Te0[get2,rs 24] ^
-                Te1[get3,rs 16] ^
-                Te2[get0,rs  8] ^
-                Te3[get1,rs  0] 
-            */
-
-    AS2(    mov   esi, ecx                                              )
-    AS2(    shr   esi, 24                                               )
-    AS2(    mov   esi, DWORD PTR [ebp + esi*4]                          )
-
-    AS2(    mov   edi, edx                                              )
-    AS2(    shr   edi, 16                                               )
-    AS2(    and   edi, 255                                              )
-    AS2(    xor   esi, DWORD PTR [ebp + 1024 + edi*4]                   )
-
-    AS2(    movzx edi, ah                                               )
-    AS2(    xor   esi, DWORD PTR [ebp + 2048 + edi*4]                   )
-
-    AS2(    movzx edi, bl                                               )
-    AS2(    xor   esi, DWORD PTR [ebp + 3072 + edi*4]                   )
-
-    AS2(    movd  mm2, esi                                              )
-
-             /* Put3 (edx) =  
-                Te0[get3,rs 24] ^
-                Te1[get0,rs 16] ^
-                Te2[get1,rs  8] ^
-                Te3[get2,rs  0] 
-            */
-
-    AS2(    mov   esi, edx                                              )
-    AS2(    shr   esi, 24                                               )
-    AS2(    mov   edx, DWORD PTR [ebp + esi*4]                          )
-
-    AS2(    mov   edi, eax                                              )
-    AS2(    shr   edi, 16                                               )
-    AS2(    and   edi, 255                                              )
-    AS2(    xor   edx, DWORD PTR [ebp + 1024 + edi*4]                   )
-
-    AS2(    movzx esi, bh                                               )
-    AS2(    xor   edx, DWORD PTR [ebp + 2048 + esi*4]                   )
-
-    AS2(    movzx edi, cl                                               )
-    AS2(    xor   edx, DWORD PTR [ebp + 3072 + edi*4]                   )
-
-            // xOr
-
-    AS2(    movd   esi, mm6                      )   //  rk
-
-    AS2(    movd   eax, mm0                                             )
-    AS2(    add    esi, 16                                              )
-    AS2(    movd   ebx, mm1                                             )
-    AS2(    movd   mm6, esi                      )   //  save back
-    AS2(    movd   ecx, mm2                                             )
-
-    AS2(    xor   eax, DWORD PTR [esi]                                  )
-    AS2(    xor   ebx, DWORD PTR [esi +  4]                             )
-    AS2(    movd  edi, mm5                                              )
-    AS2(    xor   ecx, DWORD PTR [esi +  8]                             )
-    AS2(    xor   edx, DWORD PTR [esi + 12]                             )
-
-    AS1(    dec   edi                                                   )
-    AS2(    movd  mm5, edi                                              )
-
-#ifdef _MSC_VER
-    AS1(    jnz   loop1)  // loop1
-#else
-    AS1(    jnz   1b )    // loop1
-#endif
-
-            // last round
-            /*
-            Put0 (mm0) =
-                (Te4[get0, rs24] & 0xff000000) ^  h = 4278190080
-                (Te4[get1, rs16] & 0x00ff0000) ^  h =   16711680
-                (Te4[get2, rs 8] & 0x0000ff00) ^  h =      65280
-                (Te4[get3, rs 0] & 0x000000ff)    h =        255
-            */
-    AS2(    mov   esi, eax                                              )
-    AS2(    shr   esi, 24                                               )
-    AS2(    mov   esi, DWORD PTR [ebp + 4096 + esi*4]                   )
-    AS2(    and   esi, 4278190080                                       )
-
-    AS2(    mov   edi, ebx                                              )
-    AS2(    shr   edi, 16                                               )
-    AS2(    and   edi, 255                                              )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   edi, 16711680                                         )
-    AS2(    xor   esi, edi                                              )
-
-    AS2(    movzx edi, ch                                               )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   edi, 65280                                            )
-    AS2(    xor   esi, edi                                              )
-
-    AS2(    movzx edi, dl                                               )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   edi, 255                                              )
-    AS2(    xor   esi, edi                                              )
-
-    AS2(    movd  mm0, esi                                              )
-
-            /*
-            Put1 (mm1) =
-                (Te4[get1, rs24] & 0xff000000) ^  h = 4278190080
-                (Te4[get2, rs16] & 0x00ff0000) ^  h =   16711680
-                (Te4[get3, rs 8] & 0x0000ff00) ^  h =      65280
-                (Te4[get0, rs 0] & 0x000000ff)    h =        255
-            */
-    AS2(    mov   esi, ebx                                              )
-    AS2(    shr   esi, 24                                               )
-    AS2(    mov   esi, DWORD PTR [ebp + 4096 + esi*4]                   )
-    AS2(    and   esi, 4278190080                                       )
-
-    AS2(    mov   edi, ecx                                              )
-    AS2(    shr   edi, 16                                               )
-    AS2(    and   edi, 255                                              )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   edi, 16711680                                         )
-    AS2(    xor   esi, edi                                              )
-
-    AS2(    movzx edi, dh                                               )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   edi, 65280                                            )
-    AS2(    xor   esi, edi                                              )
-
-    AS2(    movzx edi, al                                               )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   edi, 255                                              )
-    AS2(    xor   esi, edi                                              )
-
-    AS2(    movd  mm1, esi                                              )
-
-            /*
-            Put2 (mm2) =
-                (Te4[get2, rs24] & 0xff000000) ^  h = 4278190080
-                (Te4[get3, rs16] & 0x00ff0000) ^  h =   16711680
-                (Te4[get0, rs 8] & 0x0000ff00) ^  h =      65280
-                (Te4[get1, rs 0] & 0x000000ff)    h =        255
-            */
-    AS2(    mov   esi, ecx                                              )
-    AS2(    shr   esi, 24                                               )
-    AS2(    mov   esi, DWORD PTR [ebp + 4096 + esi*4]                   )
-    AS2(    and   esi, 4278190080                                       )
-
-    AS2(    mov   edi, edx                                              )
-    AS2(    shr   edi, 16                                               )
-    AS2(    and   edi, 255                                              )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   edi, 16711680                                         )
-    AS2(    xor   esi, edi                                              )
-
-    AS2(    movzx edi, ah                                               )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   edi, 65280                                            )
-    AS2(    xor   esi, edi                                              )
-
-    AS2(    movzx edi, bl                                               )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   edi, 255                                              )
-    AS2(    xor   esi, edi                                              )
-
-    AS2(    movd  mm2, esi                                              )
-
-            /*
-            Put3 (edx) =
-                (Te4[get3, rs24] & 0xff000000) ^  h = 4278190080
-                (Te4[get0, rs16] & 0x00ff0000) ^  h =   16711680
-                (Te4[get1, rs 8] & 0x0000ff00) ^  h =      65280
-                (Te4[get2, rs 0] & 0x000000ff)    h =        255
-            */
-    AS2(    mov   esi, edx                                              )
-    AS2(    shr   esi, 24                                               )
-    AS2(    mov   edx, DWORD PTR [ebp + 4096 + esi*4]                   )
-    AS2(    and   edx, 4278190080                                       )
-
-    AS2(    mov   edi, eax                                              )
-    AS2(    shr   edi, 16                                               )
-    AS2(    and   edi, 255                                              )
-    AS2(    mov   esi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   esi, 16711680                                         )
-    AS2(    xor   edx, esi                                              )
-
-    AS2(    movzx esi, bh                                               )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + esi*4]                   )
-    AS2(    and   edi, 65280                                            )
-    AS2(    xor   edx, edi                                              )
-
-    AS2(    movzx edi, cl                                               )
-    AS2(    mov   esi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   esi, 255                                              )
-    AS2(    xor   edx, esi                                              )
-
-    
-            // xOr
-    AS2(    movd   eax, mm0                                             )
-    AS2(    movd   esi, mm6                      )   //  rk
-    AS2(    movd   ebx, mm1                                             )
-    AS2(    add    esi, 16                                               )
-    AS2(    movd   ecx, mm2                                             )
-
-    AS2(    xor   eax, DWORD PTR [esi]                                  )
-    AS2(    xor   ebx, DWORD PTR [esi +  4]                             )
-    AS2(    xor   ecx, DWORD PTR [esi +  8]                             )
-    AS2(    xor   edx, DWORD PTR [esi + 12]                             )
-
-    // end
-    AS2(    movd  ebp, mm7                                              )
-
-            // swap
-    AS1(    bswap eax                                                   )
-    AS1(    bswap ebx                                                   )
-
-            // store
-    #ifdef __GNUC__
-        AS2(    movd esi, mm4                       )   //  outBlock
-    #else
-        AS2(    mov  esi, DWORD PTR [ebp + 12]      )   //  outBlock
-    #endif
-
-    AS1(    bswap ecx                                                   )
-    AS1(    bswap edx                                                   )
-
-    AS2(    mov DWORD PTR [esi],      eax                               )
-    AS2(    mov DWORD PTR [esi +  4], ebx                               )
-    AS2(    mov DWORD PTR [esi +  8], ecx                               )
-    AS2(    mov DWORD PTR [esi + 12], edx                               )
-
-
-    EPILOG()
-}
-
-
-#ifdef _MSC_VER
-    __declspec(naked) 
-#else
-    __attribute__ ((noinline))
-#endif
-void AES::AsmDecrypt(const byte* inBlock, byte* outBlock, void* boxes) const
-{
-
-    PROLOG()
-
-    #ifdef OLD_GCC_OFFSET
-        AS2(    mov   edx, DWORD PTR [ecx + 60]     )   // rounds
-        AS2(    lea   edi, [ecx + 64]               )   // rk 
-    #else
-        AS2(    mov   edx, DWORD PTR [ecx + 56]     )   // rounds
-        AS2(    lea   edi, [ecx + 60]               )   // rk 
-    #endif
-   
-    AS1(    dec   edx                           )
-    AS2(    movd  mm6, edi                      )   // save rk
-    AS2(    movd  mm5, edx                      )   // save rounds
-
-    AS2(    mov   eax, DWORD PTR [esi]                                  )
-    AS2(    mov   ebx, DWORD PTR [esi + 4]                              )
-    AS2(    mov   ecx, DWORD PTR [esi + 8]                              )
-    AS2(    mov   edx, DWORD PTR [esi + 12]                             )
-
-    AS1(    bswap eax                                                   )
-    AS1(    bswap ebx                                                   )
-    AS1(    bswap ecx                                                   )
-    AS1(    bswap edx                                                   )
-
-    AS2(    xor   eax, DWORD PTR [edi]               )   // s0
-    AS2(    xor   ebx, DWORD PTR [edi +  4]          )   // s1
-    AS2(    xor   ecx, DWORD PTR [edi +  8]          )   // s2
-    AS2(    xor   edx, DWORD PTR [edi + 12]          )   // s3
-
-
-#ifdef _MSC_VER
-    AS1( loop2: )  // loop2
-#else
-    AS1(2:  )      // loop2
-#endif
-       /*   Put0 (mm0) =
-            Td0[GETBYTE(get0, rs24)] ^
-            Td1[GETBYTE(get3, rs16)] ^
-            Td2[GETBYTE(get2, rs 8)] ^
-            Td3[GETBYTE(tet1,     )]  
-        */
-    AS2(    mov   esi, eax                                              )
-    AS2(    shr   esi, 24                                               )
-    AS2(    mov   esi, DWORD PTR [ebp + esi*4]                          )
-                                                    
-    AS2(    mov   edi, edx                                              )
-    AS2(    shr   edi, 16                                               )
-    AS2(    and   edi, 255                                              )
-    AS2(    xor   esi, DWORD PTR [ebp + 1024 + edi*4]                   )
-
-    AS2(    movzx edi, ch                                               )
-    AS2(    xor   esi, DWORD PTR [ebp + 2048 + edi*4]                   )
-
-    AS2(    movzx edi, bl                                               )
-    AS2(    xor   esi, DWORD PTR [ebp + 3072 + edi*4]                   )
-
-    AS2(    movd  mm0, esi                                              )
-
-      /*    Put1 (mm1) =
-            Td0[GETBYTE(get1, rs24)] ^
-            Td1[GETBYTE(get0, rs16)] ^
-            Td2[GETBYTE(get3, rs 8)] ^
-            Td3[GETBYTE(tet2,     )]  
-        */
-    AS2(    mov   esi, ebx                                              )
-    AS2(    shr   esi, 24                                               )
-    AS2(    mov   esi, DWORD PTR [ebp + esi*4]                          )
-                                                    
-    AS2(    mov   edi, eax                                              )
-    AS2(    shr   edi, 16                                               )
-    AS2(    and   edi, 255                                              )
-    AS2(    xor   esi, DWORD PTR [ebp + 1024 + edi*4]                   )
-
-    AS2(    movzx edi, dh                                               )
-    AS2(    xor   esi, DWORD PTR [ebp + 2048 + edi*4]                   )
-
-    AS2(    movzx edi, cl                                               )
-    AS2(    xor   esi, DWORD PTR [ebp + 3072 + edi*4]                   )
-
-    AS2(    movd  mm1, esi                                              )
-
-      /*    Put2 (mm2) =
-            Td0[GETBYTE(get2, rs24)] ^
-            Td1[GETBYTE(get1, rs16)] ^
-            Td2[GETBYTE(get0, rs 8)] ^
-            Td3[GETBYTE(tet3,     )]  
-      */
-    AS2(    mov   esi, ecx                                              )
-    AS2(    shr   esi, 24                                               )
-    AS2(    mov   esi, DWORD PTR [ebp + esi*4]                          )
-                                                    
-    AS2(    mov   edi, ebx                                              )
-    AS2(    shr   edi, 16                                               )
-    AS2(    and   edi, 255                                              )
-    AS2(    xor   esi, DWORD PTR [ebp + 1024 + edi*4]                   )
-
-    AS2(    movzx edi, ah                                               )
-    AS2(    xor   esi, DWORD PTR [ebp + 2048 + edi*4]                   )
-
-    AS2(    movzx edi, dl                                               )
-    AS2(    xor   esi, DWORD PTR [ebp + 3072 + edi*4]                   )
-
-    AS2(    movd  mm2, esi                                              )
-
-      /*    Put3 (edx) =
-            Td0[GETBYTE(get3, rs24)] ^
-            Td1[GETBYTE(get2, rs16)] ^
-            Td2[GETBYTE(get1, rs 8)] ^
-            Td3[GETBYTE(tet0,     )]  
-      */
-    AS2(    mov   esi, edx                                              )
-    AS2(    shr   esi, 24                                               )
-    AS2(    mov   edx, DWORD PTR [ebp + esi*4]                          )
-                                                    
-    AS2(    mov   edi, ecx                                              )
-    AS2(    shr   edi, 16                                               )
-    AS2(    and   edi, 255                                              )
-    AS2(    xor   edx, DWORD PTR [ebp + 1024 + edi*4]                   )
-
-    AS2(    movzx esi, bh                                               )
-    AS2(    xor   edx, DWORD PTR [ebp + 2048 + esi*4]                   )
-
-    AS2(    movzx edi, al                                               )
-    AS2(    xor   edx, DWORD PTR [ebp + 3072 + edi*4]                   )
-
-
-            // xOr
-
-    AS2(    movd  esi, mm6                      )   //  rk
-    AS2(    add   esi, 16                                               )
-    AS2(    movd  mm6, esi                      )   //  save back
-
-    AS2(    movd  eax, mm0                                              )
-    AS2(    movd  ebx, mm1                                              )
-    AS2(    movd  ecx, mm2                                              )
-
-    AS2(    xor   eax, DWORD PTR [esi]                                  )
-    AS2(    xor   ebx, DWORD PTR [esi +  4]                             )
-    AS2(    xor   ecx, DWORD PTR [esi +  8]                             )
-    AS2(    xor   edx, DWORD PTR [esi + 12]                             )
-
-    AS2(    movd  edi, mm5                                              )
-    AS1(    dec   edi                                                   )
-    AS2(    movd  mm5, edi                                              )
-
-#ifdef _MSC_VER
-    AS1(    jnz   loop2)  // loop2
-#else
-    AS1(    jnz   2b )    // loop2
-#endif
-
-            // last round
-            /*
-            Put0 (mm0) =
-                (Td4[get0, rs24] & 0xff000000) ^  h = 4278190080
-                (Td4[get3, rs16] & 0x00ff0000) ^  h =   16711680
-                (Td4[get2, rs 8] & 0x0000ff00) ^  h =      65280
-                (Td4[get1, rs 0] & 0x000000ff)    h =        255
-            */
-    AS2(    mov   esi, eax                                              )
-    AS2(    shr   esi, 24                                               )
-    AS2(    mov   esi, DWORD PTR [ebp + 4096 + esi*4]                   )
-    AS2(    and   esi, 4278190080                                       )
-
-    AS2(    mov   edi, edx                                              )
-    AS2(    shr   edi, 16                                               )
-    AS2(    and   edi, 255                                              )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   edi, 16711680                                         )
-    AS2(    xor   esi, edi                                              )
-
-    AS2(    movzx edi, ch                                               )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   edi, 65280                                            )
-    AS2(    xor   esi, edi                                              )
-
-    AS2(    movzx edi, bl                                               )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   edi, 255                                              )
-    AS2(    xor   esi, edi                                              )
-
-    AS2(    movd  mm0, esi                                              )
-
-            /*
-            Put1 (mm1) =
-                (Td4[get1, rs24] & 0xff000000) ^  h = 4278190080
-                (Td4[get0, rs16] & 0x00ff0000) ^  h =   16711680
-                (Td4[get3, rs 8] & 0x0000ff00) ^  h =      65280
-                (Td4[get2, rs 0] & 0x000000ff)    h =        255
-            */
-    AS2(    mov   esi, ebx                                              )
-    AS2(    shr   esi, 24                                               )
-    AS2(    mov   esi, DWORD PTR [ebp + 4096 + esi*4]                   )
-    AS2(    and   esi, 4278190080                                       )
-
-    AS2(    mov   edi, eax                                              )
-    AS2(    shr   edi, 16                                               )
-    AS2(    and   edi, 255                                              )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   edi, 16711680                                         )
-    AS2(    xor   esi, edi                                              )
-
-    AS2(    movzx edi, dh                                               )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   edi, 65280                                            )
-    AS2(    xor   esi, edi                                              )
-
-    AS2(    movzx edi, cl                                               )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   edi, 255                                              )
-    AS2(    xor   esi, edi                                              )
-
-    AS2(    movd  mm1, esi                                              )
-
-            /*
-            Put2 (mm2) =
-                (Td4[get2, rs24] & 0xff000000) ^  h = 4278190080
-                (Td4[get1, rs16] & 0x00ff0000) ^  h =   16711680
-                (Td4[get0, rs 8] & 0x0000ff00) ^  h =      65280
-                (Td4[get3, rs 0] & 0x000000ff)    h =        255
-            */
-    AS2(    mov   esi, ecx                                              )
-    AS2(    shr   esi, 24                                               )
-    AS2(    mov   esi, DWORD PTR [ebp + 4096 + esi*4]                   )
-    AS2(    and   esi, 4278190080                                       )
-
-    AS2(    mov   edi, ebx                                              )
-    AS2(    shr   edi, 16                                               )
-    AS2(    and   edi, 255                                              )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   edi, 16711680                                         )
-    AS2(    xor   esi, edi                                              )
-
-    AS2(    movzx edi, ah                                               )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   edi, 65280                                            )
-    AS2(    xor   esi, edi                                              )
-
-    AS2(    movzx edi, dl                                               )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   edi, 255                                              )
-    AS2(    xor   esi, edi                                              )
-
-    AS2(    movd  mm2, esi                                              )
-
-            /*
-            Put3 (edx) =
-                (Td4[get3, rs24] & 0xff000000) ^  h = 4278190080
-                (Td4[get2, rs16] & 0x00ff0000) ^  h =   16711680
-                (Td4[get1, rs 8] & 0x0000ff00) ^  h =      65280
-                (Td4[get0, rs 0] & 0x000000ff)    h =        255
-            */
-    AS2(    mov   esi, edx                                              )
-    AS2(    shr   esi, 24                                               )
-    AS2(    mov   edx, DWORD PTR [ebp + 4096 + esi*4]                   )
-    AS2(    and   edx, 4278190080                                       )
-
-    AS2(    mov   edi, ecx                                              )
-    AS2(    shr   edi, 16                                               )
-    AS2(    and   edi, 255                                              )
-    AS2(    mov   esi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   esi, 16711680                                         )
-    AS2(    xor   edx, esi                                              )
-
-    AS2(    movzx esi, bh                                               )
-    AS2(    mov   edi, DWORD PTR [ebp + 4096 + esi*4]                   )
-    AS2(    and   edi, 65280                                            )
-    AS2(    xor   edx, edi                                              )
-
-    AS2(    movzx edi, al                                               )
-    AS2(    mov   esi, DWORD PTR [ebp + 4096 + edi*4]                   )
-    AS2(    and   esi, 255                                              )
-    AS2(    xor   edx, esi                                              )
-
-
-            // xOr
-    AS2(    movd  esi, mm6                      )   //  rk
-    AS2(    add   esi, 16                                               )
-
-    AS2(    movd   eax, mm0                                             )
-    AS2(    movd   ebx, mm1                                             )
-    AS2(    movd   ecx, mm2                                             )
-
-    AS2(    xor   eax, DWORD PTR [esi]                                  )
-    AS2(    xor   ebx, DWORD PTR [esi +  4]                             )
-    AS2(    xor   ecx, DWORD PTR [esi +  8]                             )
-    AS2(    xor   edx, DWORD PTR [esi + 12]                             )
-
-    // end
-    AS2(    movd  ebp, mm7                                              )
-
-            // swap
-    AS1(    bswap eax                                                   )
-    AS1(    bswap ebx                                                   )
-    AS1(    bswap ecx                                                   )
-    AS1(    bswap edx                                                   )
-
-            // store
-    #ifdef __GNUC__
-        AS2(    movd esi, mm4                        )   //  outBlock
-    #else
-        AS2(    mov esi,  DWORD PTR [ebp + 12]       )   //  outBlock
-    #endif
-    AS2(    mov DWORD PTR [esi],      eax                               )
-    AS2(    mov DWORD PTR [esi +  4], ebx                               )
-    AS2(    mov DWORD PTR [esi +  8], ecx                               )
-    AS2(    mov DWORD PTR [esi + 12], edx                               )
-
-
-    EPILOG()
-}
-
-
-
-#endif // defined(DO_AES_ASM)
-
-
-
-const word32 AES::Te[5][256] = {
-{
-    0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU,
-    0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U,
-    0x60303050U, 0x02010103U, 0xce6767a9U, 0x562b2b7dU,
-    0xe7fefe19U, 0xb5d7d762U, 0x4dababe6U, 0xec76769aU,
-    0x8fcaca45U, 0x1f82829dU, 0x89c9c940U, 0xfa7d7d87U,
-    0xeffafa15U, 0xb25959ebU, 0x8e4747c9U, 0xfbf0f00bU,
-    0x41adadecU, 0xb3d4d467U, 0x5fa2a2fdU, 0x45afafeaU,
-    0x239c9cbfU, 0x53a4a4f7U, 0xe4727296U, 0x9bc0c05bU,
-    0x75b7b7c2U, 0xe1fdfd1cU, 0x3d9393aeU, 0x4c26266aU,
-    0x6c36365aU, 0x7e3f3f41U, 0xf5f7f702U, 0x83cccc4fU,
-    0x6834345cU, 0x51a5a5f4U, 0xd1e5e534U, 0xf9f1f108U,
-    0xe2717193U, 0xabd8d873U, 0x62313153U, 0x2a15153fU,
-    0x0804040cU, 0x95c7c752U, 0x46232365U, 0x9dc3c35eU,
-    0x30181828U, 0x379696a1U, 0x0a05050fU, 0x2f9a9ab5U,
-    0x0e070709U, 0x24121236U, 0x1b80809bU, 0xdfe2e23dU,
-    0xcdebeb26U, 0x4e272769U, 0x7fb2b2cdU, 0xea75759fU,
-    0x1209091bU, 0x1d83839eU, 0x582c2c74U, 0x341a1a2eU,
-    0x361b1b2dU, 0xdc6e6eb2U, 0xb45a5aeeU, 0x5ba0a0fbU,
-    0xa45252f6U, 0x763b3b4dU, 0xb7d6d661U, 0x7db3b3ceU,
-    0x5229297bU, 0xdde3e33eU, 0x5e2f2f71U, 0x13848497U,
-    0xa65353f5U, 0xb9d1d168U, 0x00000000U, 0xc1eded2cU,
-    0x40202060U, 0xe3fcfc1fU, 0x79b1b1c8U, 0xb65b5bedU,
-    0xd46a6abeU, 0x8dcbcb46U, 0x67bebed9U, 0x7239394bU,
-    0x944a4adeU, 0x984c4cd4U, 0xb05858e8U, 0x85cfcf4aU,
-    0xbbd0d06bU, 0xc5efef2aU, 0x4faaaae5U, 0xedfbfb16U,
-    0x864343c5U, 0x9a4d4dd7U, 0x66333355U, 0x11858594U,
-    0x8a4545cfU, 0xe9f9f910U, 0x04020206U, 0xfe7f7f81U,
-    0xa05050f0U, 0x783c3c44U, 0x259f9fbaU, 0x4ba8a8e3U,
-    0xa25151f3U, 0x5da3a3feU, 0x804040c0U, 0x058f8f8aU,
-    0x3f9292adU, 0x219d9dbcU, 0x70383848U, 0xf1f5f504U,
-    0x63bcbcdfU, 0x77b6b6c1U, 0xafdada75U, 0x42212163U,
-    0x20101030U, 0xe5ffff1aU, 0xfdf3f30eU, 0xbfd2d26dU,
-    0x81cdcd4cU, 0x180c0c14U, 0x26131335U, 0xc3ecec2fU,
-    0xbe5f5fe1U, 0x359797a2U, 0x884444ccU, 0x2e171739U,
-    0x93c4c457U, 0x55a7a7f2U, 0xfc7e7e82U, 0x7a3d3d47U,
-    0xc86464acU, 0xba5d5de7U, 0x3219192bU, 0xe6737395U,
-    0xc06060a0U, 0x19818198U, 0x9e4f4fd1U, 0xa3dcdc7fU,
-    0x44222266U, 0x542a2a7eU, 0x3b9090abU, 0x0b888883U,
-    0x8c4646caU, 0xc7eeee29U, 0x6bb8b8d3U, 0x2814143cU,
-    0xa7dede79U, 0xbc5e5ee2U, 0x160b0b1dU, 0xaddbdb76U,
-    0xdbe0e03bU, 0x64323256U, 0x743a3a4eU, 0x140a0a1eU,
-    0x924949dbU, 0x0c06060aU, 0x4824246cU, 0xb85c5ce4U,
-    0x9fc2c25dU, 0xbdd3d36eU, 0x43acacefU, 0xc46262a6U,
-    0x399191a8U, 0x319595a4U, 0xd3e4e437U, 0xf279798bU,
-    0xd5e7e732U, 0x8bc8c843U, 0x6e373759U, 0xda6d6db7U,
-    0x018d8d8cU, 0xb1d5d564U, 0x9c4e4ed2U, 0x49a9a9e0U,
-    0xd86c6cb4U, 0xac5656faU, 0xf3f4f407U, 0xcfeaea25U,
-    0xca6565afU, 0xf47a7a8eU, 0x47aeaee9U, 0x10080818U,
-    0x6fbabad5U, 0xf0787888U, 0x4a25256fU, 0x5c2e2e72U,
-    0x381c1c24U, 0x57a6a6f1U, 0x73b4b4c7U, 0x97c6c651U,
-    0xcbe8e823U, 0xa1dddd7cU, 0xe874749cU, 0x3e1f1f21U,
-    0x964b4bddU, 0x61bdbddcU, 0x0d8b8b86U, 0x0f8a8a85U,
-    0xe0707090U, 0x7c3e3e42U, 0x71b5b5c4U, 0xcc6666aaU,
-    0x904848d8U, 0x06030305U, 0xf7f6f601U, 0x1c0e0e12U,
-    0xc26161a3U, 0x6a35355fU, 0xae5757f9U, 0x69b9b9d0U,
-    0x17868691U, 0x99c1c158U, 0x3a1d1d27U, 0x279e9eb9U,
-    0xd9e1e138U, 0xebf8f813U, 0x2b9898b3U, 0x22111133U,
-    0xd26969bbU, 0xa9d9d970U, 0x078e8e89U, 0x339494a7U,
-    0x2d9b9bb6U, 0x3c1e1e22U, 0x15878792U, 0xc9e9e920U,
-    0x87cece49U, 0xaa5555ffU, 0x50282878U, 0xa5dfdf7aU,
-    0x038c8c8fU, 0x59a1a1f8U, 0x09898980U, 0x1a0d0d17U,
-    0x65bfbfdaU, 0xd7e6e631U, 0x844242c6U, 0xd06868b8U,
-    0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U,
-    0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU,
-},
-{
-    0xa5c66363U, 0x84f87c7cU, 0x99ee7777U, 0x8df67b7bU,
-    0x0dfff2f2U, 0xbdd66b6bU, 0xb1de6f6fU, 0x5491c5c5U,
-    0x50603030U, 0x03020101U, 0xa9ce6767U, 0x7d562b2bU,
-    0x19e7fefeU, 0x62b5d7d7U, 0xe64dababU, 0x9aec7676U,
-    0x458fcacaU, 0x9d1f8282U, 0x4089c9c9U, 0x87fa7d7dU,
-    0x15effafaU, 0xebb25959U, 0xc98e4747U, 0x0bfbf0f0U,
-    0xec41adadU, 0x67b3d4d4U, 0xfd5fa2a2U, 0xea45afafU,
-    0xbf239c9cU, 0xf753a4a4U, 0x96e47272U, 0x5b9bc0c0U,
-    0xc275b7b7U, 0x1ce1fdfdU, 0xae3d9393U, 0x6a4c2626U,
-    0x5a6c3636U, 0x417e3f3fU, 0x02f5f7f7U, 0x4f83ccccU,
-    0x5c683434U, 0xf451a5a5U, 0x34d1e5e5U, 0x08f9f1f1U,
-    0x93e27171U, 0x73abd8d8U, 0x53623131U, 0x3f2a1515U,
-    0x0c080404U, 0x5295c7c7U, 0x65462323U, 0x5e9dc3c3U,
-    0x28301818U, 0xa1379696U, 0x0f0a0505U, 0xb52f9a9aU,
-    0x090e0707U, 0x36241212U, 0x9b1b8080U, 0x3ddfe2e2U,
-    0x26cdebebU, 0x694e2727U, 0xcd7fb2b2U, 0x9fea7575U,
-    0x1b120909U, 0x9e1d8383U, 0x74582c2cU, 0x2e341a1aU,
-    0x2d361b1bU, 0xb2dc6e6eU, 0xeeb45a5aU, 0xfb5ba0a0U,
-    0xf6a45252U, 0x4d763b3bU, 0x61b7d6d6U, 0xce7db3b3U,
-    0x7b522929U, 0x3edde3e3U, 0x715e2f2fU, 0x97138484U,
-    0xf5a65353U, 0x68b9d1d1U, 0x00000000U, 0x2cc1ededU,
-    0x60402020U, 0x1fe3fcfcU, 0xc879b1b1U, 0xedb65b5bU,
-    0xbed46a6aU, 0x468dcbcbU, 0xd967bebeU, 0x4b723939U,
-    0xde944a4aU, 0xd4984c4cU, 0xe8b05858U, 0x4a85cfcfU,
-    0x6bbbd0d0U, 0x2ac5efefU, 0xe54faaaaU, 0x16edfbfbU,
-    0xc5864343U, 0xd79a4d4dU, 0x55663333U, 0x94118585U,
-    0xcf8a4545U, 0x10e9f9f9U, 0x06040202U, 0x81fe7f7fU,
-    0xf0a05050U, 0x44783c3cU, 0xba259f9fU, 0xe34ba8a8U,
-    0xf3a25151U, 0xfe5da3a3U, 0xc0804040U, 0x8a058f8fU,
-    0xad3f9292U, 0xbc219d9dU, 0x48703838U, 0x04f1f5f5U,
-    0xdf63bcbcU, 0xc177b6b6U, 0x75afdadaU, 0x63422121U,
-    0x30201010U, 0x1ae5ffffU, 0x0efdf3f3U, 0x6dbfd2d2U,
-    0x4c81cdcdU, 0x14180c0cU, 0x35261313U, 0x2fc3ececU,
-    0xe1be5f5fU, 0xa2359797U, 0xcc884444U, 0x392e1717U,
-    0x5793c4c4U, 0xf255a7a7U, 0x82fc7e7eU, 0x477a3d3dU,
-    0xacc86464U, 0xe7ba5d5dU, 0x2b321919U, 0x95e67373U,
-    0xa0c06060U, 0x98198181U, 0xd19e4f4fU, 0x7fa3dcdcU,
-    0x66442222U, 0x7e542a2aU, 0xab3b9090U, 0x830b8888U,
-    0xca8c4646U, 0x29c7eeeeU, 0xd36bb8b8U, 0x3c281414U,
-    0x79a7dedeU, 0xe2bc5e5eU, 0x1d160b0bU, 0x76addbdbU,
-    0x3bdbe0e0U, 0x56643232U, 0x4e743a3aU, 0x1e140a0aU,
-    0xdb924949U, 0x0a0c0606U, 0x6c482424U, 0xe4b85c5cU,
-    0x5d9fc2c2U, 0x6ebdd3d3U, 0xef43acacU, 0xa6c46262U,
-    0xa8399191U, 0xa4319595U, 0x37d3e4e4U, 0x8bf27979U,
-    0x32d5e7e7U, 0x438bc8c8U, 0x596e3737U, 0xb7da6d6dU,
-    0x8c018d8dU, 0x64b1d5d5U, 0xd29c4e4eU, 0xe049a9a9U,
-    0xb4d86c6cU, 0xfaac5656U, 0x07f3f4f4U, 0x25cfeaeaU,
-    0xafca6565U, 0x8ef47a7aU, 0xe947aeaeU, 0x18100808U,
-    0xd56fbabaU, 0x88f07878U, 0x6f4a2525U, 0x725c2e2eU,
-    0x24381c1cU, 0xf157a6a6U, 0xc773b4b4U, 0x5197c6c6U,
-    0x23cbe8e8U, 0x7ca1ddddU, 0x9ce87474U, 0x213e1f1fU,
-    0xdd964b4bU, 0xdc61bdbdU, 0x860d8b8bU, 0x850f8a8aU,
-    0x90e07070U, 0x427c3e3eU, 0xc471b5b5U, 0xaacc6666U,
-    0xd8904848U, 0x05060303U, 0x01f7f6f6U, 0x121c0e0eU,
-    0xa3c26161U, 0x5f6a3535U, 0xf9ae5757U, 0xd069b9b9U,
-    0x91178686U, 0x5899c1c1U, 0x273a1d1dU, 0xb9279e9eU,
-    0x38d9e1e1U, 0x13ebf8f8U, 0xb32b9898U, 0x33221111U,
-    0xbbd26969U, 0x70a9d9d9U, 0x89078e8eU, 0xa7339494U,
-    0xb62d9b9bU, 0x223c1e1eU, 0x92158787U, 0x20c9e9e9U,
-    0x4987ceceU, 0xffaa5555U, 0x78502828U, 0x7aa5dfdfU,
-    0x8f038c8cU, 0xf859a1a1U, 0x80098989U, 0x171a0d0dU,
-    0xda65bfbfU, 0x31d7e6e6U, 0xc6844242U, 0xb8d06868U,
-    0xc3824141U, 0xb0299999U, 0x775a2d2dU, 0x111e0f0fU,
-    0xcb7bb0b0U, 0xfca85454U, 0xd66dbbbbU, 0x3a2c1616U,
-},
-{
-    0x63a5c663U, 0x7c84f87cU, 0x7799ee77U, 0x7b8df67bU,
-    0xf20dfff2U, 0x6bbdd66bU, 0x6fb1de6fU, 0xc55491c5U,
-    0x30506030U, 0x01030201U, 0x67a9ce67U, 0x2b7d562bU,
-    0xfe19e7feU, 0xd762b5d7U, 0xabe64dabU, 0x769aec76U,
-    0xca458fcaU, 0x829d1f82U, 0xc94089c9U, 0x7d87fa7dU,
-    0xfa15effaU, 0x59ebb259U, 0x47c98e47U, 0xf00bfbf0U,
-    0xadec41adU, 0xd467b3d4U, 0xa2fd5fa2U, 0xafea45afU,
-    0x9cbf239cU, 0xa4f753a4U, 0x7296e472U, 0xc05b9bc0U,
-    0xb7c275b7U, 0xfd1ce1fdU, 0x93ae3d93U, 0x266a4c26U,
-    0x365a6c36U, 0x3f417e3fU, 0xf702f5f7U, 0xcc4f83ccU,
-    0x345c6834U, 0xa5f451a5U, 0xe534d1e5U, 0xf108f9f1U,
-    0x7193e271U, 0xd873abd8U, 0x31536231U, 0x153f2a15U,
-    0x040c0804U, 0xc75295c7U, 0x23654623U, 0xc35e9dc3U,
-    0x18283018U, 0x96a13796U, 0x050f0a05U, 0x9ab52f9aU,
-    0x07090e07U, 0x12362412U, 0x809b1b80U, 0xe23ddfe2U,
-    0xeb26cdebU, 0x27694e27U, 0xb2cd7fb2U, 0x759fea75U,
-    0x091b1209U, 0x839e1d83U, 0x2c74582cU, 0x1a2e341aU,
-    0x1b2d361bU, 0x6eb2dc6eU, 0x5aeeb45aU, 0xa0fb5ba0U,
-    0x52f6a452U, 0x3b4d763bU, 0xd661b7d6U, 0xb3ce7db3U,
-    0x297b5229U, 0xe33edde3U, 0x2f715e2fU, 0x84971384U,
-    0x53f5a653U, 0xd168b9d1U, 0x00000000U, 0xed2cc1edU,
-    0x20604020U, 0xfc1fe3fcU, 0xb1c879b1U, 0x5bedb65bU,
-    0x6abed46aU, 0xcb468dcbU, 0xbed967beU, 0x394b7239U,
-    0x4ade944aU, 0x4cd4984cU, 0x58e8b058U, 0xcf4a85cfU,
-    0xd06bbbd0U, 0xef2ac5efU, 0xaae54faaU, 0xfb16edfbU,
-    0x43c58643U, 0x4dd79a4dU, 0x33556633U, 0x85941185U,
-    0x45cf8a45U, 0xf910e9f9U, 0x02060402U, 0x7f81fe7fU,
-    0x50f0a050U, 0x3c44783cU, 0x9fba259fU, 0xa8e34ba8U,
-    0x51f3a251U, 0xa3fe5da3U, 0x40c08040U, 0x8f8a058fU,
-    0x92ad3f92U, 0x9dbc219dU, 0x38487038U, 0xf504f1f5U,
-    0xbcdf63bcU, 0xb6c177b6U, 0xda75afdaU, 0x21634221U,
-    0x10302010U, 0xff1ae5ffU, 0xf30efdf3U, 0xd26dbfd2U,
-    0xcd4c81cdU, 0x0c14180cU, 0x13352613U, 0xec2fc3ecU,
-    0x5fe1be5fU, 0x97a23597U, 0x44cc8844U, 0x17392e17U,
-    0xc45793c4U, 0xa7f255a7U, 0x7e82fc7eU, 0x3d477a3dU,
-    0x64acc864U, 0x5de7ba5dU, 0x192b3219U, 0x7395e673U,
-    0x60a0c060U, 0x81981981U, 0x4fd19e4fU, 0xdc7fa3dcU,
-    0x22664422U, 0x2a7e542aU, 0x90ab3b90U, 0x88830b88U,
-    0x46ca8c46U, 0xee29c7eeU, 0xb8d36bb8U, 0x143c2814U,
-    0xde79a7deU, 0x5ee2bc5eU, 0x0b1d160bU, 0xdb76addbU,
-    0xe03bdbe0U, 0x32566432U, 0x3a4e743aU, 0x0a1e140aU,
-    0x49db9249U, 0x060a0c06U, 0x246c4824U, 0x5ce4b85cU,
-    0xc25d9fc2U, 0xd36ebdd3U, 0xacef43acU, 0x62a6c462U,
-    0x91a83991U, 0x95a43195U, 0xe437d3e4U, 0x798bf279U,
-    0xe732d5e7U, 0xc8438bc8U, 0x37596e37U, 0x6db7da6dU,
-    0x8d8c018dU, 0xd564b1d5U, 0x4ed29c4eU, 0xa9e049a9U,
-    0x6cb4d86cU, 0x56faac56U, 0xf407f3f4U, 0xea25cfeaU,
-    0x65afca65U, 0x7a8ef47aU, 0xaee947aeU, 0x08181008U,
-    0xbad56fbaU, 0x7888f078U, 0x256f4a25U, 0x2e725c2eU,
-    0x1c24381cU, 0xa6f157a6U, 0xb4c773b4U, 0xc65197c6U,
-    0xe823cbe8U, 0xdd7ca1ddU, 0x749ce874U, 0x1f213e1fU,
-    0x4bdd964bU, 0xbddc61bdU, 0x8b860d8bU, 0x8a850f8aU,
-    0x7090e070U, 0x3e427c3eU, 0xb5c471b5U, 0x66aacc66U,
-    0x48d89048U, 0x03050603U, 0xf601f7f6U, 0x0e121c0eU,
-    0x61a3c261U, 0x355f6a35U, 0x57f9ae57U, 0xb9d069b9U,
-    0x86911786U, 0xc15899c1U, 0x1d273a1dU, 0x9eb9279eU,
-    0xe138d9e1U, 0xf813ebf8U, 0x98b32b98U, 0x11332211U,
-    0x69bbd269U, 0xd970a9d9U, 0x8e89078eU, 0x94a73394U,
-    0x9bb62d9bU, 0x1e223c1eU, 0x87921587U, 0xe920c9e9U,
-    0xce4987ceU, 0x55ffaa55U, 0x28785028U, 0xdf7aa5dfU,
-    0x8c8f038cU, 0xa1f859a1U, 0x89800989U, 0x0d171a0dU,
-    0xbfda65bfU, 0xe631d7e6U, 0x42c68442U, 0x68b8d068U,
-    0x41c38241U, 0x99b02999U, 0x2d775a2dU, 0x0f111e0fU,
-    0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U,
-},
-{
-    0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U,
-    0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U,
-    0x30305060U, 0x01010302U, 0x6767a9ceU, 0x2b2b7d56U,
-    0xfefe19e7U, 0xd7d762b5U, 0xababe64dU, 0x76769aecU,
-    0xcaca458fU, 0x82829d1fU, 0xc9c94089U, 0x7d7d87faU,
-    0xfafa15efU, 0x5959ebb2U, 0x4747c98eU, 0xf0f00bfbU,
-    0xadadec41U, 0xd4d467b3U, 0xa2a2fd5fU, 0xafafea45U,
-    0x9c9cbf23U, 0xa4a4f753U, 0x727296e4U, 0xc0c05b9bU,
-    0xb7b7c275U, 0xfdfd1ce1U, 0x9393ae3dU, 0x26266a4cU,
-    0x36365a6cU, 0x3f3f417eU, 0xf7f702f5U, 0xcccc4f83U,
-    0x34345c68U, 0xa5a5f451U, 0xe5e534d1U, 0xf1f108f9U,
-    0x717193e2U, 0xd8d873abU, 0x31315362U, 0x15153f2aU,
-    0x04040c08U, 0xc7c75295U, 0x23236546U, 0xc3c35e9dU,
-    0x18182830U, 0x9696a137U, 0x05050f0aU, 0x9a9ab52fU,
-    0x0707090eU, 0x12123624U, 0x80809b1bU, 0xe2e23ddfU,
-    0xebeb26cdU, 0x2727694eU, 0xb2b2cd7fU, 0x75759feaU,
-    0x09091b12U, 0x83839e1dU, 0x2c2c7458U, 0x1a1a2e34U,
-    0x1b1b2d36U, 0x6e6eb2dcU, 0x5a5aeeb4U, 0xa0a0fb5bU,
-    0x5252f6a4U, 0x3b3b4d76U, 0xd6d661b7U, 0xb3b3ce7dU,
-    0x29297b52U, 0xe3e33eddU, 0x2f2f715eU, 0x84849713U,
-    0x5353f5a6U, 0xd1d168b9U, 0x00000000U, 0xeded2cc1U,
-    0x20206040U, 0xfcfc1fe3U, 0xb1b1c879U, 0x5b5bedb6U,
-    0x6a6abed4U, 0xcbcb468dU, 0xbebed967U, 0x39394b72U,
-    0x4a4ade94U, 0x4c4cd498U, 0x5858e8b0U, 0xcfcf4a85U,
-    0xd0d06bbbU, 0xefef2ac5U, 0xaaaae54fU, 0xfbfb16edU,
-    0x4343c586U, 0x4d4dd79aU, 0x33335566U, 0x85859411U,
-    0x4545cf8aU, 0xf9f910e9U, 0x02020604U, 0x7f7f81feU,
-    0x5050f0a0U, 0x3c3c4478U, 0x9f9fba25U, 0xa8a8e34bU,
-    0x5151f3a2U, 0xa3a3fe5dU, 0x4040c080U, 0x8f8f8a05U,
-    0x9292ad3fU, 0x9d9dbc21U, 0x38384870U, 0xf5f504f1U,
-    0xbcbcdf63U, 0xb6b6c177U, 0xdada75afU, 0x21216342U,
-    0x10103020U, 0xffff1ae5U, 0xf3f30efdU, 0xd2d26dbfU,
-    0xcdcd4c81U, 0x0c0c1418U, 0x13133526U, 0xecec2fc3U,
-    0x5f5fe1beU, 0x9797a235U, 0x4444cc88U, 0x1717392eU,
-    0xc4c45793U, 0xa7a7f255U, 0x7e7e82fcU, 0x3d3d477aU,
-    0x6464acc8U, 0x5d5de7baU, 0x19192b32U, 0x737395e6U,
-    0x6060a0c0U, 0x81819819U, 0x4f4fd19eU, 0xdcdc7fa3U,
-    0x22226644U, 0x2a2a7e54U, 0x9090ab3bU, 0x8888830bU,
-    0x4646ca8cU, 0xeeee29c7U, 0xb8b8d36bU, 0x14143c28U,
-    0xdede79a7U, 0x5e5ee2bcU, 0x0b0b1d16U, 0xdbdb76adU,
-    0xe0e03bdbU, 0x32325664U, 0x3a3a4e74U, 0x0a0a1e14U,
-    0x4949db92U, 0x06060a0cU, 0x24246c48U, 0x5c5ce4b8U,
-    0xc2c25d9fU, 0xd3d36ebdU, 0xacacef43U, 0x6262a6c4U,
-    0x9191a839U, 0x9595a431U, 0xe4e437d3U, 0x79798bf2U,
-    0xe7e732d5U, 0xc8c8438bU, 0x3737596eU, 0x6d6db7daU,
-    0x8d8d8c01U, 0xd5d564b1U, 0x4e4ed29cU, 0xa9a9e049U,
-    0x6c6cb4d8U, 0x5656faacU, 0xf4f407f3U, 0xeaea25cfU,
-    0x6565afcaU, 0x7a7a8ef4U, 0xaeaee947U, 0x08081810U,
-    0xbabad56fU, 0x787888f0U, 0x25256f4aU, 0x2e2e725cU,
-    0x1c1c2438U, 0xa6a6f157U, 0xb4b4c773U, 0xc6c65197U,
-    0xe8e823cbU, 0xdddd7ca1U, 0x74749ce8U, 0x1f1f213eU,
-    0x4b4bdd96U, 0xbdbddc61U, 0x8b8b860dU, 0x8a8a850fU,
-    0x707090e0U, 0x3e3e427cU, 0xb5b5c471U, 0x6666aaccU,
-    0x4848d890U, 0x03030506U, 0xf6f601f7U, 0x0e0e121cU,
-    0x6161a3c2U, 0x35355f6aU, 0x5757f9aeU, 0xb9b9d069U,
-    0x86869117U, 0xc1c15899U, 0x1d1d273aU, 0x9e9eb927U,
-    0xe1e138d9U, 0xf8f813ebU, 0x9898b32bU, 0x11113322U,
-    0x6969bbd2U, 0xd9d970a9U, 0x8e8e8907U, 0x9494a733U,
-    0x9b9bb62dU, 0x1e1e223cU, 0x87879215U, 0xe9e920c9U,
-    0xcece4987U, 0x5555ffaaU, 0x28287850U, 0xdfdf7aa5U,
-    0x8c8c8f03U, 0xa1a1f859U, 0x89898009U, 0x0d0d171aU,
-    0xbfbfda65U, 0xe6e631d7U, 0x4242c684U, 0x6868b8d0U,
-    0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU,
-    0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU,
-},
-{
-    0x63636363U, 0x7c7c7c7cU, 0x77777777U, 0x7b7b7b7bU,
-    0xf2f2f2f2U, 0x6b6b6b6bU, 0x6f6f6f6fU, 0xc5c5c5c5U,
-    0x30303030U, 0x01010101U, 0x67676767U, 0x2b2b2b2bU,
-    0xfefefefeU, 0xd7d7d7d7U, 0xababababU, 0x76767676U,
-    0xcacacacaU, 0x82828282U, 0xc9c9c9c9U, 0x7d7d7d7dU,
-    0xfafafafaU, 0x59595959U, 0x47474747U, 0xf0f0f0f0U,
-    0xadadadadU, 0xd4d4d4d4U, 0xa2a2a2a2U, 0xafafafafU,
-    0x9c9c9c9cU, 0xa4a4a4a4U, 0x72727272U, 0xc0c0c0c0U,
-    0xb7b7b7b7U, 0xfdfdfdfdU, 0x93939393U, 0x26262626U,
-    0x36363636U, 0x3f3f3f3fU, 0xf7f7f7f7U, 0xccccccccU,
-    0x34343434U, 0xa5a5a5a5U, 0xe5e5e5e5U, 0xf1f1f1f1U,
-    0x71717171U, 0xd8d8d8d8U, 0x31313131U, 0x15151515U,
-    0x04040404U, 0xc7c7c7c7U, 0x23232323U, 0xc3c3c3c3U,
-    0x18181818U, 0x96969696U, 0x05050505U, 0x9a9a9a9aU,
-    0x07070707U, 0x12121212U, 0x80808080U, 0xe2e2e2e2U,
-    0xebebebebU, 0x27272727U, 0xb2b2b2b2U, 0x75757575U,
-    0x09090909U, 0x83838383U, 0x2c2c2c2cU, 0x1a1a1a1aU,
-    0x1b1b1b1bU, 0x6e6e6e6eU, 0x5a5a5a5aU, 0xa0a0a0a0U,
-    0x52525252U, 0x3b3b3b3bU, 0xd6d6d6d6U, 0xb3b3b3b3U,
-    0x29292929U, 0xe3e3e3e3U, 0x2f2f2f2fU, 0x84848484U,
-    0x53535353U, 0xd1d1d1d1U, 0x00000000U, 0xededededU,
-    0x20202020U, 0xfcfcfcfcU, 0xb1b1b1b1U, 0x5b5b5b5bU,
-    0x6a6a6a6aU, 0xcbcbcbcbU, 0xbebebebeU, 0x39393939U,
-    0x4a4a4a4aU, 0x4c4c4c4cU, 0x58585858U, 0xcfcfcfcfU,
-    0xd0d0d0d0U, 0xefefefefU, 0xaaaaaaaaU, 0xfbfbfbfbU,
-    0x43434343U, 0x4d4d4d4dU, 0x33333333U, 0x85858585U,
-    0x45454545U, 0xf9f9f9f9U, 0x02020202U, 0x7f7f7f7fU,
-    0x50505050U, 0x3c3c3c3cU, 0x9f9f9f9fU, 0xa8a8a8a8U,
-    0x51515151U, 0xa3a3a3a3U, 0x40404040U, 0x8f8f8f8fU,
-    0x92929292U, 0x9d9d9d9dU, 0x38383838U, 0xf5f5f5f5U,
-    0xbcbcbcbcU, 0xb6b6b6b6U, 0xdadadadaU, 0x21212121U,
-    0x10101010U, 0xffffffffU, 0xf3f3f3f3U, 0xd2d2d2d2U,
-    0xcdcdcdcdU, 0x0c0c0c0cU, 0x13131313U, 0xececececU,
-    0x5f5f5f5fU, 0x97979797U, 0x44444444U, 0x17171717U,
-    0xc4c4c4c4U, 0xa7a7a7a7U, 0x7e7e7e7eU, 0x3d3d3d3dU,
-    0x64646464U, 0x5d5d5d5dU, 0x19191919U, 0x73737373U,
-    0x60606060U, 0x81818181U, 0x4f4f4f4fU, 0xdcdcdcdcU,
-    0x22222222U, 0x2a2a2a2aU, 0x90909090U, 0x88888888U,
-    0x46464646U, 0xeeeeeeeeU, 0xb8b8b8b8U, 0x14141414U,
-    0xdedededeU, 0x5e5e5e5eU, 0x0b0b0b0bU, 0xdbdbdbdbU,
-    0xe0e0e0e0U, 0x32323232U, 0x3a3a3a3aU, 0x0a0a0a0aU,
-    0x49494949U, 0x06060606U, 0x24242424U, 0x5c5c5c5cU,
-    0xc2c2c2c2U, 0xd3d3d3d3U, 0xacacacacU, 0x62626262U,
-    0x91919191U, 0x95959595U, 0xe4e4e4e4U, 0x79797979U,
-    0xe7e7e7e7U, 0xc8c8c8c8U, 0x37373737U, 0x6d6d6d6dU,
-    0x8d8d8d8dU, 0xd5d5d5d5U, 0x4e4e4e4eU, 0xa9a9a9a9U,
-    0x6c6c6c6cU, 0x56565656U, 0xf4f4f4f4U, 0xeaeaeaeaU,
-    0x65656565U, 0x7a7a7a7aU, 0xaeaeaeaeU, 0x08080808U,
-    0xbabababaU, 0x78787878U, 0x25252525U, 0x2e2e2e2eU,
-    0x1c1c1c1cU, 0xa6a6a6a6U, 0xb4b4b4b4U, 0xc6c6c6c6U,
-    0xe8e8e8e8U, 0xddddddddU, 0x74747474U, 0x1f1f1f1fU,
-    0x4b4b4b4bU, 0xbdbdbdbdU, 0x8b8b8b8bU, 0x8a8a8a8aU,
-    0x70707070U, 0x3e3e3e3eU, 0xb5b5b5b5U, 0x66666666U,
-    0x48484848U, 0x03030303U, 0xf6f6f6f6U, 0x0e0e0e0eU,
-    0x61616161U, 0x35353535U, 0x57575757U, 0xb9b9b9b9U,
-    0x86868686U, 0xc1c1c1c1U, 0x1d1d1d1dU, 0x9e9e9e9eU,
-    0xe1e1e1e1U, 0xf8f8f8f8U, 0x98989898U, 0x11111111U,
-    0x69696969U, 0xd9d9d9d9U, 0x8e8e8e8eU, 0x94949494U,
-    0x9b9b9b9bU, 0x1e1e1e1eU, 0x87878787U, 0xe9e9e9e9U,
-    0xcecececeU, 0x55555555U, 0x28282828U, 0xdfdfdfdfU,
-    0x8c8c8c8cU, 0xa1a1a1a1U, 0x89898989U, 0x0d0d0d0dU,
-    0xbfbfbfbfU, 0xe6e6e6e6U, 0x42424242U, 0x68686868U,
-    0x41414141U, 0x99999999U, 0x2d2d2d2dU, 0x0f0f0f0fU,
-    0xb0b0b0b0U, 0x54545454U, 0xbbbbbbbbU, 0x16161616U,
-}
-};
-
-
-const word32 AES::Td[5][256] = {
-{
-    0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U,
-    0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U,
-    0x2030fa55U, 0xad766df6U, 0x88cc7691U, 0xf5024c25U,
-    0x4fe5d7fcU, 0xc52acbd7U, 0x26354480U, 0xb562a38fU,
-    0xdeb15a49U, 0x25ba1b67U, 0x45ea0e98U, 0x5dfec0e1U,
-    0xc32f7502U, 0x814cf012U, 0x8d4697a3U, 0x6bd3f9c6U,
-    0x038f5fe7U, 0x15929c95U, 0xbf6d7aebU, 0x955259daU,
-    0xd4be832dU, 0x587421d3U, 0x49e06929U, 0x8ec9c844U,
-    0x75c2896aU, 0xf48e7978U, 0x99583e6bU, 0x27b971ddU,
-    0xbee14fb6U, 0xf088ad17U, 0xc920ac66U, 0x7dce3ab4U,
-    0x63df4a18U, 0xe51a3182U, 0x97513360U, 0x62537f45U,
-    0xb16477e0U, 0xbb6bae84U, 0xfe81a01cU, 0xf9082b94U,
-    0x70486858U, 0x8f45fd19U, 0x94de6c87U, 0x527bf8b7U,
-    0xab73d323U, 0x724b02e2U, 0xe31f8f57U, 0x6655ab2aU,
-    0xb2eb2807U, 0x2fb5c203U, 0x86c57b9aU, 0xd33708a5U,
-    0x302887f2U, 0x23bfa5b2U, 0x02036abaU, 0xed16825cU,
-    0x8acf1c2bU, 0xa779b492U, 0xf307f2f0U, 0x4e69e2a1U,
-    0x65daf4cdU, 0x0605bed5U, 0xd134621fU, 0xc4a6fe8aU,
-    0x342e539dU, 0xa2f355a0U, 0x058ae132U, 0xa4f6eb75U,
-    0x0b83ec39U, 0x4060efaaU, 0x5e719f06U, 0xbd6e1051U,
-    0x3e218af9U, 0x96dd063dU, 0xdd3e05aeU, 0x4de6bd46U,
-    0x91548db5U, 0x71c45d05U, 0x0406d46fU, 0x605015ffU,
-    0x1998fb24U, 0xd6bde997U, 0x894043ccU, 0x67d99e77U,
-    0xb0e842bdU, 0x07898b88U, 0xe7195b38U, 0x79c8eedbU,
-    0xa17c0a47U, 0x7c420fe9U, 0xf8841ec9U, 0x00000000U,
-    0x09808683U, 0x322bed48U, 0x1e1170acU, 0x6c5a724eU,
-    0xfd0efffbU, 0x0f853856U, 0x3daed51eU, 0x362d3927U,
-    0x0a0fd964U, 0x685ca621U, 0x9b5b54d1U, 0x24362e3aU,
-    0x0c0a67b1U, 0x9357e70fU, 0xb4ee96d2U, 0x1b9b919eU,
-    0x80c0c54fU, 0x61dc20a2U, 0x5a774b69U, 0x1c121a16U,
-    0xe293ba0aU, 0xc0a02ae5U, 0x3c22e043U, 0x121b171dU,
-    0x0e090d0bU, 0xf28bc7adU, 0x2db6a8b9U, 0x141ea9c8U,
-    0x57f11985U, 0xaf75074cU, 0xee99ddbbU, 0xa37f60fdU,
-    0xf701269fU, 0x5c72f5bcU, 0x44663bc5U, 0x5bfb7e34U,
-    0x8b432976U, 0xcb23c6dcU, 0xb6edfc68U, 0xb8e4f163U,
-    0xd731dccaU, 0x42638510U, 0x13972240U, 0x84c61120U,
-    0x854a247dU, 0xd2bb3df8U, 0xaef93211U, 0xc729a16dU,
-    0x1d9e2f4bU, 0xdcb230f3U, 0x0d8652ecU, 0x77c1e3d0U,
-    0x2bb3166cU, 0xa970b999U, 0x119448faU, 0x47e96422U,
-    0xa8fc8cc4U, 0xa0f03f1aU, 0x567d2cd8U, 0x223390efU,
-    0x87494ec7U, 0xd938d1c1U, 0x8ccaa2feU, 0x98d40b36U,
-    0xa6f581cfU, 0xa57ade28U, 0xdab78e26U, 0x3fadbfa4U,
-    0x2c3a9de4U, 0x5078920dU, 0x6a5fcc9bU, 0x547e4662U,
-    0xf68d13c2U, 0x90d8b8e8U, 0x2e39f75eU, 0x82c3aff5U,
-    0x9f5d80beU, 0x69d0937cU, 0x6fd52da9U, 0xcf2512b3U,
-    0xc8ac993bU, 0x10187da7U, 0xe89c636eU, 0xdb3bbb7bU,
-    0xcd267809U, 0x6e5918f4U, 0xec9ab701U, 0x834f9aa8U,
-    0xe6956e65U, 0xaaffe67eU, 0x21bccf08U, 0xef15e8e6U,
-    0xbae79bd9U, 0x4a6f36ceU, 0xea9f09d4U, 0x29b07cd6U,
-    0x31a4b2afU, 0x2a3f2331U, 0xc6a59430U, 0x35a266c0U,
-    0x744ebc37U, 0xfc82caa6U, 0xe090d0b0U, 0x33a7d815U,
-    0xf104984aU, 0x41ecdaf7U, 0x7fcd500eU, 0x1791f62fU,
-    0x764dd68dU, 0x43efb04dU, 0xccaa4d54U, 0xe49604dfU,
-    0x9ed1b5e3U, 0x4c6a881bU, 0xc12c1fb8U, 0x4665517fU,
-    0x9d5eea04U, 0x018c355dU, 0xfa877473U, 0xfb0b412eU,
-    0xb3671d5aU, 0x92dbd252U, 0xe9105633U, 0x6dd64713U,
-    0x9ad7618cU, 0x37a10c7aU, 0x59f8148eU, 0xeb133c89U,
-    0xcea927eeU, 0xb761c935U, 0xe11ce5edU, 0x7a47b13cU,
-    0x9cd2df59U, 0x55f2733fU, 0x1814ce79U, 0x73c737bfU,
-    0x53f7cdeaU, 0x5ffdaa5bU, 0xdf3d6f14U, 0x7844db86U,
-    0xcaaff381U, 0xb968c43eU, 0x3824342cU, 0xc2a3405fU,
-    0x161dc372U, 0xbce2250cU, 0x283c498bU, 0xff0d9541U,
-    0x39a80171U, 0x080cb3deU, 0xd8b4e49cU, 0x6456c190U,
-    0x7bcb8461U, 0xd532b670U, 0x486c5c74U, 0xd0b85742U,
-},
-{
-    0x5051f4a7U, 0x537e4165U, 0xc31a17a4U, 0x963a275eU,
-    0xcb3bab6bU, 0xf11f9d45U, 0xabacfa58U, 0x934be303U,
-    0x552030faU, 0xf6ad766dU, 0x9188cc76U, 0x25f5024cU,
-    0xfc4fe5d7U, 0xd7c52acbU, 0x80263544U, 0x8fb562a3U,
-    0x49deb15aU, 0x6725ba1bU, 0x9845ea0eU, 0xe15dfec0U,
-    0x02c32f75U, 0x12814cf0U, 0xa38d4697U, 0xc66bd3f9U,
-    0xe7038f5fU, 0x9515929cU, 0xebbf6d7aU, 0xda955259U,
-    0x2dd4be83U, 0xd3587421U, 0x2949e069U, 0x448ec9c8U,
-    0x6a75c289U, 0x78f48e79U, 0x6b99583eU, 0xdd27b971U,
-    0xb6bee14fU, 0x17f088adU, 0x66c920acU, 0xb47dce3aU,
-    0x1863df4aU, 0x82e51a31U, 0x60975133U, 0x4562537fU,
-    0xe0b16477U, 0x84bb6baeU, 0x1cfe81a0U, 0x94f9082bU,
-    0x58704868U, 0x198f45fdU, 0x8794de6cU, 0xb7527bf8U,
-    0x23ab73d3U, 0xe2724b02U, 0x57e31f8fU, 0x2a6655abU,
-    0x07b2eb28U, 0x032fb5c2U, 0x9a86c57bU, 0xa5d33708U,
-    0xf2302887U, 0xb223bfa5U, 0xba02036aU, 0x5ced1682U,
-    0x2b8acf1cU, 0x92a779b4U, 0xf0f307f2U, 0xa14e69e2U,
-    0xcd65daf4U, 0xd50605beU, 0x1fd13462U, 0x8ac4a6feU,
-    0x9d342e53U, 0xa0a2f355U, 0x32058ae1U, 0x75a4f6ebU,
-    0x390b83ecU, 0xaa4060efU, 0x065e719fU, 0x51bd6e10U,
-    0xf93e218aU, 0x3d96dd06U, 0xaedd3e05U, 0x464de6bdU,
-    0xb591548dU, 0x0571c45dU, 0x6f0406d4U, 0xff605015U,
-    0x241998fbU, 0x97d6bde9U, 0xcc894043U, 0x7767d99eU,
-    0xbdb0e842U, 0x8807898bU, 0x38e7195bU, 0xdb79c8eeU,
-    0x47a17c0aU, 0xe97c420fU, 0xc9f8841eU, 0x00000000U,
-    0x83098086U, 0x48322bedU, 0xac1e1170U, 0x4e6c5a72U,
-    0xfbfd0effU, 0x560f8538U, 0x1e3daed5U, 0x27362d39U,
-    0x640a0fd9U, 0x21685ca6U, 0xd19b5b54U, 0x3a24362eU,
-    0xb10c0a67U, 0x0f9357e7U, 0xd2b4ee96U, 0x9e1b9b91U,
-    0x4f80c0c5U, 0xa261dc20U, 0x695a774bU, 0x161c121aU,
-    0x0ae293baU, 0xe5c0a02aU, 0x433c22e0U, 0x1d121b17U,
-    0x0b0e090dU, 0xadf28bc7U, 0xb92db6a8U, 0xc8141ea9U,
-    0x8557f119U, 0x4caf7507U, 0xbbee99ddU, 0xfda37f60U,
-    0x9ff70126U, 0xbc5c72f5U, 0xc544663bU, 0x345bfb7eU,
-    0x768b4329U, 0xdccb23c6U, 0x68b6edfcU, 0x63b8e4f1U,
-    0xcad731dcU, 0x10426385U, 0x40139722U, 0x2084c611U,
-    0x7d854a24U, 0xf8d2bb3dU, 0x11aef932U, 0x6dc729a1U,
-    0x4b1d9e2fU, 0xf3dcb230U, 0xec0d8652U, 0xd077c1e3U,
-    0x6c2bb316U, 0x99a970b9U, 0xfa119448U, 0x2247e964U,
-    0xc4a8fc8cU, 0x1aa0f03fU, 0xd8567d2cU, 0xef223390U,
-    0xc787494eU, 0xc1d938d1U, 0xfe8ccaa2U, 0x3698d40bU,
-    0xcfa6f581U, 0x28a57adeU, 0x26dab78eU, 0xa43fadbfU,
-    0xe42c3a9dU, 0x0d507892U, 0x9b6a5fccU, 0x62547e46U,
-    0xc2f68d13U, 0xe890d8b8U, 0x5e2e39f7U, 0xf582c3afU,
-    0xbe9f5d80U, 0x7c69d093U, 0xa96fd52dU, 0xb3cf2512U,
-    0x3bc8ac99U, 0xa710187dU, 0x6ee89c63U, 0x7bdb3bbbU,
-    0x09cd2678U, 0xf46e5918U, 0x01ec9ab7U, 0xa8834f9aU,
-    0x65e6956eU, 0x7eaaffe6U, 0x0821bccfU, 0xe6ef15e8U,
-    0xd9bae79bU, 0xce4a6f36U, 0xd4ea9f09U, 0xd629b07cU,
-    0xaf31a4b2U, 0x312a3f23U, 0x30c6a594U, 0xc035a266U,
-    0x37744ebcU, 0xa6fc82caU, 0xb0e090d0U, 0x1533a7d8U,
-    0x4af10498U, 0xf741ecdaU, 0x0e7fcd50U, 0x2f1791f6U,
-    0x8d764dd6U, 0x4d43efb0U, 0x54ccaa4dU, 0xdfe49604U,
-    0xe39ed1b5U, 0x1b4c6a88U, 0xb8c12c1fU, 0x7f466551U,
-    0x049d5eeaU, 0x5d018c35U, 0x73fa8774U, 0x2efb0b41U,
-    0x5ab3671dU, 0x5292dbd2U, 0x33e91056U, 0x136dd647U,
-    0x8c9ad761U, 0x7a37a10cU, 0x8e59f814U, 0x89eb133cU,
-    0xeecea927U, 0x35b761c9U, 0xede11ce5U, 0x3c7a47b1U,
-    0x599cd2dfU, 0x3f55f273U, 0x791814ceU, 0xbf73c737U,
-    0xea53f7cdU, 0x5b5ffdaaU, 0x14df3d6fU, 0x867844dbU,
-    0x81caaff3U, 0x3eb968c4U, 0x2c382434U, 0x5fc2a340U,
-    0x72161dc3U, 0x0cbce225U, 0x8b283c49U, 0x41ff0d95U,
-    0x7139a801U, 0xde080cb3U, 0x9cd8b4e4U, 0x906456c1U,
-    0x617bcb84U, 0x70d532b6U, 0x74486c5cU, 0x42d0b857U,
-},
-{
-    0xa75051f4U, 0x65537e41U, 0xa4c31a17U, 0x5e963a27U,
-    0x6bcb3babU, 0x45f11f9dU, 0x58abacfaU, 0x03934be3U,
-    0xfa552030U, 0x6df6ad76U, 0x769188ccU, 0x4c25f502U,
-    0xd7fc4fe5U, 0xcbd7c52aU, 0x44802635U, 0xa38fb562U,
-    0x5a49deb1U, 0x1b6725baU, 0x0e9845eaU, 0xc0e15dfeU,
-    0x7502c32fU, 0xf012814cU, 0x97a38d46U, 0xf9c66bd3U,
-    0x5fe7038fU, 0x9c951592U, 0x7aebbf6dU, 0x59da9552U,
-    0x832dd4beU, 0x21d35874U, 0x692949e0U, 0xc8448ec9U,
-    0x896a75c2U, 0x7978f48eU, 0x3e6b9958U, 0x71dd27b9U,
-    0x4fb6bee1U, 0xad17f088U, 0xac66c920U, 0x3ab47dceU,
-    0x4a1863dfU, 0x3182e51aU, 0x33609751U, 0x7f456253U,
-    0x77e0b164U, 0xae84bb6bU, 0xa01cfe81U, 0x2b94f908U,
-    0x68587048U, 0xfd198f45U, 0x6c8794deU, 0xf8b7527bU,
-    0xd323ab73U, 0x02e2724bU, 0x8f57e31fU, 0xab2a6655U,
-    0x2807b2ebU, 0xc2032fb5U, 0x7b9a86c5U, 0x08a5d337U,
-    0x87f23028U, 0xa5b223bfU, 0x6aba0203U, 0x825ced16U,
-    0x1c2b8acfU, 0xb492a779U, 0xf2f0f307U, 0xe2a14e69U,
-    0xf4cd65daU, 0xbed50605U, 0x621fd134U, 0xfe8ac4a6U,
-    0x539d342eU, 0x55a0a2f3U, 0xe132058aU, 0xeb75a4f6U,
-    0xec390b83U, 0xefaa4060U, 0x9f065e71U, 0x1051bd6eU,
-
-    0x8af93e21U, 0x063d96ddU, 0x05aedd3eU, 0xbd464de6U,
-    0x8db59154U, 0x5d0571c4U, 0xd46f0406U, 0x15ff6050U,
-    0xfb241998U, 0xe997d6bdU, 0x43cc8940U, 0x9e7767d9U,
-    0x42bdb0e8U, 0x8b880789U, 0x5b38e719U, 0xeedb79c8U,
-    0x0a47a17cU, 0x0fe97c42U, 0x1ec9f884U, 0x00000000U,
-    0x86830980U, 0xed48322bU, 0x70ac1e11U, 0x724e6c5aU,
-    0xfffbfd0eU, 0x38560f85U, 0xd51e3daeU, 0x3927362dU,
-    0xd9640a0fU, 0xa621685cU, 0x54d19b5bU, 0x2e3a2436U,
-    0x67b10c0aU, 0xe70f9357U, 0x96d2b4eeU, 0x919e1b9bU,
-    0xc54f80c0U, 0x20a261dcU, 0x4b695a77U, 0x1a161c12U,
-    0xba0ae293U, 0x2ae5c0a0U, 0xe0433c22U, 0x171d121bU,
-    0x0d0b0e09U, 0xc7adf28bU, 0xa8b92db6U, 0xa9c8141eU,
-    0x198557f1U, 0x074caf75U, 0xddbbee99U, 0x60fda37fU,
-    0x269ff701U, 0xf5bc5c72U, 0x3bc54466U, 0x7e345bfbU,
-    0x29768b43U, 0xc6dccb23U, 0xfc68b6edU, 0xf163b8e4U,
-    0xdccad731U, 0x85104263U, 0x22401397U, 0x112084c6U,
-    0x247d854aU, 0x3df8d2bbU, 0x3211aef9U, 0xa16dc729U,
-    0x2f4b1d9eU, 0x30f3dcb2U, 0x52ec0d86U, 0xe3d077c1U,
-    0x166c2bb3U, 0xb999a970U, 0x48fa1194U, 0x642247e9U,
-    0x8cc4a8fcU, 0x3f1aa0f0U, 0x2cd8567dU, 0x90ef2233U,
-    0x4ec78749U, 0xd1c1d938U, 0xa2fe8ccaU, 0x0b3698d4U,
-    0x81cfa6f5U, 0xde28a57aU, 0x8e26dab7U, 0xbfa43fadU,
-    0x9de42c3aU, 0x920d5078U, 0xcc9b6a5fU, 0x4662547eU,
-    0x13c2f68dU, 0xb8e890d8U, 0xf75e2e39U, 0xaff582c3U,
-    0x80be9f5dU, 0x937c69d0U, 0x2da96fd5U, 0x12b3cf25U,
-    0x993bc8acU, 0x7da71018U, 0x636ee89cU, 0xbb7bdb3bU,
-    0x7809cd26U, 0x18f46e59U, 0xb701ec9aU, 0x9aa8834fU,
-    0x6e65e695U, 0xe67eaaffU, 0xcf0821bcU, 0xe8e6ef15U,
-    0x9bd9bae7U, 0x36ce4a6fU, 0x09d4ea9fU, 0x7cd629b0U,
-    0xb2af31a4U, 0x23312a3fU, 0x9430c6a5U, 0x66c035a2U,
-    0xbc37744eU, 0xcaa6fc82U, 0xd0b0e090U, 0xd81533a7U,
-    0x984af104U, 0xdaf741ecU, 0x500e7fcdU, 0xf62f1791U,
-    0xd68d764dU, 0xb04d43efU, 0x4d54ccaaU, 0x04dfe496U,
-    0xb5e39ed1U, 0x881b4c6aU, 0x1fb8c12cU, 0x517f4665U,
-    0xea049d5eU, 0x355d018cU, 0x7473fa87U, 0x412efb0bU,
-    0x1d5ab367U, 0xd25292dbU, 0x5633e910U, 0x47136dd6U,
-    0x618c9ad7U, 0x0c7a37a1U, 0x148e59f8U, 0x3c89eb13U,
-    0x27eecea9U, 0xc935b761U, 0xe5ede11cU, 0xb13c7a47U,
-    0xdf599cd2U, 0x733f55f2U, 0xce791814U, 0x37bf73c7U,
-    0xcdea53f7U, 0xaa5b5ffdU, 0x6f14df3dU, 0xdb867844U,
-    0xf381caafU, 0xc43eb968U, 0x342c3824U, 0x405fc2a3U,
-    0xc372161dU, 0x250cbce2U, 0x498b283cU, 0x9541ff0dU,
-    0x017139a8U, 0xb3de080cU, 0xe49cd8b4U, 0xc1906456U,
-    0x84617bcbU, 0xb670d532U, 0x5c74486cU, 0x5742d0b8U,
-},
-{
-    0xf4a75051U, 0x4165537eU, 0x17a4c31aU, 0x275e963aU,
-    0xab6bcb3bU, 0x9d45f11fU, 0xfa58abacU, 0xe303934bU,
-    0x30fa5520U, 0x766df6adU, 0xcc769188U, 0x024c25f5U,
-    0xe5d7fc4fU, 0x2acbd7c5U, 0x35448026U, 0x62a38fb5U,
-    0xb15a49deU, 0xba1b6725U, 0xea0e9845U, 0xfec0e15dU,
-    0x2f7502c3U, 0x4cf01281U, 0x4697a38dU, 0xd3f9c66bU,
-    0x8f5fe703U, 0x929c9515U, 0x6d7aebbfU, 0x5259da95U,
-    0xbe832dd4U, 0x7421d358U, 0xe0692949U, 0xc9c8448eU,
-    0xc2896a75U, 0x8e7978f4U, 0x583e6b99U, 0xb971dd27U,
-    0xe14fb6beU, 0x88ad17f0U, 0x20ac66c9U, 0xce3ab47dU,
-    0xdf4a1863U, 0x1a3182e5U, 0x51336097U, 0x537f4562U,
-    0x6477e0b1U, 0x6bae84bbU, 0x81a01cfeU, 0x082b94f9U,
-    0x48685870U, 0x45fd198fU, 0xde6c8794U, 0x7bf8b752U,
-    0x73d323abU, 0x4b02e272U, 0x1f8f57e3U, 0x55ab2a66U,
-    0xeb2807b2U, 0xb5c2032fU, 0xc57b9a86U, 0x3708a5d3U,
-    0x2887f230U, 0xbfa5b223U, 0x036aba02U, 0x16825cedU,
-    0xcf1c2b8aU, 0x79b492a7U, 0x07f2f0f3U, 0x69e2a14eU,
-    0xdaf4cd65U, 0x05bed506U, 0x34621fd1U, 0xa6fe8ac4U,
-    0x2e539d34U, 0xf355a0a2U, 0x8ae13205U, 0xf6eb75a4U,
-    0x83ec390bU, 0x60efaa40U, 0x719f065eU, 0x6e1051bdU,
-    0x218af93eU, 0xdd063d96U, 0x3e05aeddU, 0xe6bd464dU,
-    0x548db591U, 0xc45d0571U, 0x06d46f04U, 0x5015ff60U,
-    0x98fb2419U, 0xbde997d6U, 0x4043cc89U, 0xd99e7767U,
-    0xe842bdb0U, 0x898b8807U, 0x195b38e7U, 0xc8eedb79U,
-    0x7c0a47a1U, 0x420fe97cU, 0x841ec9f8U, 0x00000000U,
-    0x80868309U, 0x2bed4832U, 0x1170ac1eU, 0x5a724e6cU,
-    0x0efffbfdU, 0x8538560fU, 0xaed51e3dU, 0x2d392736U,
-    0x0fd9640aU, 0x5ca62168U, 0x5b54d19bU, 0x362e3a24U,
-    0x0a67b10cU, 0x57e70f93U, 0xee96d2b4U, 0x9b919e1bU,
-    0xc0c54f80U, 0xdc20a261U, 0x774b695aU, 0x121a161cU,
-    0x93ba0ae2U, 0xa02ae5c0U, 0x22e0433cU, 0x1b171d12U,
-    0x090d0b0eU, 0x8bc7adf2U, 0xb6a8b92dU, 0x1ea9c814U,
-    0xf1198557U, 0x75074cafU, 0x99ddbbeeU, 0x7f60fda3U,
-    0x01269ff7U, 0x72f5bc5cU, 0x663bc544U, 0xfb7e345bU,
-    0x4329768bU, 0x23c6dccbU, 0xedfc68b6U, 0xe4f163b8U,
-    0x31dccad7U, 0x63851042U, 0x97224013U, 0xc6112084U,
-    0x4a247d85U, 0xbb3df8d2U, 0xf93211aeU, 0x29a16dc7U,
-    0x9e2f4b1dU, 0xb230f3dcU, 0x8652ec0dU, 0xc1e3d077U,
-    0xb3166c2bU, 0x70b999a9U, 0x9448fa11U, 0xe9642247U,
-    0xfc8cc4a8U, 0xf03f1aa0U, 0x7d2cd856U, 0x3390ef22U,
-    0x494ec787U, 0x38d1c1d9U, 0xcaa2fe8cU, 0xd40b3698U,
-    0xf581cfa6U, 0x7ade28a5U, 0xb78e26daU, 0xadbfa43fU,
-    0x3a9de42cU, 0x78920d50U, 0x5fcc9b6aU, 0x7e466254U,
-    0x8d13c2f6U, 0xd8b8e890U, 0x39f75e2eU, 0xc3aff582U,
-    0x5d80be9fU, 0xd0937c69U, 0xd52da96fU, 0x2512b3cfU,
-    0xac993bc8U, 0x187da710U, 0x9c636ee8U, 0x3bbb7bdbU,
-    0x267809cdU, 0x5918f46eU, 0x9ab701ecU, 0x4f9aa883U,
-    0x956e65e6U, 0xffe67eaaU, 0xbccf0821U, 0x15e8e6efU,
-    0xe79bd9baU, 0x6f36ce4aU, 0x9f09d4eaU, 0xb07cd629U,
-    0xa4b2af31U, 0x3f23312aU, 0xa59430c6U, 0xa266c035U,
-    0x4ebc3774U, 0x82caa6fcU, 0x90d0b0e0U, 0xa7d81533U,
-    0x04984af1U, 0xecdaf741U, 0xcd500e7fU, 0x91f62f17U,
-    0x4dd68d76U, 0xefb04d43U, 0xaa4d54ccU, 0x9604dfe4U,
-    0xd1b5e39eU, 0x6a881b4cU, 0x2c1fb8c1U, 0x65517f46U,
-    0x5eea049dU, 0x8c355d01U, 0x877473faU, 0x0b412efbU,
-    0x671d5ab3U, 0xdbd25292U, 0x105633e9U, 0xd647136dU,
-    0xd7618c9aU, 0xa10c7a37U, 0xf8148e59U, 0x133c89ebU,
-    0xa927eeceU, 0x61c935b7U, 0x1ce5ede1U, 0x47b13c7aU,
-    0xd2df599cU, 0xf2733f55U, 0x14ce7918U, 0xc737bf73U,
-    0xf7cdea53U, 0xfdaa5b5fU, 0x3d6f14dfU, 0x44db8678U,
-    0xaff381caU, 0x68c43eb9U, 0x24342c38U, 0xa3405fc2U,
-    0x1dc37216U, 0xe2250cbcU, 0x3c498b28U, 0x0d9541ffU,
-    0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U,
-    0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U,
-},
-{
-    0x52525252U, 0x09090909U, 0x6a6a6a6aU, 0xd5d5d5d5U,
-    0x30303030U, 0x36363636U, 0xa5a5a5a5U, 0x38383838U,
-    0xbfbfbfbfU, 0x40404040U, 0xa3a3a3a3U, 0x9e9e9e9eU,
-    0x81818181U, 0xf3f3f3f3U, 0xd7d7d7d7U, 0xfbfbfbfbU,
-    0x7c7c7c7cU, 0xe3e3e3e3U, 0x39393939U, 0x82828282U,
-    0x9b9b9b9bU, 0x2f2f2f2fU, 0xffffffffU, 0x87878787U,
-    0x34343434U, 0x8e8e8e8eU, 0x43434343U, 0x44444444U,
-    0xc4c4c4c4U, 0xdedededeU, 0xe9e9e9e9U, 0xcbcbcbcbU,
-    0x54545454U, 0x7b7b7b7bU, 0x94949494U, 0x32323232U,
-    0xa6a6a6a6U, 0xc2c2c2c2U, 0x23232323U, 0x3d3d3d3dU,
-    0xeeeeeeeeU, 0x4c4c4c4cU, 0x95959595U, 0x0b0b0b0bU,
-    0x42424242U, 0xfafafafaU, 0xc3c3c3c3U, 0x4e4e4e4eU,
-    0x08080808U, 0x2e2e2e2eU, 0xa1a1a1a1U, 0x66666666U,
-    0x28282828U, 0xd9d9d9d9U, 0x24242424U, 0xb2b2b2b2U,
-    0x76767676U, 0x5b5b5b5bU, 0xa2a2a2a2U, 0x49494949U,
-    0x6d6d6d6dU, 0x8b8b8b8bU, 0xd1d1d1d1U, 0x25252525U,
-    0x72727272U, 0xf8f8f8f8U, 0xf6f6f6f6U, 0x64646464U,
-    0x86868686U, 0x68686868U, 0x98989898U, 0x16161616U,
-    0xd4d4d4d4U, 0xa4a4a4a4U, 0x5c5c5c5cU, 0xccccccccU,
-    0x5d5d5d5dU, 0x65656565U, 0xb6b6b6b6U, 0x92929292U,
-    0x6c6c6c6cU, 0x70707070U, 0x48484848U, 0x50505050U,
-    0xfdfdfdfdU, 0xededededU, 0xb9b9b9b9U, 0xdadadadaU,
-    0x5e5e5e5eU, 0x15151515U, 0x46464646U, 0x57575757U,
-    0xa7a7a7a7U, 0x8d8d8d8dU, 0x9d9d9d9dU, 0x84848484U,
-    0x90909090U, 0xd8d8d8d8U, 0xababababU, 0x00000000U,
-    0x8c8c8c8cU, 0xbcbcbcbcU, 0xd3d3d3d3U, 0x0a0a0a0aU,
-    0xf7f7f7f7U, 0xe4e4e4e4U, 0x58585858U, 0x05050505U,
-    0xb8b8b8b8U, 0xb3b3b3b3U, 0x45454545U, 0x06060606U,
-    0xd0d0d0d0U, 0x2c2c2c2cU, 0x1e1e1e1eU, 0x8f8f8f8fU,
-    0xcacacacaU, 0x3f3f3f3fU, 0x0f0f0f0fU, 0x02020202U,
-    0xc1c1c1c1U, 0xafafafafU, 0xbdbdbdbdU, 0x03030303U,
-    0x01010101U, 0x13131313U, 0x8a8a8a8aU, 0x6b6b6b6bU,
-    0x3a3a3a3aU, 0x91919191U, 0x11111111U, 0x41414141U,
-    0x4f4f4f4fU, 0x67676767U, 0xdcdcdcdcU, 0xeaeaeaeaU,
-    0x97979797U, 0xf2f2f2f2U, 0xcfcfcfcfU, 0xcecececeU,
-    0xf0f0f0f0U, 0xb4b4b4b4U, 0xe6e6e6e6U, 0x73737373U,
-    0x96969696U, 0xacacacacU, 0x74747474U, 0x22222222U,
-    0xe7e7e7e7U, 0xadadadadU, 0x35353535U, 0x85858585U,
-    0xe2e2e2e2U, 0xf9f9f9f9U, 0x37373737U, 0xe8e8e8e8U,
-    0x1c1c1c1cU, 0x75757575U, 0xdfdfdfdfU, 0x6e6e6e6eU,
-    0x47474747U, 0xf1f1f1f1U, 0x1a1a1a1aU, 0x71717171U,
-    0x1d1d1d1dU, 0x29292929U, 0xc5c5c5c5U, 0x89898989U,
-    0x6f6f6f6fU, 0xb7b7b7b7U, 0x62626262U, 0x0e0e0e0eU,
-    0xaaaaaaaaU, 0x18181818U, 0xbebebebeU, 0x1b1b1b1bU,
-    0xfcfcfcfcU, 0x56565656U, 0x3e3e3e3eU, 0x4b4b4b4bU,
-    0xc6c6c6c6U, 0xd2d2d2d2U, 0x79797979U, 0x20202020U,
-    0x9a9a9a9aU, 0xdbdbdbdbU, 0xc0c0c0c0U, 0xfefefefeU,
-    0x78787878U, 0xcdcdcdcdU, 0x5a5a5a5aU, 0xf4f4f4f4U,
-    0x1f1f1f1fU, 0xddddddddU, 0xa8a8a8a8U, 0x33333333U,
-    0x88888888U, 0x07070707U, 0xc7c7c7c7U, 0x31313131U,
-    0xb1b1b1b1U, 0x12121212U, 0x10101010U, 0x59595959U,
-    0x27272727U, 0x80808080U, 0xececececU, 0x5f5f5f5fU,
-    0x60606060U, 0x51515151U, 0x7f7f7f7fU, 0xa9a9a9a9U,
-    0x19191919U, 0xb5b5b5b5U, 0x4a4a4a4aU, 0x0d0d0d0dU,
-    0x2d2d2d2dU, 0xe5e5e5e5U, 0x7a7a7a7aU, 0x9f9f9f9fU,
-    0x93939393U, 0xc9c9c9c9U, 0x9c9c9c9cU, 0xefefefefU,
-    0xa0a0a0a0U, 0xe0e0e0e0U, 0x3b3b3b3bU, 0x4d4d4d4dU,
-    0xaeaeaeaeU, 0x2a2a2a2aU, 0xf5f5f5f5U, 0xb0b0b0b0U,
-    0xc8c8c8c8U, 0xebebebebU, 0xbbbbbbbbU, 0x3c3c3c3cU,
-    0x83838383U, 0x53535353U, 0x99999999U, 0x61616161U,
-    0x17171717U, 0x2b2b2b2bU, 0x04040404U, 0x7e7e7e7eU,
-    0xbabababaU, 0x77777777U, 0xd6d6d6d6U, 0x26262626U,
-    0xe1e1e1e1U, 0x69696969U, 0x14141414U, 0x63636363U,
-    0x55555555U, 0x21212121U, 0x0c0c0c0cU, 0x7d7d7d7dU,
-}
-};
-
-const byte AES::CTd4[256] =
-{
-    0x52U, 0x09U, 0x6aU, 0xd5U, 0x30U, 0x36U, 0xa5U, 0x38U,
-    0xbfU, 0x40U, 0xa3U, 0x9eU, 0x81U, 0xf3U, 0xd7U, 0xfbU,
-    0x7cU, 0xe3U, 0x39U, 0x82U, 0x9bU, 0x2fU, 0xffU, 0x87U,
-    0x34U, 0x8eU, 0x43U, 0x44U, 0xc4U, 0xdeU, 0xe9U, 0xcbU,
-    0x54U, 0x7bU, 0x94U, 0x32U, 0xa6U, 0xc2U, 0x23U, 0x3dU,
-    0xeeU, 0x4cU, 0x95U, 0x0bU, 0x42U, 0xfaU, 0xc3U, 0x4eU,
-    0x08U, 0x2eU, 0xa1U, 0x66U, 0x28U, 0xd9U, 0x24U, 0xb2U,
-    0x76U, 0x5bU, 0xa2U, 0x49U, 0x6dU, 0x8bU, 0xd1U, 0x25U,
-    0x72U, 0xf8U, 0xf6U, 0x64U, 0x86U, 0x68U, 0x98U, 0x16U,
-    0xd4U, 0xa4U, 0x5cU, 0xccU, 0x5dU, 0x65U, 0xb6U, 0x92U,
-    0x6cU, 0x70U, 0x48U, 0x50U, 0xfdU, 0xedU, 0xb9U, 0xdaU,
-    0x5eU, 0x15U, 0x46U, 0x57U, 0xa7U, 0x8dU, 0x9dU, 0x84U,
-    0x90U, 0xd8U, 0xabU, 0x00U, 0x8cU, 0xbcU, 0xd3U, 0x0aU,
-    0xf7U, 0xe4U, 0x58U, 0x05U, 0xb8U, 0xb3U, 0x45U, 0x06U,
-    0xd0U, 0x2cU, 0x1eU, 0x8fU, 0xcaU, 0x3fU, 0x0fU, 0x02U,
-    0xc1U, 0xafU, 0xbdU, 0x03U, 0x01U, 0x13U, 0x8aU, 0x6bU,
-    0x3aU, 0x91U, 0x11U, 0x41U, 0x4fU, 0x67U, 0xdcU, 0xeaU,
-    0x97U, 0xf2U, 0xcfU, 0xceU, 0xf0U, 0xb4U, 0xe6U, 0x73U,
-    0x96U, 0xacU, 0x74U, 0x22U, 0xe7U, 0xadU, 0x35U, 0x85U,
-    0xe2U, 0xf9U, 0x37U, 0xe8U, 0x1cU, 0x75U, 0xdfU, 0x6eU,
-    0x47U, 0xf1U, 0x1aU, 0x71U, 0x1dU, 0x29U, 0xc5U, 0x89U,
-    0x6fU, 0xb7U, 0x62U, 0x0eU, 0xaaU, 0x18U, 0xbeU, 0x1bU,
-    0xfcU, 0x56U, 0x3eU, 0x4bU, 0xc6U, 0xd2U, 0x79U, 0x20U,
-    0x9aU, 0xdbU, 0xc0U, 0xfeU, 0x78U, 0xcdU, 0x5aU, 0xf4U,
-    0x1fU, 0xddU, 0xa8U, 0x33U, 0x88U, 0x07U, 0xc7U, 0x31U,
-    0xb1U, 0x12U, 0x10U, 0x59U, 0x27U, 0x80U, 0xecU, 0x5fU,
-    0x60U, 0x51U, 0x7fU, 0xa9U, 0x19U, 0xb5U, 0x4aU, 0x0dU,
-    0x2dU, 0xe5U, 0x7aU, 0x9fU, 0x93U, 0xc9U, 0x9cU, 0xefU,
-    0xa0U, 0xe0U, 0x3bU, 0x4dU, 0xaeU, 0x2aU, 0xf5U, 0xb0U,
-    0xc8U, 0xebU, 0xbbU, 0x3cU, 0x83U, 0x53U, 0x99U, 0x61U,
-    0x17U, 0x2bU, 0x04U, 0x7eU, 0xbaU, 0x77U, 0xd6U, 0x26U,
-    0xe1U, 0x69U, 0x14U, 0x63U, 0x55U, 0x21U, 0x0cU, 0x7dU,
-};
-
-
-const word32* AES::Te0 = AES::Te[0];
-const word32* AES::Te1 = AES::Te[1];
-const word32* AES::Te2 = AES::Te[2];
-const word32* AES::Te3 = AES::Te[3];
-
-const word32* AES::Td0 = AES::Td[0];
-const word32* AES::Td1 = AES::Td[1];
-const word32* AES::Td2 = AES::Td[2];
-const word32* AES::Td3 = AES::Td[3];
-
-
-
-} // namespace
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/aestables.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/aestables.cpp
deleted file mode 100644
index 60795a54..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/aestables.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* based on Wei Dai's aestables.cpp from CryptoPP */
-
-#include "runtime.hpp"
-#include "aes.hpp"
-
-
-namespace TaoCrypt {
-
-
-const word32 AES::rcon_[] = {
-    0x01000000, 0x02000000, 0x04000000, 0x08000000,
-    0x10000000, 0x20000000, 0x40000000, 0x80000000,
-    0x1B000000, 0x36000000, 
-    /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */
-};
-
-
-} // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/algebra.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/algebra.cpp
deleted file mode 100644
index ace17047..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/algebra.cpp
+++ /dev/null
@@ -1,336 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */
-
-/* based on Wei Dai's algebra.cpp from CryptoPP */
-#undef  NDEBUG
-#define DEBUG   // GCC 4.0 bug if NDEBUG and Optimize > 1
-
-#include "runtime.hpp"
-#include "algebra.hpp"
-#ifdef USE_SYS_STL
-    #include 
-#else
-    #include "vector.hpp"
-#endif
-
-
-namespace STL = STL_NAMESPACE;
-
-
-namespace TaoCrypt {
-
-
-const Integer& AbstractGroup::Double(const Element &a) const
-{
-    return Add(a, a);
-}
-
-const Integer& AbstractGroup::Subtract(const Element &a, const Element &b) const
-{
-    // make copy of a in case Inverse() overwrites it
-    Element a1(a);
-    return Add(a1, Inverse(b));
-}
-
-Integer& AbstractGroup::Accumulate(Element &a, const Element &b) const
-{
-    return a = Add(a, b);
-}
-
-Integer& AbstractGroup::Reduce(Element &a, const Element &b) const
-{
-    return a = Subtract(a, b);
-}
-
-const Integer& AbstractRing::Square(const Element &a) const
-{
-    return Multiply(a, a);
-}
-
-
-const Integer& AbstractRing::Divide(const Element &a, const Element &b) const
-{
-    // make copy of a in case MultiplicativeInverse() overwrites it
-    Element a1(a);
-    return Multiply(a1, MultiplicativeInverse(b));
-}
-
-
-const Integer& AbstractEuclideanDomain::Mod(const Element &a,
-                                            const Element &b) const
-{
-    Element q;
-    DivisionAlgorithm(result, q, a, b);
-    return result;
-}
-
-const Integer& AbstractEuclideanDomain::Gcd(const Element &a,
-                                            const Element &b) const
-{
-    STL::vector g(3);
-    g[0]= b;
-    g[1]= a;
-    unsigned int i0=0, i1=1, i2=2;
-
-    while (!Equal(g[i1], this->Identity()))
-    {
-        g[i2] = Mod(g[i0], g[i1]);
-        unsigned int t = i0; i0 = i1; i1 = i2; i2 = t;
-    }
-
-    return result = g[i0];
-}
-
-
-Integer AbstractGroup::ScalarMultiply(const Element &base,
-                                      const Integer &exponent) const
-{
-    Element result;
-    SimultaneousMultiply(&result, base, &exponent, 1);
-    return result;
-}
-
-
-Integer AbstractGroup::CascadeScalarMultiply(const Element &x,
-                  const Integer &e1, const Element &y, const Integer &e2) const
-{
-    const unsigned expLen = max(e1.BitCount(), e2.BitCount());
-    if (expLen==0)
-        return Identity();
-
-    const unsigned w = (expLen <= 46 ? 1 : (expLen <= 260 ? 2 : 3));
-    const unsigned tableSize = 1< powerTable(tableSize << w);
-
-    powerTable[1] = x;
-    powerTable[tableSize] = y;
-    if (w==1)
-        powerTable[3] = Add(x,y);
-    else
-    {
-        powerTable[2] = Double(x);
-        powerTable[2*tableSize] = Double(y);
-
-        unsigned i, j;
-
-        for (i=3; i=0; i--)
-    {
-        power1 = 2*power1 + e1.GetBit(i);
-        power2 = 2*power2 + e2.GetBit(i);
-
-        if (i==0 || 2*power1 >= tableSize || 2*power2 >= tableSize)
-        {
-            unsigned squaresBefore = prevPosition-i;
-            unsigned squaresAfter = 0;
-            prevPosition = i;
-            while ((power1 || power2) && power1%2 == 0 && power2%2==0)
-            {
-                power1 /= 2;
-                power2 /= 2;
-                squaresBefore--;
-                squaresAfter++;
-            }
-            if (firstTime)
-            {
-                result = powerTable[(power2<= expLen)
-            {
-                finished = true;
-                return;
-            }
-            skipCount++;
-        }
-
-        exp >>= skipCount;
-        windowBegin += skipCount;
-        expWindow = exp % (1 << windowSize);
-
-        if (fastNegate && exp.GetBit(windowSize))
-        {
-            negateNext = true;
-            expWindow = (1 << windowSize) - expWindow;
-            exp += windowModulus;
-        }
-        else
-            negateNext = false;
-    }
-
-    Integer exp, windowModulus;
-    unsigned int windowSize, windowBegin, expWindow;
-    bool fastNegate, negateNext, firstTime, finished;
-};
-
-
-void AbstractGroup::SimultaneousMultiply(Integer *results, const Integer &base,
-                          const Integer *expBegin, unsigned int expCount) const
-{
-    STL::vector > buckets(expCount);
-    STL::vector exponents;
-    exponents.reserve(expCount);
-    unsigned int i;
-
-    for (i=0; i 1)
-        {
-            for (size_t j = buckets[i].size()-2; j >= 1; j--)
-            {
-                Accumulate(buckets[i][j], buckets[i][j+1]);
-                Accumulate(r, buckets[i][j]);
-            }
-            Accumulate(buckets[i][0], buckets[i][1]);
-            r = Add(Double(r), buckets[i][0]);
-        }
-    }
-}
-
-Integer AbstractRing::Exponentiate(const Element &base,
-                                   const Integer &exponent) const
-{
-    Element result;
-    SimultaneousExponentiate(&result, base, &exponent, 1);
-    return result;
-}
-
-
-Integer AbstractRing::CascadeExponentiate(const Element &x,
-                  const Integer &e1, const Element &y, const Integer &e2) const
-{
-    return MultiplicativeGroup().AbstractGroup::CascadeScalarMultiply(
-                x, e1, y, e2);
-}
-
-
-void AbstractRing::SimultaneousExponentiate(Integer *results,
-                                            const Integer &base,
-                         const Integer *exponents, unsigned int expCount) const
-{
-    MultiplicativeGroup().AbstractGroup::SimultaneousMultiply(results, base,
-                                                          exponents, expCount);
-}
-
-
-} // namespace
-
-
-#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
-namespace mySTL {
-template TaoCrypt::WindowSlider* uninit_copy(TaoCrypt::WindowSlider*, TaoCrypt::WindowSlider*, TaoCrypt::WindowSlider*);
-template void destroy(TaoCrypt::WindowSlider*, TaoCrypt::WindowSlider*);
-template TaoCrypt::WindowSlider* GetArrayMemory(size_t);
-template void FreeArrayMemory(TaoCrypt::WindowSlider*);
-}
-#endif
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/arc4.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/arc4.cpp
deleted file mode 100644
index 10a3a7d6..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/arc4.cpp
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* based on Wei Dai's arc4.cpp from CryptoPP */
-
-#include "runtime.hpp"
-#include "arc4.hpp"
-
-
-#if defined(TAOCRYPT_X86ASM_AVAILABLE) && defined(TAO_ASM)
-    #define DO_ARC4_ASM
-#endif
-
-
-namespace TaoCrypt {
-
-void ARC4::SetKey(const byte* key, word32 length)
-{
-    x_ = 1;
-    y_ = 0;
-
-    word32 i;
-
-    for (i = 0; i < STATE_SIZE; i++)
-        state_[i] = i;
-
-    word32 keyIndex = 0, stateIndex = 0;
-
-    for (i = 0; i < STATE_SIZE; i++) {
-        word32 a = state_[i];
-        stateIndex += key[keyIndex] + a;
-        stateIndex &= 0xFF;
-        state_[i] = state_[stateIndex];
-        state_[stateIndex] = a;
-
-        if (++keyIndex >= length)
-            keyIndex = 0;
-    }
-}
-
-
-// local
-namespace {
-
-inline unsigned int MakeByte(word32& x, word32& y, byte* s)
-{
-    word32 a = s[x];
-    y = (y+a) & 0xff;
-
-    word32 b = s[y];
-    s[x] = b;
-    s[y] = a;
-    x = (x+1) & 0xff;
-
-    return s[(a+b) & 0xff];
-}
-
-} // namespace
-
-
-
-void ARC4::Process(byte* out, const byte* in, word32 length)
-{
-    if (length == 0) return;
-
-#ifdef DO_ARC4_ASM
-    if (isMMX) {
-        AsmProcess(out, in, length);
-        return;
-    } 
-#endif
-
-    byte *const s = state_;
-    word32 x = x_;
-    word32 y = y_;
-
-    if (in == out)
-        while (length--)
-            *out++ ^= MakeByte(x, y, s);
-    else
-        while(length--)
-            *out++ = *in++ ^ MakeByte(x, y, s);
-    x_ = x;
-    y_ = y;
-}
-
-
-
-#ifdef DO_ARC4_ASM
-
-#ifdef _MSC_VER
-    __declspec(naked)
-#else
-    __attribute__ ((noinline))
-#endif
-void ARC4::AsmProcess(byte* out, const byte* in, word32 length)
-{
-#ifdef __GNUC__
-    #define AS1(x)    #x ";"
-    #define AS2(x, y) #x ", " #y ";"
-
-    #define PROLOG()  \
-    __asm__ __volatile__ \
-    ( \
-        ".intel_syntax noprefix;" \
-        "push ebx;" \
-        "push ebp;" \
-        "mov ebp, eax;"
-    #define EPILOG()  \
-        "pop ebp;" \
-        "pop ebx;" \
-       	"emms;" \
-       	".att_syntax;" \
-            : \
-            : "c" (this), "D" (out), "S" (in), "a" (length) \
-            : "%edx", "memory", "cc" \
-    );
-
-#else
-    #define AS1(x)    __asm x
-    #define AS2(x, y) __asm x, y
-
-    #define PROLOG() \
-        AS1(    push  ebp                       )   \
-        AS2(    mov   ebp, esp                  )   \
-        AS2(    movd  mm3, edi                  )   \
-        AS2(    movd  mm4, ebx                  )   \
-        AS2(    movd  mm5, esi                  )   \
-        AS2(    movd  mm6, ebp                  )   \
-        AS2(    mov   edi, DWORD PTR [ebp +  8] )   \
-        AS2(    mov   esi, DWORD PTR [ebp + 12] )   \
-        AS2(    mov   ebp, DWORD PTR [ebp + 16] )
-
-    #define EPILOG() \
-        AS2(    movd  ebp, mm6                  )   \
-        AS2(    movd  esi, mm5                  )   \
-        AS2(    movd  ebx, mm4                  )   \
-        AS2(    movd  edi, mm3                  )   \
-        AS2(    mov   esp, ebp                  )   \
-        AS1(    pop   ebp                       )   \
-        AS1(    emms                            )   \
-        AS1(    ret 12                          )
-        
-#endif
-
-    PROLOG()
-
-    AS2(    sub    esp, 4                   )   // make room 
-
-    AS2(    cmp    ebp, 0                   )
-    AS1(    jz     nothing                  )
-
-    AS2(    mov    [esp], ebp               )   // length
-
-    AS2(    movzx  edx, BYTE PTR [ecx + 1]  )   // y
-    AS2(    lea    ebp, [ecx + 2]           )   // state_
-    AS2(    movzx  ecx, BYTE PTR [ecx]      )   // x
-
-    // setup loop
-    // a = s[x];
-    AS2(    movzx  eax, BYTE PTR [ebp + ecx]    )
-
-
-#ifdef _MSC_VER
-    AS1( loopStart: )  // loopStart
-#else
-    AS1( 0: )          // loopStart for some gas (need numeric for jump back 
-#endif
-
-    // y = (y+a) & 0xff;
-    AS2(    add    edx, eax                     )
-    AS2(    and    edx, 255                     )
-
-    // b = s[y];
-    AS2(    movzx  ebx, BYTE PTR [ebp + edx]    )
-
-    // s[x] = b;
-    AS2(    mov    [ebp + ecx], bl              )
-
-    // s[y] = a;
-    AS2(    mov    [ebp + edx], al              )
-
-    // x = (x+1) & 0xff;
-    AS1(    inc    ecx                          )
-    AS2(    and    ecx, 255                     )
-
-    //return s[(a+b) & 0xff];
-    AS2(    add    eax, ebx                     )
-    AS2(    and    eax, 255                     )
-    
-    AS2(    movzx  ebx, BYTE PTR [ebp + eax]    )
-
-    // a = s[x];   for next round
-    AS2(    movzx  eax, BYTE PTR [ebp + ecx]    )
-
-    // xOr w/ inByte
-    AS2(    xor    bl,  BYTE PTR [esi]          )
-    AS1(    inc    esi                          )
-
-    // write to outByte
-    AS2(    mov    [edi], bl                    )
-    AS1(    inc    edi                          )
-
-    AS1(    dec    DWORD PTR [esp]              )
-#ifdef _MSC_VER
-    AS1(    jnz   loopStart )  // loopStart
-#else
-    AS1(    jnz   0b )         // loopStart
-#endif
-
-
-    // write back to x_ and y_
-    AS2(    mov    [ebp - 2], cl            )
-    AS2(    mov    [ebp - 1], dl            )
-
-
-AS1( nothing:                           )
-
-    // inline adjust 
-    AS2(    add   esp, 4               )   // fix room on stack
-
-    EPILOG()
-}
-
-#endif // DO_ARC4_ASM
-
-
-}  // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/asn.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/asn.cpp
deleted file mode 100644
index e0aef45f..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/asn.cpp
+++ /dev/null
@@ -1,1348 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* asn.cpp implements ASN1 BER, PublicKey, and x509v3 decoding 
-*/
-
-#include "runtime.hpp"
-#include "asn.hpp"
-#include "file.hpp"
-#include "integer.hpp"
-#include "rsa.hpp"
-#include "dsa.hpp"
-#include "dh.hpp"
-#include "md5.hpp"
-#include "md2.hpp"
-#include "sha.hpp"
-#include "coding.hpp"
-#include      // gmtime();
-#include "memory.hpp" // some auto_ptr don't have reset, also need auto_array
-
-
-namespace TaoCrypt {
-
-// like atoi but only use first byte
-word32 btoi(byte b)
-{
-    return b - 0x30;
-}
-
-
-// two byte date/time, add to value
-void GetTime(int *value, const byte* date, int& i)
-{
-    *value += btoi(date[i++]) * 10;
-    *value += btoi(date[i++]);
-}
-
-
-bool ASN1_TIME_extract(const unsigned char* date, unsigned char format,
-                       tm *t)
-{
-  int i = 0;
-  memset(t, 0, sizeof (tm));
-
-  if (format != UTC_TIME && format != GENERALIZED_TIME)
-    return false;
-
-  if (format == UTC_TIME) {
-    if (btoi(date[0]) >= 5)
-      t->tm_year = 1900;
-    else
-      t->tm_year = 2000;
-  }
-  else  { // format == GENERALIZED_TIME
-    t->tm_year += btoi(date[i++]) * 1000;
-    t->tm_year += btoi(date[i++]) * 100;
-  }
-
-  GetTime(&t->tm_year, date, i);     t->tm_year -= 1900; // adjust
-  GetTime(&t->tm_mon,  date, i);     t->tm_mon  -= 1;    // adjust
-  GetTime(&t->tm_mday, date, i);
-  GetTime(&t->tm_hour, date, i);
-  GetTime(&t->tm_min,  date, i);
-  GetTime(&t->tm_sec,  date, i);
-
-  if (date[i] != 'Z')     // only Zulu supported for this profile
-    return false;
-  return true;
-}
-
-
-namespace { // locals
-
-
-// to the second
-bool operator>(tm& a, tm& b)
-{
-    if (a.tm_year > b.tm_year)
-        return true;
-
-    if (a.tm_year == b.tm_year && a.tm_mon > b.tm_mon)
-        return true;
-    
-    if (a.tm_year == b.tm_year && a.tm_mon == b.tm_mon && a.tm_mday >b.tm_mday)
-        return true;
-
-    if (a.tm_year == b.tm_year && a.tm_mon == b.tm_mon &&
-        a.tm_mday == b.tm_mday && a.tm_hour > b.tm_hour)
-        return true;
-
-    if (a.tm_year == b.tm_year && a.tm_mon == b.tm_mon &&
-        a.tm_mday == b.tm_mday && a.tm_hour == b.tm_hour &&
-        a.tm_min > b.tm_min)
-        return true;
-
-    if (a.tm_year == b.tm_year && a.tm_mon == b.tm_mon &&
-        a.tm_mday == b.tm_mday && a.tm_hour == b.tm_hour &&
-        a.tm_min  == b.tm_min  && a.tm_sec > b.tm_sec)
-        return true;
-
-    return false;
-}
-
-
-bool operator<(tm& a, tm&b)
-{
-    return (b>a);
-}
-
-
-// Make sure before and after dates are valid
-bool ValidateDate(const byte* date, byte format, CertDecoder::DateType dt)
-{
-    tm certTime;
-
-    if (!ASN1_TIME_extract(date, format, &certTime))
-        return false;
-
-    time_t ltime = time(0);
-    tm* localTime = gmtime(<ime);
-
-    if (dt == CertDecoder::BEFORE) {
-        if (*localTime < certTime)
-            return false;
-    }
-    else
-        if (*localTime > certTime)
-            return false;
-
-    return true;
-}
-
-
-class BadCertificate {};
-
-} // local namespace
-
-
-
-// used by Integer as well
-word32 GetLength(Source& source)
-{
-    word32 length = 0;
-
-    byte b = source.next();
-    if (b >= LONG_LENGTH) {        
-        word32 bytes = b & 0x7F;
-
-        if (source.IsLeft(bytes) == false) return 0;
-
-        while (bytes--) {
-            b = source.next();
-            length = (length << 8) | b;
-        }
-    }
-    else
-        length = b;
-
-    if (source.IsLeft(length) == false) return 0;
-
-    return length;
-}
-
-
-word32 SetLength(word32 length, byte* output)
-{
-    word32 i = 0;
-
-    if (length < LONG_LENGTH)
-        output[i++] = length;
-    else {
-        output[i++] = BytePrecision(length) | 0x80;
-      
-        for (int j = BytePrecision(length); j; --j) {
-            output[i] = length >> (j - 1) * 8;
-            i++;
-        }
-    }
-    return i;
-}
-
-
-PublicKey::PublicKey(const byte* k, word32 s) : key_(0), sz_(0)
-{
-    if (s) {
-        SetSize(s);
-        SetKey(k);
-    }
-}
-
-
-void PublicKey::SetSize(word32 s)
-{
-    sz_ = s;
-    key_ = NEW_TC byte[sz_];
-}
-
-
-void PublicKey::SetKey(const byte* k)
-{
-    memcpy(key_, k, sz_);
-}
-
-
-void PublicKey::AddToEnd(const byte* data, word32 len)
-{
-    mySTL::auto_array tmp(NEW_TC byte[sz_ + len]);
-
-    memcpy(tmp.get(), key_, sz_);
-    memcpy(tmp.get() + sz_, data, len);
-
-    byte* del = 0;
-    STL::swap(del, key_);
-    tcArrayDelete(del);
-
-    key_ = tmp.release();
-    sz_ += len;
-}
-
-
-Signer::Signer(const byte* k, word32 kSz, const char* n, const byte* h)
-    : key_(k, kSz)
-{
-    size_t sz = strlen(n);
-    memcpy(name_, n, sz);
-    name_[sz] = 0;
-
-    memcpy(hash_, h, SHA::DIGEST_SIZE);
-}
-
-Signer::~Signer()
-{
-}
-
-
-Error BER_Decoder::GetError()
-{ 
-    return source_.GetError(); 
-}
-
-
-Integer& BER_Decoder::GetInteger(Integer& integer)
-{
-    if (!source_.GetError().What())
-        integer.Decode(source_);
-    return integer;
-}
-
-  
-// Read a Sequence, return length
-word32 BER_Decoder::GetSequence()
-{
-    if (source_.GetError().What()) return 0;
-
-    byte b = source_.next();
-    if (b != (SEQUENCE | CONSTRUCTED)) {
-        source_.SetError(SEQUENCE_E);
-        return 0;
-    }
-
-    return GetLength(source_);
-}
-
-
-// Read a Sequence, return length
-word32 BER_Decoder::GetSet()
-{
-    if (source_.GetError().What()) return 0;
-
-    byte b = source_.next();
-    if (b != (SET | CONSTRUCTED)) {
-        source_.SetError(SET_E);
-        return 0;
-    }
-
-    return GetLength(source_);
-}
-
-
-// Read Version, return it
-word32 BER_Decoder::GetVersion()
-{
-    if (source_.GetError().What()) return 0;
-
-    byte b = source_.next();
-    if (b != INTEGER) {
-        source_.SetError(INTEGER_E);
-        return 0;
-    }
-
-    b = source_.next();
-    if (b != 0x01) {
-        source_.SetError(VERSION_E);
-        return 0;
-    }
-
-    return source_.next();
-}
-
-
-// Read ExplicitVersion, return it or 0 if not there (not an error)
-word32 BER_Decoder::GetExplicitVersion()
-{
-    if (source_.GetError().What()) return 0;
-
-    byte b = source_.next();
-
-    if (b == (CONTEXT_SPECIFIC | CONSTRUCTED)) { // not an error if not here
-        source_.next();
-        return GetVersion();
-    }
-    else 
-        source_.prev(); // put back
-  
-    return 0;
-}
-
-
-// Decode a BER encoded RSA Private Key
-void RSA_Private_Decoder::Decode(RSA_PrivateKey& key)
-{
-    ReadHeader();
-    if (source_.GetError().What()) return;
-    // public
-    key.SetModulus(GetInteger(Integer().Ref()));
-    key.SetPublicExponent(GetInteger(Integer().Ref()));
-
-    // private
-    key.SetPrivateExponent(GetInteger(Integer().Ref()));
-    key.SetPrime1(GetInteger(Integer().Ref()));
-    key.SetPrime2(GetInteger(Integer().Ref()));
-    key.SetModPrime1PrivateExponent(GetInteger(Integer().Ref()));
-    key.SetModPrime2PrivateExponent(GetInteger(Integer().Ref()));
-    key.SetMultiplicativeInverseOfPrime2ModPrime1(GetInteger(Integer().Ref()));
-}
-
-
-void RSA_Private_Decoder::ReadHeader()
-{
-    GetSequence();
-    GetVersion();
-}
-
-
-// Decode a BER encoded DSA Private Key
-void DSA_Private_Decoder::Decode(DSA_PrivateKey& key)
-{
-    ReadHeader();
-    if (source_.GetError().What()) return;
-    // group parameters
-    key.SetModulus(GetInteger(Integer().Ref()));
-    key.SetSubGroupOrder(GetInteger(Integer().Ref()));
-    key.SetSubGroupGenerator(GetInteger(Integer().Ref()));
-
-    // key
-    key.SetPublicPart(GetInteger(Integer().Ref()));
-    key.SetPrivatePart(GetInteger(Integer().Ref()));   
-}
-
-
-void DSA_Private_Decoder::ReadHeader()
-{
-    GetSequence();
-    GetVersion();
-}
-
-
-// Decode a BER encoded RSA Public Key
-void RSA_Public_Decoder::Decode(RSA_PublicKey& key)
-{
-    ReadHeader();
-    if (source_.GetError().What()) return;
-
-    ReadHeaderOpenSSL();   // may or may not be
-    if (source_.GetError().What()) return;
-
-    // public key
-    key.SetModulus(GetInteger(Integer().Ref()));
-    key.SetPublicExponent(GetInteger(Integer().Ref()));
-}
-
-
-// Read OpenSSL format public header
-void RSA_Public_Decoder::ReadHeaderOpenSSL()
-{
-    byte b = source_.next();  // peek
-    source_.prev();
-
-    if (b != INTEGER) { // have OpenSSL public format
-        GetSequence();
-        b = source_.next();
-        if (b != OBJECT_IDENTIFIER) {
-            source_.SetError(OBJECT_ID_E);
-            return;
-        }
-
-        word32 len = GetLength(source_);
-        source_.advance(len);
-
-        b = source_.next();
-        if (b == TAG_NULL) {   // could have NULL tag and 0 terminator, may not 
-            b = source_.next();
-            if (b != 0) {
-                source_.SetError(EXPECT_0_E);
-                return; 
-            }
-        }
-        else
-            source_.prev();   // put back
-
-        b = source_.next();
-        if (b != BIT_STRING) {   
-            source_.SetError(BIT_STR_E);
-            return; 
-        }
-
-        len = GetLength(source_); 
-        b = source_.next();
-        if (b != 0)           // could have 0
-            source_.prev();   // put back
-        
-        GetSequence();
-    }
-}
-
-
-void RSA_Public_Decoder::ReadHeader()
-{
-    GetSequence();
-}
-
-
-// Decode a BER encoded DSA Public Key
-void DSA_Public_Decoder::Decode(DSA_PublicKey& key)
-{
-    ReadHeader();
-    if (source_.GetError().What()) return;
-
-    // group parameters
-    key.SetModulus(GetInteger(Integer().Ref()));
-    key.SetSubGroupOrder(GetInteger(Integer().Ref()));
-    key.SetSubGroupGenerator(GetInteger(Integer().Ref()));
-
-    // key
-    key.SetPublicPart(GetInteger(Integer().Ref()));
-}
-
-
-void DSA_Public_Decoder::ReadHeader()
-{
-    GetSequence();
-}
-
-
-void DH_Decoder::ReadHeader()
-{
-    GetSequence();
-}
-
-
-// Decode a BER encoded Diffie-Hellman Key
-void DH_Decoder::Decode(DH& key)
-{
-    ReadHeader();
-    if (source_.GetError().What()) return;
-
-    // group parms
-    key.SetP(GetInteger(Integer().Ref()));
-    key.SetG(GetInteger(Integer().Ref()));
-}
-
-
-CertDecoder::CertDecoder(Source& s, bool decode, SignerList* signers,
-                         bool noVerify, CertType ct)
-    : BER_Decoder(s), certBegin_(0), sigIndex_(0), sigLength_(0), subCnPos_(-1),
-      subCnLen_(0), issCnPos_(-1), issCnLen_(0), signature_(0),
-      verify_(!noVerify)
-{
-    issuer_[0] = 0;
-    subject_[0] = 0;
-
-    if (decode)
-        Decode(signers, ct);
-
-}
-
-
-CertDecoder::~CertDecoder()
-{
-    tcArrayDelete(signature_);
-}
-
-
-// process certificate header, set signature offset
-void CertDecoder::ReadHeader()
-{
-    if (source_.GetError().What()) return;
-
-    GetSequence();  // total
-    certBegin_ = source_.get_index();
-
-    sigIndex_ = GetSequence();  // this cert
-    sigIndex_ += source_.get_index();
-
-    GetExplicitVersion(); // version
-    GetInteger(Integer().Ref());  // serial number
-}
-
-
-// Decode a x509v3 Certificate
-void CertDecoder::Decode(SignerList* signers, CertType ct)
-{
-    if (source_.GetError().What()) return;
-    DecodeToKey();
-    if (source_.GetError().What()) return;
-
-    if (source_.get_index() != sigIndex_)
-        source_.set_index(sigIndex_);
-
-    word32 confirmOID = GetAlgoId();
-    GetSignature();
-    if (source_.GetError().What()) return;
-
-    if ( confirmOID != signatureOID_ ) {
-        source_.SetError(SIG_OID_E);
-        return;
-    }
-    
-    if (ct != CA && verify_ && !ValidateSignature(signers))
-        source_.SetError(SIG_OTHER_E);
-}
-
-
-void CertDecoder::DecodeToKey()
-{
-    ReadHeader();
-    signatureOID_ = GetAlgoId();
-    GetName(ISSUER);   
-    GetValidity();
-    GetName(SUBJECT);   
-    GetKey();
-}
-
-
-// Read public key
-void CertDecoder::GetKey()
-{
-    if (source_.GetError().What()) return;
-
-    GetSequence();    
-    keyOID_ = GetAlgoId();
-
-    if (keyOID_ == RSAk) {
-        byte b = source_.next();
-        if (b != BIT_STRING) {
-            source_.SetError(BIT_STR_E);
-            return;
-        }
-        b = source_.next();      // length, future
-        b = source_.next(); 
-        while(b != 0)
-            b = source_.next();
-    }
-    else if (keyOID_ == DSAk)
-        ;   // do nothing
-    else {
-        source_.SetError(UNKNOWN_OID_E);
-        return;
-    }
-
-    StoreKey();
-    if (keyOID_ == DSAk)
-        AddDSA();
-}
-
-
-// Save public key
-void CertDecoder::StoreKey()
-{
-    if (source_.GetError().What()) return;
-
-    word32 read = source_.get_index();
-    word32 length = GetSequence();
-
-    read = source_.get_index() - read;
-    length += read;
-
-    if (source_.GetError().What()) return;
-    while (read--) source_.prev();
-
-    if (source_.IsLeft(length) == false) return;
-    key_.SetSize(length);
-    key_.SetKey(source_.get_current());
-    source_.advance(length);
-}
-
-
-// DSA has public key after group
-void CertDecoder::AddDSA()
-{
-    if (source_.GetError().What()) return;
-
-    byte b = source_.next();
-    if (b != BIT_STRING) {
-        source_.SetError(BIT_STR_E);
-        return;
-    }
-    b = source_.next();      // length, future
-    b = source_.next(); 
-    while(b != 0)
-        b = source_.next();
-
-    word32 idx = source_.get_index();
-    b = source_.next();
-    if (b != INTEGER) {
-        source_.SetError(INTEGER_E);
-        return;
-    }
-
-    word32 length = GetLength(source_);
-    length += source_.get_index() - idx;
-
-    if (source_.IsLeft(length) == false) return;
-
-    key_.AddToEnd(source_.get_buffer() + idx, length);    
-}
-
-
-// process algo OID by summing, return it
-word32 CertDecoder::GetAlgoId()
-{
-    if (source_.GetError().What()) return 0;
-    word32 length = GetSequence();
-
-    if (source_.GetError().What()) return 0;
-    
-    byte b = source_.next();
-    if (b != OBJECT_IDENTIFIER) {
-        source_.SetError(OBJECT_ID_E);
-        return 0;
-    }
-
-    length = GetLength(source_);
-    if (source_.IsLeft(length) == false) return 0;
-
-    word32 oid = 0;
-    while(length--)
-        oid += source_.next();        // just sum it up for now
-
-    // could have NULL tag and 0 terminator, but may not
-    b = source_.next();
-    if (b == TAG_NULL) {
-        b = source_.next();
-        if (b != 0) {
-            source_.SetError(EXPECT_0_E);
-            return 0;
-        }
-    }
-    else
-        // go back, didn't have it
-        b = source_.prev();
-
-    return oid;
-}
-
-
-// read cert signature, store in signature_
-word32 CertDecoder::GetSignature()
-{
-    if (source_.GetError().What()) return 0;
-    byte b = source_.next();
-
-    if (b != BIT_STRING) {
-        source_.SetError(BIT_STR_E);
-        return 0;
-    }
-
-    sigLength_ = GetLength(source_);
-    if (sigLength_ <= 1 || source_.IsLeft(sigLength_) == false) {
-        source_.SetError(CONTENT_E);
-        return 0;
-    }
-  
-    b = source_.next();
-    if (b != 0) {
-        source_.SetError(EXPECT_0_E);
-        return 0;
-    }
-    sigLength_--;
-
-    signature_ = NEW_TC byte[sigLength_];
-    memcpy(signature_, source_.get_current(), sigLength_);
-    source_.advance(sigLength_);
-
-    return sigLength_;
-}
-
-
-// read cert digest, store in signature_
-word32 CertDecoder::GetDigest()
-{
-    if (source_.GetError().What()) return 0;
-    byte b = source_.next();
-
-    if (b != OCTET_STRING) {
-        source_.SetError(OCTET_STR_E);
-        return 0;
-    }
-
-    sigLength_ = GetLength(source_);
-
-    signature_ = NEW_TC byte[sigLength_];
-    memcpy(signature_, source_.get_current(), sigLength_);
-    source_.advance(sigLength_);
-
-    return sigLength_;
-}
-
-
-// memory length checked add tag to buffer
-char* CertDecoder::AddTag(char* ptr, const char* buf_end, const char* tag_name,
-                          word32 tag_name_length, word32 tag_value_length)
-{
-    if (ptr + tag_name_length + tag_value_length > buf_end) {
-        source_.SetError(CONTENT_E);
-        return 0;
-    }
-
-    memcpy(ptr, tag_name, tag_name_length);
-    ptr += tag_name_length;
-
-    memcpy(ptr, source_.get_current(), tag_value_length);
-    ptr += tag_value_length;
-
-    return ptr;
-}
-
-
-// process NAME, either issuer or subject
-void CertDecoder::GetName(NameType nt)
-{
-    if (source_.GetError().What()) return;
-
-    SHA    sha;
-    word32 length = GetSequence();  // length of all distinguished names
-
-    if (length >= ASN_NAME_MAX)
-        return;
-    if (source_.IsLeft(length) == false) return;
-    length += source_.get_index();
-    
-    char* ptr;
-    char* buf_end;
-
-    if (nt == ISSUER) {
-        ptr = issuer_;
-        buf_end = ptr + sizeof(issuer_) - 1;   // 1 byte for trailing 0
-    }
-    else {
-        ptr = subject_;
-        buf_end = ptr + sizeof(subject_) - 1;  // 1 byte for trailing 0
-    }
-
-    while (source_.get_index() < length) {
-        GetSet();
-        if (source_.GetError().What() == SET_E) {
-            source_.SetError(NO_ERROR_E);  // extensions may only have sequence 
-            source_.prev();
-        }
-        GetSequence();
-
-        byte b = source_.next();
-        if (b != OBJECT_IDENTIFIER) {
-            source_.SetError(OBJECT_ID_E);
-            return;
-        }
-
-        word32 oidSz = GetLength(source_);
-        if (source_.IsLeft(oidSz) == false) return;
-
-        byte joint[2];
-        if (source_.IsLeft(sizeof(joint)) == false) return;
-        memcpy(joint, source_.get_current(), sizeof(joint));
-
-        // v1 name types
-        if (joint[0] == 0x55 && joint[1] == 0x04) {
-            source_.advance(2);
-            byte   id      = source_.next();  
-            b              = source_.next();    // strType
-            word32 strLen  = GetLength(source_);
-
-            if (source_.IsLeft(strLen) == false) return;
-
-            switch (id) {
-            case COMMON_NAME:
-                if (!(ptr = AddTag(ptr, buf_end, "/CN=", 4, strLen)))
-                    return;
-                if (nt == ISSUER) {
-                    issCnPos_ = (int)(ptr - strLen - issuer_);
-                    issCnLen_ = (int)strLen;
-                } else {
-                    subCnPos_ = (int)(ptr - strLen - subject_);
-                    subCnLen_ = (int)strLen;
-                }
-                break;
-            case SUR_NAME:
-                if (!(ptr = AddTag(ptr, buf_end, "/SN=", 4, strLen)))
-                    return;
-                break;
-            case COUNTRY_NAME:
-                if (!(ptr = AddTag(ptr, buf_end, "/C=", 3, strLen)))
-                    return;
-                break;
-            case LOCALITY_NAME:
-                if (!(ptr = AddTag(ptr, buf_end, "/L=", 3, strLen)))
-                    return;
-                break;
-            case STATE_NAME:
-                if (!(ptr = AddTag(ptr, buf_end, "/ST=", 4, strLen)))
-                    return;
-                break;
-            case ORG_NAME:
-                if (!(ptr = AddTag(ptr, buf_end, "/O=", 3, strLen)))
-                    return;
-                break;
-            case ORGUNIT_NAME:
-                if (!(ptr = AddTag(ptr, buf_end, "/OU=", 4, strLen)))
-                    return;
-                break;
-            }
-
-            sha.Update(source_.get_current(), strLen);
-            source_.advance(strLen);
-        }
-        else { 
-            bool email = false;
-            if (joint[0] == 0x2a && joint[1] == 0x86)  // email id hdr
-                email = true;
-
-            source_.advance(oidSz + 1);
-            word32 length = GetLength(source_);
-            if (source_.IsLeft(length) == false) return;
-
-            if (email) {
-                if (!(ptr = AddTag(ptr, buf_end, "/emailAddress=", 14, length)))
-                    return; 
-            }
-
-            source_.advance(length);
-        }
-    }
-
-    *ptr = 0;
-
-    if (nt == ISSUER)
-        sha.Final(issuerHash_);
-    else
-        sha.Final(subjectHash_);
-}
-
-
-// process a Date, either BEFORE or AFTER
-void CertDecoder::GetDate(DateType dt)
-{
-    if (source_.GetError().What()) return;
-
-    byte b = source_.next();
-    if (b != UTC_TIME && b != GENERALIZED_TIME) {
-        source_.SetError(TIME_E);
-        return;
-    }
-
-    word32 length = GetLength(source_);
-    if (source_.IsLeft(length) == false) return;
-
-    byte date[MAX_DATE_SZ];
-    if (length > MAX_DATE_SZ || length < MIN_DATE_SZ) {
-        source_.SetError(DATE_SZ_E);
-        return;
-    }
-
-    memcpy(date, source_.get_current(), length);
-    source_.advance(length);
-
-    if (!ValidateDate(date, b, dt) && verify_) {
-        if (dt == BEFORE)
-            source_.SetError(BEFORE_DATE_E);
-        else
-            source_.SetError(AFTER_DATE_E);
-    }
-
-    // save for later use
-    if (dt == BEFORE) {
-        memcpy(beforeDate_, date, length);
-        beforeDate_[length] = 0;
-        beforeDateType_= b;
-    }
-    else {  // after
-        memcpy(afterDate_, date, length);
-        afterDate_[length] = 0;
-        afterDateType_= b;
-    }       
-}
-
-
-void CertDecoder::GetValidity()
-{
-    if (source_.GetError().What()) return;
-
-    GetSequence();
-    GetDate(BEFORE);
-    GetDate(AFTER);
-}
-
-
-bool CertDecoder::ValidateSelfSignature()
-{
-    Source pub(key_.GetKey(), key_.size());
-    return ConfirmSignature(pub);
-}
-
-
-// extract compare signature hash from plain and place into digest
-void CertDecoder::GetCompareHash(const byte* plain, word32 sz, byte* digest,
-                                 word32 digSz)
-{
-    if (source_.GetError().What()) return;
-
-    Source s(plain, sz);
-    CertDecoder dec(s, false);
-
-    dec.GetSequence();
-    dec.GetAlgoId();
-    dec.GetDigest();
-
-    if (dec.sigLength_ > digSz) {
-        source_.SetError(SIG_LEN_E);
-        return;
-    }
-
-    memcpy(digest, dec.signature_, dec.sigLength_);
-}
-
-
-// validate signature signed by someone else
-bool CertDecoder::ValidateSignature(SignerList* signers)
-{
-    if (!signers)
-        return false;
-
-    SignerList::iterator first = signers->begin();
-    SignerList::iterator last  = signers->end();
-
-    while (first != last) {
-        if ( memcmp(issuerHash_, (*first)->GetHash(), SHA::DIGEST_SIZE) == 0) {
-      
-            const PublicKey& iKey = (*first)->GetPublicKey();
-            Source pub(iKey.GetKey(), iKey.size());
-            return ConfirmSignature(pub);
-        }   
-        ++first;
-    }
-    return false;
-}
-
-
-// confirm certificate signature
-bool CertDecoder::ConfirmSignature(Source& pub)
-{
-    HashType ht;
-    mySTL::auto_ptr hasher;
-
-    if (signatureOID_ == MD5wRSA) {
-        hasher.reset(NEW_TC MD5);
-        ht = MD5h;
-    }
-    else if (signatureOID_ == MD2wRSA) {
-        hasher.reset(NEW_TC MD2);
-        ht = MD2h;
-    }
-    else if (signatureOID_ == SHAwRSA || signatureOID_ == SHAwDSA) {
-        hasher.reset(NEW_TC SHA);
-        ht = SHAh;
-    }
-    else if (signatureOID_ == SHA256wRSA || signatureOID_ == SHA256wDSA) {
-        hasher.reset(NEW_TC SHA256);
-        ht = SHA256h;
-    }
-#ifdef WORD64_AVAILABLE
-    else if (signatureOID_ == SHA384wRSA) {
-        hasher.reset(NEW_TC SHA384);
-        ht = SHA384h;
-    }
-    else if (signatureOID_ == SHA512wRSA) {
-        hasher.reset(NEW_TC SHA512);
-        ht = SHA512h;
-    }
-#endif
-    else {
-        source_.SetError(UNKOWN_SIG_E);
-        return false;
-    }
-
-    byte digest[MAX_SHA2_DIGEST_SIZE];      // largest size
-
-    hasher->Update(source_.get_buffer() + certBegin_, sigIndex_ - certBegin_);
-    hasher->Final(digest);
-
-    if (keyOID_ == RSAk) {
-        // put in ASN.1 signature format
-        Source build;
-        Signature_Encoder(digest, hasher->getDigestSize(), ht, build);
-
-        RSA_PublicKey pubKey(pub);
-        RSAES_Encryptor enc(pubKey);
-
-        if (pubKey.FixedCiphertextLength() != sigLength_) {
-            source_.SetError(SIG_LEN_E);
-            return false;
-        }
-
-        return enc.SSL_Verify(build.get_buffer(), build.size(), signature_);
-    }
-    else  { // DSA
-        // extract r and s from sequence
-        byte seqDecoded[DSA_SIG_SZ];
-        memset(seqDecoded, 0, sizeof(seqDecoded));
-        DecodeDSA_Signature(seqDecoded, signature_, sigLength_);
-
-        DSA_PublicKey pubKey(pub);
-        DSA_Verifier  ver(pubKey);
-
-        return ver.Verify(digest, seqDecoded);
-    }
-}
-
-
-Signature_Encoder::Signature_Encoder(const byte* dig, word32 digSz,
-                                     HashType digOID, Source& source)
-{
-    // build bottom up
-
-    // Digest
-    byte digArray[MAX_DIGEST_SZ];
-    word32 digestSz = SetDigest(dig, digSz, digArray);
-
-    // AlgoID
-    byte algoArray[MAX_ALGO_SZ];
-    word32 algoSz = SetAlgoID(digOID, algoArray);
-
-    // Sequence
-    byte seqArray[MAX_SEQ_SZ];
-    word32 seqSz = SetSequence(digestSz + algoSz, seqArray);
-
-    source.grow(seqSz + algoSz + digestSz);  // make sure enough room
-    source.add(seqArray,  seqSz);
-    source.add(algoArray, algoSz);
-    source.add(digArray,  digestSz);
-}
-
-
-
-word32 Signature_Encoder::SetDigest(const byte* d, word32 dSz, byte* output)
-{
-    output[0] = OCTET_STRING;
-    output[1] = dSz;
-    memcpy(&output[2], d, dSz);
-    
-    return dSz + 2;
-}
-
-
-
-word32 DER_Encoder::SetAlgoID(HashType aOID, byte* output)
-{
-    // adding TAG_NULL and 0 to end
-    static const byte shaAlgoID[] = { 0x2b, 0x0e, 0x03, 0x02, 0x1a,
-                                      0x05, 0x00 };
-    static const byte md5AlgoID[] = { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
-                                      0x02, 0x05, 0x05, 0x00  };
-    static const byte md2AlgoID[] = { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
-                                      0x02, 0x02, 0x05, 0x00};
-    static const byte sha256AlgoID[] = { 0x60, 0x86, 0x48, 0x01, 0x65, 0x03,
-                                         0x04, 0x02, 0x01, 0x05, 0x00 };
-    static const byte sha384AlgoID[] = { 0x60, 0x86, 0x48, 0x01, 0x65, 0x03,
-                                         0x04, 0x02, 0x02, 0x05, 0x00 };
-    static const byte sha512AlgoID[] = { 0x60, 0x86, 0x48, 0x01, 0x65, 0x03,
-                                         0x04, 0x02, 0x03, 0x05, 0x00 };
-    int algoSz = 0;
-    const byte* algoName = 0;
-
-    switch (aOID) {
-    case SHAh:
-        algoSz = sizeof(shaAlgoID);
-        algoName = shaAlgoID;
-        break;
-
-    case SHA256h:
-        algoSz = sizeof(sha256AlgoID);
-        algoName = sha256AlgoID;
-        break;
-
-    case SHA384h:
-        algoSz = sizeof(sha384AlgoID);
-        algoName = sha384AlgoID;
-        break;
-
-    case SHA512h:
-        algoSz = sizeof(sha512AlgoID);
-        algoName = sha512AlgoID;
-        break;
-
-    case MD2h:
-        algoSz = sizeof(md2AlgoID);
-        algoName = md2AlgoID;
-        break;
-
-    case MD5h:
-        algoSz = sizeof(md5AlgoID);
-        algoName = md5AlgoID;
-        break;
-
-    default:
-        error_.SetError(UNKOWN_HASH_E);
-        return 0;
-    }
-
-
-    byte ID_Length[MAX_LENGTH_SZ];
-    word32 idSz = SetLength(algoSz - 2, ID_Length); // don't include TAG_NULL/0
-
-    byte seqArray[MAX_SEQ_SZ + 1];  // add object_id to end
-    word32 seqSz = SetSequence(idSz + algoSz + 1, seqArray);
-    seqArray[seqSz++] = OBJECT_IDENTIFIER;
-
-    memcpy(output, seqArray, seqSz);
-    memcpy(output + seqSz, ID_Length, idSz);
-    memcpy(output + seqSz + idSz, algoName, algoSz);
-
-    return seqSz + idSz + algoSz;
-}
-
-
-word32 SetSequence(word32 len, byte* output)
-{
-  
-    output[0] = SEQUENCE | CONSTRUCTED;
-    return SetLength(len, output + 1) + 1;
-}
-
-
-word32 EncodeDSA_Signature(const byte* signature, byte* output)
-{
-    Integer r(signature, 20);
-    Integer s(signature + 20, 20);
-
-    return EncodeDSA_Signature(r, s, output);
-}
-
-
-word32 EncodeDSA_Signature(const Integer& r, const Integer& s, byte* output)
-{
-    word32 rSz = r.ByteCount();
-    word32 sSz = s.ByteCount();
-
-    byte rLen[MAX_LENGTH_SZ + 1];
-    byte sLen[MAX_LENGTH_SZ + 1];
-
-    rLen[0] = INTEGER;
-    sLen[0] = INTEGER;
-
-    word32 rLenSz = SetLength(rSz, &rLen[1]) + 1;
-    word32 sLenSz = SetLength(sSz, &sLen[1]) + 1;
-
-    byte seqArray[MAX_SEQ_SZ];
-
-    word32 seqSz = SetSequence(rLenSz + rSz + sLenSz + sSz, seqArray);
-    
-    // seq
-    memcpy(output, seqArray, seqSz);
-    // r
-    memcpy(output + seqSz, rLen, rLenSz);
-    r.Encode(output + seqSz + rLenSz, rSz);
-    // s
-    memcpy(output + seqSz + rLenSz + rSz, sLen, sLenSz);
-    s.Encode(output + seqSz + rLenSz + rSz + sLenSz, sSz);
-
-    return seqSz + rLenSz + rSz + sLenSz + sSz;
-}
-
-
-// put sequence encoded dsa signature into decoded in 2 20 byte integers
-word32 DecodeDSA_Signature(byte* decoded, const byte* encoded, word32 sz)
-{
-    Source source(encoded, sz);
-
-    if (source.next() != (SEQUENCE | CONSTRUCTED)) {
-        source.SetError(SEQUENCE_E);
-        return 0;
-    }
-
-    GetLength(source);  // total
-
-    // r
-    if (source.next() != INTEGER) {
-        source.SetError(INTEGER_E);
-        return 0;
-    }
-    word32 rLen = GetLength(source);
-    if (rLen != 20) {
-        while (rLen > 20 && source.remaining() > 0) {  // zero's at front, eat
-            source.next();
-            --rLen;
-        }
-        if (rLen < 20) { // add zero's to front so 20 bytes
-            word32 tmpLen = rLen;
-            while (tmpLen < 20) {
-            decoded[0] = 0;
-            decoded++;
-                tmpLen++;
-        }
-        }
-    }
-    memcpy(decoded, source.get_buffer() + source.get_index(), rLen);
-    source.advance(rLen);
-
-    // s
-    if (source.next() != INTEGER) {
-        source.SetError(INTEGER_E);
-        return 0;
-    }
-    word32 sLen = GetLength(source);
-    if (sLen != 20) {
-        while (sLen > 20 && source.remaining() > 0) {
-            source.next();          // zero's at front, eat
-            --sLen;
-        }
-        if (sLen < 20) { // add zero's to front so 20 bytes
-            word32 tmpLen = sLen;
-            while (tmpLen < 20) {
-                decoded[rLen] = 0;
-            decoded++;
-                tmpLen++;
-        }
-        }
-    }
-    memcpy(decoded + rLen, source.get_buffer() + source.get_index(), sLen);
-    source.advance(sLen);
-
-    return 40;
-}
-
-
-/*
-// Get Cert in PEM format from BEGIN to END
-int GetCert(Source& source)
-{
-    char header[] = "-----BEGIN CERTIFICATE-----";
-    char footer[] = "-----END CERTIFICATE-----";
-
-    char* begin = strstr((char*)source.get_buffer(), header);
-    char* end   = strstr((char*)source.get_buffer(), footer);
-
-    if (!begin || !end || begin >= end) return -1;
-
-    end += strlen(footer); 
-    if (*end == '\r') end++;
-
-    Source tmp((byte*)begin, end - begin + 1);
-    source.Swap(tmp);
-
-    return 0;
-}
-
-
-
-// Decode a BER encoded PKCS12 structure
-void PKCS12_Decoder::Decode()
-{
-    ReadHeader();
-    if (source_.GetError().What()) return;
-
-    // Get AuthSafe
-
-    GetSequence();
-    
-        // get object id
-    byte obj_id = source_.next();
-    if (obj_id != OBJECT_IDENTIFIER) {
-        source_.SetError(OBJECT_ID_E);
-        return;
-    }
-
-    word32 length = GetLength(source_);
-
-    word32 algo_sum = 0;
-    while (length--)
-        algo_sum += source_.next();
-
-    
-       
-
-
-
-    // Get MacData optional
-    // mac     digestInfo  like certdecoder::getdigest?
-    // macsalt octet string
-    // iter    integer
-    
-}
-
-
-void PKCS12_Decoder::ReadHeader()
-{
-    // Gets Version
-    GetSequence();
-    GetVersion();
-}
-
-
-// Get Cert in PEM format from pkcs12 file
-int GetPKCS_Cert(const char* password, Source& source)
-{
-    PKCS12_Decoder pkcs12(source);
-    pkcs12.Decode();
-
-    return 0;
-}
-*/
-
-
-
-} // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/bftables.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/bftables.cpp
deleted file mode 100644
index f18f0b4a..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/bftables.cpp
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* based on Wei Dai's bfinit.cpp from CryptoPP */
-
-#include "runtime.hpp"
-#include "blowfish.hpp"
-
-
-namespace TaoCrypt {
-
-const word32 Blowfish::p_init_[Blowfish::ROUNDS+2] =
-{
-  608135816U, 2242054355U,  320440878U,   57701188U,
- 2752067618U,  698298832U,  137296536U, 3964562569U,
- 1160258022U,  953160567U, 3193202383U,  887688300U,
- 3232508343U, 3380367581U, 1065670069U, 3041331479U,
- 2450970073U, 2306472731U
-} ;
-
-
-const word32 Blowfish::s_init_[4*256] = {
- 3509652390U, 2564797868U,  805139163U, 3491422135U,
- 3101798381U, 1780907670U, 3128725573U, 4046225305U,
-  614570311U, 3012652279U,  134345442U, 2240740374U,
- 1667834072U, 1901547113U, 2757295779U, 4103290238U,
-  227898511U, 1921955416U, 1904987480U, 2182433518U,
- 2069144605U, 3260701109U, 2620446009U,  720527379U,
- 3318853667U,  677414384U, 3393288472U, 3101374703U,
- 2390351024U, 1614419982U, 1822297739U, 2954791486U,
- 3608508353U, 3174124327U, 2024746970U, 1432378464U,
- 3864339955U, 2857741204U, 1464375394U, 1676153920U,
- 1439316330U,  715854006U, 3033291828U,  289532110U,
- 2706671279U, 2087905683U, 3018724369U, 1668267050U,
-  732546397U, 1947742710U, 3462151702U, 2609353502U,
- 2950085171U, 1814351708U, 2050118529U,  680887927U,
-  999245976U, 1800124847U, 3300911131U, 1713906067U,
- 1641548236U, 4213287313U, 1216130144U, 1575780402U,
- 4018429277U, 3917837745U, 3693486850U, 3949271944U,
-  596196993U, 3549867205U,  258830323U, 2213823033U,
-  772490370U, 2760122372U, 1774776394U, 2652871518U,
-  566650946U, 4142492826U, 1728879713U, 2882767088U,
- 1783734482U, 3629395816U, 2517608232U, 2874225571U,
- 1861159788U,  326777828U, 3124490320U, 2130389656U,
- 2716951837U,  967770486U, 1724537150U, 2185432712U,
- 2364442137U, 1164943284U, 2105845187U,  998989502U,
- 3765401048U, 2244026483U, 1075463327U, 1455516326U,
- 1322494562U,  910128902U,  469688178U, 1117454909U,
-  936433444U, 3490320968U, 3675253459U, 1240580251U,
-  122909385U, 2157517691U,  634681816U, 4142456567U,
- 3825094682U, 3061402683U, 2540495037U,   79693498U,
- 3249098678U, 1084186820U, 1583128258U,  426386531U,
- 1761308591U, 1047286709U,  322548459U,  995290223U,
- 1845252383U, 2603652396U, 3431023940U, 2942221577U,
- 3202600964U, 3727903485U, 1712269319U,  422464435U,
- 3234572375U, 1170764815U, 3523960633U, 3117677531U,
- 1434042557U,  442511882U, 3600875718U, 1076654713U,
- 1738483198U, 4213154764U, 2393238008U, 3677496056U,
- 1014306527U, 4251020053U,  793779912U, 2902807211U,
-  842905082U, 4246964064U, 1395751752U, 1040244610U,
- 2656851899U, 3396308128U,  445077038U, 3742853595U,
- 3577915638U,  679411651U, 2892444358U, 2354009459U,
- 1767581616U, 3150600392U, 3791627101U, 3102740896U,
-  284835224U, 4246832056U, 1258075500U,  768725851U,
- 2589189241U, 3069724005U, 3532540348U, 1274779536U,
- 3789419226U, 2764799539U, 1660621633U, 3471099624U,
- 4011903706U,  913787905U, 3497959166U,  737222580U,
- 2514213453U, 2928710040U, 3937242737U, 1804850592U,
- 3499020752U, 2949064160U, 2386320175U, 2390070455U,
- 2415321851U, 4061277028U, 2290661394U, 2416832540U,
- 1336762016U, 1754252060U, 3520065937U, 3014181293U,
-  791618072U, 3188594551U, 3933548030U, 2332172193U,
- 3852520463U, 3043980520U,  413987798U, 3465142937U,
- 3030929376U, 4245938359U, 2093235073U, 3534596313U,
-  375366246U, 2157278981U, 2479649556U,  555357303U,
- 3870105701U, 2008414854U, 3344188149U, 4221384143U,
- 3956125452U, 2067696032U, 3594591187U, 2921233993U,
-	2428461U,  544322398U,  577241275U, 1471733935U,
-  610547355U, 4027169054U, 1432588573U, 1507829418U,
- 2025931657U, 3646575487U,  545086370U,   48609733U,
- 2200306550U, 1653985193U,  298326376U, 1316178497U,
- 3007786442U, 2064951626U,  458293330U, 2589141269U,
- 3591329599U, 3164325604U,  727753846U, 2179363840U,
-  146436021U, 1461446943U, 4069977195U,  705550613U,
- 3059967265U, 3887724982U, 4281599278U, 3313849956U,
- 1404054877U, 2845806497U,  146425753U, 1854211946U,
-
- 1266315497U, 3048417604U, 3681880366U, 3289982499U,
- 2909710000U, 1235738493U, 2632868024U, 2414719590U,
- 3970600049U, 1771706367U, 1449415276U, 3266420449U,
-  422970021U, 1963543593U, 2690192192U, 3826793022U,
- 1062508698U, 1531092325U, 1804592342U, 2583117782U,
- 2714934279U, 4024971509U, 1294809318U, 4028980673U,
- 1289560198U, 2221992742U, 1669523910U,   35572830U,
-  157838143U, 1052438473U, 1016535060U, 1802137761U,
- 1753167236U, 1386275462U, 3080475397U, 2857371447U,
- 1040679964U, 2145300060U, 2390574316U, 1461121720U,
- 2956646967U, 4031777805U, 4028374788U,   33600511U,
- 2920084762U, 1018524850U,  629373528U, 3691585981U,
- 3515945977U, 2091462646U, 2486323059U,  586499841U,
-  988145025U,  935516892U, 3367335476U, 2599673255U,
- 2839830854U,  265290510U, 3972581182U, 2759138881U,
- 3795373465U, 1005194799U,  847297441U,  406762289U,
- 1314163512U, 1332590856U, 1866599683U, 4127851711U,
-  750260880U,  613907577U, 1450815602U, 3165620655U,
- 3734664991U, 3650291728U, 3012275730U, 3704569646U,
- 1427272223U,  778793252U, 1343938022U, 2676280711U,
- 2052605720U, 1946737175U, 3164576444U, 3914038668U,
- 3967478842U, 3682934266U, 1661551462U, 3294938066U,
- 4011595847U,  840292616U, 3712170807U,  616741398U,
-  312560963U,  711312465U, 1351876610U,  322626781U,
- 1910503582U,  271666773U, 2175563734U, 1594956187U,
-   70604529U, 3617834859U, 1007753275U, 1495573769U,
- 4069517037U, 2549218298U, 2663038764U,  504708206U,
- 2263041392U, 3941167025U, 2249088522U, 1514023603U,
- 1998579484U, 1312622330U,  694541497U, 2582060303U,
- 2151582166U, 1382467621U,  776784248U, 2618340202U,
- 3323268794U, 2497899128U, 2784771155U,  503983604U,
- 4076293799U,  907881277U,  423175695U,  432175456U,
- 1378068232U, 4145222326U, 3954048622U, 3938656102U,
- 3820766613U, 2793130115U, 2977904593U,   26017576U,
- 3274890735U, 3194772133U, 1700274565U, 1756076034U,
- 4006520079U, 3677328699U,  720338349U, 1533947780U,
-  354530856U,  688349552U, 3973924725U, 1637815568U,
-  332179504U, 3949051286U,   53804574U, 2852348879U,
- 3044236432U, 1282449977U, 3583942155U, 3416972820U,
- 4006381244U, 1617046695U, 2628476075U, 3002303598U,
- 1686838959U,  431878346U, 2686675385U, 1700445008U,
- 1080580658U, 1009431731U,  832498133U, 3223435511U,
- 2605976345U, 2271191193U, 2516031870U, 1648197032U,
- 4164389018U, 2548247927U,  300782431U,  375919233U,
-  238389289U, 3353747414U, 2531188641U, 2019080857U,
- 1475708069U,  455242339U, 2609103871U,  448939670U,
- 3451063019U, 1395535956U, 2413381860U, 1841049896U,
- 1491858159U,  885456874U, 4264095073U, 4001119347U,
- 1565136089U, 3898914787U, 1108368660U,  540939232U,
- 1173283510U, 2745871338U, 3681308437U, 4207628240U,
- 3343053890U, 4016749493U, 1699691293U, 1103962373U,
- 3625875870U, 2256883143U, 3830138730U, 1031889488U,
- 3479347698U, 1535977030U, 4236805024U, 3251091107U,
- 2132092099U, 1774941330U, 1199868427U, 1452454533U,
-  157007616U, 2904115357U,  342012276U,  595725824U,
- 1480756522U,  206960106U,  497939518U,  591360097U,
-  863170706U, 2375253569U, 3596610801U, 1814182875U,
- 2094937945U, 3421402208U, 1082520231U, 3463918190U,
- 2785509508U,  435703966U, 3908032597U, 1641649973U,
- 2842273706U, 3305899714U, 1510255612U, 2148256476U,
- 2655287854U, 3276092548U, 4258621189U,  236887753U,
- 3681803219U,  274041037U, 1734335097U, 3815195456U,
- 3317970021U, 1899903192U, 1026095262U, 4050517792U,
-  356393447U, 2410691914U, 3873677099U, 3682840055U,
-
- 3913112168U, 2491498743U, 4132185628U, 2489919796U,
- 1091903735U, 1979897079U, 3170134830U, 3567386728U,
- 3557303409U,  857797738U, 1136121015U, 1342202287U,
-  507115054U, 2535736646U,  337727348U, 3213592640U,
- 1301675037U, 2528481711U, 1895095763U, 1721773893U,
- 3216771564U,   62756741U, 2142006736U,  835421444U,
- 2531993523U, 1442658625U, 3659876326U, 2882144922U,
-  676362277U, 1392781812U,  170690266U, 3921047035U,
- 1759253602U, 3611846912U, 1745797284U,  664899054U,
- 1329594018U, 3901205900U, 3045908486U, 2062866102U,
- 2865634940U, 3543621612U, 3464012697U, 1080764994U,
-  553557557U, 3656615353U, 3996768171U,  991055499U,
-  499776247U, 1265440854U,  648242737U, 3940784050U,
-  980351604U, 3713745714U, 1749149687U, 3396870395U,
- 4211799374U, 3640570775U, 1161844396U, 3125318951U,
- 1431517754U,  545492359U, 4268468663U, 3499529547U,
- 1437099964U, 2702547544U, 3433638243U, 2581715763U,
- 2787789398U, 1060185593U, 1593081372U, 2418618748U,
- 4260947970U,   69676912U, 2159744348U,   86519011U,
- 2512459080U, 3838209314U, 1220612927U, 3339683548U,
-  133810670U, 1090789135U, 1078426020U, 1569222167U,
-  845107691U, 3583754449U, 4072456591U, 1091646820U,
-  628848692U, 1613405280U, 3757631651U,  526609435U,
-  236106946U,   48312990U, 2942717905U, 3402727701U,
- 1797494240U,  859738849U,  992217954U, 4005476642U,
- 2243076622U, 3870952857U, 3732016268U,  765654824U,
- 3490871365U, 2511836413U, 1685915746U, 3888969200U,
- 1414112111U, 2273134842U, 3281911079U, 4080962846U,
-  172450625U, 2569994100U,  980381355U, 4109958455U,
- 2819808352U, 2716589560U, 2568741196U, 3681446669U,
- 3329971472U, 1835478071U,  660984891U, 3704678404U,
- 4045999559U, 3422617507U, 3040415634U, 1762651403U,
- 1719377915U, 3470491036U, 2693910283U, 3642056355U,
- 3138596744U, 1364962596U, 2073328063U, 1983633131U,
-  926494387U, 3423689081U, 2150032023U, 4096667949U,
- 1749200295U, 3328846651U,  309677260U, 2016342300U,
- 1779581495U, 3079819751U,  111262694U, 1274766160U,
-  443224088U,  298511866U, 1025883608U, 3806446537U,
- 1145181785U,  168956806U, 3641502830U, 3584813610U,
- 1689216846U, 3666258015U, 3200248200U, 1692713982U,
- 2646376535U, 4042768518U, 1618508792U, 1610833997U,
- 3523052358U, 4130873264U, 2001055236U, 3610705100U,
- 2202168115U, 4028541809U, 2961195399U, 1006657119U,
- 2006996926U, 3186142756U, 1430667929U, 3210227297U,
- 1314452623U, 4074634658U, 4101304120U, 2273951170U,
- 1399257539U, 3367210612U, 3027628629U, 1190975929U,
- 2062231137U, 2333990788U, 2221543033U, 2438960610U,
- 1181637006U,  548689776U, 2362791313U, 3372408396U,
- 3104550113U, 3145860560U,  296247880U, 1970579870U,
- 3078560182U, 3769228297U, 1714227617U, 3291629107U,
- 3898220290U,  166772364U, 1251581989U,  493813264U,
-  448347421U,  195405023U, 2709975567U,  677966185U,
- 3703036547U, 1463355134U, 2715995803U, 1338867538U,
- 1343315457U, 2802222074U, 2684532164U,  233230375U,
- 2599980071U, 2000651841U, 3277868038U, 1638401717U,
- 4028070440U, 3237316320U,    6314154U,  819756386U,
-  300326615U,  590932579U, 1405279636U, 3267499572U,
- 3150704214U, 2428286686U, 3959192993U, 3461946742U,
- 1862657033U, 1266418056U,  963775037U, 2089974820U,
- 2263052895U, 1917689273U,  448879540U, 3550394620U,
- 3981727096U,  150775221U, 3627908307U, 1303187396U,
-  508620638U, 2975983352U, 2726630617U, 1817252668U,
- 1876281319U, 1457606340U,  908771278U, 3720792119U,
- 3617206836U, 2455994898U, 1729034894U, 1080033504U,
-
-  976866871U, 3556439503U, 2881648439U, 1522871579U,
- 1555064734U, 1336096578U, 3548522304U, 2579274686U,
- 3574697629U, 3205460757U, 3593280638U, 3338716283U,
- 3079412587U,  564236357U, 2993598910U, 1781952180U,
- 1464380207U, 3163844217U, 3332601554U, 1699332808U,
- 1393555694U, 1183702653U, 3581086237U, 1288719814U,
-  691649499U, 2847557200U, 2895455976U, 3193889540U,
- 2717570544U, 1781354906U, 1676643554U, 2592534050U,
- 3230253752U, 1126444790U, 2770207658U, 2633158820U,
- 2210423226U, 2615765581U, 2414155088U, 3127139286U,
-  673620729U, 2805611233U, 1269405062U, 4015350505U,
- 3341807571U, 4149409754U, 1057255273U, 2012875353U,
- 2162469141U, 2276492801U, 2601117357U,  993977747U,
- 3918593370U, 2654263191U,  753973209U,   36408145U,
- 2530585658U,   25011837U, 3520020182U, 2088578344U,
-  530523599U, 2918365339U, 1524020338U, 1518925132U,
- 3760827505U, 3759777254U, 1202760957U, 3985898139U,
- 3906192525U,  674977740U, 4174734889U, 2031300136U,
- 2019492241U, 3983892565U, 4153806404U, 3822280332U,
-  352677332U, 2297720250U,   60907813U,   90501309U,
- 3286998549U, 1016092578U, 2535922412U, 2839152426U,
-  457141659U,  509813237U, 4120667899U,  652014361U,
- 1966332200U, 2975202805U,   55981186U, 2327461051U,
-  676427537U, 3255491064U, 2882294119U, 3433927263U,
- 1307055953U,  942726286U,  933058658U, 2468411793U,
- 3933900994U, 4215176142U, 1361170020U, 2001714738U,
- 2830558078U, 3274259782U, 1222529897U, 1679025792U,
- 2729314320U, 3714953764U, 1770335741U,  151462246U,
- 3013232138U, 1682292957U, 1483529935U,  471910574U,
- 1539241949U,  458788160U, 3436315007U, 1807016891U,
- 3718408830U,  978976581U, 1043663428U, 3165965781U,
- 1927990952U, 4200891579U, 2372276910U, 3208408903U,
- 3533431907U, 1412390302U, 2931980059U, 4132332400U,
- 1947078029U, 3881505623U, 4168226417U, 2941484381U,
- 1077988104U, 1320477388U,  886195818U,   18198404U,
- 3786409000U, 2509781533U,  112762804U, 3463356488U,
- 1866414978U,  891333506U,   18488651U,  661792760U,
- 1628790961U, 3885187036U, 3141171499U,  876946877U,
- 2693282273U, 1372485963U,  791857591U, 2686433993U,
- 3759982718U, 3167212022U, 3472953795U, 2716379847U,
-  445679433U, 3561995674U, 3504004811U, 3574258232U,
-   54117162U, 3331405415U, 2381918588U, 3769707343U,
- 4154350007U, 1140177722U, 4074052095U,  668550556U,
- 3214352940U,  367459370U,  261225585U, 2610173221U,
- 4209349473U, 3468074219U, 3265815641U,  314222801U,
- 3066103646U, 3808782860U,  282218597U, 3406013506U,
- 3773591054U,  379116347U, 1285071038U,  846784868U,
- 2669647154U, 3771962079U, 3550491691U, 2305946142U,
-  453669953U, 1268987020U, 3317592352U, 3279303384U,
- 3744833421U, 2610507566U, 3859509063U,  266596637U,
- 3847019092U,  517658769U, 3462560207U, 3443424879U,
-  370717030U, 4247526661U, 2224018117U, 4143653529U,
- 4112773975U, 2788324899U, 2477274417U, 1456262402U,
- 2901442914U, 1517677493U, 1846949527U, 2295493580U,
- 3734397586U, 2176403920U, 1280348187U, 1908823572U,
- 3871786941U,  846861322U, 1172426758U, 3287448474U,
- 3383383037U, 1655181056U, 3139813346U,  901632758U,
- 1897031941U, 2986607138U, 3066810236U, 3447102507U,
- 1393639104U,  373351379U,  950779232U,  625454576U,
- 3124240540U, 4148612726U, 2007998917U,  544563296U,
- 2244738638U, 2330496472U, 2058025392U, 1291430526U,
-  424198748U,   50039436U,   29584100U, 3605783033U,
- 2429876329U, 2791104160U, 1057563949U, 3255363231U,
- 3075367218U, 3463963227U, 1469046755U,  985887462U
-};
-
-
-
-
-} // namespace
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/blowfish.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/blowfish.cpp
deleted file mode 100644
index 9491c930..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/blowfish.cpp
+++ /dev/null
@@ -1,364 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* C++ code based on Wei Dai's blowfish.cpp from CryptoPP */
-/* x86 asm is original */
-
-
-#if defined(TAOCRYPT_KERNEL_MODE)
-    #define DO_TAOCRYPT_KERNEL_MODE
-#endif                                  // only some modules now support this
-
-
-#include "runtime.hpp"
-#include "blowfish.hpp"
-
-
-
-
-
-namespace TaoCrypt {
-
-
-#if defined(DO_BLOWFISH_ASM)
-
-// ia32 optimized version
-void Blowfish::Process(byte* out, const byte* in, word32 sz)
-{
-    if (!isMMX) {
-        Mode_BASE::Process(out, in, sz);
-        return;
-    }
-
-    word32 blocks = sz / BLOCK_SIZE;
-
-    if (mode_ == ECB)
-        while (blocks--) {
-            AsmProcess(in, out);
-            out += BLOCK_SIZE;
-            in  += BLOCK_SIZE;
-        }
-    else if (mode_ == CBC) {
-        if (dir_ == ENCRYPTION) {
-            while (blocks--) {
-                r_[0] ^= *(word32*)in;
-                r_[1] ^= *(word32*)(in + 4);
-
-                AsmProcess((byte*)r_, (byte*)r_);
-                
-                memcpy(out, r_, BLOCK_SIZE);
-
-                out += BLOCK_SIZE;
-                in  += BLOCK_SIZE;
-            }
-        }
-        else {
-            while (blocks--) {
-                AsmProcess(in, out);
-                
-                *(word32*)out       ^= r_[0];
-                *(word32*)(out + 4) ^= r_[1];
-
-                memcpy(r_, in, BLOCK_SIZE);
-
-                out += BLOCK_SIZE;
-                in  += BLOCK_SIZE;
-            }
-        }
-    }
-}
-
-#endif // DO_BLOWFISH_ASM
-
-
-void Blowfish::SetKey(const byte* key_string, word32 keylength, CipherDir dir)
-{
-    if (keylength < 4)
-        keylength = 4;
-    else if (keylength > 56)
-        keylength = 56;
-
-	unsigned i, j=0, k;
-	word32 data, dspace[2] = {0, 0};
-
-	memcpy(pbox_, p_init_, sizeof(p_init_));
-	memcpy(sbox_, s_init_, sizeof(s_init_));
-
-	// Xor key string into encryption key vector
-	for (i=0 ; i> 8)&0xFF)
-#define BFBYTE_2(x) ((x>>16)&0xFF)
-#define BFBYTE_3(x) ( x>>24)
-
-
-#define BF_S(Put, Get, I) (\
-        Put ^= p[I], \
-		tmp =  p[18 + BFBYTE_3(Get)],  \
-        tmp += p[274+ BFBYTE_2(Get)],  \
-        tmp ^= p[530+ BFBYTE_1(Get)],  \
-        tmp += p[786+ BFBYTE_0(Get)],  \
-        Put ^= tmp \
-    )
-
-
-#define BF_ROUNDS           \
-    BF_S(right, left,  1);  \
-    BF_S(left,  right, 2);  \
-    BF_S(right, left,  3);  \
-    BF_S(left,  right, 4);  \
-    BF_S(right, left,  5);  \
-    BF_S(left,  right, 6);  \
-    BF_S(right, left,  7);  \
-    BF_S(left,  right, 8);  \
-    BF_S(right, left,  9);  \
-    BF_S(left,  right, 10); \
-    BF_S(right, left,  11); \
-    BF_S(left,  right, 12); \
-    BF_S(right, left,  13); \
-    BF_S(left,  right, 14); \
-    BF_S(right, left,  15); \
-    BF_S(left,  right, 16); 
-
-#define BF_EXTRA_ROUNDS     \
-    BF_S(right, left,  17); \
-    BF_S(left,  right, 18); \
-    BF_S(right, left,  19); \
-    BF_S(left,  right, 20);
-
-
-// Used by key setup, no byte swapping
-void Blowfish::crypt_block(const word32 in[2], word32 out[2]) const
-{
-	word32 left  = in[0];
-	word32 right = in[1];
-
-	const word32  *const s = sbox_;
-	const word32* p = pbox_;
-
-	left ^= p[0];
-
-    // roll back up and use s and p index instead of just p
-    for (unsigned i = 0; i < ROUNDS / 2; i++) {
-        right ^= (((s[GETBYTE(left,3)] + s[256+GETBYTE(left,2)])
-            ^ s[2*256+GETBYTE(left,1)]) + s[3*256+GETBYTE(left,0)])
-            ^ p[2*i+1];
-
-        left ^= (((s[GETBYTE(right,3)] + s[256+GETBYTE(right,2)])
-            ^ s[2*256+GETBYTE(right,1)]) + s[3*256+GETBYTE(right,0)])
-            ^ p[2*i+2];
-    }
-
-	right ^= p[ROUNDS + 1];
-
-	out[0] = right;
-	out[1] = left;
-}
-
-
-typedef BlockGetAndPut gpBlock;
-
-void Blowfish::ProcessAndXorBlock(const byte* in, const byte* xOr, byte* out)
-    const
-{
-    word32 left, right;
-	const word32  *const s = sbox_;
-    const word32* p = pbox_;
-    
-    gpBlock::Get(in)(left)(right);
-	left ^= p[0];
-
-    // roll back up and use s and p index instead of just p
-    for (unsigned i = 0; i < ROUNDS / 2; i++) {
-        right ^= (((s[GETBYTE(left,3)] + s[256+GETBYTE(left,2)])
-            ^ s[2*256+GETBYTE(left,1)]) + s[3*256+GETBYTE(left,0)])
-            ^ p[2*i+1];
-
-        left ^= (((s[GETBYTE(right,3)] + s[256+GETBYTE(right,2)])
-            ^ s[2*256+GETBYTE(right,1)]) + s[3*256+GETBYTE(right,0)])
-            ^ p[2*i+2];
-    }
-
-	right ^= p[ROUNDS + 1];
-
-    gpBlock::Put(xOr, out)(right)(left);
-}
-
-
-#if defined(DO_BLOWFISH_ASM)
-    #ifdef __GNUC__
-        #define AS1(x)    #x ";"
-        #define AS2(x, y) #x ", " #y ";"
-
-        #define PROLOG()  \
-        __asm__ __volatile__ \
-        ( \
-            ".intel_syntax noprefix;" \
-            "push ebx;" \
-            "push ebp;" \
-            "movd mm3, eax;"
-        #define EPILOG()  \
-            "pop ebp;" \
-            "pop ebx;" \
-       	    "emms;" \
-       	    ".att_syntax;" \
-                : \
-                : "c" (this), "S" (inBlock), "a" (outBlock) \
-                : "%edi", "%edx", "memory", "cc" \
-        );
-
-    #else
-        #define AS1(x)    __asm x
-        #define AS2(x, y) __asm x, y
-
-        #define PROLOG() \
-            AS1(    push  ebp                           )   \
-            AS2(    mov   ebp, esp                      )   \
-            AS2(    movd  mm3, edi                      )   \
-            AS2(    movd  mm4, ebx                      )   \
-            AS2(    movd  mm5, esi                      )   \
-            AS2(    mov   esi, DWORD PTR [ebp +  8]     )
-
-        #define EPILOG()  \
-            AS2(    movd esi, mm5                       )   \
-            AS2(    movd ebx, mm4                       )   \
-            AS2(    movd edi, mm3                       )   \
-            AS2(    mov  esp, ebp                       )   \
-            AS1(    pop  ebp                            )   \
-            AS1(    emms                                )   \
-            AS1(    ret 8                               )
-            
-    #endif
-
-
-#define BF_ROUND(P, G, I)   \
-    /* Put ^= p[I]  */                              \
-    AS2(    xor   P,   [edi + I*4]              )   \
-    /* tmp =  p[18 + BFBYTE_3(Get)] */              \
-    AS2(    mov   ecx, G                        )   \
-    AS2(    shr   ecx, 16                       )   \
-    AS2(    movzx edx, ch                       )   \
-    AS2(    mov   esi, [edi + edx*4 +   72]     )   \
-    /* tmp += p[274+ BFBYTE_2(Get)] */              \
-    AS2(    movzx ecx, cl                       )   \
-    AS2(    add   esi, [edi + ecx*4 + 1096]     )   \
-    /* tmp ^= p[530+ BFBYTE_1(Get)] */              \
-    AS2(    mov   ecx, G                        )   \
-    AS2(    movzx edx, ch                       )   \
-    AS2(    xor   esi, [edi + edx*4 + 2120]     )   \
-    /* tmp += p[786+ BFBYTE_0(Get)] */              \
-    AS2(    movzx ecx, cl                       )   \
-    AS2(    add   esi, [edi + ecx*4 + 3144]     )   \
-    /* Put ^= tmp */                                \
-    AS2(    xor   P,   esi                      )
-
-
-#ifdef _MSC_VER
-    __declspec(naked) 
-#else
-    __attribute__ ((noinline))
-#endif
-void Blowfish::AsmProcess(const byte* inBlock, byte* outBlock) const
-{
-    PROLOG()
-
-    #ifdef OLD_GCC_OFFSET
-        AS2(    lea   edi, [ecx + 60]                       )   // pbox
-    #else
-        AS2(    lea   edi, [ecx + 56]                       )   // pbox
-    #endif
-
-    AS2(    mov   eax, DWORD PTR [esi]                                  )
-    AS2(    mov   edx, DWORD PTR [edi]                                  )
-    AS1(    bswap eax                                                   )
-
-    AS2(    mov   ebx, DWORD PTR [esi + 4]                              )
-    AS2(    xor   eax, edx                      )   // left
-    AS1(    bswap ebx                           )   // right
-
-
-    BF_ROUND(ebx, eax, 1)
-    BF_ROUND(eax, ebx, 2)
-    BF_ROUND(ebx, eax, 3)
-    BF_ROUND(eax, ebx, 4)
-    BF_ROUND(ebx, eax, 5)
-    BF_ROUND(eax, ebx, 6)
-    BF_ROUND(ebx, eax, 7)
-    BF_ROUND(eax, ebx, 8)
-    BF_ROUND(ebx, eax, 9)
-    BF_ROUND(eax, ebx, 10)
-    BF_ROUND(ebx, eax, 11)
-    BF_ROUND(eax, ebx, 12)
-    BF_ROUND(ebx, eax, 13)
-    BF_ROUND(eax, ebx, 14)
-    BF_ROUND(ebx, eax, 15)
-    BF_ROUND(eax, ebx, 16)
-    #if ROUNDS == 20
-        BF_ROUND(ebx, eax, 17)
-        BF_ROUND(eax, ebx, 18)
-        BF_ROUND(ebx, eax, 19)
-        BF_ROUND(eax, ebx, 20)
-
-        AS2(    xor   ebx, [edi + 84]           )   // 20 + 1 (x4)
-    #else
-        AS2(    xor   ebx, [edi + 68]           )   // 16 + 1 (x4)
-    #endif
-
-    #ifdef __GNUC__
-        AS2(    movd  edi, mm3                  ) // outBlock
-    #else
-        AS2(    mov   edi, [ebp + 12]           ) // outBlock
-    #endif
-
-    AS1(    bswap ebx                           )
-    AS1(    bswap eax                           )
-
-    AS2(    mov   [edi]    , ebx                )
-    AS2(    mov   [edi + 4], eax                )
-
-    EPILOG()
-}
-
-
-#endif  // DO_BLOWFISH_ASM
-
-
-} // namespace
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/coding.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/coding.cpp
deleted file mode 100644
index bc4727cc..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/coding.cpp
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
-   Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* coding.cpp implements hex and base64 encoding/decoing
-*/
-
-#include "runtime.hpp"
-#include "coding.hpp"
-#include "file.hpp"
-
-
-namespace TaoCrypt {
-
-
-namespace { // locals
-
-const byte bad = 0xFF;  // invalid encoding
-
-const byte hexEncode[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
-                           'A', 'B', 'C', 'D', 'E', 'F'
-                         };
-
-const byte hexDecode[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-                           bad, bad, bad, bad, bad, bad, bad,
-                           10, 11, 12, 13, 14, 15 
-                         };  // A starts at 0x41 not 0x3A
-
-
-const byte base64Encode[] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
-                              'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
-                              'U', 'V', 'W', 'X', 'Y', 'Z',
-                              'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
-                              'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
-                              'u', 'v', 'w', 'x', 'y', 'z',
-                              '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
-                              '+', '/'
-                            };
-
-const byte base64Decode[] = { 62, bad, bad, bad, 63,   // + starts at 0x2B
-                              52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
-                              bad, bad, bad, bad, bad, bad, bad,
-                              0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-                              10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
-                              20, 21, 22, 23, 24, 25,
-                              bad, bad, bad, bad, bad, bad,
-                              26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
-                              36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
-                              46, 47, 48, 49, 50, 51
-                            };
-
-const byte pad = '=';
-const int pemLineSz = 64;
-
-}  // local namespace
-
-
-// Hex Encode
-void HexEncoder::Encode()
-{
-    word32 bytes = plain_.size();
-    encoded_.New(bytes * 2);
-
-    word32 i = 0;
-
-    while (bytes--) {
-        byte p = plain_.next();
-
-        byte b  = p >> 4;
-        byte b2 = p & 0xF;
-
-        encoded_[i++] = hexEncode[b];
-        encoded_[i++] = hexEncode[b2];
-    }
-
-    plain_.reset(encoded_);
-}
-
-
-// Hex Decode
-void HexDecoder::Decode()
-{
-    word32 bytes = coded_.size();
-    decoded_.New(bytes / 2);
-
-    word32 i(0);
-
-    while (bytes) {
-        byte b  = coded_.next() - 0x30;  // 0 starts at 0x30
-        byte b2 = coded_.next() - 0x30;
-
-        // sanity checks
-        if (b >= sizeof(hexDecode)/sizeof(hexDecode[0])) {
-            coded_.SetError(PEM_E);
-            return;
-        }
-        if (b2 >= sizeof(hexDecode)/sizeof(hexDecode[0])) {
-            coded_.SetError(PEM_E);
-            return;
-        }
-
-        b  = hexDecode[b];
-        b2 = hexDecode[b2];
-
-        decoded_[i++] = (b << 4) | b2;
-        bytes -= 2;
-    }
-
-    coded_.reset(decoded_);
-}
-
-
-// Base 64 Encode
-void Base64Encoder::Encode()
-{
-    word32 bytes = plain_.size();
-    word32 outSz = (bytes + 3 - 1) / 3 * 4;
-
-    outSz += (outSz + pemLineSz - 1) / pemLineSz;  // new lines
-    encoded_.New(outSz);
-
-    word32 i = 0;
-    word32 j = 0;
-    
-    while (bytes > 2) {
-        byte b1 = plain_.next();
-        byte b2 = plain_.next();
-        byte b3 = plain_.next();
-
-        // encoded idx
-        byte e1 = b1 >> 2;
-        byte e2 = ((b1 & 0x3) << 4) | (b2 >> 4);
-        byte e3 = ((b2 & 0xF) << 2) | (b3 >> 6);
-        byte e4 = b3 & 0x3F;
-
-        // store
-        encoded_[i++] = base64Encode[e1];
-        encoded_[i++] = base64Encode[e2];
-        encoded_[i++] = base64Encode[e3];
-        encoded_[i++] = base64Encode[e4];
-
-        bytes -= 3;
-
-        if ((++j % 16) == 0 && bytes)
-            encoded_[i++] = '\n';
-    }
-
-    // last integral
-    if (bytes) {
-        bool twoBytes = (bytes == 2);
-
-        byte b1 = plain_.next();
-        byte b2 = (twoBytes) ? plain_.next() : 0;
-
-        byte e1 = b1 >> 2;
-        byte e2 = ((b1 & 0x3) << 4) | (b2 >> 4);
-        byte e3 =  (b2 & 0xF) << 2;
-
-        encoded_[i++] = base64Encode[e1];
-        encoded_[i++] = base64Encode[e2];
-        encoded_[i++] = (twoBytes) ? base64Encode[e3] : pad;
-        encoded_[i++] = pad;
-    } 
-
-    encoded_[i++] = '\n';
-    
-    if (i == outSz)
-        plain_.reset(encoded_);
-}
-
-
-// Base 64 Decode
-void Base64Decoder::Decode()
-{
-    word32 bytes = coded_.size();
-    word32 plainSz = bytes - ((bytes + (pemLineSz - 1)) / pemLineSz); 
-    const  byte maxIdx = (byte)sizeof(base64Decode) + 0x2B - 1;
-    plainSz = ((plainSz * 3) / 4) + 3;
-    decoded_.New(plainSz);
-
-    word32 i = 0;
-    word32 j = 0;
-
-    while (bytes > 3) {
-        byte e1 = coded_.next();
-        byte e2 = coded_.next();
-        byte e3 = coded_.next();
-        byte e4 = coded_.next();
-
-        if (e1 == 0)            // end file 0's
-            break;
-
-        bool pad3 = false;
-        bool pad4 = false;
-        if (e3 == pad)
-            pad3 = true;
-        if (e4 == pad)
-            pad4 = true;
-
-        if (e1 < 0x2B || e2 < 0x2B || e3 < 0x2B || e4 < 0x2B) {
-            coded_.SetError(PEM_E);
-            return;
-        }
-
-        if (e1 > maxIdx || e2 > maxIdx || e3 > maxIdx || e4 > maxIdx) {
-            coded_.SetError(PEM_E);
-            return;
-        }
-
-        e1 = base64Decode[e1 - 0x2B];
-        e2 = base64Decode[e2 - 0x2B];
-        e3 = (e3 == pad) ? 0 : base64Decode[e3 - 0x2B];
-        e4 = (e4 == pad) ? 0 : base64Decode[e4 - 0x2B];
-
-        byte b1 = (e1 << 2) | (e2 >> 4);
-        byte b2 = ((e2 & 0xF) << 4) | (e3 >> 2);
-        byte b3 = ((e3 & 0x3) << 6) | e4;
-
-        decoded_[i++] = b1;
-        if (!pad3)
-            decoded_[i++] = b2;
-        if (!pad4)
-            decoded_[i++] = b3;
-        else
-            break;
-        
-        bytes -= 4;
-        if ((++j % 16) == 0) {
-            byte endLine = coded_.next();
-            bytes--;
-            while (endLine == ' ') {        // remove possible whitespace
-                endLine = coded_.next();
-                bytes--;
-            }
-            if (endLine == '\r') {
-                endLine = coded_.next();
-                bytes--;
-            }
-            if (endLine != '\n') {
-                coded_.SetError(PEM_E); 
-                return;
-            }
-        }
-    }
-
-    if (i != decoded_.size())
-        decoded_.resize(i);
-    coded_.reset(decoded_);
-}
-
-
-} // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/des.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/des.cpp
deleted file mode 100644
index 673c21ed..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/des.cpp
+++ /dev/null
@@ -1,778 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* C++ part based on Wei Dai's des.cpp from CryptoPP */
-/* x86 asm is original */
-
-
-#if defined(TAOCRYPT_KERNEL_MODE)
-    #define DO_TAOCRYPT_KERNEL_MODE
-#endif                                  // only some modules now support this
-
-
-#include "runtime.hpp"
-#include "des.hpp"
-#ifdef USE_SYS_STL
-    #include 
-#else
-    #include "algorithm.hpp"
-#endif
-
-
-namespace STL = STL_NAMESPACE;
-
-
-
-namespace TaoCrypt {
-
-
-/* permuted choice table (key) */
-static const byte pc1[] = {
-       57, 49, 41, 33, 25, 17,  9,
-        1, 58, 50, 42, 34, 26, 18,
-       10,  2, 59, 51, 43, 35, 27,
-       19, 11,  3, 60, 52, 44, 36,
-
-       63, 55, 47, 39, 31, 23, 15,
-        7, 62, 54, 46, 38, 30, 22,
-       14,  6, 61, 53, 45, 37, 29,
-       21, 13,  5, 28, 20, 12,  4
-};
-
-/* number left rotations of pc1 */
-static const byte totrot[] = {
-       1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28
-};
-
-/* permuted choice key (table) */
-static const byte pc2[] = {
-       14, 17, 11, 24,  1,  5,
-        3, 28, 15,  6, 21, 10,
-       23, 19, 12,  4, 26,  8,
-       16,  7, 27, 20, 13,  2,
-       41, 52, 31, 37, 47, 55,
-       30, 40, 51, 45, 33, 48,
-       44, 49, 39, 56, 34, 53,
-       46, 42, 50, 36, 29, 32
-};
-
-/* End of DES-defined tables */
-
-/* bit 0 is left-most in byte */
-static const int bytebit[] = {
-       0200,0100,040,020,010,04,02,01
-};
-
-const word32 Spbox[8][64] = {
-{
-0x01010400,0x00000000,0x00010000,0x01010404,
-0x01010004,0x00010404,0x00000004,0x00010000,
-0x00000400,0x01010400,0x01010404,0x00000400,
-0x01000404,0x01010004,0x01000000,0x00000004,
-0x00000404,0x01000400,0x01000400,0x00010400,
-0x00010400,0x01010000,0x01010000,0x01000404,
-0x00010004,0x01000004,0x01000004,0x00010004,
-0x00000000,0x00000404,0x00010404,0x01000000,
-0x00010000,0x01010404,0x00000004,0x01010000,
-0x01010400,0x01000000,0x01000000,0x00000400,
-0x01010004,0x00010000,0x00010400,0x01000004,
-0x00000400,0x00000004,0x01000404,0x00010404,
-0x01010404,0x00010004,0x01010000,0x01000404,
-0x01000004,0x00000404,0x00010404,0x01010400,
-0x00000404,0x01000400,0x01000400,0x00000000,
-0x00010004,0x00010400,0x00000000,0x01010004},
-{
-0x80108020,0x80008000,0x00008000,0x00108020,
-0x00100000,0x00000020,0x80100020,0x80008020,
-0x80000020,0x80108020,0x80108000,0x80000000,
-0x80008000,0x00100000,0x00000020,0x80100020,
-0x00108000,0x00100020,0x80008020,0x00000000,
-0x80000000,0x00008000,0x00108020,0x80100000,
-0x00100020,0x80000020,0x00000000,0x00108000,
-0x00008020,0x80108000,0x80100000,0x00008020,
-0x00000000,0x00108020,0x80100020,0x00100000,
-0x80008020,0x80100000,0x80108000,0x00008000,
-0x80100000,0x80008000,0x00000020,0x80108020,
-0x00108020,0x00000020,0x00008000,0x80000000,
-0x00008020,0x80108000,0x00100000,0x80000020,
-0x00100020,0x80008020,0x80000020,0x00100020,
-0x00108000,0x00000000,0x80008000,0x00008020,
-0x80000000,0x80100020,0x80108020,0x00108000},
-{
-0x00000208,0x08020200,0x00000000,0x08020008,
-0x08000200,0x00000000,0x00020208,0x08000200,
-0x00020008,0x08000008,0x08000008,0x00020000,
-0x08020208,0x00020008,0x08020000,0x00000208,
-0x08000000,0x00000008,0x08020200,0x00000200,
-0x00020200,0x08020000,0x08020008,0x00020208,
-0x08000208,0x00020200,0x00020000,0x08000208,
-0x00000008,0x08020208,0x00000200,0x08000000,
-0x08020200,0x08000000,0x00020008,0x00000208,
-0x00020000,0x08020200,0x08000200,0x00000000,
-0x00000200,0x00020008,0x08020208,0x08000200,
-0x08000008,0x00000200,0x00000000,0x08020008,
-0x08000208,0x00020000,0x08000000,0x08020208,
-0x00000008,0x00020208,0x00020200,0x08000008,
-0x08020000,0x08000208,0x00000208,0x08020000,
-0x00020208,0x00000008,0x08020008,0x00020200},
-{
-0x00802001,0x00002081,0x00002081,0x00000080,
-0x00802080,0x00800081,0x00800001,0x00002001,
-0x00000000,0x00802000,0x00802000,0x00802081,
-0x00000081,0x00000000,0x00800080,0x00800001,
-0x00000001,0x00002000,0x00800000,0x00802001,
-0x00000080,0x00800000,0x00002001,0x00002080,
-0x00800081,0x00000001,0x00002080,0x00800080,
-0x00002000,0x00802080,0x00802081,0x00000081,
-0x00800080,0x00800001,0x00802000,0x00802081,
-0x00000081,0x00000000,0x00000000,0x00802000,
-0x00002080,0x00800080,0x00800081,0x00000001,
-0x00802001,0x00002081,0x00002081,0x00000080,
-0x00802081,0x00000081,0x00000001,0x00002000,
-0x00800001,0x00002001,0x00802080,0x00800081,
-0x00002001,0x00002080,0x00800000,0x00802001,
-0x00000080,0x00800000,0x00002000,0x00802080},
-{
-0x00000100,0x02080100,0x02080000,0x42000100,
-0x00080000,0x00000100,0x40000000,0x02080000,
-0x40080100,0x00080000,0x02000100,0x40080100,
-0x42000100,0x42080000,0x00080100,0x40000000,
-0x02000000,0x40080000,0x40080000,0x00000000,
-0x40000100,0x42080100,0x42080100,0x02000100,
-0x42080000,0x40000100,0x00000000,0x42000000,
-0x02080100,0x02000000,0x42000000,0x00080100,
-0x00080000,0x42000100,0x00000100,0x02000000,
-0x40000000,0x02080000,0x42000100,0x40080100,
-0x02000100,0x40000000,0x42080000,0x02080100,
-0x40080100,0x00000100,0x02000000,0x42080000,
-0x42080100,0x00080100,0x42000000,0x42080100,
-0x02080000,0x00000000,0x40080000,0x42000000,
-0x00080100,0x02000100,0x40000100,0x00080000,
-0x00000000,0x40080000,0x02080100,0x40000100},
-{
-0x20000010,0x20400000,0x00004000,0x20404010,
-0x20400000,0x00000010,0x20404010,0x00400000,
-0x20004000,0x00404010,0x00400000,0x20000010,
-0x00400010,0x20004000,0x20000000,0x00004010,
-0x00000000,0x00400010,0x20004010,0x00004000,
-0x00404000,0x20004010,0x00000010,0x20400010,
-0x20400010,0x00000000,0x00404010,0x20404000,
-0x00004010,0x00404000,0x20404000,0x20000000,
-0x20004000,0x00000010,0x20400010,0x00404000,
-0x20404010,0x00400000,0x00004010,0x20000010,
-0x00400000,0x20004000,0x20000000,0x00004010,
-0x20000010,0x20404010,0x00404000,0x20400000,
-0x00404010,0x20404000,0x00000000,0x20400010,
-0x00000010,0x00004000,0x20400000,0x00404010,
-0x00004000,0x00400010,0x20004010,0x00000000,
-0x20404000,0x20000000,0x00400010,0x20004010},
-{
-0x00200000,0x04200002,0x04000802,0x00000000,
-0x00000800,0x04000802,0x00200802,0x04200800,
-0x04200802,0x00200000,0x00000000,0x04000002,
-0x00000002,0x04000000,0x04200002,0x00000802,
-0x04000800,0x00200802,0x00200002,0x04000800,
-0x04000002,0x04200000,0x04200800,0x00200002,
-0x04200000,0x00000800,0x00000802,0x04200802,
-0x00200800,0x00000002,0x04000000,0x00200800,
-0x04000000,0x00200800,0x00200000,0x04000802,
-0x04000802,0x04200002,0x04200002,0x00000002,
-0x00200002,0x04000000,0x04000800,0x00200000,
-0x04200800,0x00000802,0x00200802,0x04200800,
-0x00000802,0x04000002,0x04200802,0x04200000,
-0x00200800,0x00000000,0x00000002,0x04200802,
-0x00000000,0x00200802,0x04200000,0x00000800,
-0x04000002,0x04000800,0x00000800,0x00200002},
-{
-0x10001040,0x00001000,0x00040000,0x10041040,
-0x10000000,0x10001040,0x00000040,0x10000000,
-0x00040040,0x10040000,0x10041040,0x00041000,
-0x10041000,0x00041040,0x00001000,0x00000040,
-0x10040000,0x10000040,0x10001000,0x00001040,
-0x00041000,0x00040040,0x10040040,0x10041000,
-0x00001040,0x00000000,0x00000000,0x10040040,
-0x10000040,0x10001000,0x00041040,0x00040000,
-0x00041040,0x00040000,0x10041000,0x00001000,
-0x00000040,0x10040040,0x00001000,0x00041040,
-0x10001000,0x00000040,0x10000040,0x10040000,
-0x10040040,0x10000000,0x00040000,0x10001040,
-0x00000000,0x10041040,0x00040040,0x10000040,
-0x10040000,0x10001000,0x10001040,0x00000000,
-0x10041040,0x00041000,0x00041000,0x00001040,
-0x00001040,0x00040040,0x10000000,0x10041000}
-};
-
-
-void BasicDES::SetKey(const byte* key, word32 /*length*/, CipherDir dir)
-{
-    byte buffer[56+56+8];
-    byte *const pc1m = buffer;                 /* place to modify pc1 into */
-    byte *const pcr = pc1m + 56;               /* place to rotate pc1 into */
-    byte *const ks = pcr + 56;
-    register int i,j,l;
-    int m;
-
-    for (j = 0; j < 56; j++) {          /* convert pc1 to bits of key */
-        l = pc1[j] - 1;                 /* integer bit location  */
-        m = l & 07;                     /* find bit              */
-        pc1m[j] = (key[l >> 3] &        /* find which key byte l is in */
-            bytebit[m])                 /* and which bit of that byte */
-            ? 1 : 0;                    /* and store 1-bit result */
-    }
-    for (i = 0; i < 16; i++) {          /* key chunk for each iteration */
-        memset(ks, 0, 8);               /* Clear key schedule */
-        for (j = 0; j < 56; j++)        /* rotate pc1 the right amount */
-            pcr[j] = pc1m[(l = j + totrot[i]) < (j < 28 ? 28 : 56) ? l: l-28];
-        /* rotate left and right halves independently */
-        for (j = 0; j < 48; j++){   /* select bits individually */
-            /* check bit that goes to ks[j] */
-            if (pcr[pc2[j] - 1]){
-                /* mask it in if it's there */
-                l= j % 6;
-                ks[j/6] |= bytebit[l] >> 2;
-            }
-        }
-        /* Now convert to odd/even interleaved form for use in F */
-        k_[2*i] = ((word32)ks[0] << 24)
-            | ((word32)ks[2] << 16)
-            | ((word32)ks[4] << 8)
-            | ((word32)ks[6]);
-        k_[2*i + 1] = ((word32)ks[1] << 24)
-            | ((word32)ks[3] << 16)
-            | ((word32)ks[5] << 8)
-            | ((word32)ks[7]);
-    }
-    
-    // reverse key schedule order
-    if (dir == DECRYPTION)
-        for (i = 0; i < 16; i += 2) {
-            STL::swap(k_[i],   k_[32 - 2 - i]);
-            STL::swap(k_[i+1], k_[32 - 1 - i]);
-        }
-   
-}
-
-static inline void IPERM(word32& left, word32& right)
-{
-    word32 work;
-
-    right = rotlFixed(right, 4U);
-    work = (left ^ right) & 0xf0f0f0f0;
-    left ^= work;
-
-    right = rotrFixed(right^work, 20U);
-    work = (left ^ right) & 0xffff0000;
-    left ^= work;
-
-    right = rotrFixed(right^work, 18U);
-    work = (left ^ right) & 0x33333333;
-    left ^= work;
-
-    right = rotrFixed(right^work, 6U);
-    work = (left ^ right) & 0x00ff00ff;
-    left ^= work;
-
-    right = rotlFixed(right^work, 9U);
-    work = (left ^ right) & 0xaaaaaaaa;
-    left = rotlFixed(left^work, 1U);
-    right ^= work;
-}
-
-static inline void FPERM(word32& left, word32& right)
-{
-    word32 work;
-
-    right = rotrFixed(right, 1U);
-    work = (left ^ right) & 0xaaaaaaaa;
-    right ^= work;
-    left = rotrFixed(left^work, 9U);
-    work = (left ^ right) & 0x00ff00ff;
-    right ^= work;
-    left = rotlFixed(left^work, 6U);
-    work = (left ^ right) & 0x33333333;
-    right ^= work;
-    left = rotlFixed(left^work, 18U);
-    work = (left ^ right) & 0xffff0000;
-    right ^= work;
-    left = rotlFixed(left^work, 20U);
-    work = (left ^ right) & 0xf0f0f0f0;
-    right ^= work;
-    left = rotrFixed(left^work, 4U);
-}
-
-
-void BasicDES::RawProcessBlock(word32& lIn, word32& rIn) const
-{
-    word32 l = lIn, r = rIn;
-    const word32* kptr = k_;
-
-    for (unsigned i=0; i<8; i++)
-    {
-        word32 work = rotrFixed(r, 4U) ^ kptr[4*i+0];
-        l ^= Spbox[6][(work) & 0x3f]
-          ^  Spbox[4][(work >> 8) & 0x3f]
-          ^  Spbox[2][(work >> 16) & 0x3f]
-          ^  Spbox[0][(work >> 24) & 0x3f];
-        work = r ^ kptr[4*i+1];
-        l ^= Spbox[7][(work) & 0x3f]
-          ^  Spbox[5][(work >> 8) & 0x3f]
-          ^  Spbox[3][(work >> 16) & 0x3f]
-          ^  Spbox[1][(work >> 24) & 0x3f];
-
-        work = rotrFixed(l, 4U) ^ kptr[4*i+2];
-        r ^= Spbox[6][(work) & 0x3f]
-          ^  Spbox[4][(work >> 8) & 0x3f]
-          ^  Spbox[2][(work >> 16) & 0x3f]
-          ^  Spbox[0][(work >> 24) & 0x3f];
-        work = l ^ kptr[4*i+3];
-        r ^= Spbox[7][(work) & 0x3f]
-          ^  Spbox[5][(work >> 8) & 0x3f]
-          ^  Spbox[3][(work >> 16) & 0x3f]
-          ^  Spbox[1][(work >> 24) & 0x3f];
-    }
-
-    lIn = l; rIn = r;
-}
-
-
-
-typedef BlockGetAndPut Block;
-
-
-void DES::ProcessAndXorBlock(const byte* in, const byte* xOr, byte* out) const
-{
-    word32 l,r;
-    Block::Get(in)(l)(r);
-    IPERM(l,r);
-
-    RawProcessBlock(l, r);
-
-    FPERM(l,r);
-    Block::Put(xOr, out)(r)(l);
-}
-
-
-void DES_EDE2::SetKey(const byte* key, word32 sz, CipherDir dir)
-{
-    des1_.SetKey(key, sz, dir);
-    des2_.SetKey(key + 8, sz, ReverseDir(dir));
-}
-
-
-void DES_EDE2::ProcessAndXorBlock(const byte* in, const byte* xOr,
-                                  byte* out) const
-{
-    word32 l,r;
-    Block::Get(in)(l)(r);
-    IPERM(l,r);
-
-    des1_.RawProcessBlock(l, r);
-    des2_.RawProcessBlock(r, l);
-    des1_.RawProcessBlock(l, r);
-
-    FPERM(l,r);
-    Block::Put(xOr, out)(r)(l);
-}
-
-
-void DES_EDE3::SetKey(const byte* key, word32 sz, CipherDir dir)
-{
-    des1_.SetKey(key+(dir==ENCRYPTION?0:2*8), sz, dir);
-    des2_.SetKey(key+8, sz, ReverseDir(dir));
-    des3_.SetKey(key+(dir==DECRYPTION?0:2*8), sz, dir);
-}
-
-
-
-#if defined(DO_DES_ASM)
-
-// ia32 optimized version
-void DES_EDE3::Process(byte* out, const byte* in, word32 sz)
-{
-    if (!isMMX) {
-        Mode_BASE::Process(out, in, sz);
-        return;
-    }
-
-    word32 blocks = sz / DES_BLOCK_SIZE;
-
-    if (mode_ == CBC)    
-        if (dir_ == ENCRYPTION)
-            while (blocks--) {
-                r_[0] ^= *(word32*)in;
-                r_[1] ^= *(word32*)(in + 4);
-
-                AsmProcess((byte*)r_, (byte*)r_, (void*)Spbox);
-                
-                memcpy(out, r_, DES_BLOCK_SIZE);
-
-                in  += DES_BLOCK_SIZE;
-                out += DES_BLOCK_SIZE;
-            }
-        else
-            while (blocks--) {
-                AsmProcess(in, out, (void*)Spbox);
-               
-                *(word32*)out       ^= r_[0];
-                *(word32*)(out + 4) ^= r_[1];
-
-                memcpy(r_, in, DES_BLOCK_SIZE);
-
-                out += DES_BLOCK_SIZE;
-                in  += DES_BLOCK_SIZE;
-            }
-    else
-        while (blocks--) {
-            AsmProcess(in, out, (void*)Spbox);
-           
-            out += DES_BLOCK_SIZE;
-            in  += DES_BLOCK_SIZE;
-        }
-}
-
-#endif // DO_DES_ASM
-
-
-void DES_EDE3::ProcessAndXorBlock(const byte* in, const byte* xOr,
-                                  byte* out) const
-{
-    word32 l,r;
-    Block::Get(in)(l)(r);
-    IPERM(l,r);
-
-    des1_.RawProcessBlock(l, r);
-    des2_.RawProcessBlock(r, l);
-    des3_.RawProcessBlock(l, r);
-
-    FPERM(l,r);
-    Block::Put(xOr, out)(r)(l);
-}
-
-
-#if defined(DO_DES_ASM)
-
-/* Uses IPERM algorithm from above
-
-   left  is in eax
-   right is in ebx
-
-   uses ecx
-*/
-#define AsmIPERM() \
-    AS2(    rol   ebx, 4                        )   \
-    AS2(    mov   ecx, eax                      )   \
-    AS2(    xor   ecx, ebx                      )   \
-    AS2(    and   ecx, 0xf0f0f0f0               )   \
-    AS2(    xor   ebx, ecx                      )   \
-    AS2(    xor   eax, ecx                      )   \
-    AS2(    ror   ebx, 20                       )   \
-    AS2(    mov   ecx, eax                      )   \
-    AS2(    xor   ecx, ebx                      )   \
-    AS2(    and   ecx, 0xffff0000               )   \
-    AS2(    xor   ebx, ecx                      )   \
-    AS2(    xor   eax, ecx                      )   \
-    AS2(    ror   ebx, 18                       )   \
-    AS2(    mov   ecx, eax                      )   \
-    AS2(    xor   ecx, ebx                      )   \
-    AS2(    and   ecx, 0x33333333               )   \
-    AS2(    xor   ebx, ecx                      )   \
-    AS2(    xor   eax, ecx                      )   \
-    AS2(    ror   ebx, 6                        )   \
-    AS2(    mov   ecx, eax                      )   \
-    AS2(    xor   ecx, ebx                      )   \
-    AS2(    and   ecx, 0x00ff00ff               )   \
-    AS2(    xor   ebx, ecx                      )   \
-    AS2(    xor   eax, ecx                      )   \
-    AS2(    rol   ebx, 9                        )   \
-    AS2(    mov   ecx, eax                      )   \
-    AS2(    xor   ecx, ebx                      )   \
-    AS2(    and   ecx, 0xaaaaaaaa               )   \
-    AS2(    xor   eax, ecx                      )   \
-    AS2(    rol   eax, 1                        )   \
-    AS2(    xor   ebx, ecx                      )
-
-
-/* Uses FPERM algorithm from above
-
-   left  is in eax
-   right is in ebx
-
-   uses ecx
-*/
-#define AsmFPERM()    \
-    AS2(    ror  ebx, 1                     )    \
-    AS2(    mov  ecx, eax                   )    \
-    AS2(    xor  ecx, ebx                   )    \
-    AS2(    and  ecx, 0xaaaaaaaa            )    \
-    AS2(    xor  eax, ecx                   )    \
-    AS2(    xor  ebx, ecx                   )    \
-    AS2(    ror  eax, 9                     )    \
-    AS2(    mov  ecx, ebx                   )    \
-    AS2(    xor  ecx, eax                   )    \
-    AS2(    and  ecx, 0x00ff00ff            )    \
-    AS2(    xor  eax, ecx                   )    \
-    AS2(    xor  ebx, ecx                   )    \
-    AS2(    rol  eax, 6                     )    \
-    AS2(    mov  ecx, ebx                   )    \
-    AS2(    xor  ecx, eax                   )    \
-    AS2(    and  ecx, 0x33333333            )    \
-    AS2(    xor  eax, ecx                   )    \
-    AS2(    xor  ebx, ecx                   )    \
-    AS2(    rol  eax, 18                    )    \
-    AS2(    mov  ecx, ebx                   )    \
-    AS2(    xor  ecx, eax                   )    \
-    AS2(    and  ecx, 0xffff0000            )    \
-    AS2(    xor  eax, ecx                   )    \
-    AS2(    xor  ebx, ecx                   )    \
-    AS2(    rol  eax, 20                    )    \
-    AS2(    mov  ecx, ebx                   )    \
-    AS2(    xor  ecx, eax                   )    \
-    AS2(    and  ecx, 0xf0f0f0f0            )    \
-    AS2(    xor  eax, ecx                   )    \
-    AS2(    xor  ebx, ecx                   )    \
-    AS2(    ror  eax, 4                     )
-
-
-
-
-/* DesRound implements this algorithm:
-
-        word32 work = rotrFixed(r, 4U) ^ key[0];
-        l ^= Spbox[6][(work) & 0x3f]
-          ^  Spbox[4][(work >> 8) & 0x3f]
-          ^  Spbox[2][(work >> 16) & 0x3f]
-          ^  Spbox[0][(work >> 24) & 0x3f];
-        work = r ^ key[1];
-        l ^= Spbox[7][(work) & 0x3f]
-          ^  Spbox[5][(work >> 8) & 0x3f]
-          ^  Spbox[3][(work >> 16) & 0x3f]
-          ^  Spbox[1][(work >> 24) & 0x3f];
-
-        work = rotrFixed(l, 4U) ^ key[2];
-        r ^= Spbox[6][(work) & 0x3f]
-          ^  Spbox[4][(work >> 8) & 0x3f]
-          ^  Spbox[2][(work >> 16) & 0x3f]
-          ^  Spbox[0][(work >> 24) & 0x3f];
-        work = l ^ key[3];
-        r ^= Spbox[7][(work) & 0x3f]
-          ^  Spbox[5][(work >> 8) & 0x3f]
-          ^  Spbox[3][(work >> 16) & 0x3f]
-          ^  Spbox[1][(work >> 24) & 0x3f];
-
-   left  is in aex
-   right is in ebx
-   key   is in edx
-
-   edvances key for next round
-
-   uses ecx, esi, and edi
-*/
-#define DesRound() \
-    AS2(    mov   ecx,  ebx                     )\
-    AS2(    mov   esi,  DWORD PTR [edx]         )\
-    AS2(    ror   ecx,  4                       )\
-    AS2(    xor   ecx,  esi                     )\
-    AS2(    and   ecx,  0x3f3f3f3f              )\
-    AS2(    movzx esi,  cl                      )\
-    AS2(    movzx edi,  ch                      )\
-    AS2(    xor   eax,  [ebp + esi*4 + 6*256]   )\
-    AS2(    shr   ecx,  16                      )\
-    AS2(    xor   eax,  [ebp + edi*4 + 4*256]   )\
-    AS2(    movzx esi,  cl                      )\
-    AS2(    movzx edi,  ch                      )\
-    AS2(    xor   eax,  [ebp + esi*4 + 2*256]   )\
-    AS2(    mov   esi,  DWORD PTR [edx + 4]     )\
-    AS2(    xor   eax,  [ebp + edi*4]           )\
-    AS2(    mov   ecx,  ebx                     )\
-    AS2(    xor   ecx,  esi                     )\
-    AS2(    and   ecx,  0x3f3f3f3f              )\
-    AS2(    movzx esi,  cl                      )\
-    AS2(    movzx edi,  ch                      )\
-    AS2(    xor   eax,  [ebp + esi*4 + 7*256]   )\
-    AS2(    shr   ecx,  16                      )\
-    AS2(    xor   eax,  [ebp + edi*4 + 5*256]   )\
-    AS2(    movzx esi,  cl                      )\
-    AS2(    movzx edi,  ch                      )\
-    AS2(    xor   eax,  [ebp + esi*4 + 3*256]   )\
-    AS2(    mov   esi,  DWORD PTR [edx + 8]     )\
-    AS2(    xor   eax,  [ebp + edi*4 + 1*256]   )\
-    AS2(    mov   ecx,  eax                     )\
-    AS2(    ror   ecx,  4                       )\
-    AS2(    xor   ecx,  esi                     )\
-    AS2(    and   ecx,  0x3f3f3f3f              )\
-    AS2(    movzx esi,  cl                      )\
-    AS2(    movzx edi,  ch                      )\
-    AS2(    xor   ebx,  [ebp + esi*4 + 6*256]   )\
-    AS2(    shr   ecx,  16                      )\
-    AS2(    xor   ebx,  [ebp + edi*4 + 4*256]   )\
-    AS2(    movzx esi,  cl                      )\
-    AS2(    movzx edi,  ch                      )\
-    AS2(    xor   ebx,  [ebp + esi*4 + 2*256]   )\
-    AS2(    mov   esi,  DWORD PTR [edx + 12]    )\
-    AS2(    xor   ebx,  [ebp + edi*4]           )\
-    AS2(    mov   ecx,  eax                     )\
-    AS2(    xor   ecx,  esi                     )\
-    AS2(    and   ecx,  0x3f3f3f3f              )\
-    AS2(    movzx esi,  cl                      )\
-    AS2(    movzx edi,  ch                      )\
-    AS2(    xor   ebx,  [ebp + esi*4 + 7*256]   )\
-    AS2(    shr   ecx,  16                      )\
-    AS2(    xor   ebx,  [ebp + edi*4 + 5*256]   )\
-    AS2(    movzx esi,  cl                      )\
-    AS2(    movzx edi,  ch                      )\
-    AS2(    xor   ebx,  [ebp + esi*4 + 3*256]   )\
-    AS2(    add   edx,  16                      )\
-    AS2(    xor   ebx,  [ebp + edi*4 + 1*256]   )
-
-
-#ifdef _MSC_VER
-    __declspec(naked) 
-#else
-    __attribute__ ((noinline))
-#endif
-void DES_EDE3::AsmProcess(const byte* in, byte* out, void* box) const
-{
-#ifdef __GNUC__
-    #define AS1(x)    #x ";"
-    #define AS2(x, y) #x ", " #y ";"
-
-    #define PROLOG()  \
-    __asm__ __volatile__ \
-    ( \
-        ".intel_syntax noprefix;" \
-        "push ebx;" \
-        "push ebp;" \
-        "movd mm6, ebp;" \
-        "movd mm7, ecx;" \
-        "mov  ebp, eax;"
-    #define EPILOG()  \
-        "pop ebp;" \
-        "pop ebx;" \
-       	"emms;" \
-       	".att_syntax;" \
-            :  \
-            : "d" (this), "S" (in), "a" (box), "c" (out) \
-            : "%edi", "memory", "cc" \
-    );
-
-#else
-    #define AS1(x)      __asm x
-    #define AS2(x, y)   __asm x, y
-
-    #define PROLOG()  \
-        AS1(    push  ebp                           )   \
-        AS2(    mov   ebp, esp                      )   \
-        AS2(    movd  mm3, edi                      )   \
-        AS2(    movd  mm4, ebx                      )   \
-        AS2(    movd  mm5, esi                      )   \
-        AS2(    movd  mm6, ebp                      )   \
-        AS2(    mov   esi, DWORD PTR [ebp +  8]     )   \
-        AS2(    mov   edx, ecx                      )   \
-        AS2(    mov   ebp, DWORD PTR [ebp + 16]     )
-
-    // ebp restored at end
-    #define EPILOG() \
-        AS2(    movd  edi, mm3                      )   \
-        AS2(    movd  ebx, mm4                      )   \
-        AS2(    movd  esi, mm5                      )   \
-        AS2(    mov   esp, ebp                      )   \
-        AS1(    pop   ebp                           )   \
-        AS1(    emms                                )   \
-        AS1(    ret 12                              )
-
-#endif
-
-
-    PROLOG()
-
-    AS2(    movd  mm2, edx                      )
-
-    #ifdef OLD_GCC_OFFSET
-        AS2(    add   edx, 60                       )   // des1 = des1 key
-    #else
-        AS2(    add   edx, 56                       )   // des1 = des1 key
-    #endif
-
-    AS2(    mov   eax, DWORD PTR [esi]          )
-    AS2(    mov   ebx, DWORD PTR [esi + 4]      )
-    AS1(    bswap eax                           )    // left
-    AS1(    bswap ebx                           )    // right
-
-    AsmIPERM()
-
-    DesRound() // 1
-    DesRound() // 2
-    DesRound() // 3
-    DesRound() // 4
-    DesRound() // 5
-    DesRound() // 6
-    DesRound() // 7
-    DesRound() // 8
-
-    // swap left and right 
-    AS2(    xchg  eax, ebx                      )
-
-    DesRound() // 1
-    DesRound() // 2
-    DesRound() // 3
-    DesRound() // 4
-    DesRound() // 5
-    DesRound() // 6
-    DesRound() // 7
-    DesRound() // 8
-
-    // swap left and right
-    AS2(    xchg  eax, ebx                      )
-
-    DesRound() // 1
-    DesRound() // 2
-    DesRound() // 3
-    DesRound() // 4
-    DesRound() // 5
-    DesRound() // 6
-    DesRound() // 7
-    DesRound() // 8
-
-    AsmFPERM()
-
-    //end
-    AS2(    movd  ebp, mm6                      )
-
-    // swap and write out
-    AS1(    bswap ebx                           )
-    AS1(    bswap eax                           )
-
-#ifdef __GNUC__
-    AS2(    movd  esi, mm7   )   // outBlock
-#else
-    AS2(    mov   esi, DWORD PTR [ebp +  12]    )   // outBlock
-#endif
-
-    AS2(    mov   DWORD PTR [esi],     ebx      )   // right first
-    AS2(    mov   DWORD PTR [esi + 4], eax      )
-    
-
-    EPILOG()
-}
-
-
-
-#endif // defined(DO_DES_ASM)
-
-
-}  // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/dh.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/dh.cpp
deleted file mode 100644
index 615a8c6d..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/dh.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* dh.cpp implements Diffie-Hellman support
-*/
-
-#include "runtime.hpp"
-#include "dh.hpp"
-#include "asn.hpp"
-#include 
-
-namespace TaoCrypt {
-
-
-namespace {  // locals
-
-unsigned int DiscreteLogWorkFactor(unsigned int n)
-{
-    // assuming discrete log takes about the same time as factoring
-    if (n<5)
-        return 0;
-    else
-        return (unsigned int)(2.4 * pow((double)n, 1.0/3.0) *
-                pow(log(double(n)), 2.0/3.0) - 5);
-}
-
-} // namespace locals
-
-
-// Generate a DH Key Pair
-void DH::GenerateKeyPair(RandomNumberGenerator& rng, byte* priv, byte* pub)
-{
-    GeneratePrivate(rng, priv);
-    GeneratePublic(priv, pub);
-}
-
-
-// Generate private value
-void DH::GeneratePrivate(RandomNumberGenerator& rng, byte* priv)
-{
-    Integer x(rng, Integer::One(), min(p_ - 1,
-        Integer::Power2(2*DiscreteLogWorkFactor(p_.BitCount())) ) );
-    x.Encode(priv, p_.ByteCount());
-}
-
-
-// Generate public value
-void DH::GeneratePublic(const byte* priv, byte* pub)
-{
-    const word32 bc(p_.ByteCount());
-    Integer x(priv, bc);
-    Integer y(a_exp_b_mod_c(g_, x, p_));
-    y.Encode(pub, bc);
-}
-
-
-// Generate Agreement
-void DH::Agree(byte* agree, const byte* priv, const byte* otherPub, word32
-               otherSz)
-{
-    const word32 bc(p_.ByteCount());
-    Integer x(priv, bc);
-    Integer y;
-    if (otherSz)
-        y.Decode(otherPub, otherSz);
-    else
-        y.Decode(otherPub, bc);
-
-    Integer z(a_exp_b_mod_c(y, x, p_));
-    z.Encode(agree, bc);
-}
-
-
-DH::DH(Source& source)
-{
-    Initialize(source);
-}
-
-
-void DH::Initialize(Source& source)
-{
-    DH_Decoder decoder(source);
-    decoder.Decode(*this);
-}
-
-
-} // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/dsa.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/dsa.cpp
deleted file mode 100644
index b19fed92..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/dsa.cpp
+++ /dev/null
@@ -1,274 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-#include "runtime.hpp"
-#include "dsa.hpp"
-#include "sha.hpp"
-#include "asn.hpp"
-#include "modarith.hpp"
-
-
-namespace TaoCrypt {
-
-
-void DSA_PublicKey::Swap(DSA_PublicKey& other)
-{
-    p_.Swap(other.p_);
-    q_.Swap(other.q_);
-    g_.Swap(other.g_);
-    y_.Swap(other.y_);
-}
-
-
-DSA_PublicKey::DSA_PublicKey(const DSA_PublicKey& other)
-    : p_(other.p_), q_(other.q_), g_(other.g_), y_(other.y_)
-{}
-
-
-DSA_PublicKey& DSA_PublicKey::operator=(const DSA_PublicKey& that)
-{
-    DSA_PublicKey tmp(that);
-    Swap(tmp);
-    return *this;
-}
-
-
-DSA_PublicKey::DSA_PublicKey(Source& source)
-{
-    Initialize(source);
-}
-
-
-void DSA_PublicKey::Initialize(Source& source)
-{
-    DSA_Public_Decoder decoder(source);
-    decoder.Decode(*this);
-}
-
-
-void DSA_PublicKey::Initialize(const Integer& p, const Integer& q,
-                               const Integer& g, const Integer& y)
-{
-    p_ = p;
-    q_ = q;
-    g_ = g;
-    y_ = y;
-}
-   
-
-const Integer& DSA_PublicKey::GetModulus() const
-{
-    return p_;
-}
-
-const Integer& DSA_PublicKey::GetSubGroupOrder() const
-{
-    return q_;
-}
-
-
-const Integer& DSA_PublicKey::GetSubGroupGenerator() const
-{
-    return g_;
-}
-
-
-const Integer& DSA_PublicKey::GetPublicPart() const
-{
-    return y_;
-}
-
-
-void DSA_PublicKey::SetModulus(const Integer& p)
-{
-    p_ = p;
-}
-
-
-void DSA_PublicKey::SetSubGroupOrder(const Integer& q)
-{
-    q_ = q;
-}
-
-
-void DSA_PublicKey::SetSubGroupGenerator(const Integer& g)
-{
-    g_ = g;
-}
-
-
-void DSA_PublicKey::SetPublicPart(const Integer& y)
-{
-    y_ = y;
-}
-
-
-word32 DSA_PublicKey::SignatureLength() const
-{
-    return GetSubGroupOrder().ByteCount() * 2;  // r and s
-}
-
-
-
-DSA_PrivateKey::DSA_PrivateKey(Source& source)
-{
-    Initialize(source);
-}
-
-
-void DSA_PrivateKey::Initialize(Source& source)
-{
-    DSA_Private_Decoder decoder(source);
-    decoder.Decode(*this);
-}
-
-
-void DSA_PrivateKey::Initialize(const Integer& p, const Integer& q,
-                                const Integer& g, const Integer& y,
-                                const Integer& x)
-{
-    DSA_PublicKey::Initialize(p, q, g, y);
-    x_ = x;
-}
-
-
-const Integer& DSA_PrivateKey::GetPrivatePart() const
-{
-    return x_;
-}
-
-
-void DSA_PrivateKey::SetPrivatePart(const Integer& x)
-{
-    x_ = x;
-}
-
-
-DSA_Signer::DSA_Signer(const DSA_PrivateKey& key)
-    : key_(key)
-{}
-
-
-word32 DSA_Signer::Sign(const byte* sha_digest, byte* sig,
-                        RandomNumberGenerator& rng)
-{
-    const Integer& p = key_.GetModulus();
-    const Integer& q = key_.GetSubGroupOrder();
-    const Integer& g = key_.GetSubGroupGenerator();
-    const Integer& x = key_.GetPrivatePart();
-    byte* tmpPtr = sig;  // initial signature output
-
-    Integer k(rng, 1, q - 1);
-
-    r_ =  a_exp_b_mod_c(g, k, p);
-    r_ %= q;
-
-    Integer H(sha_digest, SHA::DIGEST_SIZE);  // sha Hash(m)
-
-    Integer kInv = k.InverseMod(q);
-    s_ = (kInv * (H + x*r_)) % q;
-
-    if (!(!!r_ && !!s_))
-        return -1;
-
-    int rSz = r_.ByteCount();
-    int tmpSz = rSz;
-
-    while (tmpSz++ < SHA::DIGEST_SIZE) {
-        *sig++ = 0;
-    }
-    
-    r_.Encode(sig,  rSz);
-
-    sig = tmpPtr + SHA::DIGEST_SIZE;  // advance sig output to s
-    int sSz = s_.ByteCount();
-    tmpSz = sSz;
-
-    while (tmpSz++ < SHA::DIGEST_SIZE) {
-        *sig++ = 0;
-    }
-
-    s_.Encode(sig, sSz);
-
-    return 40;
-}
-
-
-DSA_Verifier::DSA_Verifier(const DSA_PublicKey& key)
-    : key_(key)
-{}
-
-
-bool DSA_Verifier::Verify(const byte* sha_digest, const byte* sig)
-{
-    const Integer& p = key_.GetModulus();
-    const Integer& q = key_.GetSubGroupOrder();
-    const Integer& g = key_.GetSubGroupGenerator();
-    const Integer& y = key_.GetPublicPart();
-
-    int sz = q.ByteCount();
-
-    r_.Decode(sig, sz);
-    s_.Decode(sig + sz, sz);
-
-    if (r_ >= q || r_ < 1 || s_ >= q || s_ < 1)
-        return false;
-
-    Integer H(sha_digest, SHA::DIGEST_SIZE);  // sha Hash(m)
-
-    Integer w = s_.InverseMod(q);
-    Integer u1 = (H  * w) % q;
-    Integer u2 = (r_ * w) % q;
-
-    // verify r == ((g^u1 * y^u2) mod p) mod q
-    ModularArithmetic ma(p);
-    Integer v = ma.CascadeExponentiate(g, u1, y, u2);
-    v %= q;
-
-    return r_ == v;
-}
-
-
-
-
-const Integer& DSA_Signer::GetR() const
-{
-    return r_;
-}
-
-
-const Integer& DSA_Signer::GetS() const
-{
-    return s_;
-}
-
-
-const Integer& DSA_Verifier::GetR() const
-{
-    return r_;
-}
-
-
-const Integer& DSA_Verifier::GetS() const
-{
-    return s_;
-}
-
-
-} // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/file.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/file.cpp
deleted file mode 100644
index 7c2044bf..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/file.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* file.cpp implements File Sources and Sinks
-*/
-
-#include "runtime.hpp"
-#include "file.hpp"
-
-
-namespace TaoCrypt {
-
-
-FileSource::FileSource(const char* fname, Source& source)
-{
-    file_ = fopen(fname, "rb");
-    if (file_) get(source);
-}
-
-
-FileSource::~FileSource()
-{
-    if (file_)
-        fclose(file_);
-}
-
-
-
-// return size of source from beginning or current position
-word32 FileSource::size(bool use_current)
-{
-    long current = ftell(file_);
-    long begin   = current;
-
-    if (!use_current) {
-        fseek(file_, 0, SEEK_SET);
-        begin = ftell(file_);
-    }
-
-    fseek(file_, 0, SEEK_END);
-    long end = ftell(file_);
-
-    fseek(file_, current, SEEK_SET);
-
-    return end - begin;
-}
-
-
-word32 FileSource::size_left()
-{
-    return size(true);
-}
-
-
-// fill file source from source
-word32 FileSource::get(Source& source)
-{
-    word32 sz(size());
-    if (source.size() < sz)
-        source.grow(sz);
-
-    size_t bytes = fread(source.buffer_.get_buffer(), 1, sz, file_);
-
-    if (bytes == 1)
-        return sz;
-    else
-        return 0;
-}
-
-
-FileSink::FileSink(const char* fname, Source& source)
-{
-    file_ = fopen(fname, "wb");
-    if (file_) put(source);
-}
-
-
-FileSink::~FileSink()
-{
-    if (file_)
-        fclose(file_);
-}
-
-
-// fill source from file sink
-void FileSink::put(Source& source)
-{
-    fwrite(source.get_buffer(), 1, source.size(), file_);
-}
-
-
-// swap with other and reset to beginning
-void Source::reset(ByteBlock& otherBlock)
-{
-    buffer_.Swap(otherBlock);   
-    current_ = 0;
-}
-
-
-}  // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/hash.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/hash.cpp
deleted file mode 100644
index c176e6a6..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/hash.cpp
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* hash.cpp implements a base for digest types
-*/
-
-#include "runtime.hpp"
-#include 
-
-#include "hash.hpp"
-
-
-namespace TaoCrypt {
-
-
-HASHwithTransform::HASHwithTransform(word32 digSz, word32 buffSz)
-{
-}
-
-
-void HASHwithTransform::AddLength(word32 len)
-{
-    HashLengthType tmp = loLen_;
-    if ( (loLen_ += len) < tmp)
-        hiLen_++;                       // carry low to high
-    hiLen_ += SafeRightShift<8*sizeof(HashLengthType)>(len);
-}
-
-
-// Update digest with data of size len, do in blocks
-void HASHwithTransform::Update(const byte* data, word32 len)
-{
-    // do block size increments
-    word32 blockSz = getBlockSize();
-    byte*  local   = reinterpret_cast(buffer_);
-
-    while (len) {
-        word32 add = min(len, blockSz - buffLen_);
-        memcpy(&local[buffLen_], data, add);
-
-        buffLen_ += add;
-        data     += add;
-        len      -= add;
-
-        if (buffLen_ == blockSz) {
-            ByteReverseIf(local, local, blockSz, getByteOrder());
-            Transform();
-            AddLength(blockSz);
-            buffLen_ = 0;
-        }
-    }
-}
-
-
-// Final process, place digest in hash
-void HASHwithTransform::Final(byte* hash)
-{
-    word32    blockSz  = getBlockSize();
-    word32    digestSz = getDigestSize();
-    word32    padSz    = getPadSize();
-    ByteOrder order    = getByteOrder();
-
-    AddLength(buffLen_);                        // before adding pads
-    HashLengthType preLoLen = GetBitCountLo();
-    HashLengthType preHiLen = GetBitCountHi();
-    byte*     local         = reinterpret_cast(buffer_);
-
-    local[buffLen_++] = 0x80;  // add 1
-
-    // pad with zeros
-    if (buffLen_ > padSz) {
-        memset(&local[buffLen_], 0, blockSz - buffLen_);
-        buffLen_ += blockSz - buffLen_;
-
-        ByteReverseIf(local, local, blockSz, order);
-        Transform();
-        buffLen_ = 0;
-    }
-    memset(&local[buffLen_], 0, padSz - buffLen_);
-   
-    ByteReverseIf(local, local, blockSz, order);
-    
-    memcpy(&local[padSz],   order ? &preHiLen : &preLoLen, sizeof(preLoLen));
-    memcpy(&local[padSz+4], order ? &preLoLen : &preHiLen, sizeof(preLoLen));
-
-    Transform();
-    ByteReverseIf(digest_, digest_, digestSz, order);
-    memcpy(hash, digest_, digestSz);
-
-    Init();  // reset state
-}
-
-
-#ifdef WORD64_AVAILABLE
-
-HASH64withTransform::HASH64withTransform(word32 digSz, word32 buffSz)
-{
-}
-
-
-void HASH64withTransform::AddLength(word32 len)
-{
-    HashLengthType tmp = loLen_;
-    if ( (loLen_ += len) < tmp)
-        hiLen_++;                       // carry low to high
-    hiLen_ += SafeRightShift<8*sizeof(HashLengthType)>(len);
-}
-
-
-// Update digest with data of size len, do in blocks
-void HASH64withTransform::Update(const byte* data, word32 len)
-{
-    // do block size increments
-    word32 blockSz = getBlockSize();
-    byte*  local   = reinterpret_cast(buffer_);
-
-    while (len) {
-        word32 add = min(len, blockSz - buffLen_);
-        memcpy(&local[buffLen_], data, add);
-
-        buffLen_ += add;
-        data     += add;
-        len      -= add;
-
-        if (buffLen_ == blockSz) {
-            ByteReverseIf(buffer_, buffer_, blockSz, getByteOrder());
-            Transform();
-            AddLength(blockSz);
-            buffLen_ = 0;
-        }
-    }
-}
-
-
-// Final process, place digest in hash
-void HASH64withTransform::Final(byte* hash)
-{
-    word32    blockSz  = getBlockSize();
-    word32    digestSz = getDigestSize();
-    word32    padSz    = getPadSize();
-    ByteOrder order    = getByteOrder();
-
-    AddLength(buffLen_);                        // before adding pads
-    HashLengthType preLoLen = GetBitCountLo();
-    HashLengthType preHiLen = GetBitCountHi();
-    byte*     local         = reinterpret_cast(buffer_);
-
-    local[buffLen_++] = 0x80;  // add 1
-
-    // pad with zeros
-    if (buffLen_ > padSz) {
-        memset(&local[buffLen_], 0, blockSz - buffLen_);
-        buffLen_ += blockSz - buffLen_;
-
-        ByteReverseIf(buffer_, buffer_, blockSz, order);
-        Transform();
-        buffLen_ = 0;
-    }
-    memset(&local[buffLen_], 0, padSz - buffLen_);
-   
-    ByteReverseIf(buffer_, buffer_, padSz, order);
-    
-    buffer_[blockSz / sizeof(word64) - 2] = order ? preHiLen : preLoLen;
-    buffer_[blockSz / sizeof(word64) - 1] = order ? preLoLen : preHiLen;
-
-    Transform();
-    ByteReverseIf(digest_, digest_, digestSz, order);
-    memcpy(hash, digest_, digestSz);
-
-    Init();  // reset state
-}
-
-#endif // WORD64_AVAILABLE
-
-
-} // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/hc128.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/hc128.cpp
deleted file mode 100644
index 1d329c87..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/hc128.cpp
+++ /dev/null
@@ -1,317 +0,0 @@
-/*
-   Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-#include "runtime.hpp"
-#include "hc128.hpp"
-
-
-
-namespace TaoCrypt {
-
-
-
-
-#ifdef BIG_ENDIAN_ORDER
-    #define LITTLE32(x) ByteReverse((word32)x)
-#else
-    #define LITTLE32(x) (x)
-#endif
-
-
-/*h1 function*/
-#define h1(x, y) {                              \
-     byte a,c;                                  \
-     a = (byte) (x);                            \
-     c = (byte) ((x) >> 16);                    \
-     y = (T_[512+a])+(T_[512+256+c]);           \
-}
-
-/*h2 function*/
-#define h2(x, y) {                              \
-     byte a,c;                                  \
-     a = (byte) (x);                            \
-     c = (byte) ((x) >> 16);                    \
-     y = (T_[a])+(T_[256+c]);                   \
-}
-
-/*one step of HC-128, update P and generate 32 bits keystream*/
-#define step_P(u,v,a,b,c,d,n){                  \
-     word32 tem0,tem1,tem2,tem3;                \
-     h1((X_[(d)]),tem3);                        \
-     tem0 = rotrFixed((T_[(v)]),23);            \
-     tem1 = rotrFixed((X_[(c)]),10);            \
-     tem2 = rotrFixed((X_[(b)]),8);             \
-     (T_[(u)]) += tem2+(tem0 ^ tem1);           \
-     (X_[(a)]) = (T_[(u)]);                     \
-     (n) = tem3 ^ (T_[(u)]) ;                   \
-}       
-
-/*one step of HC-128, update Q and generate 32 bits keystream*/
-#define step_Q(u,v,a,b,c,d,n){                  \
-     word32 tem0,tem1,tem2,tem3;                \
-     h2((Y_[(d)]),tem3);                        \
-     tem0 = rotrFixed((T_[(v)]),(32-23));       \
-     tem1 = rotrFixed((Y_[(c)]),(32-10));       \
-     tem2 = rotrFixed((Y_[(b)]),(32-8));        \
-     (T_[(u)]) += tem2 + (tem0 ^ tem1);         \
-     (Y_[(a)]) = (T_[(u)]);                     \
-     (n) = tem3 ^ (T_[(u)]) ;                   \
-}   
-
-
-/*16 steps of HC-128, generate 512 bits keystream*/
-void HC128::GenerateKeystream(word32* keystream)  
-{
-   word32 cc,dd;
-   cc = counter1024_ & 0x1ff;
-   dd = (cc+16)&0x1ff;
-
-   if (counter1024_ < 512)	
-   {   		
-      counter1024_ = (counter1024_ + 16) & 0x3ff;
-      step_P(cc+0, cc+1, 0, 6, 13,4, keystream[0]);
-      step_P(cc+1, cc+2, 1, 7, 14,5, keystream[1]);
-      step_P(cc+2, cc+3, 2, 8, 15,6, keystream[2]);
-      step_P(cc+3, cc+4, 3, 9, 0, 7, keystream[3]);
-      step_P(cc+4, cc+5, 4, 10,1, 8, keystream[4]);
-      step_P(cc+5, cc+6, 5, 11,2, 9, keystream[5]);
-      step_P(cc+6, cc+7, 6, 12,3, 10,keystream[6]);
-      step_P(cc+7, cc+8, 7, 13,4, 11,keystream[7]);
-      step_P(cc+8, cc+9, 8, 14,5, 12,keystream[8]);
-      step_P(cc+9, cc+10,9, 15,6, 13,keystream[9]);
-      step_P(cc+10,cc+11,10,0, 7, 14,keystream[10]);
-      step_P(cc+11,cc+12,11,1, 8, 15,keystream[11]);
-      step_P(cc+12,cc+13,12,2, 9, 0, keystream[12]);
-      step_P(cc+13,cc+14,13,3, 10,1, keystream[13]);
-      step_P(cc+14,cc+15,14,4, 11,2, keystream[14]);
-      step_P(cc+15,dd+0, 15,5, 12,3, keystream[15]);
-   }
-   else				    
-   {
-	  counter1024_ = (counter1024_ + 16) & 0x3ff;
-      step_Q(512+cc+0, 512+cc+1, 0, 6, 13,4, keystream[0]);
-      step_Q(512+cc+1, 512+cc+2, 1, 7, 14,5, keystream[1]);
-      step_Q(512+cc+2, 512+cc+3, 2, 8, 15,6, keystream[2]);
-      step_Q(512+cc+3, 512+cc+4, 3, 9, 0, 7, keystream[3]);
-      step_Q(512+cc+4, 512+cc+5, 4, 10,1, 8, keystream[4]);
-      step_Q(512+cc+5, 512+cc+6, 5, 11,2, 9, keystream[5]);
-      step_Q(512+cc+6, 512+cc+7, 6, 12,3, 10,keystream[6]);
-      step_Q(512+cc+7, 512+cc+8, 7, 13,4, 11,keystream[7]);
-      step_Q(512+cc+8, 512+cc+9, 8, 14,5, 12,keystream[8]);
-      step_Q(512+cc+9, 512+cc+10,9, 15,6, 13,keystream[9]);
-      step_Q(512+cc+10,512+cc+11,10,0, 7, 14,keystream[10]);
-      step_Q(512+cc+11,512+cc+12,11,1, 8, 15,keystream[11]);
-      step_Q(512+cc+12,512+cc+13,12,2, 9, 0, keystream[12]);
-      step_Q(512+cc+13,512+cc+14,13,3, 10,1, keystream[13]);
-      step_Q(512+cc+14,512+cc+15,14,4, 11,2, keystream[14]);
-      step_Q(512+cc+15,512+dd+0, 15,5, 12,3, keystream[15]);
-   }
-}
-
-
-/* The following defines the initialization functions */
-#define f1(x)  (rotrFixed((x),7)  ^ rotrFixed((x),18) ^ ((x) >> 3))
-#define f2(x)  (rotrFixed((x),17) ^ rotrFixed((x),19) ^ ((x) >> 10))
-
-/*update table P*/
-#define update_P(u,v,a,b,c,d){                      \
-     word32 tem0,tem1,tem2,tem3;                    \
-     tem0 = rotrFixed((T_[(v)]),23);                \
-     tem1 = rotrFixed((X_[(c)]),10);                \
-     tem2 = rotrFixed((X_[(b)]),8);                 \
-     h1((X_[(d)]),tem3);                            \
-     (T_[(u)]) = ((T_[(u)]) + tem2+(tem0^tem1)) ^ tem3;     \
-     (X_[(a)]) = (T_[(u)]);                         \
-}  
-
-/*update table Q*/
-#define update_Q(u,v,a,b,c,d){                      \
-     word32 tem0,tem1,tem2,tem3;                    \
-     tem0 = rotrFixed((T_[(v)]),(32-23));           \
-     tem1 = rotrFixed((Y_[(c)]),(32-10));           \
-     tem2 = rotrFixed((Y_[(b)]),(32-8));            \
-     h2((Y_[(d)]),tem3);                            \
-     (T_[(u)]) = ((T_[(u)]) + tem2+(tem0^tem1)) ^ tem3;     \
-     (Y_[(a)]) = (T_[(u)]);                         \
-}     
-
-/*16 steps of HC-128, without generating keystream, */
-/*but use the outputs to update P and Q*/
-void HC128::SetupUpdate()  /*each time 16 steps*/
-{
-   word32 cc,dd;
-   cc = counter1024_ & 0x1ff;
-   dd = (cc+16)&0x1ff;
-
-   if (counter1024_ < 512)	
-   {   		
-      counter1024_ = (counter1024_ + 16) & 0x3ff;
-      update_P(cc+0, cc+1, 0, 6, 13, 4);
-      update_P(cc+1, cc+2, 1, 7, 14, 5);
-      update_P(cc+2, cc+3, 2, 8, 15, 6);
-      update_P(cc+3, cc+4, 3, 9, 0,  7);
-      update_P(cc+4, cc+5, 4, 10,1,  8);
-      update_P(cc+5, cc+6, 5, 11,2,  9);
-      update_P(cc+6, cc+7, 6, 12,3,  10);
-      update_P(cc+7, cc+8, 7, 13,4,  11);
-      update_P(cc+8, cc+9, 8, 14,5,  12);
-      update_P(cc+9, cc+10,9, 15,6,  13);
-      update_P(cc+10,cc+11,10,0, 7,  14);
-      update_P(cc+11,cc+12,11,1, 8,  15);
-      update_P(cc+12,cc+13,12,2, 9,  0);
-      update_P(cc+13,cc+14,13,3, 10, 1);
-      update_P(cc+14,cc+15,14,4, 11, 2);
-      update_P(cc+15,dd+0, 15,5, 12, 3);   
-   }
-   else				    
-   {
-      counter1024_ = (counter1024_ + 16) & 0x3ff;
-      update_Q(512+cc+0, 512+cc+1, 0, 6, 13, 4);
-      update_Q(512+cc+1, 512+cc+2, 1, 7, 14, 5);
-      update_Q(512+cc+2, 512+cc+3, 2, 8, 15, 6);
-      update_Q(512+cc+3, 512+cc+4, 3, 9, 0,  7);
-      update_Q(512+cc+4, 512+cc+5, 4, 10,1,  8);
-      update_Q(512+cc+5, 512+cc+6, 5, 11,2,  9);
-      update_Q(512+cc+6, 512+cc+7, 6, 12,3,  10);
-      update_Q(512+cc+7, 512+cc+8, 7, 13,4,  11);
-      update_Q(512+cc+8, 512+cc+9, 8, 14,5,  12);
-      update_Q(512+cc+9, 512+cc+10,9, 15,6,  13);
-      update_Q(512+cc+10,512+cc+11,10,0, 7,  14);
-      update_Q(512+cc+11,512+cc+12,11,1, 8,  15);
-      update_Q(512+cc+12,512+cc+13,12,2, 9,  0);
-      update_Q(512+cc+13,512+cc+14,13,3, 10, 1);
-      update_Q(512+cc+14,512+cc+15,14,4, 11, 2);
-      update_Q(512+cc+15,512+dd+0, 15,5, 12, 3); 
-   }       
-}
-
-
-/* for the 128-bit key:  key[0]...key[15]
-*  key[0] is the least significant byte of ctx->key[0] (K_0);
-*  key[3] is the most significant byte of ctx->key[0]  (K_0);
-*  ...
-*  key[12] is the least significant byte of ctx->key[3] (K_3)
-*  key[15] is the most significant byte of ctx->key[3]  (K_3)
-*
-*  for the 128-bit iv:  iv[0]...iv[15]
-*  iv[0] is the least significant byte of ctx->iv[0] (IV_0);
-*  iv[3] is the most significant byte of ctx->iv[0]  (IV_0);
-*  ...
-*  iv[12] is the least significant byte of ctx->iv[3] (IV_3)
-*  iv[15] is the most significant byte of ctx->iv[3]  (IV_3)
-*/
-
-
-
-void HC128::SetIV(const byte* iv)
-{ 
-    word32 i;
-	
-	for (i = 0; i < (128 >> 5); i++)
-        iv_[i] = LITTLE32(((word32*)iv)[i]);
-	
-    for (; i < 8; i++) iv_[i] = iv_[i-4];
-  
-    /* expand the key and IV into the table T */ 
-    /* (expand the key and IV into the table P and Q) */ 
-	
-	for (i = 0; i < 8;  i++)   T_[i] = key_[i];
-	for (i = 8; i < 16; i++)   T_[i] = iv_[i-8];
-
-    for (i = 16; i < (256+16); i++) 
-		T_[i] = f2(T_[i-2]) + T_[i-7] + f1(T_[i-15]) + T_[i-16]+i;
-    
-	for (i = 0; i < 16;  i++)  T_[i] = T_[256+i];
-
-	for (i = 16; i < 1024; i++) 
-		T_[i] = f2(T_[i-2]) + T_[i-7] + f1(T_[i-15]) + T_[i-16]+256+i;
-    
-    /* initialize counter1024, X and Y */
-	counter1024_ = 0;
-	for (i = 0; i < 16; i++) X_[i] = T_[512-16+i];
-    for (i = 0; i < 16; i++) Y_[i] = T_[512+512-16+i];
-    
-    /* run the cipher 1024 steps before generating the output */
-	for (i = 0; i < 64; i++)  SetupUpdate();  
-}
-
-
-void HC128::SetKey(const byte* key, const byte* iv)
-{ 
-  word32 i;  
-
-  /* Key size in bits 128 */ 
-  for (i = 0; i < (128 >> 5); i++)
-      key_[i] = LITTLE32(((word32*)key)[i]);
- 
-  for ( ; i < 8 ; i++) key_[i] = key_[i-4];
-
-  SetIV(iv);
-}
-
-
-/* The following defines the encryption of data stream */
-void HC128::Process(byte* output, const byte* input, word32 msglen)
-{
-  word32 i, keystream[16];
-
-  for ( ; msglen >= 64; msglen -= 64, input += 64, output += 64)
-  {
-	  GenerateKeystream(keystream);
-
-      /* unroll loop */
-	  ((word32*)output)[0]  = ((word32*)input)[0]  ^ LITTLE32(keystream[0]);
-	  ((word32*)output)[1]  = ((word32*)input)[1]  ^ LITTLE32(keystream[1]);
-	  ((word32*)output)[2]  = ((word32*)input)[2]  ^ LITTLE32(keystream[2]);
-	  ((word32*)output)[3]  = ((word32*)input)[3]  ^ LITTLE32(keystream[3]);
-	  ((word32*)output)[4]  = ((word32*)input)[4]  ^ LITTLE32(keystream[4]);
-	  ((word32*)output)[5]  = ((word32*)input)[5]  ^ LITTLE32(keystream[5]);
-	  ((word32*)output)[6]  = ((word32*)input)[6]  ^ LITTLE32(keystream[6]);
-	  ((word32*)output)[7]  = ((word32*)input)[7]  ^ LITTLE32(keystream[7]);
-	  ((word32*)output)[8]  = ((word32*)input)[8]  ^ LITTLE32(keystream[8]);
-	  ((word32*)output)[9]  = ((word32*)input)[9]  ^ LITTLE32(keystream[9]);
-	  ((word32*)output)[10] = ((word32*)input)[10] ^ LITTLE32(keystream[10]);
-	  ((word32*)output)[11] = ((word32*)input)[11] ^ LITTLE32(keystream[11]);
-	  ((word32*)output)[12] = ((word32*)input)[12] ^ LITTLE32(keystream[12]);
-	  ((word32*)output)[13] = ((word32*)input)[13] ^ LITTLE32(keystream[13]);
-	  ((word32*)output)[14] = ((word32*)input)[14] ^ LITTLE32(keystream[14]);
-	  ((word32*)output)[15] = ((word32*)input)[15] ^ LITTLE32(keystream[15]);
-  }
-
-  if (msglen > 0)
-  {
-      GenerateKeystream(keystream);
-
-#ifdef BIG_ENDIAN_ORDER
-      {
-          word32 wordsLeft = msglen / sizeof(word32);
-          if (msglen % sizeof(word32)) wordsLeft++;
-          
-          ByteReverse(keystream, keystream, wordsLeft * sizeof(word32));
-      }
-#endif
-
-      for (i = 0; i < msglen; i++)
-	      output[i] = input[i] ^ ((byte*)keystream)[i];
-  }
-
-}
-
-
-}  // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/integer.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/integer.cpp
deleted file mode 100644
index b356e6be..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/integer.cpp
+++ /dev/null
@@ -1,3899 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */
-
-/* based on Wei Dai's integer.cpp from CryptoPP */
-
-#include "runtime.hpp"
-#include "integer.hpp"
-#include "modarith.hpp"
-#include "asn.hpp"
-
-
-
-#ifdef __DECCXX
-    #include   // for asm overflow assembly
-#endif
-
-#if defined(_M_X64) || defined(_M_IA64)
-    #include  
-#pragma intrinsic(_umul128)
-#endif
-
-
-#ifdef __GNUC__
-    #include 
-    #include 
-#endif
-
-
-#ifdef SSE2_INTRINSICS_AVAILABLE
-    #ifdef __GNUC__
-        #include 
-        #ifdef TAOCRYPT_MEMALIGN_AVAILABLE
-            #include 
-        #else
-            #include 
-        #endif
-    #else
-        #include 
-    #endif
-#elif defined(_MSC_VER) && defined(_M_IX86)
-/*    #pragma message("You do not seem to have the Visual C++ Processor Pack ")
-    #pragma message("installed, so use of SSE2 intrinsics will be disabled.")
-*/
-#elif defined(__GNUC__) && defined(__i386__)
-/*   #warning You do not have GCC 3.3 or later, or did not specify the -msse2 \
-             compiler option. Use of SSE2 intrinsics will be disabled.
-*/
-#endif
-
-
-namespace TaoCrypt {
-
-
-#ifdef SSE2_INTRINSICS_AVAILABLE
-
-template 
-CPP_TYPENAME AlignedAllocator::pointer AlignedAllocator::allocate(
-                                           size_type n, const void *)
-{
-    if (n > this->max_size())
-        return 0;
-    if (n == 0)
-        return 0;
-    if (n >= 4)
-    {
-        void* p;
-    #ifdef TAOCRYPT_MM_MALLOC_AVAILABLE
-        p = _mm_malloc(sizeof(T)*n, 16);
-    #elif defined(TAOCRYPT_MEMALIGN_AVAILABLE)
-        p = memalign(16, sizeof(T)*n);
-    #elif defined(TAOCRYPT_MALLOC_ALIGNMENT_IS_16)
-        p = malloc(sizeof(T)*n);
-    #else
-        p = (byte *)malloc(sizeof(T)*n + 8);
-        // assume malloc alignment is at least 8
-    #endif
-
-    #ifdef TAOCRYPT_NO_ALIGNED_ALLOC
-        m_pBlock = p;
-        if (!IsAlignedOn(p, 16))
-        {
-            p = (byte *)p + 8;
-        }
-    #endif
-
-        return (T*)p;
-    }
-    return NEW_TC T[n];
-}
-
-
-template 
-void AlignedAllocator::deallocate(void* p, size_type n)
-{
-    memset(p, 0, n*sizeof(T));
-    if (n >= 4)
-    {
-        #ifdef TAOCRYPT_MM_MALLOC_AVAILABLE
-            _mm_free(p);
-        #elif defined(TAOCRYPT_NO_ALIGNED_ALLOC)
-            free(m_pBlock);
-            m_pBlock = 0;
-        #else
-            free(p);
-        #endif
-    }
-    else
-        tcArrayDelete((T *)p);
-}
-
-#endif  // SSE2
-
-
-// ********  start of integer needs
-
-// start 5.2.1 adds DWord and Word ********
-
-// ********************************************************
-
-class DWord {
-public:
-DWord() {}
-
-#ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE
-    explicit DWord(word low)
-    {
-        whole_ = low;
-    }
-#else
-    explicit DWord(word low)
-    {
-        halfs_.low = low;
-        halfs_.high = 0;
-    }
-#endif
-
-    DWord(word low, word high)
-    {
-        halfs_.low = low;
-        halfs_.high = high;
-    }
-
-    static DWord Multiply(word a, word b)
-    {
-        DWord r;
-
-        #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE
-            r.whole_ = (dword)a * b;
-
-        #elif defined(_M_X64) || defined(_M_IA64)
-            r.halfs_.low = _umul128(a, b, &r.halfs_.high);
-
-        #elif defined(__alpha__)
-            r.halfs_.low = a*b;
-            #ifdef __GNUC__
-                __asm__("umulh %1,%2,%0" : "=r" (r.halfs_.high)
-                    : "r" (a), "r" (b));
-            #elif defined(__DECCXX)
-                r.halfs_.high = asm("umulh %a0, %a1, %v0", a, b);
-            #else
-                #error unknown alpha compiler
-            #endif
-
-        #elif defined(__ia64__)
-            r.halfs_.low = a*b;
-            __asm__("xmpy.hu %0=%1,%2" : "=f" (r.halfs_.high)
-                : "f" (a), "f" (b));
-
-        #elif defined(_ARCH_PPC64)
-            r.halfs_.low = a*b;
-            __asm__("mulhdu %0,%1,%2" : "=r" (r.halfs_.high)
-                : "r" (a), "r" (b) : "cc");
-
-        #elif defined(__x86_64__)
-            __asm__("mulq %3" : "=d" (r.halfs_.high), "=a" (r.halfs_.low) :
-                "a" (a), "rm" (b) : "cc");
-
-        #elif defined(__mips64)
-            __asm__("dmultu %2,%3" : "=h" (r.halfs_.high), "=l" (r.halfs_.low)
-                : "r" (a), "r" (b));
-
-        #elif defined(_M_IX86)
-            // for testing
-            word64 t = (word64)a * b;
-            r.halfs_.high = ((word32 *)(&t))[1];
-            r.halfs_.low = (word32)t;
-        #else
-            #error can not implement DWord
-        #endif
-
-        return r;
-    }
-
-    static DWord MultiplyAndAdd(word a, word b, word c)
-    {
-        DWord r = Multiply(a, b);
-        return r += c;
-    }
-
-    DWord & operator+=(word a)
-    {
-        #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE
-            whole_ = whole_ + a;
-        #else
-            halfs_.low += a;
-            halfs_.high += (halfs_.low < a);
-        #endif
-        return *this;
-    }
-
-    DWord operator+(word a)
-    {
-        DWord r;
-        #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE
-            r.whole_ = whole_ + a;
-        #else
-            r.halfs_.low = halfs_.low + a;
-            r.halfs_.high = halfs_.high + (r.halfs_.low < a);
-        #endif
-        return r;
-    }
-
-    DWord operator-(DWord a)
-    {
-        DWord r;
-        #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE
-            r.whole_ = whole_ - a.whole_;
-        #else
-            r.halfs_.low = halfs_.low - a.halfs_.low;
-            r.halfs_.high = halfs_.high - a.halfs_.high -
-                             (r.halfs_.low > halfs_.low);
-        #endif
-        return r;
-    }
-
-    DWord operator-(word a)
-    {
-        DWord r;
-        #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE
-            r.whole_ = whole_ - a;
-        #else
-            r.halfs_.low = halfs_.low - a;
-            r.halfs_.high = halfs_.high - (r.halfs_.low > halfs_.low);
-        #endif
-        return r;
-    }
-
-    // returns quotient, which must fit in a word
-    word operator/(word divisor);
-
-    word operator%(word a);
-
-    bool operator!() const
-    {
-    #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE
-        return !whole_;
-    #else
-        return !halfs_.high && !halfs_.low;
-    #endif
-    }
-
-    word GetLowHalf() const {return halfs_.low;}
-    word GetHighHalf() const {return halfs_.high;}
-    word GetHighHalfAsBorrow() const {return 0-halfs_.high;}
-
-private:
-    union
-    {
-    #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE
-        dword whole_;
-    #endif
-        struct
-        {
-        #ifdef LITTLE_ENDIAN_ORDER
-            word low;
-            word high;
-        #else
-            word high;
-            word low;
-        #endif
-        } halfs_;
-    };
-};
-
-
-class Word {
-public:
-    Word() {}
-
-    Word(word value)
-    {
-        whole_ = value;
-    }
-
-    Word(hword low, hword high)
-    {
-        whole_ = low | (word(high) << (WORD_BITS/2));
-    }
-
-    static Word Multiply(hword a, hword b)
-    {
-        Word r;
-        r.whole_ = (word)a * b;
-        return r;
-    }
-
-    Word operator-(Word a)
-    {
-        Word r;
-        r.whole_ = whole_ - a.whole_;
-        return r;
-    }
-
-    Word operator-(hword a)
-    {
-        Word r;
-        r.whole_ = whole_ - a;
-        return r;
-    }
-
-    // returns quotient, which must fit in a word
-    hword operator/(hword divisor)
-    {
-        return hword(whole_ / divisor);
-    }
-
-    bool operator!() const
-    {
-        return !whole_;
-    }
-
-    word GetWhole() const {return whole_;}
-    hword GetLowHalf() const {return hword(whole_);}
-    hword GetHighHalf() const {return hword(whole_>>(WORD_BITS/2));}
-    hword GetHighHalfAsBorrow() const {return 0-hword(whole_>>(WORD_BITS/2));}
-
-private:
-    word whole_;
-};
-
-
-// dummy is VC60 compiler bug workaround
-// do a 3 word by 2 word divide, returns quotient and leaves remainder in A
-template 
-S DivideThreeWordsByTwo(S* A, S B0, S B1, D* dummy_VC6_WorkAround = 0)
-{
-    // estimate the quotient: do a 2 S by 1 S divide
-    S Q;
-    if (S(B1+1) == 0)
-        Q = A[2];
-    else
-        Q = D(A[1], A[2]) / S(B1+1);
-
-    // now subtract Q*B from A
-    D p = D::Multiply(B0, Q);
-    D u = (D) A[0] - p.GetLowHalf();
-    A[0] = u.GetLowHalf();
-    u = (D) A[1] - p.GetHighHalf() - u.GetHighHalfAsBorrow() - 
-            D::Multiply(B1, Q);
-    A[1] = u.GetLowHalf();
-    A[2] += u.GetHighHalf();
-
-    // Q <= actual quotient, so fix it
-    while (A[2] || A[1] > B1 || (A[1]==B1 && A[0]>=B0))
-    {
-        u = (D) A[0] - B0;
-        A[0] = u.GetLowHalf();
-        u = (D) A[1] - B1 - u.GetHighHalfAsBorrow();
-        A[1] = u.GetLowHalf();
-        A[2] += u.GetHighHalf();
-        Q++;
-    }
-
-    return Q;
-}
-
-
-// do a 4 word by 2 word divide, returns 2 word quotient in Q0 and Q1
-template 
-inline D DivideFourWordsByTwo(S *T, const D &Al, const D &Ah, const D &B)
-{
-    if (!B) // if divisor is 0, we assume divisor==2**(2*WORD_BITS)
-        return D(Ah.GetLowHalf(), Ah.GetHighHalf());
-    else
-    {
-        S Q[2];
-        T[0] = Al.GetLowHalf();
-        T[1] = Al.GetHighHalf(); 
-        T[2] = Ah.GetLowHalf();
-        T[3] = Ah.GetHighHalf();
-        Q[1] = DivideThreeWordsByTwo(T+1, B.GetLowHalf(),
-                                                B.GetHighHalf());
-        Q[0] = DivideThreeWordsByTwo(T, B.GetLowHalf(), B.GetHighHalf());
-        return D(Q[0], Q[1]);
-    }
-}
-
-
-// returns quotient, which must fit in a word
-inline word DWord::operator/(word a)
-{
-    #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE
-        return word(whole_ / a);
-    #else
-        hword r[4];
-        return DivideFourWordsByTwo(r, halfs_.low,
-                                                    halfs_.high, a).GetWhole();
-    #endif
-}
-
-inline word DWord::operator%(word a)
-{
-    #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE
-        return word(whole_ % a);
-    #else
-        if (a < (word(1) << (WORD_BITS/2)))
-        {
-            hword h = hword(a);
-            word r = halfs_.high % h;
-            r = ((halfs_.low >> (WORD_BITS/2)) + (r << (WORD_BITS/2))) % h;
-            return hword((hword(halfs_.low) + (r << (WORD_BITS/2))) % h);
-        }
-        else
-        {
-            hword r[4];
-            DivideFourWordsByTwo(r, halfs_.low, halfs_.high, a);
-            return Word(r[0], r[1]).GetWhole();
-        }
-    #endif
-}
-
-
-
-// end 5.2.1 DWord and Word adds
-
-
-
-
-
-static const unsigned int RoundupSizeTable[] = {2, 2, 2, 4, 4, 8, 8, 8, 8};
-
-static inline unsigned int RoundupSize(unsigned int n)
-{
-    if (n<=8)
-        return RoundupSizeTable[n];
-    else if (n<=16)
-        return 16;
-    else if (n<=32)
-        return 32;
-    else if (n<=64)
-        return 64;
-    else return 1U << BitPrecision(n-1);
-}
-
-
-static int Compare(const word *A, const word *B, unsigned int N)
-{
-    while (N--)
-        if (A[N] > B[N])
-            return 1;
-        else if (A[N] < B[N])
-            return -1;
-
-    return 0;
-}
-
-static word Increment(word *A, unsigned int N, word B=1)
-{
-    word t = A[0];
-    A[0] = t+B;
-    if (A[0] >= t)
-        return 0;
-    for (unsigned i=1; i= A0)
-        if (B0 >= B1)
-        {
-            s = 0;
-            d = (dword)(A1-A0)*(B0-B1);
-        }
-        else
-        {
-            s = (A1-A0);
-            d = (dword)s*(word)(B0-B1);
-        }
-    else
-        if (B0 > B1)
-        {
-            s = (B0-B1);
-            d = (word)(A1-A0)*(dword)s;
-        }
-        else
-        {
-            s = 0;
-            d = (dword)(A0-A1)*(B1-B0);
-        }
-*/
-    // this segment is the branchless equivalent of above
-    word D[4] = {A[1]-A[0], A[0]-A[1], B[0]-B[1], B[1]-B[0]};
-    unsigned int ai = A[1] < A[0];
-    unsigned int bi = B[0] < B[1];
-    unsigned int di = ai & bi;
-    DWord d = DWord::Multiply(D[di], D[di+2]);
-    D[1] = D[3] = 0;
-    unsigned int si = ai + !bi;
-    word s = D[si];
-
-    DWord A0B0 = DWord::Multiply(A[0], B[0]);
-    C[0] = A0B0.GetLowHalf();
-
-    DWord A1B1 = DWord::Multiply(A[1], B[1]);
-    DWord t = (DWord) A0B0.GetHighHalf() + A0B0.GetLowHalf() + d.GetLowHalf()
-                       + A1B1.GetLowHalf();
-    C[1] = t.GetLowHalf();
-
-    t = A1B1 + t.GetHighHalf() + A0B0.GetHighHalf() + d.GetHighHalf()
-             + A1B1.GetHighHalf() - s;
-    C[2] = t.GetLowHalf();
-    C[3] = t.GetHighHalf();
-}
-
-void Portable::Multiply2Bottom(word *C, const word *A, const word *B)
-{
-    DWord t = DWord::Multiply(A[0], B[0]);
-    C[0] = t.GetLowHalf();
-    C[1] = t.GetHighHalf() + A[0]*B[1] + A[1]*B[0];
-}
-
-word Portable::Multiply2Add(word *C, const word *A, const word *B)
-{
-    word D[4] = {A[1]-A[0], A[0]-A[1], B[0]-B[1], B[1]-B[0]};
-    unsigned int ai = A[1] < A[0];
-    unsigned int bi = B[0] < B[1];
-    unsigned int di = ai & bi;
-    DWord d = DWord::Multiply(D[di], D[di+2]);
-    D[1] = D[3] = 0;
-    unsigned int si = ai + !bi;
-    word s = D[si];
-
-    DWord A0B0 = DWord::Multiply(A[0], B[0]);
-    DWord t = A0B0 + C[0];
-    C[0] = t.GetLowHalf();
-
-    DWord A1B1 = DWord::Multiply(A[1], B[1]);
-    t = (DWord) t.GetHighHalf() + A0B0.GetLowHalf() + d.GetLowHalf() +
-        A1B1.GetLowHalf() + C[1];
-    C[1] = t.GetLowHalf();
-
-    t = (DWord) t.GetHighHalf() + A1B1.GetLowHalf() + A0B0.GetHighHalf() +
-        d.GetHighHalf() + A1B1.GetHighHalf() - s + C[2];
-    C[2] = t.GetLowHalf();
-
-    t = (DWord) t.GetHighHalf() + A1B1.GetHighHalf() + C[3];
-    C[3] = t.GetLowHalf();
-    return t.GetHighHalf();
-}
-
-
-#define MulAcc(x, y)                                \
-    p = DWord::MultiplyAndAdd(A[x], B[y], c);       \
-    c = p.GetLowHalf();                             \
-    p = (DWord) d + p.GetHighHalf();                \
-    d = p.GetLowHalf();                             \
-    e += p.GetHighHalf();
-
-#define SaveMulAcc(s, x, y)                         \
-    R[s] = c;                                       \
-    p = DWord::MultiplyAndAdd(A[x], B[y], d);       \
-    c = p.GetLowHalf();                             \
-    p = (DWord) e + p.GetHighHalf();                \
-    d = p.GetLowHalf();                             \
-    e = p.GetHighHalf();
-
-#define SquAcc(x, y)                                \
-    q = DWord::Multiply(A[x], A[y]);                \
-    p = q + c;                                      \
-    c = p.GetLowHalf();                             \
-    p = (DWord) d + p.GetHighHalf();                \
-    d = p.GetLowHalf();                             \
-    e += p.GetHighHalf();                           \
-    p = q + c;                                      \
-    c = p.GetLowHalf();                             \
-    p = (DWord) d + p.GetHighHalf();                \
-    d = p.GetLowHalf();                             \
-    e += p.GetHighHalf();
-
-#define SaveSquAcc(s, x, y)                         \
-    R[s] = c;                                       \
-    q = DWord::Multiply(A[x], A[y]);                \
-    p = q + d;                                      \
-    c = p.GetLowHalf();                             \
-    p = (DWord) e + p.GetHighHalf();                \
-    d = p.GetLowHalf();                             \
-    e = p.GetHighHalf();                            \
-    p = q + c;                                      \
-    c = p.GetLowHalf();                             \
-    p = (DWord) d + p.GetHighHalf();                \
-    d = p.GetLowHalf();                             \
-    e += p.GetHighHalf();
-
-
-void Portable::Multiply4(word *R, const word *A, const word *B)
-{
-    DWord p;
-    word c, d, e;
-
-    p = DWord::Multiply(A[0], B[0]);
-    R[0] = p.GetLowHalf();
-    c = p.GetHighHalf();
-    d = e = 0;
-
-    MulAcc(0, 1);
-    MulAcc(1, 0);
-
-    SaveMulAcc(1, 2, 0);
-    MulAcc(1, 1);
-    MulAcc(0, 2);
-
-    SaveMulAcc(2, 0, 3);
-    MulAcc(1, 2);
-    MulAcc(2, 1);
-    MulAcc(3, 0);
-
-    SaveMulAcc(3, 3, 1);
-    MulAcc(2, 2);
-    MulAcc(1, 3);
-
-    SaveMulAcc(4, 2, 3);
-    MulAcc(3, 2);
-
-    R[5] = c;
-    p = DWord::MultiplyAndAdd(A[3], B[3], d);
-    R[6] = p.GetLowHalf();
-    R[7] = e + p.GetHighHalf();
-}
-
-void Portable::Square2(word *R, const word *A)
-{
-    DWord p, q;
-    word c, d, e;
-
-    p = DWord::Multiply(A[0], A[0]);
-    R[0] = p.GetLowHalf();
-    c = p.GetHighHalf();
-    d = e = 0;
-
-    SquAcc(0, 1);
-
-    R[1] = c;
-    p = DWord::MultiplyAndAdd(A[1], A[1], d);
-    R[2] = p.GetLowHalf();
-    R[3] = e + p.GetHighHalf();
-}
-
-void Portable::Square4(word *R, const word *A)
-{
-#ifdef _MSC_VER
-    // VC60 workaround: MSVC 6.0 has an optimization bug that makes
-    // (dword)A*B where either A or B has been cast to a dword before
-    // very expensive. Revisit this function when this
-    // bug is fixed.
-    Multiply4(R, A, A);
-#else
-    const word *B = A;
-    DWord p, q;
-    word c, d, e;
-
-    p = DWord::Multiply(A[0], A[0]);
-    R[0] = p.GetLowHalf();
-    c = p.GetHighHalf();
-    d = e = 0;
-
-    SquAcc(0, 1);
-
-    SaveSquAcc(1, 2, 0);
-    MulAcc(1, 1);
-
-    SaveSquAcc(2, 0, 3);
-    SquAcc(1, 2);
-
-    SaveSquAcc(3, 3, 1);
-    MulAcc(2, 2);
-
-    SaveSquAcc(4, 2, 3);
-
-    R[5] = c;
-    p = DWord::MultiplyAndAdd(A[3], A[3], d);
-    R[6] = p.GetLowHalf();
-    R[7] = e + p.GetHighHalf();
-#endif
-}
-
-void Portable::Multiply8(word *R, const word *A, const word *B)
-{
-    DWord p;
-    word c, d, e;
-
-    p = DWord::Multiply(A[0], B[0]);
-    R[0] = p.GetLowHalf();
-    c = p.GetHighHalf();
-    d = e = 0;
-
-    MulAcc(0, 1);
-    MulAcc(1, 0);
-
-    SaveMulAcc(1, 2, 0);
-    MulAcc(1, 1);
-    MulAcc(0, 2);
-
-    SaveMulAcc(2, 0, 3);
-    MulAcc(1, 2);
-    MulAcc(2, 1);
-    MulAcc(3, 0);
-
-    SaveMulAcc(3, 0, 4);
-    MulAcc(1, 3);
-    MulAcc(2, 2);
-    MulAcc(3, 1);
-    MulAcc(4, 0);
-
-    SaveMulAcc(4, 0, 5);
-    MulAcc(1, 4);
-    MulAcc(2, 3);
-    MulAcc(3, 2);
-    MulAcc(4, 1);
-    MulAcc(5, 0);
-
-    SaveMulAcc(5, 0, 6);
-    MulAcc(1, 5);
-    MulAcc(2, 4);
-    MulAcc(3, 3);
-    MulAcc(4, 2);
-    MulAcc(5, 1);
-    MulAcc(6, 0);
-
-    SaveMulAcc(6, 0, 7);
-    MulAcc(1, 6);
-    MulAcc(2, 5);
-    MulAcc(3, 4);
-    MulAcc(4, 3);
-    MulAcc(5, 2);
-    MulAcc(6, 1);
-    MulAcc(7, 0);
-
-    SaveMulAcc(7, 1, 7);
-    MulAcc(2, 6);
-    MulAcc(3, 5);
-    MulAcc(4, 4);
-    MulAcc(5, 3);
-    MulAcc(6, 2);
-    MulAcc(7, 1);
-
-    SaveMulAcc(8, 2, 7);
-    MulAcc(3, 6);
-    MulAcc(4, 5);
-    MulAcc(5, 4);
-    MulAcc(6, 3);
-    MulAcc(7, 2);
-
-    SaveMulAcc(9, 3, 7);
-    MulAcc(4, 6);
-    MulAcc(5, 5);
-    MulAcc(6, 4);
-    MulAcc(7, 3);
-
-    SaveMulAcc(10, 4, 7);
-    MulAcc(5, 6);
-    MulAcc(6, 5);
-    MulAcc(7, 4);
-
-    SaveMulAcc(11, 5, 7);
-    MulAcc(6, 6);
-    MulAcc(7, 5);
-
-    SaveMulAcc(12, 6, 7);
-    MulAcc(7, 6);
-
-    R[13] = c;
-    p = DWord::MultiplyAndAdd(A[7], B[7], d);
-    R[14] = p.GetLowHalf();
-    R[15] = e + p.GetHighHalf();
-}
-
-void Portable::Multiply4Bottom(word *R, const word *A, const word *B)
-{
-    DWord p;
-    word c, d, e;
-
-    p = DWord::Multiply(A[0], B[0]);
-    R[0] = p.GetLowHalf();
-    c = p.GetHighHalf();
-    d = e = 0;
-
-    MulAcc(0, 1);
-    MulAcc(1, 0);
-
-    SaveMulAcc(1, 2, 0);
-    MulAcc(1, 1);
-    MulAcc(0, 2);
-
-    R[2] = c;
-    R[3] = d + A[0] * B[3] + A[1] * B[2] + A[2] * B[1] + A[3] * B[0];
-}
-
-void Portable::Multiply8Bottom(word *R, const word *A, const word *B)
-{
-    DWord p;
-    word c, d, e;
-
-    p = DWord::Multiply(A[0], B[0]);
-    R[0] = p.GetLowHalf();
-    c = p.GetHighHalf();
-    d = e = 0;
-
-    MulAcc(0, 1);
-    MulAcc(1, 0);
-
-    SaveMulAcc(1, 2, 0);
-    MulAcc(1, 1);
-    MulAcc(0, 2);
-
-    SaveMulAcc(2, 0, 3);
-    MulAcc(1, 2);
-    MulAcc(2, 1);
-    MulAcc(3, 0);
-
-    SaveMulAcc(3, 0, 4);
-    MulAcc(1, 3);
-    MulAcc(2, 2);
-    MulAcc(3, 1);
-    MulAcc(4, 0);
-
-    SaveMulAcc(4, 0, 5);
-    MulAcc(1, 4);
-    MulAcc(2, 3);
-    MulAcc(3, 2);
-    MulAcc(4, 1);
-    MulAcc(5, 0);
-
-    SaveMulAcc(5, 0, 6);
-    MulAcc(1, 5);
-    MulAcc(2, 4);
-    MulAcc(3, 3);
-    MulAcc(4, 2);
-    MulAcc(5, 1);
-    MulAcc(6, 0);
-
-    R[6] = c;
-    R[7] = d + A[0] * B[7] + A[1] * B[6] + A[2] * B[5] + A[3] * B[4] +
-               A[4] * B[3] + A[5] * B[2] + A[6] * B[1] + A[7] * B[0];
-}
-
-
-#undef MulAcc
-#undef SaveMulAcc
-#undef SquAcc
-#undef SaveSquAcc
-
-// optimized
-
-#ifdef TAOCRYPT_X86ASM_AVAILABLE
-
-// ************** x86 feature detection ***************
-
-
-#ifdef SSE2_INTRINSICS_AVAILABLE
-
-#ifndef _MSC_VER
-    static jmp_buf s_env;
-    static void SigIllHandler(int)
-    {
-        longjmp(s_env, 1);
-    }
-#endif
-
-static bool HasSSE2()
-{
-    if (!IsPentium())
-        return false;
-
-    word32 cpuid[4];
-    CpuId(1, cpuid);
-    if ((cpuid[3] & (1 << 26)) == 0)
-        return false;
-
-#ifdef _MSC_VER
-    __try
-    {
-        __asm xorpd xmm0, xmm0        // executing SSE2 instruction
-    }
-    __except (1)
-    {
-        return false;
-    }
-    return true;
-#else
-    typedef void (*SigHandler)(int);
-
-    SigHandler oldHandler = signal(SIGILL, SigIllHandler);
-    if (oldHandler == SIG_ERR)
-        return false;
-
-    bool result = true;
-    if (setjmp(s_env))
-        result = false;
-    else
-        __asm __volatile ("xorpd %xmm0, %xmm0");
-
-    signal(SIGILL, oldHandler);
-    return result;
-#endif
-}
-#endif // SSE2_INTRINSICS_AVAILABLE
-
-
-static bool IsP4()
-{
-    if (!IsPentium())
-        return false;
-
-    word32 cpuid[4];
-
-    CpuId(1, cpuid);
-    return ((cpuid[0] >> 8) & 0xf) == 0xf;
-}
-
-// ************** Pentium/P4 optimizations ***************
-
-class PentiumOptimized : public Portable
-{
-public:
-    static word TAOCRYPT_CDECL Add(word *C, const word *A, const word *B,
-                                   unsigned int N);
-    static word TAOCRYPT_CDECL Subtract(word *C, const word *A, const word *B,
-                                        unsigned int N);
-    static void TAOCRYPT_CDECL Multiply4(word *C, const word *A,
-                                         const word *B);
-    static void TAOCRYPT_CDECL Multiply8(word *C, const word *A,
-                                         const word *B);
-    static void TAOCRYPT_CDECL Multiply8Bottom(word *C, const word *A,
-                                               const word *B);
-};
-
-class P4Optimized
-{
-public:
-    static word TAOCRYPT_CDECL Add(word *C, const word *A, const word *B,
-                                   unsigned int N);
-    static word TAOCRYPT_CDECL Subtract(word *C, const word *A, const word *B,
-                                        unsigned int N);
-#ifdef SSE2_INTRINSICS_AVAILABLE
-    static void TAOCRYPT_CDECL Multiply4(word *C, const word *A,
-                                         const word *B);
-    static void TAOCRYPT_CDECL Multiply8(word *C, const word *A,
-                                         const word *B);
-    static void TAOCRYPT_CDECL Multiply8Bottom(word *C, const word *A,
-                                               const word *B);
-#endif
-};
-
-typedef word (TAOCRYPT_CDECL * PAddSub)(word *C, const word *A, const word *B,
-                                        unsigned int N);
-typedef void (TAOCRYPT_CDECL * PMul)(word *C, const word *A, const word *B);
-
-static PAddSub s_pAdd, s_pSub;
-#ifdef SSE2_INTRINSICS_AVAILABLE
-static PMul s_pMul4, s_pMul8, s_pMul8B;
-#endif
-
-static void SetPentiumFunctionPointers()
-{
-    if (!IsPentium())
-    {   
-        s_pAdd = &Portable::Add;
-        s_pSub = &Portable::Subtract;
-    }
-    else if (IsP4())
-    {
-        s_pAdd = &P4Optimized::Add;
-        s_pSub = &P4Optimized::Subtract;
-    }
-    else
-    {
-        s_pAdd = &PentiumOptimized::Add;
-        s_pSub = &PentiumOptimized::Subtract;
-    }
-
-#ifdef SSE2_INTRINSICS_AVAILABLE
-    if (!IsPentium()) 
-    {
-        s_pMul4 = &Portable::Multiply4;
-        s_pMul8 = &Portable::Multiply8;
-        s_pMul8B = &Portable::Multiply8Bottom;
-    }
-    else if (HasSSE2())
-    {
-        s_pMul4 = &P4Optimized::Multiply4;
-        s_pMul8 = &P4Optimized::Multiply8;
-        s_pMul8B = &P4Optimized::Multiply8Bottom;
-    }
-    else
-    {
-        s_pMul4 = &PentiumOptimized::Multiply4;
-        s_pMul8 = &PentiumOptimized::Multiply8;
-        s_pMul8B = &PentiumOptimized::Multiply8Bottom;
-    }
-#endif
-}
-
-static const char s_RunAtStartupSetPentiumFunctionPointers =
-    (SetPentiumFunctionPointers(), 0);
-
-
-class LowLevel : public PentiumOptimized
-{
-public:
-    inline static word Add(word *C, const word *A, const word *B,
-                           unsigned int N)
-        {return s_pAdd(C, A, B, N);}
-    inline static word Subtract(word *C, const word *A, const word *B,
-                                unsigned int N)
-        {return s_pSub(C, A, B, N);}
-    inline static void Square4(word *R, const word *A)
-        {Multiply4(R, A, A);}
-#ifdef SSE2_INTRINSICS_AVAILABLE
-    inline static void Multiply4(word *C, const word *A, const word *B)
-        {s_pMul4(C, A, B);}
-    inline static void Multiply8(word *C, const word *A, const word *B)
-        {s_pMul8(C, A, B);}
-    inline static void Multiply8Bottom(word *C, const word *A, const word *B)
-        {s_pMul8B(C, A, B);}
-#endif
-};
-
-// use some tricks to share assembly code between MSVC and GCC
-#ifdef _MSC_VER
-    #define TAOCRYPT_NAKED __declspec(naked)
-    #define AS1(x) __asm x
-    #define AS2(x, y) __asm x, y
-    #define AddPrologue \
-        __asm	push ebp \
-        __asm	push ebx \
-        __asm	push esi \
-        __asm	push edi \
-        __asm	mov		ecx, [esp+20] \
-        __asm	mov		edx, [esp+24] \
-        __asm	mov		ebx, [esp+28] \
-        __asm	mov		esi, [esp+32]
-    #define AddEpilogue \
-        __asm	pop edi \
-        __asm	pop esi \
-        __asm	pop ebx \
-        __asm	pop ebp \
-        __asm	ret
-    #define MulPrologue \
-        __asm	push ebp \
-        __asm	push ebx \
-        __asm	push esi \
-        __asm	push edi \
-        __asm	mov ecx, [esp+28] \
-        __asm	mov esi, [esp+24] \
-        __asm	push [esp+20]
-    #define MulEpilogue \
-        __asm	add esp, 4 \
-        __asm	pop edi \
-        __asm	pop esi \
-        __asm	pop ebx \
-        __asm	pop ebp \
-        __asm	ret
-#else
-    #define TAOCRYPT_NAKED
-    #define AS1(x) #x ";"
-    #define AS2(x, y) #x ", " #y ";"
-    #define AddPrologue \
-        __asm__ __volatile__ \
-        ( \
-            "push %%ebx;"	/* save this manually, in case of -fPIC */ \
-            "mov %2, %%ebx;" \
-            ".intel_syntax noprefix;" \
-            "push ebp;"
-    #define AddEpilogue \
-            "pop ebp;" \
-            ".att_syntax prefix;" \
-            "pop %%ebx;" \
-                    : \
-                    : "c" (C), "d" (A), "m" (B), "S" (N) \
-                    : "%edi", "memory", "cc" \
-        );
-    #define MulPrologue \
-        __asm__ __volatile__ \
-        ( \
-            "push %%ebx;"	/* save this manually, in case of -fPIC */ \
-            "push %%ebp;" \
-            "push %0;" \
-            ".intel_syntax noprefix;"
-    #define MulEpilogue \
-            "add esp, 4;" \
-            "pop ebp;" \
-            "pop ebx;" \
-            ".att_syntax prefix;" \
-            : \
-            : "rm" (Z), "S" (X), "c" (Y) \
-            : "%eax", "%edx", "%edi", "memory", "cc" \
-        );
-#endif
-
-TAOCRYPT_NAKED word PentiumOptimized::Add(word *C, const word *A,
-                                          const word *B, unsigned int N)
-{
-    AddPrologue
-
-    // now: ebx = B, ecx = C, edx = A, esi = N
-    AS2(    sub ecx, edx)           // hold the distance between C & A so we
-                                    // can add this to A to get C
-    AS2(    xor eax, eax)           // clear eax
-
-    AS2(    sub eax, esi)           // eax is a negative index from end of B
-    AS2(    lea ebx, [ebx+4*esi])   // ebx is end of B
-
-    AS2(    sar eax, 1)             // unit of eax is now dwords; this also
-                                    // clears the carry flag
-    AS1(    jz  loopendAdd)         // if no dwords then nothing to do
-
-    AS1(loopstartAdd:)
-    AS2(    mov    esi,[edx])           // load lower word of A
-    AS2(    mov    ebp,[edx+4])         // load higher word of A
-
-    AS2(    mov    edi,[ebx+8*eax])     // load lower word of B
-    AS2(    lea    edx,[edx+8])         // advance A and C
-
-    AS2(    adc    esi,edi)             // add lower words
-    AS2(    mov    edi,[ebx+8*eax+4])   // load higher word of B
-
-    AS2(    adc    ebp,edi)             // add higher words
-    AS1(    inc    eax)                 // advance B
-
-    AS2(    mov    [edx+ecx-8],esi)     // store lower word result
-    AS2(    mov    [edx+ecx-4],ebp)     // store higher word result
-
-    AS1(    jnz    loopstartAdd)   // loop until eax overflows and becomes zero
-
-    AS1(loopendAdd:)
-    AS2(    adc eax, 0)     // store carry into eax (return result register)
-
-    AddEpilogue
-}
-
-TAOCRYPT_NAKED word PentiumOptimized::Subtract(word *C, const word *A,
-                                               const word *B, unsigned int N)
-{
-    AddPrologue
-
-    // now: ebx = B, ecx = C, edx = A, esi = N
-    AS2(    sub ecx, edx)           // hold the distance between C & A so we
-                                    // can add this to A to get C
-    AS2(    xor eax, eax)           // clear eax
-
-    AS2(    sub eax, esi)           // eax is a negative index from end of B
-    AS2(    lea ebx, [ebx+4*esi])   // ebx is end of B
-
-    AS2(    sar eax, 1)             // unit of eax is now dwords; this also
-                                    // clears the carry flag
-    AS1(    jz  loopendSub)         // if no dwords then nothing to do
-
-    AS1(loopstartSub:)
-    AS2(    mov    esi,[edx])           // load lower word of A
-    AS2(    mov    ebp,[edx+4])         // load higher word of A
-
-    AS2(    mov    edi,[ebx+8*eax])     // load lower word of B
-    AS2(    lea    edx,[edx+8])         // advance A and C
-
-    AS2(    sbb    esi,edi)             // subtract lower words
-    AS2(    mov    edi,[ebx+8*eax+4])   // load higher word of B
-
-    AS2(    sbb    ebp,edi)             // subtract higher words
-    AS1(    inc    eax)                 // advance B
-
-    AS2(    mov    [edx+ecx-8],esi)     // store lower word result
-    AS2(    mov    [edx+ecx-4],ebp)     // store higher word result
-
-    AS1(    jnz    loopstartSub)   // loop until eax overflows and becomes zero
-
-    AS1(loopendSub:)
-    AS2(    adc eax, 0)     // store carry into eax (return result register)
-
-    AddEpilogue
-}
-
-// On Pentium 4, the adc and sbb instructions are very expensive, so avoid them.
-
-TAOCRYPT_NAKED word P4Optimized::Add(word *C, const word *A, const word *B,
-                                     unsigned int N)
-{
-    AddPrologue
-
-    // now: ebx = B, ecx = C, edx = A, esi = N
-    AS2(    xor     eax, eax)
-    AS1(    neg     esi)
-    AS1(    jz      loopendAddP4)       // if no dwords then nothing to do
-
-    AS2(    mov     edi, [edx])
-    AS2(    mov     ebp, [ebx])
-    AS1(    jmp     carry1AddP4)
-
-    AS1(loopstartAddP4:)
-    AS2(    mov     edi, [edx+8])
-    AS2(    add     ecx, 8)
-    AS2(    add     edx, 8)
-    AS2(    mov     ebp, [ebx])
-    AS2(    add     edi, eax)
-    AS1(    jc      carry1AddP4)
-    AS2(    xor     eax, eax)
-
-    AS1(carry1AddP4:)
-    AS2(    add     edi, ebp)
-    AS2(    mov     ebp, 1)
-    AS2(    mov     [ecx], edi)
-    AS2(    mov     edi, [edx+4])
-    AS2(    cmovc   eax, ebp)
-    AS2(    mov     ebp, [ebx+4])
-    AS2(    add     ebx, 8)
-    AS2(    add     edi, eax)
-    AS1(    jc      carry2AddP4)
-    AS2(    xor     eax, eax)
-
-    AS1(carry2AddP4:)
-    AS2(    add     edi, ebp)
-    AS2(    mov     ebp, 1)
-    AS2(    cmovc   eax, ebp)
-    AS2(    mov     [ecx+4], edi)
-    AS2(    add     esi, 2)
-    AS1(    jnz     loopstartAddP4)
-
-    AS1(loopendAddP4:)
-
-    AddEpilogue
-}
-
-TAOCRYPT_NAKED word P4Optimized::Subtract(word *C, const word *A,
-                                          const word *B, unsigned int N)
-{
-    AddPrologue
-
-    // now: ebx = B, ecx = C, edx = A, esi = N
-    AS2(    xor     eax, eax)
-    AS1(    neg     esi)
-    AS1(    jz      loopendSubP4)       // if no dwords then nothing to do
-
-    AS2(    mov     edi, [edx])
-    AS2(    mov     ebp, [ebx])
-    AS1(    jmp     carry1SubP4)
-
-    AS1(loopstartSubP4:)
-    AS2(    mov     edi, [edx+8])
-    AS2(    add     edx, 8)
-    AS2(    add     ecx, 8)
-    AS2(    mov     ebp, [ebx])
-    AS2(    sub     edi, eax)
-    AS1(    jc      carry1SubP4)
-    AS2(    xor     eax, eax)
-
-    AS1(carry1SubP4:)
-    AS2(    sub     edi, ebp)
-    AS2(    mov     ebp, 1)
-    AS2(    mov     [ecx], edi)
-    AS2(    mov     edi, [edx+4])
-    AS2(    cmovc   eax, ebp)
-    AS2(    mov     ebp, [ebx+4])
-    AS2(    add     ebx, 8)
-    AS2(    sub     edi, eax)
-    AS1(    jc      carry2SubP4)
-    AS2(    xor     eax, eax)
-
-    AS1(carry2SubP4:)
-    AS2(    sub     edi, ebp)
-    AS2(    mov     ebp, 1)
-    AS2(    cmovc   eax, ebp)
-    AS2(    mov     [ecx+4], edi)
-    AS2(    add     esi, 2)
-    AS1(    jnz     loopstartSubP4)
-
-    AS1(loopendSubP4:)
-
-    AddEpilogue
-}
-
-// multiply assembly code originally contributed by Leonard Janke
-
-#define MulStartup \
-    AS2(xor ebp, ebp) \
-    AS2(xor edi, edi) \
-    AS2(xor ebx, ebx) 
-
-#define MulShiftCarry \
-    AS2(mov ebp, edx) \
-    AS2(mov edi, ebx) \
-    AS2(xor ebx, ebx)
-
-#define MulAccumulateBottom(i,j) \
-    AS2(mov eax, [ecx+4*j]) \
-    AS2(imul eax, dword ptr [esi+4*i]) \
-    AS2(add ebp, eax)
-
-#define MulAccumulate(i,j) \
-    AS2(mov eax, [ecx+4*j]) \
-    AS1(mul dword ptr [esi+4*i]) \
-    AS2(add ebp, eax) \
-    AS2(adc edi, edx) \
-    AS2(adc bl, bh)
-
-#define MulStoreDigit(i)  \
-    AS2(mov edx, edi) \
-    AS2(mov edi, [esp]) \
-    AS2(mov [edi+4*i], ebp)
-
-#define MulLastDiagonal(digits) \
-    AS2(mov eax, [ecx+4*(digits-1)]) \
-    AS1(mul dword ptr [esi+4*(digits-1)]) \
-    AS2(add ebp, eax) \
-    AS2(adc edx, edi) \
-    AS2(mov edi, [esp]) \
-    AS2(mov [edi+4*(2*digits-2)], ebp) \
-    AS2(mov [edi+4*(2*digits-1)], edx)
-
-TAOCRYPT_NAKED void PentiumOptimized::Multiply4(word* Z, const word* X,
-                                                const word* Y)
-{
-    MulPrologue
-    // now: [esp] = Z, esi = X, ecx = Y
-    MulStartup
-    MulAccumulate(0,0)
-    MulStoreDigit(0)
-    MulShiftCarry
-
-    MulAccumulate(1,0)
-    MulAccumulate(0,1)
-    MulStoreDigit(1)
-    MulShiftCarry
-
-    MulAccumulate(2,0)
-    MulAccumulate(1,1)
-    MulAccumulate(0,2)
-    MulStoreDigit(2)
-    MulShiftCarry
-
-    MulAccumulate(3,0)
-    MulAccumulate(2,1)
-    MulAccumulate(1,2)
-    MulAccumulate(0,3)
-    MulStoreDigit(3)
-    MulShiftCarry
-
-    MulAccumulate(3,1)
-    MulAccumulate(2,2)
-    MulAccumulate(1,3)
-    MulStoreDigit(4)
-    MulShiftCarry
-
-    MulAccumulate(3,2)
-    MulAccumulate(2,3)
-    MulStoreDigit(5)
-    MulShiftCarry
-
-    MulLastDiagonal(4)
-    MulEpilogue
-}
-
-TAOCRYPT_NAKED void PentiumOptimized::Multiply8(word* Z, const word* X,
-                                                const word* Y)
-{
-    MulPrologue
-    // now: [esp] = Z, esi = X, ecx = Y
-    MulStartup
-    MulAccumulate(0,0)
-    MulStoreDigit(0)
-    MulShiftCarry
-
-    MulAccumulate(1,0)
-    MulAccumulate(0,1)
-    MulStoreDigit(1)
-    MulShiftCarry
-
-    MulAccumulate(2,0)
-    MulAccumulate(1,1)
-    MulAccumulate(0,2)
-    MulStoreDigit(2)
-    MulShiftCarry
-
-    MulAccumulate(3,0)
-    MulAccumulate(2,1)
-    MulAccumulate(1,2)
-    MulAccumulate(0,3)
-    MulStoreDigit(3)
-    MulShiftCarry
-
-    MulAccumulate(4,0)
-    MulAccumulate(3,1)
-    MulAccumulate(2,2)
-    MulAccumulate(1,3)
-    MulAccumulate(0,4)
-    MulStoreDigit(4)
-    MulShiftCarry
-
-    MulAccumulate(5,0)
-    MulAccumulate(4,1)
-    MulAccumulate(3,2)
-    MulAccumulate(2,3)
-    MulAccumulate(1,4)
-    MulAccumulate(0,5)
-    MulStoreDigit(5)
-    MulShiftCarry
-
-    MulAccumulate(6,0)
-    MulAccumulate(5,1)
-    MulAccumulate(4,2)
-    MulAccumulate(3,3)
-    MulAccumulate(2,4)
-    MulAccumulate(1,5)
-    MulAccumulate(0,6)
-    MulStoreDigit(6)
-    MulShiftCarry
-
-    MulAccumulate(7,0)
-    MulAccumulate(6,1)
-    MulAccumulate(5,2)
-    MulAccumulate(4,3)
-    MulAccumulate(3,4)
-    MulAccumulate(2,5)
-    MulAccumulate(1,6)
-    MulAccumulate(0,7)
-    MulStoreDigit(7)
-    MulShiftCarry
-
-    MulAccumulate(7,1)
-    MulAccumulate(6,2)
-    MulAccumulate(5,3)
-    MulAccumulate(4,4)
-    MulAccumulate(3,5)
-    MulAccumulate(2,6)
-    MulAccumulate(1,7)
-    MulStoreDigit(8)
-    MulShiftCarry
-
-    MulAccumulate(7,2)
-    MulAccumulate(6,3)
-    MulAccumulate(5,4)
-    MulAccumulate(4,5)
-    MulAccumulate(3,6)
-    MulAccumulate(2,7)
-    MulStoreDigit(9)
-    MulShiftCarry
-
-    MulAccumulate(7,3)
-    MulAccumulate(6,4)
-    MulAccumulate(5,5)
-    MulAccumulate(4,6)
-    MulAccumulate(3,7)
-    MulStoreDigit(10)
-    MulShiftCarry
-
-    MulAccumulate(7,4)
-    MulAccumulate(6,5)
-    MulAccumulate(5,6)
-    MulAccumulate(4,7)
-    MulStoreDigit(11)
-    MulShiftCarry
-
-    MulAccumulate(7,5)
-    MulAccumulate(6,6)
-    MulAccumulate(5,7)
-    MulStoreDigit(12)
-    MulShiftCarry
-
-    MulAccumulate(7,6)
-    MulAccumulate(6,7)
-    MulStoreDigit(13)
-    MulShiftCarry
-
-    MulLastDiagonal(8)
-    MulEpilogue
-}
-
-TAOCRYPT_NAKED void PentiumOptimized::Multiply8Bottom(word* Z, const word* X,
-                                                      const word* Y)
-{
-    MulPrologue
-    // now: [esp] = Z, esi = X, ecx = Y
-    MulStartup
-    MulAccumulate(0,0)
-    MulStoreDigit(0)
-    MulShiftCarry
-
-    MulAccumulate(1,0)
-    MulAccumulate(0,1)
-    MulStoreDigit(1)
-    MulShiftCarry
-
-    MulAccumulate(2,0)
-    MulAccumulate(1,1)
-    MulAccumulate(0,2)
-    MulStoreDigit(2)
-    MulShiftCarry
-
-    MulAccumulate(3,0)
-    MulAccumulate(2,1)
-    MulAccumulate(1,2)
-    MulAccumulate(0,3)
-    MulStoreDigit(3)
-    MulShiftCarry
-
-    MulAccumulate(4,0)
-    MulAccumulate(3,1)
-    MulAccumulate(2,2)
-    MulAccumulate(1,3)
-    MulAccumulate(0,4)
-    MulStoreDigit(4)
-    MulShiftCarry
-
-    MulAccumulate(5,0)
-    MulAccumulate(4,1)
-    MulAccumulate(3,2)
-    MulAccumulate(2,3)
-    MulAccumulate(1,4)
-    MulAccumulate(0,5)
-    MulStoreDigit(5)
-    MulShiftCarry
-
-    MulAccumulate(6,0)
-    MulAccumulate(5,1)
-    MulAccumulate(4,2)
-    MulAccumulate(3,3)
-    MulAccumulate(2,4)
-    MulAccumulate(1,5)
-    MulAccumulate(0,6)
-    MulStoreDigit(6)
-    MulShiftCarry
-
-    MulAccumulateBottom(7,0)
-    MulAccumulateBottom(6,1)
-    MulAccumulateBottom(5,2)
-    MulAccumulateBottom(4,3)
-    MulAccumulateBottom(3,4)
-    MulAccumulateBottom(2,5)
-    MulAccumulateBottom(1,6)
-    MulAccumulateBottom(0,7)
-    MulStoreDigit(7)
-    MulEpilogue
-}
-
-#undef AS1
-#undef AS2
-
-#else	// not x86 - no processor specific code at this layer
-
-typedef Portable LowLevel;
-
-#endif
-
-#ifdef SSE2_INTRINSICS_AVAILABLE
-
-#ifdef __GNUC__
-#define TAOCRYPT_FASTCALL
-#else
-#define TAOCRYPT_FASTCALL __fastcall
-#endif
-
-static void TAOCRYPT_FASTCALL P4_Mul(__m128i *C, const __m128i *A,
-                                     const __m128i *B)
-{
-    __m128i a3210 = _mm_load_si128(A);
-    __m128i b3210 = _mm_load_si128(B);
-
-    __m128i sum;
-
-    __m128i z = _mm_setzero_si128();
-    __m128i a2b2_a0b0 = _mm_mul_epu32(a3210, b3210);
-    C[0] = a2b2_a0b0;
-
-    __m128i a3120 = _mm_shuffle_epi32(a3210, _MM_SHUFFLE(3, 1, 2, 0));
-    __m128i b3021 = _mm_shuffle_epi32(b3210, _MM_SHUFFLE(3, 0, 2, 1));
-    __m128i a1b0_a0b1 = _mm_mul_epu32(a3120, b3021);
-    __m128i a1b0 = _mm_unpackhi_epi32(a1b0_a0b1, z);
-    __m128i a0b1 = _mm_unpacklo_epi32(a1b0_a0b1, z);
-    C[1] = _mm_add_epi64(a1b0, a0b1);
-
-    __m128i a31 = _mm_srli_epi64(a3210, 32);
-    __m128i b31 = _mm_srli_epi64(b3210, 32);
-    __m128i a3b3_a1b1 = _mm_mul_epu32(a31, b31);
-    C[6] = a3b3_a1b1;
-
-    __m128i a1b1 = _mm_unpacklo_epi32(a3b3_a1b1, z);
-    __m128i b3012 = _mm_shuffle_epi32(b3210, _MM_SHUFFLE(3, 0, 1, 2));
-    __m128i a2b0_a0b2 = _mm_mul_epu32(a3210, b3012);
-    __m128i a0b2 = _mm_unpacklo_epi32(a2b0_a0b2, z);
-    __m128i a2b0 = _mm_unpackhi_epi32(a2b0_a0b2, z);
-    sum = _mm_add_epi64(a1b1, a0b2);
-    C[2] = _mm_add_epi64(sum, a2b0);
-
-    __m128i a2301 = _mm_shuffle_epi32(a3210, _MM_SHUFFLE(2, 3, 0, 1));
-    __m128i b2103 = _mm_shuffle_epi32(b3210, _MM_SHUFFLE(2, 1, 0, 3));
-    __m128i a3b0_a1b2 = _mm_mul_epu32(a2301, b3012);
-    __m128i a2b1_a0b3 = _mm_mul_epu32(a3210, b2103);
-    __m128i a3b0 = _mm_unpackhi_epi32(a3b0_a1b2, z);
-    __m128i a1b2 = _mm_unpacklo_epi32(a3b0_a1b2, z);
-    __m128i a2b1 = _mm_unpackhi_epi32(a2b1_a0b3, z);
-    __m128i a0b3 = _mm_unpacklo_epi32(a2b1_a0b3, z);
-    __m128i sum1 = _mm_add_epi64(a3b0, a1b2);
-    sum = _mm_add_epi64(a2b1, a0b3);
-    C[3] = _mm_add_epi64(sum, sum1);
-
-    __m128i	a3b1_a1b3 = _mm_mul_epu32(a2301, b2103);
-    __m128i a2b2 = _mm_unpackhi_epi32(a2b2_a0b0, z);
-    __m128i a3b1 = _mm_unpackhi_epi32(a3b1_a1b3, z);
-    __m128i a1b3 = _mm_unpacklo_epi32(a3b1_a1b3, z);
-    sum = _mm_add_epi64(a2b2, a3b1);
-    C[4] = _mm_add_epi64(sum, a1b3);
-
-    __m128i a1302 = _mm_shuffle_epi32(a3210, _MM_SHUFFLE(1, 3, 0, 2));
-    __m128i b1203 = _mm_shuffle_epi32(b3210, _MM_SHUFFLE(1, 2, 0, 3));
-    __m128i a3b2_a2b3 = _mm_mul_epu32(a1302, b1203);
-    __m128i a3b2 = _mm_unpackhi_epi32(a3b2_a2b3, z);
-    __m128i a2b3 = _mm_unpacklo_epi32(a3b2_a2b3, z);
-    C[5] = _mm_add_epi64(a3b2, a2b3);
-}
-
-void P4Optimized::Multiply4(word *C, const word *A, const word *B)
-{
-    __m128i temp[7];
-    const word *w = (word *)temp;
-    const __m64 *mw = (__m64 *)w;
-
-    P4_Mul(temp, (__m128i *)A, (__m128i *)B);
-
-    C[0] = w[0];
-
-    __m64 s1, s2;
-
-    __m64 w1 = _mm_cvtsi32_si64(w[1]);
-    __m64 w4 = mw[2];
-    __m64 w6 = mw[3];
-    __m64 w8 = mw[4];
-    __m64 w10 = mw[5];
-    __m64 w12 = mw[6];
-    __m64 w14 = mw[7];
-    __m64 w16 = mw[8];
-    __m64 w18 = mw[9];
-    __m64 w20 = mw[10];
-    __m64 w22 = mw[11];
-    __m64 w26 = _mm_cvtsi32_si64(w[26]);
-
-    s1 = _mm_add_si64(w1, w4);
-    C[1] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s2 = _mm_add_si64(w6, w8);
-    s1 = _mm_add_si64(s1, s2);
-    C[2] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s2 = _mm_add_si64(w10, w12);
-    s1 = _mm_add_si64(s1, s2);
-    C[3] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s2 = _mm_add_si64(w14, w16);
-    s1 = _mm_add_si64(s1, s2);
-    C[4] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s2 = _mm_add_si64(w18, w20);
-    s1 = _mm_add_si64(s1, s2);
-    C[5] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s2 = _mm_add_si64(w22, w26);
-    s1 = _mm_add_si64(s1, s2);
-    C[6] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    C[7] = _mm_cvtsi64_si32(s1) + w[27];
-    _mm_empty();
-}
-
-void P4Optimized::Multiply8(word *C, const word *A, const word *B)
-{
-    __m128i temp[28];
-    const word *w = (word *)temp;
-    const __m64 *mw = (__m64 *)w;
-    const word *x = (word *)temp+7*4;
-    const __m64 *mx = (__m64 *)x;
-    const word *y = (word *)temp+7*4*2;
-    const __m64 *my = (__m64 *)y;
-    const word *z = (word *)temp+7*4*3;
-    const __m64 *mz = (__m64 *)z;
-
-    P4_Mul(temp, (__m128i *)A, (__m128i *)B);
-
-    P4_Mul(temp+7, (__m128i *)A+1, (__m128i *)B);
-
-    P4_Mul(temp+14, (__m128i *)A, (__m128i *)B+1);
-
-    P4_Mul(temp+21, (__m128i *)A+1, (__m128i *)B+1);
-
-    C[0] = w[0];
-
-    __m64 s1, s2, s3, s4;
-
-    __m64 w1 = _mm_cvtsi32_si64(w[1]);
-    __m64 w4 = mw[2];
-    __m64 w6 = mw[3];
-    __m64 w8 = mw[4];
-    __m64 w10 = mw[5];
-    __m64 w12 = mw[6];
-    __m64 w14 = mw[7];
-    __m64 w16 = mw[8];
-    __m64 w18 = mw[9];
-    __m64 w20 = mw[10];
-    __m64 w22 = mw[11];
-    __m64 w26 = _mm_cvtsi32_si64(w[26]);
-    __m64 w27 = _mm_cvtsi32_si64(w[27]);
-
-    __m64 x0 = _mm_cvtsi32_si64(x[0]);
-    __m64 x1 = _mm_cvtsi32_si64(x[1]);
-    __m64 x4 = mx[2];
-    __m64 x6 = mx[3];
-    __m64 x8 = mx[4];
-    __m64 x10 = mx[5];
-    __m64 x12 = mx[6];
-    __m64 x14 = mx[7];
-    __m64 x16 = mx[8];
-    __m64 x18 = mx[9];
-    __m64 x20 = mx[10];
-    __m64 x22 = mx[11];
-    __m64 x26 = _mm_cvtsi32_si64(x[26]);
-    __m64 x27 = _mm_cvtsi32_si64(x[27]);
-
-    __m64 y0 = _mm_cvtsi32_si64(y[0]);
-    __m64 y1 = _mm_cvtsi32_si64(y[1]);
-    __m64 y4 = my[2];
-    __m64 y6 = my[3];
-    __m64 y8 = my[4];
-    __m64 y10 = my[5];
-    __m64 y12 = my[6];
-    __m64 y14 = my[7];
-    __m64 y16 = my[8];
-    __m64 y18 = my[9];
-    __m64 y20 = my[10];
-    __m64 y22 = my[11];
-    __m64 y26 = _mm_cvtsi32_si64(y[26]);
-    __m64 y27 = _mm_cvtsi32_si64(y[27]);
-
-    __m64 z0 = _mm_cvtsi32_si64(z[0]);
-    __m64 z1 = _mm_cvtsi32_si64(z[1]);
-    __m64 z4 = mz[2];
-    __m64 z6 = mz[3];
-    __m64 z8 = mz[4];
-    __m64 z10 = mz[5];
-    __m64 z12 = mz[6];
-    __m64 z14 = mz[7];
-    __m64 z16 = mz[8];
-    __m64 z18 = mz[9];
-    __m64 z20 = mz[10];
-    __m64 z22 = mz[11];
-    __m64 z26 = _mm_cvtsi32_si64(z[26]);
-
-    s1 = _mm_add_si64(w1, w4);
-    C[1] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s2 = _mm_add_si64(w6, w8);
-    s1 = _mm_add_si64(s1, s2);
-    C[2] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s2 = _mm_add_si64(w10, w12);
-    s1 = _mm_add_si64(s1, s2);
-    C[3] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s3 = _mm_add_si64(x0, y0);
-    s2 = _mm_add_si64(w14, w16);
-    s1 = _mm_add_si64(s1, s3);
-    s1 = _mm_add_si64(s1, s2);
-    C[4] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s3 = _mm_add_si64(x1, y1);
-    s4 = _mm_add_si64(x4, y4);
-    s1 = _mm_add_si64(s1, w18);
-    s3 = _mm_add_si64(s3, s4);
-    s1 = _mm_add_si64(s1, w20);
-    s1 = _mm_add_si64(s1, s3);
-    C[5] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s3 = _mm_add_si64(x6, y6);
-    s4 = _mm_add_si64(x8, y8);
-    s1 = _mm_add_si64(s1, w22);
-    s3 = _mm_add_si64(s3, s4);
-    s1 = _mm_add_si64(s1, w26);
-    s1 = _mm_add_si64(s1, s3);
-    C[6] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s3 = _mm_add_si64(x10, y10);
-    s4 = _mm_add_si64(x12, y12);
-    s1 = _mm_add_si64(s1, w27);
-    s3 = _mm_add_si64(s3, s4);
-    s1 = _mm_add_si64(s1, s3);
-    C[7] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s3 = _mm_add_si64(x14, y14);
-    s4 = _mm_add_si64(x16, y16);
-    s1 = _mm_add_si64(s1, z0);
-    s3 = _mm_add_si64(s3, s4);
-    s1 = _mm_add_si64(s1, s3);
-    C[8] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s3 = _mm_add_si64(x18, y18);
-    s4 = _mm_add_si64(x20, y20);
-    s1 = _mm_add_si64(s1, z1);
-    s3 = _mm_add_si64(s3, s4);
-    s1 = _mm_add_si64(s1, z4);
-    s1 = _mm_add_si64(s1, s3);
-    C[9] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s3 = _mm_add_si64(x22, y22);
-    s4 = _mm_add_si64(x26, y26);
-    s1 = _mm_add_si64(s1, z6);
-    s3 = _mm_add_si64(s3, s4);
-    s1 = _mm_add_si64(s1, z8);
-    s1 = _mm_add_si64(s1, s3);
-    C[10] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s3 = _mm_add_si64(x27, y27);
-    s1 = _mm_add_si64(s1, z10);
-    s1 = _mm_add_si64(s1, z12);
-    s1 = _mm_add_si64(s1, s3);
-    C[11] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s3 = _mm_add_si64(z14, z16);
-    s1 = _mm_add_si64(s1, s3);
-    C[12] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s3 = _mm_add_si64(z18, z20);
-    s1 = _mm_add_si64(s1, s3);
-    C[13] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s3 = _mm_add_si64(z22, z26);
-    s1 = _mm_add_si64(s1, s3);
-    C[14] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    C[15] = z[27] + _mm_cvtsi64_si32(s1);
-    _mm_empty();
-}
-
-void P4Optimized::Multiply8Bottom(word *C, const word *A, const word *B)
-{
-    __m128i temp[21];
-    const word *w = (word *)temp;
-    const __m64 *mw = (__m64 *)w;
-    const word *x = (word *)temp+7*4;
-    const __m64 *mx = (__m64 *)x;
-    const word *y = (word *)temp+7*4*2;
-    const __m64 *my = (__m64 *)y;
-
-    P4_Mul(temp, (__m128i *)A, (__m128i *)B);
-
-    P4_Mul(temp+7, (__m128i *)A+1, (__m128i *)B);
-
-    P4_Mul(temp+14, (__m128i *)A, (__m128i *)B+1);
-
-    C[0] = w[0];
-
-    __m64 s1, s2, s3, s4;
-
-    __m64 w1 = _mm_cvtsi32_si64(w[1]);
-    __m64 w4 = mw[2];
-    __m64 w6 = mw[3];
-    __m64 w8 = mw[4];
-    __m64 w10 = mw[5];
-    __m64 w12 = mw[6];
-    __m64 w14 = mw[7];
-    __m64 w16 = mw[8];
-    __m64 w18 = mw[9];
-    __m64 w20 = mw[10];
-    __m64 w22 = mw[11];
-    __m64 w26 = _mm_cvtsi32_si64(w[26]);
-
-    __m64 x0 = _mm_cvtsi32_si64(x[0]);
-    __m64 x1 = _mm_cvtsi32_si64(x[1]);
-    __m64 x4 = mx[2];
-    __m64 x6 = mx[3];
-    __m64 x8 = mx[4];
-
-    __m64 y0 = _mm_cvtsi32_si64(y[0]);
-    __m64 y1 = _mm_cvtsi32_si64(y[1]);
-    __m64 y4 = my[2];
-    __m64 y6 = my[3];
-    __m64 y8 = my[4];
-
-    s1 = _mm_add_si64(w1, w4);
-    C[1] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s2 = _mm_add_si64(w6, w8);
-    s1 = _mm_add_si64(s1, s2);
-    C[2] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s2 = _mm_add_si64(w10, w12);
-    s1 = _mm_add_si64(s1, s2);
-    C[3] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s3 = _mm_add_si64(x0, y0);
-    s2 = _mm_add_si64(w14, w16);
-    s1 = _mm_add_si64(s1, s3);
-    s1 = _mm_add_si64(s1, s2);
-    C[4] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s3 = _mm_add_si64(x1, y1);
-    s4 = _mm_add_si64(x4, y4);
-    s1 = _mm_add_si64(s1, w18);
-    s3 = _mm_add_si64(s3, s4);
-    s1 = _mm_add_si64(s1, w20);
-    s1 = _mm_add_si64(s1, s3);
-    C[5] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    s3 = _mm_add_si64(x6, y6);
-    s4 = _mm_add_si64(x8, y8);
-    s1 = _mm_add_si64(s1, w22);
-    s3 = _mm_add_si64(s3, s4);
-    s1 = _mm_add_si64(s1, w26);
-    s1 = _mm_add_si64(s1, s3);
-    C[6] = _mm_cvtsi64_si32(s1);
-    s1 = _mm_srli_si64(s1, 32);
-
-    C[7] = _mm_cvtsi64_si32(s1) + w[27] + x[10] + y[10] + x[12] + y[12];
-    _mm_empty();
-}
-
-#endif	// #ifdef SSE2_INTRINSICS_AVAILABLE
-
-// end optimized
-
-// ********************************************************
-
-#define A0      A
-#define A1      (A+N2)
-#define B0      B
-#define B1      (B+N2)
-
-#define T0      T
-#define T1      (T+N2)
-#define T2      (T+N)
-#define T3      (T+N+N2)
-
-#define R0      R
-#define R1      (R+N2)
-#define R2      (R+N)
-#define R3      (R+N+N2)
-
-//VC60 workaround: compiler bug triggered without the extra dummy parameters
-
-// R[2*N] - result = A*B
-// T[2*N] - temporary work space
-// A[N] --- multiplier
-// B[N] --- multiplicant
-
-
-void RecursiveMultiply(word *R, word *T, const word *A, const word *B,
-                       unsigned int N)
-{
-    if (LowLevel::MultiplyRecursionLimit() >= 8 && N==8)
-        LowLevel::Multiply8(R, A, B);
-    else if (LowLevel::MultiplyRecursionLimit() >= 4 && N==4)
-        LowLevel::Multiply4(R, A, B);
-    else if (N==2)
-        LowLevel::Multiply2(R, A, B);
-    else
-    {
-        const unsigned int N2 = N/2;
-        int carry;
-
-        int aComp = Compare(A0, A1, N2);
-        int bComp = Compare(B0, B1, N2);
-
-        switch (2*aComp + aComp + bComp)
-        {
-        case -4:
-            LowLevel::Subtract(R0, A1, A0, N2);
-            LowLevel::Subtract(R1, B0, B1, N2);
-            RecursiveMultiply(T0, T2, R0, R1, N2);
-            LowLevel::Subtract(T1, T1, R0, N2);
-            carry = -1;
-            break;
-        case -2:
-            LowLevel::Subtract(R0, A1, A0, N2);
-            LowLevel::Subtract(R1, B0, B1, N2);
-            RecursiveMultiply(T0, T2, R0, R1, N2);
-            carry = 0;
-            break;
-        case 2:
-            LowLevel::Subtract(R0, A0, A1, N2);
-            LowLevel::Subtract(R1, B1, B0, N2);
-            RecursiveMultiply(T0, T2, R0, R1, N2);
-            carry = 0;
-            break;
-        case 4:
-            LowLevel::Subtract(R0, A1, A0, N2);
-            LowLevel::Subtract(R1, B0, B1, N2);
-            RecursiveMultiply(T0, T2, R0, R1, N2);
-            LowLevel::Subtract(T1, T1, R1, N2);
-            carry = -1;
-            break;
-        default:
-            SetWords(T0, 0, N);
-            carry = 0;
-        }
-
-        RecursiveMultiply(R0, T2, A0, B0, N2);
-        RecursiveMultiply(R2, T2, A1, B1, N2);
-
-        // now T[01] holds (A1-A0)*(B0-B1),R[01] holds A0*B0, R[23] holds A1*B1
-
-        carry += LowLevel::Add(T0, T0, R0, N);
-        carry += LowLevel::Add(T0, T0, R2, N);
-        carry += LowLevel::Add(R1, R1, T0, N);
-
-        Increment(R3, N2, carry);
-    }
-}
-
-
-void RecursiveSquare(word *R, word *T, const word *A, unsigned int N)                     
-{
-    if (LowLevel::SquareRecursionLimit() >= 4 && N==4)
-        LowLevel::Square4(R, A);
-    else if (N==2)
-        LowLevel::Square2(R, A);
-    else
-    {
-        const unsigned int N2 = N/2;
-
-        RecursiveSquare(R0, T2, A0, N2);
-        RecursiveSquare(R2, T2, A1, N2);
-        RecursiveMultiply(T0, T2, A0, A1, N2);
-
-        word carry = LowLevel::Add(R1, R1, T0, N);
-        carry += LowLevel::Add(R1, R1, T0, N);
-        Increment(R3, N2, carry);
-    }
-}
-
-
-// R[N] - bottom half of A*B
-// T[N] - temporary work space
-// A[N] - multiplier
-// B[N] - multiplicant
-
-
-void RecursiveMultiplyBottom(word *R, word *T, const word *A, const word *B,
-                             unsigned int N)
-{
-    if (LowLevel::MultiplyBottomRecursionLimit() >= 8 && N==8)
-        LowLevel::Multiply8Bottom(R, A, B);
-    else if (LowLevel::MultiplyBottomRecursionLimit() >= 4 && N==4)
-        LowLevel::Multiply4Bottom(R, A, B);
-    else if (N==2)
-        LowLevel::Multiply2Bottom(R, A, B);
-    else
-    {
-        const unsigned int N2 = N/2;
-
-        RecursiveMultiply(R, T, A0, B0, N2);
-        RecursiveMultiplyBottom(T0, T1, A1, B0, N2);
-        LowLevel::Add(R1, R1, T0, N2);
-        RecursiveMultiplyBottom(T0, T1, A0, B1, N2);
-        LowLevel::Add(R1, R1, T0, N2);
-    }
-}
-
-
-void RecursiveMultiplyTop(word *R, word *T, const word *L, const word *A,
-                          const word *B, unsigned int N)
-{
-    if (N==4)
-    {
-        LowLevel::Multiply4(T, A, B);
-        memcpy(R, T+4, 4*WORD_SIZE);
-    }
-    else if (N==2)
-    {
-        LowLevel::Multiply2(T, A, B);
-        memcpy(R, T+2, 2*WORD_SIZE);
-    }
-    else
-    {
-        const unsigned int N2 = N/2;
-        int carry;
-
-        int aComp = Compare(A0, A1, N2);
-        int bComp = Compare(B0, B1, N2);
-
-        switch (2*aComp + aComp + bComp)
-        {
-        case -4:
-            LowLevel::Subtract(R0, A1, A0, N2);
-            LowLevel::Subtract(R1, B0, B1, N2);
-            RecursiveMultiply(T0, T2, R0, R1, N2);
-            LowLevel::Subtract(T1, T1, R0, N2);
-            carry = -1;
-            break;
-        case -2:
-            LowLevel::Subtract(R0, A1, A0, N2);
-            LowLevel::Subtract(R1, B0, B1, N2);
-            RecursiveMultiply(T0, T2, R0, R1, N2);
-            carry = 0;
-            break;
-        case 2:
-            LowLevel::Subtract(R0, A0, A1, N2);
-            LowLevel::Subtract(R1, B1, B0, N2);
-            RecursiveMultiply(T0, T2, R0, R1, N2);
-            carry = 0;
-            break;
-        case 4:
-            LowLevel::Subtract(R0, A1, A0, N2);
-            LowLevel::Subtract(R1, B0, B1, N2);
-            RecursiveMultiply(T0, T2, R0, R1, N2);
-            LowLevel::Subtract(T1, T1, R1, N2);
-            carry = -1;
-            break;
-        default:
-            SetWords(T0, 0, N);
-            carry = 0;
-        }
-
-        RecursiveMultiply(T2, R0, A1, B1, N2);
-
-        // now T[01] holds (A1-A0)*(B0-B1), T[23] holds A1*B1
-
-        word c2 = LowLevel::Subtract(R0, L+N2, L, N2);
-        c2 += LowLevel::Subtract(R0, R0, T0, N2);
-        word t = (Compare(R0, T2, N2) == -1);
-
-        carry += t;
-        carry += Increment(R0, N2, c2+t);
-        carry += LowLevel::Add(R0, R0, T1, N2);
-        carry += LowLevel::Add(R0, R0, T3, N2);
-
-        CopyWords(R1, T3, N2);
-        Increment(R1, N2, carry);
-    }
-}
-
-
-inline word Add(word *C, const word *A, const word *B, unsigned int N)
-{
-    return LowLevel::Add(C, A, B, N);
-}
-
-inline word Subtract(word *C, const word *A, const word *B, unsigned int N)
-{
-    return LowLevel::Subtract(C, A, B, N);
-}
-
-inline void Multiply(word *R, word *T, const word *A, const word *B,
-                     unsigned int N)
-{
-    RecursiveMultiply(R, T, A, B, N);
-}
-
-inline void Square(word *R, word *T, const word *A, unsigned int N)
-{
-    RecursiveSquare(R, T, A, N);
-}
-
-
-void AsymmetricMultiply(word *R, word *T, const word *A, unsigned int NA,
-                        const word *B, unsigned int NB)
-{
-    if (NA == NB)
-    {
-        if (A == B)
-            Square(R, T, A, NA);
-        else
-            Multiply(R, T, A, B, NA);
-
-        return;
-    }
-
-    if (NA > NB)
-    {
-        STL::swap(A, B);
-        STL::swap(NA, NB);
-    }
-
-    if (NA==2 && !A[1])
-    {
-        switch (A[0])
-        {
-        case 0:
-            SetWords(R, 0, NB+2);
-            return;
-        case 1:
-            CopyWords(R, B, NB);
-            R[NB] = R[NB+1] = 0;
-            return;
-        default:
-            R[NB] = LinearMultiply(R, B, A[0], NB);
-            R[NB+1] = 0;
-            return;
-        }
-    }
-
-    Multiply(R, T, A, B, NA);
-    CopyWords(T+2*NA, R+NA, NA);
-
-    unsigned i;
-
-    for (i=2*NA; i>=1;
-            i++;
-        }
-        k+=i;
-
-        if (t==1 && f[1]==0 && EvenWordCount(f, fgLen)==2)
-        {
-            if (s%2==0)
-                CopyWords(R, b, N);
-            else
-                Subtract(R, M, b, N);
-            return k;
-        }
-
-        ShiftWordsRightByBits(f, fgLen, i);
-        t=ShiftWordsLeftByBits(c, bcLen, i);
-        if (t)
-        {
-            c[bcLen] = t;
-            bcLen+=2;
-        }
-
-        if (f[fgLen-2]==0 && g[fgLen-2]==0 && f[fgLen-1]==0 && g[fgLen-1]==0)
-            fgLen-=2;
-
-        if (Compare(f, g, fgLen)==-1)
-        {
-            STL::swap(f, g);
-            STL::swap(b, c);
-            s++;
-        }
-
-        Subtract(f, f, g, fgLen);
-
-        if (Add(b, b, c, bcLen))
-        {
-            b[bcLen] = 1;
-            bcLen+=2;
-        }
-    }
-}
-
-// R[N] - result = A/(2^k) mod M
-// A[N] - input
-// M[N] - modulus
-
-void DivideByPower2Mod(word *R, const word *A, unsigned int k, const word *M,
-                       unsigned int N)
-{
-    CopyWords(R, A, N);
-
-    while (k--)
-    {
-        if (R[0]%2==0)
-            ShiftWordsRightByBits(R, N, 1);
-        else
-        {
-            word carry = Add(R, R, M, N);
-            ShiftWordsRightByBits(R, N, 1);
-            R[N-1] += carry<<(WORD_BITS-1);
-        }
-    }
-}
-
-// R[N] - result = A*(2^k) mod M
-// A[N] - input
-// M[N] - modulus
-
-void MultiplyByPower2Mod(word *R, const word *A, unsigned int k, const word *M,
-                         unsigned int N)
-{
-    CopyWords(R, A, N);
-
-    while (k--)
-        if (ShiftWordsLeftByBits(R, N, 1) || Compare(R, M, N)>=0)
-            Subtract(R, R, M, N);
-}
-
-
-// ********** end of integer needs
-
-
-Integer::Integer()
-    : reg_(2), sign_(POSITIVE)
-{
-    reg_[0] = reg_[1] = 0;
-}
-
-
-Integer::Integer(const Integer& t)
-    : reg_(RoundupSize(t.WordCount())), sign_(t.sign_)
-{
-    CopyWords(reg_.get_buffer(), t.reg_.get_buffer(), reg_.size());
-}
-
-
-Integer::Integer(signed long value)
-    : reg_(2)
-{
-    if (value >= 0)
-        sign_ = POSITIVE;
-    else
-    {
-        sign_ = NEGATIVE;
-        value = -value;
-    }
-    reg_[0] = word(value);
-    reg_[1] = word(SafeRightShift(value));
-}
-
-
-Integer::Integer(Sign s, word high, word low)
-    : reg_(2), sign_(s)
-{
-    reg_[0] = low;
-    reg_[1] = high;
-}
-
-
-Integer::Integer(word value, unsigned int length)
-    : reg_(RoundupSize(length)), sign_(POSITIVE)
-{
-    reg_[0] = value;
-    SetWords(reg_ + 1, 0, reg_.size() - 1);
-}
-
-
-Integer::Integer(const byte *encodedInteger, unsigned int byteCount,
-                 Signedness s)
-{
-    Decode(encodedInteger, byteCount, s);
-}
-
-class BadBER {};
-
-// BER Decode Source
-Integer::Integer(Source& source)
-    : reg_(2), sign_(POSITIVE)
-{
-    Decode(source);
-}
-
-void Integer::Decode(Source& source)
-{
-    byte b = source.next();
-    if (b != INTEGER) {
-        source.SetError(INTEGER_E);
-        return;
-    }
-
-    word32 length = GetLength(source);
-    if (length == 0 || source.GetError().What()) return;
-
-    if ( (b = source.next()) == 0x00)
-        length--;
-    else
-        source.prev();
-
-    if (source.IsLeft(length) == false) return;
- 
-    unsigned int words = (length + WORD_SIZE - 1) / WORD_SIZE;
-    words = RoundupSize(words);
-    if (words > reg_.size()) reg_.CleanNew(words);
-
-    for (int j = length; j > 0; j--) {
-        b = source.next();
-        reg_ [(j-1) / WORD_SIZE] |= (word)b << ((j-1) % WORD_SIZE) * 8;
-    }
-}
-
-
-void Integer::Decode(const byte* input, unsigned int inputLen, Signedness s)
-{
-    unsigned int idx(0);
-    byte b = 0; 
-    if (inputLen>0)
-        b = input[idx];   // peek
-    sign_  = ((s==SIGNED) && (b & 0x80)) ? NEGATIVE : POSITIVE;
-
-    while (inputLen>0 && (sign_==POSITIVE ? b==0 : b==0xff))
-    {
-        idx++;   // skip
-        if (--inputLen>0)
-            b = input[idx];  // peek
-    }
-
-    reg_.CleanNew(RoundupSize(BytesToWords(inputLen)));
-
-    for (unsigned int i=inputLen; i > 0; i--)
-    {
-        b = input[idx++];
-        reg_[(i-1)/WORD_SIZE] |= (word)b << ((i-1)%WORD_SIZE)*8;
-    }
-
-    if (sign_ == NEGATIVE)
-    {
-        for (unsigned i=inputLen; i 0; i--)
-            output[idx++] = GetByte(i-1);
-    }
-    else
-    {
-        // take two's complement of *this
-        Integer temp = Integer::Power2(8*max(ByteCount(), outputLen)) + *this;
-        for (unsigned i=0; i range);
-
-    *this += min;
-}
-
-
-Integer Integer::Power2(unsigned int e)
-{
-    Integer r((word)0, BitsToWords(e + 1));
-    r.SetBit(e);
-    return r;
-}
-
-
-void Integer::SetBit(unsigned int n, bool value)
-{
-    if (value)
-    {
-        reg_.CleanGrow(RoundupSize(BitsToWords(n + 1)));
-        reg_[n / WORD_BITS] |= (word(1) << (n % WORD_BITS));
-    }
-    else
-    {
-        if (n / WORD_BITS < reg_.size())
-            reg_[n / WORD_BITS] &= ~(word(1) << (n % WORD_BITS));
-    }
-}
-
-
-void Integer::SetByte(unsigned int n, byte value)
-{
-    reg_.CleanGrow(RoundupSize(BytesToWords(n+1)));
-    reg_[n/WORD_SIZE] &= ~(word(0xff) << 8*(n%WORD_SIZE));
-    reg_[n/WORD_SIZE] |= (word(value) << 8*(n%WORD_SIZE));
-}
-
-
-void Integer::Negate()
-{
-    if (!!(*this))	// don't flip sign if *this==0
-        sign_ = Sign(1 - sign_);
-}
-
-
-bool Integer::operator!() const
-{
-    return IsNegative() ? false : (reg_[0]==0 && WordCount()==0);
-}
-
-
-Integer& Integer::operator=(const Integer& t)
-{
-    if (this != &t)
-    {
-        reg_.New(RoundupSize(t.WordCount()));
-        CopyWords(reg_.get_buffer(), t.reg_.get_buffer(), reg_.size());
-        sign_ = t.sign_;
-    }
-    return *this;
-}
-
-
-Integer& Integer::operator+=(const Integer& t)
-{
-    reg_.CleanGrow(t.reg_.size());
-    if (NotNegative())
-    {
-        if (t.NotNegative())
-            PositiveAdd(*this, *this, t);
-        else
-            PositiveSubtract(*this, *this, t);
-    }
-    else
-    {
-        if (t.NotNegative())
-            PositiveSubtract(*this, t, *this);
-        else
-        {
-            PositiveAdd(*this, *this, t);
-            sign_ = Integer::NEGATIVE;
-        }
-    }
-    return *this;
-}
-
-
-Integer Integer::operator-() const
-{
-    Integer result(*this);
-    result.Negate();
-    return result;
-}
-
-
-Integer& Integer::operator-=(const Integer& t)
-{
-    reg_.CleanGrow(t.reg_.size());
-    if (NotNegative())
-    {
-        if (t.NotNegative())
-            PositiveSubtract(*this, *this, t);
-        else
-            PositiveAdd(*this, *this, t);
-    }
-    else
-    {
-        if (t.NotNegative())
-        {
-            PositiveAdd(*this, *this, t);
-            sign_ = Integer::NEGATIVE;
-        }
-        else
-            PositiveSubtract(*this, t, *this);
-    }
-    return *this;
-}
-
-
-Integer& Integer::operator++()
-{
-    if (NotNegative())
-    {
-        if (Increment(reg_.get_buffer(), reg_.size()))
-        {
-            reg_.CleanGrow(2*reg_.size());
-            reg_[reg_.size()/2]=1;
-        }
-    }
-    else
-    {
-        word borrow = Decrement(reg_.get_buffer(), reg_.size());
-        (void)borrow;           // shut up compiler
-        if (WordCount()==0)
-            *this = Zero();
-    }
-    return *this;
-}
-
-Integer& Integer::operator--()
-{
-    if (IsNegative())
-    {
-        if (Increment(reg_.get_buffer(), reg_.size()))
-        {
-            reg_.CleanGrow(2*reg_.size());
-            reg_[reg_.size()/2]=1;
-        }
-    }
-    else
-    {
-        if (Decrement(reg_.get_buffer(), reg_.size()))
-            *this = -One();
-    }
-    return *this;
-}
-
-
-Integer& Integer::operator<<=(unsigned int n)
-{
-    const unsigned int wordCount = WordCount();
-    const unsigned int shiftWords = n / WORD_BITS;
-    const unsigned int shiftBits = n % WORD_BITS;
-
-    reg_.CleanGrow(RoundupSize(wordCount+BitsToWords(n)));
-    ShiftWordsLeftByWords(reg_.get_buffer(), wordCount + shiftWords,
-                          shiftWords);
-    ShiftWordsLeftByBits(reg_+shiftWords, wordCount+BitsToWords(shiftBits),
-                         shiftBits);
-    return *this;
-}
-
-Integer& Integer::operator>>=(unsigned int n)
-{
-    const unsigned int wordCount = WordCount();
-    const unsigned int shiftWords = n / WORD_BITS;
-    const unsigned int shiftBits = n % WORD_BITS;
-
-    ShiftWordsRightByWords(reg_.get_buffer(), wordCount, shiftWords);
-    if (wordCount > shiftWords)
-        ShiftWordsRightByBits(reg_.get_buffer(), wordCount-shiftWords,
-                              shiftBits);
-    if (IsNegative() && WordCount()==0)   // avoid -0
-        *this = Zero();
-    return *this;
-}
-
-
-void PositiveAdd(Integer& sum, const Integer& a, const Integer& b)
-{
-    word carry;
-    if (a.reg_.size() == b.reg_.size())
-        carry = Add(sum.reg_.get_buffer(), a.reg_.get_buffer(),
-                    b.reg_.get_buffer(), a.reg_.size());
-    else if (a.reg_.size() > b.reg_.size())
-    {
-        carry = Add(sum.reg_.get_buffer(), a.reg_.get_buffer(),
-                    b.reg_.get_buffer(), b.reg_.size());
-        CopyWords(sum.reg_+b.reg_.size(), a.reg_+b.reg_.size(),
-                  a.reg_.size()-b.reg_.size());
-        carry = Increment(sum.reg_+b.reg_.size(), a.reg_.size()-b.reg_.size(),
-                          carry);
-    }
-    else
-    {
-        carry = Add(sum.reg_.get_buffer(), a.reg_.get_buffer(),
-                    b.reg_.get_buffer(), a.reg_.size());
-        CopyWords(sum.reg_+a.reg_.size(), b.reg_+a.reg_.size(),
-                  b.reg_.size()-a.reg_.size());
-        carry = Increment(sum.reg_+a.reg_.size(), b.reg_.size()-a.reg_.size(),
-                          carry);
-    }
-
-    if (carry)
-    {
-        sum.reg_.CleanGrow(2*sum.reg_.size());
-        sum.reg_[sum.reg_.size()/2] = 1;
-    }
-    sum.sign_ = Integer::POSITIVE;
-}
-
-void PositiveSubtract(Integer &diff, const Integer &a, const Integer& b)
-{
-    unsigned aSize = a.WordCount();
-    aSize += aSize%2;
-    unsigned bSize = b.WordCount();
-    bSize += bSize%2;
-
-    if (aSize == bSize)
-    {
-        if (Compare(a.reg_.get_buffer(), b.reg_.get_buffer(), aSize) >= 0)
-        {
-            Subtract(diff.reg_.get_buffer(), a.reg_.get_buffer(),
-                     b.reg_.get_buffer(), aSize);
-            diff.sign_ = Integer::POSITIVE;
-        }
-        else
-        {
-            Subtract(diff.reg_.get_buffer(), b.reg_.get_buffer(),
-                     a.reg_.get_buffer(), aSize);
-            diff.sign_ = Integer::NEGATIVE;
-        }
-    }
-    else if (aSize > bSize)
-    {
-        word borrow = Subtract(diff.reg_.get_buffer(), a.reg_.get_buffer(),
-                               b.reg_.get_buffer(), bSize);
-        CopyWords(diff.reg_+bSize, a.reg_+bSize, aSize-bSize);
-        borrow = Decrement(diff.reg_+bSize, aSize-bSize, borrow);
-        diff.sign_ = Integer::POSITIVE;
-    }
-    else
-    {
-        word borrow = Subtract(diff.reg_.get_buffer(), b.reg_.get_buffer(),
-                               a.reg_.get_buffer(), aSize);
-        CopyWords(diff.reg_+aSize, b.reg_+aSize, bSize-aSize);
-        borrow = Decrement(diff.reg_+aSize, bSize-aSize, borrow);
-        diff.sign_ = Integer::NEGATIVE;
-    }
-}
-
-
-unsigned int Integer::MinEncodedSize(Signedness signedness) const
-{
-    unsigned int outputLen = max(1U, ByteCount());
-    if (signedness == UNSIGNED)
-        return outputLen;
-    if (NotNegative() && (GetByte(outputLen-1) & 0x80))
-        outputLen++;
-    if (IsNegative() && *this < -Power2(outputLen*8-1))
-        outputLen++;
-    return outputLen;
-}
-
-
-int Integer::Compare(const Integer& t) const
-{
-    if (NotNegative())
-    {
-        if (t.NotNegative())
-            return PositiveCompare(t);
-        else
-            return 1;
-    }
-    else
-    {
-        if (t.NotNegative())
-            return -1;
-        else
-            return -PositiveCompare(t);
-    }
-}
-
-
-int Integer::PositiveCompare(const Integer& t) const
-{
-    unsigned size = WordCount(), tSize = t.WordCount();
-
-    if (size == tSize)
-        return TaoCrypt::Compare(reg_.get_buffer(), t.reg_.get_buffer(), size);
-    else
-        return size > tSize ? 1 : -1;
-}
-
-
-bool Integer::GetBit(unsigned int n) const
-{
-    if (n/WORD_BITS >= reg_.size())
-        return 0;
-    else
-        return bool((reg_[n/WORD_BITS] >> (n % WORD_BITS)) & 1);
-}
-
-
-unsigned long Integer::GetBits(unsigned int i, unsigned int n) const
-{
-    unsigned long v = 0;
-    for (unsigned int j=0; j= reg_.size())
-        return 0;
-    else
-        return byte(reg_[n/WORD_SIZE] >> ((n%WORD_SIZE)*8));
-}
-
-
-unsigned int Integer::BitCount() const
-{
-    unsigned wordCount = WordCount();
-    if (wordCount)
-        return (wordCount-1)*WORD_BITS + BitPrecision(reg_[wordCount-1]);
-    else
-        return 0;
-}
-
-
-unsigned int Integer::ByteCount() const
-{
-    unsigned wordCount = WordCount();
-    if (wordCount)
-        return (wordCount-1)*WORD_SIZE + BytePrecision(reg_[wordCount-1]);
-    else
-        return 0;
-}
-
-
-unsigned int Integer::WordCount() const
-{
-    return CountWords(reg_.get_buffer(), reg_.size());
-}
-
-
-bool Integer::IsConvertableToLong() const
-{
-    if (ByteCount() > sizeof(long))
-        return false;
-
-    unsigned long value = reg_[0];
-    value += SafeLeftShift(reg_[1]);
-
-    if (sign_ == POSITIVE)
-        return (signed long)value >= 0;
-    else
-        return -(signed long)value < 0;
-}
-
-
-signed long Integer::ConvertToLong() const
-{
-    unsigned long value = reg_[0];
-    value += SafeLeftShift(reg_[1]);
-    return sign_ == POSITIVE ? value : -(signed long)value;
-}
-
-
-void Integer::Swap(Integer& a)
-{
-    reg_.Swap(a.reg_);
-    STL::swap(sign_, a.sign_);
-}
-
-
-Integer Integer::Plus(const Integer& b) const
-{
-    Integer sum((word)0, max(reg_.size(), b.reg_.size()));
-    if (NotNegative())
-    {
-        if (b.NotNegative())
-            PositiveAdd(sum, *this, b);
-        else
-            PositiveSubtract(sum, *this, b);
-    }
-    else
-    {
-        if (b.NotNegative())
-            PositiveSubtract(sum, b, *this);
-        else
-        {
-            PositiveAdd(sum, *this, b);
-            sum.sign_ = Integer::NEGATIVE;
-        }
-    }
-    return sum;
-}
-
-
-Integer Integer::Minus(const Integer& b) const
-{
-    Integer diff((word)0, max(reg_.size(), b.reg_.size()));
-    if (NotNegative())
-    {
-        if (b.NotNegative())
-            PositiveSubtract(diff, *this, b);
-        else
-            PositiveAdd(diff, *this, b);
-    }
-    else
-    {
-        if (b.NotNegative())
-        {
-            PositiveAdd(diff, *this, b);
-            diff.sign_ = Integer::NEGATIVE;
-        }
-        else
-            PositiveSubtract(diff, b, *this);
-    }
-    return diff;
-}
-
-
-Integer Integer::Times(const Integer &b) const
-{
-    Integer product;
-    Multiply(product, *this, b);
-    return product;
-}
-
-
-#undef A0
-#undef A1
-#undef B0
-#undef B1
-
-#undef T0
-#undef T1
-#undef T2
-#undef T3
-
-#undef R0
-#undef R1
-#undef R2
-#undef R3
-
-
-static inline void AtomicDivide(word *Q, const word *A, const word *B)
-{
-    word T[4];
-    DWord q = DivideFourWordsByTwo(T, DWord(A[0], A[1]),
-                                         DWord(A[2], A[3]), DWord(B[0], B[1]));
-    Q[0] = q.GetLowHalf();
-    Q[1] = q.GetHighHalf();
-
-#ifndef NDEBUG
-    if (B[0] || B[1])
-    {
-        // multiply quotient and divisor and add remainder, make sure it 
-        // equals dividend
-        word P[4];
-        Portable::Multiply2(P, Q, B);
-        Add(P, P, T, 4);
-    }
-#endif
-}
-
-
-// for use by Divide(), corrects the underestimated quotient {Q1,Q0}
-static void CorrectQuotientEstimate(word *R, word *T, word *Q, const word *B,
-                                    unsigned int N)
-{
-    if (Q[1])
-    {
-        T[N] = T[N+1] = 0;
-        unsigned i;
-        for (i=0; i= 0)
-    {
-        R[N] -= Subtract(R, R, B, N);
-        Q[1] += (++Q[0]==0);
-    }
-}
-
-// R[NB] -------- remainder = A%B
-// Q[NA-NB+2] --- quotient	= A/B
-// T[NA+2*NB+4] - temp work space
-// A[NA] -------- dividend
-// B[NB] -------- divisor
-
-
-void Divide(word* R, word* Q, word* T, const word* A, unsigned int NA,
-            const word* B, unsigned int NB)
-{
-    // set up temporary work space
-    word *const TA=T;
-    word *const TB=T+NA+2;
-    word *const TP=T+NA+2+NB;
-
-    // copy B into TB and normalize it so that TB has highest bit set to 1
-    unsigned shiftWords = (B[NB-1]==0);
-    TB[0] = TB[NB-1] = 0;
-    CopyWords(TB+shiftWords, B, NB-shiftWords);
-    unsigned shiftBits = WORD_BITS - BitPrecision(TB[NB-1]);
-    ShiftWordsLeftByBits(TB, NB, shiftBits);
-
-    // copy A into TA and normalize it
-    TA[0] = TA[NA] = TA[NA+1] = 0;
-    CopyWords(TA+shiftWords, A, NA);
-    ShiftWordsLeftByBits(TA, NA+2, shiftBits);
-
-    if (TA[NA+1]==0 && TA[NA] <= 1)
-    {
-        Q[NA-NB+1] = Q[NA-NB] = 0;
-        while (TA[NA] || Compare(TA+NA-NB, TB, NB) >= 0)
-        {
-            TA[NA] -= Subtract(TA+NA-NB, TA+NA-NB, TB, NB);
-            ++Q[NA-NB];
-        }
-    }
-    else
-    {
-        NA+=2;
-    }
-
-    word BT[2];
-    BT[0] = TB[NB-2] + 1;
-    BT[1] = TB[NB-1] + (BT[0]==0);
-
-    // start reducing TA mod TB, 2 words at a time
-    for (unsigned i=NA-2; i>=NB; i-=2)
-    {
-        AtomicDivide(Q+i-NB, TA+i-2, BT);
-        CorrectQuotientEstimate(TA+i-NB, TP, Q+i-NB, TB, NB);
-    }
-
-    // copy TA into R, and denormalize it
-    CopyWords(R, TA+shiftWords, NB);
-    ShiftWordsRightByBits(R, NB, shiftBits);
-}
-
-
-void PositiveDivide(Integer& remainder, Integer& quotient,
-                   const Integer& a, const Integer& b)
-{
-    unsigned aSize = a.WordCount();
-    unsigned bSize = b.WordCount();
-
-    if (a.PositiveCompare(b) == -1)
-    {
-        remainder = a;
-        remainder.sign_ = Integer::POSITIVE;
-        quotient = Integer::Zero();
-        return;
-    }
-
-    aSize += aSize%2;	// round up to next even number
-    bSize += bSize%2;
-
-    remainder.reg_.CleanNew(RoundupSize(bSize));
-    remainder.sign_ = Integer::POSITIVE;
-    quotient.reg_.CleanNew(RoundupSize(aSize-bSize+2));
-    quotient.sign_ = Integer::POSITIVE;
-
-    AlignedWordBlock T(aSize+2*bSize+4);
-    Divide(remainder.reg_.get_buffer(), quotient.reg_.get_buffer(),
-           T.get_buffer(), a.reg_.get_buffer(), aSize, b.reg_.get_buffer(),
-           bSize);
-}
-
-void Integer::Divide(Integer &remainder, Integer "ient,
-                     const Integer ÷nd, const Integer &divisor)
-{
-    PositiveDivide(remainder, quotient, dividend, divisor);
-
-    if (dividend.IsNegative())
-    {
-        quotient.Negate();
-        if (remainder.NotZero())
-        {
-            --quotient;
-            remainder = divisor.AbsoluteValue() - remainder;
-        }
-    }
-
-    if (divisor.IsNegative())
-        quotient.Negate();
-}
-
-void Integer::DivideByPowerOf2(Integer &r, Integer &q, const Integer &a,
-                               unsigned int n)
-{
-    q = a;
-    q >>= n;
-
-    const unsigned int wordCount = BitsToWords(n);
-    if (wordCount <= a.WordCount())
-    {
-        r.reg_.resize(RoundupSize(wordCount));
-        CopyWords(r.reg_.get_buffer(), a.reg_.get_buffer(), wordCount);
-        SetWords(r.reg_+wordCount, 0, r.reg_.size()-wordCount);
-        if (n % WORD_BITS != 0)
-          r.reg_[wordCount-1] %= (word(1) << (n % WORD_BITS));
-    }
-    else
-    {
-        r.reg_.resize(RoundupSize(a.WordCount()));
-        CopyWords(r.reg_.get_buffer(), a.reg_.get_buffer(), r.reg_.size());
-    }
-    r.sign_ = POSITIVE;
-
-    if (a.IsNegative() && r.NotZero())
-    {
-        --q;
-        r = Power2(n) - r;
-    }
-}
-
-Integer Integer::DividedBy(const Integer &b) const
-{
-    Integer remainder, quotient;
-    Integer::Divide(remainder, quotient, *this, b);
-    return quotient;
-}
-
-Integer Integer::Modulo(const Integer &b) const
-{
-    Integer remainder, quotient;
-    Integer::Divide(remainder, quotient, *this, b);
-    return remainder;
-}
-
-void Integer::Divide(word &remainder, Integer "ient,
-                     const Integer ÷nd, word divisor)
-{
-    if ((divisor & (divisor-1)) == 0)	// divisor is a power of 2
-    {
-        quotient = dividend >> (BitPrecision(divisor)-1);
-        remainder = dividend.reg_[0] & (divisor-1);
-        return;
-    }
-
-    unsigned int i = dividend.WordCount();
-    quotient.reg_.CleanNew(RoundupSize(i));
-    remainder = 0;
-    while (i--)
-    {
-        quotient.reg_[i] = DWord(dividend.reg_[i], remainder) / divisor;
-        remainder = DWord(dividend.reg_[i], remainder) % divisor;
-    }
-
-    if (dividend.NotNegative())
-        quotient.sign_ = POSITIVE;
-    else
-    {
-        quotient.sign_ = NEGATIVE;
-        if (remainder)
-        {
-            --quotient;
-            remainder = divisor - remainder;
-        }
-    }
-}
-
-Integer Integer::DividedBy(word b) const
-{
-    word remainder;
-    Integer quotient;
-    Integer::Divide(remainder, quotient, *this, b);
-    return quotient;
-}
-
-word Integer::Modulo(word divisor) const
-{
-    word remainder;
-
-    if ((divisor & (divisor-1)) == 0)	// divisor is a power of 2
-        remainder = reg_[0] & (divisor-1);
-    else
-    {
-        unsigned int i = WordCount();
-
-        if (divisor <= 5)
-        {
-            DWord sum(0, 0);
-            while (i--)
-                sum += reg_[i];
-            remainder = sum % divisor;
-        }
-        else
-        {
-            remainder = 0;
-            while (i--)
-                remainder = DWord(reg_[i], remainder) % divisor;
-        }
-    }
-
-    if (IsNegative() && remainder)
-        remainder = divisor - remainder;
-
-    return remainder;
-}
-
-
-Integer Integer::AbsoluteValue() const
-{
-    Integer result(*this);
-    result.sign_ = POSITIVE;
-    return result;
-}
-
-
-Integer Integer::SquareRoot() const
-{
-    if (!IsPositive())
-        return Zero();
-
-    // overestimate square root
-    Integer x, y = Power2((BitCount()+1)/2);
-
-    do
-    {
-        x = y;
-        y = (x + *this/x) >> 1;
-    } while (y=m)
-        return (*this%m).InverseMod(m);
-
-    if (m.IsEven())
-    {
-        if (!m || IsEven())
-            return Zero();	// no inverse
-        if (*this == One())
-            return One();
-
-        Integer u = m.InverseMod(*this);
-        return !u ? Zero() : (m*(*this-u)+1)/(*this);
-    }
-
-    AlignedWordBlock T(m.reg_.size() * 4);
-    Integer r((word)0, m.reg_.size());
-    unsigned k = AlmostInverse(r.reg_.get_buffer(), T.get_buffer(),
-                               reg_.get_buffer(), reg_.size(),
-                               m.reg_.get_buffer(), m.reg_.size());
-    DivideByPower2Mod(r.reg_.get_buffer(), r.reg_.get_buffer(), k,
-                      m.reg_.get_buffer(), m.reg_.size());
-    return r;
-}
-
-word Integer::InverseMod(const word mod) const
-{
-    word g0 = mod, g1 = *this % mod;
-    word v0 = 0, v1 = 1;
-    word y;
-
-    while (g1)
-    {
-        if (g1 == 1)
-            return v1;
-        y = g0 / g1;
-        g0 = g0 % g1;
-        v0 += y * v1;
-
-        if (!g0)
-            break;
-        if (g0 == 1)
-            return mod-v0;
-        y = g1 / g0;
-        g1 = g1 % g0;
-        v1 += y * v0;
-    }
-    return 0;
-}
-
-// ********* ModArith stuff
-
-const Integer& ModularArithmetic::Half(const Integer &a) const
-{
-    if (a.reg_.size()==modulus.reg_.size())
-    {
-        TaoCrypt::DivideByPower2Mod(result.reg_.begin(), a.reg_.begin(), 1,
-                                    modulus.reg_.begin(), a.reg_.size());
-        return result;
-    }
-    else
-        return result1 = (a.IsEven() ? (a >> 1) : ((a+modulus) >> 1));
-}
-
-const Integer& ModularArithmetic::Add(const Integer &a, const Integer &b) const
-{
-    if (a.reg_.size()==modulus.reg_.size() && 
-        b.reg_.size()==modulus.reg_.size())
-    {
-        if (TaoCrypt::Add(result.reg_.begin(), a.reg_.begin(), b.reg_.begin(),
-                          a.reg_.size())
-            || Compare(result.reg_.get_buffer(), modulus.reg_.get_buffer(),
-                       a.reg_.size()) >= 0)
-        {
-            TaoCrypt::Subtract(result.reg_.begin(), result.reg_.begin(),
-                               modulus.reg_.begin(), a.reg_.size());
-        }
-        return result;
-    }
-    else
-    {
-        result1 = a+b;
-        if (result1 >= modulus)
-            result1 -= modulus;
-        return result1;
-    }
-}
-
-Integer& ModularArithmetic::Accumulate(Integer &a, const Integer &b) const
-{
-    if (a.reg_.size()==modulus.reg_.size() && 
-        b.reg_.size()==modulus.reg_.size())
-    {
-        if (TaoCrypt::Add(a.reg_.get_buffer(), a.reg_.get_buffer(),
-                          b.reg_.get_buffer(), a.reg_.size())
-            || Compare(a.reg_.get_buffer(), modulus.reg_.get_buffer(),
-                       a.reg_.size()) >= 0)
-        {
-            TaoCrypt::Subtract(a.reg_.get_buffer(), a.reg_.get_buffer(),
-                               modulus.reg_.get_buffer(), a.reg_.size());
-        }
-    }
-    else
-    {
-        a+=b;
-        if (a>=modulus)
-            a-=modulus;
-    }
-
-    return a;
-}
-
-const Integer& ModularArithmetic::Subtract(const Integer &a,
-                                           const Integer &b) const
-{
-    if (a.reg_.size()==modulus.reg_.size() && 
-        b.reg_.size()==modulus.reg_.size())
-    {
-        if (TaoCrypt::Subtract(result.reg_.begin(), a.reg_.begin(),
-                               b.reg_.begin(), a.reg_.size()))
-            TaoCrypt::Add(result.reg_.begin(), result.reg_.begin(),
-                          modulus.reg_.begin(), a.reg_.size());
-        return result;
-    }
-    else
-    {
-        result1 = a-b;
-        if (result1.IsNegative())
-            result1 += modulus;
-        return result1;
-    }
-}
-
-Integer& ModularArithmetic::Reduce(Integer &a, const Integer &b) const
-{
-    if (a.reg_.size()==modulus.reg_.size() && 
-        b.reg_.size()==modulus.reg_.size())
-    {
-        if (TaoCrypt::Subtract(a.reg_.get_buffer(), a.reg_.get_buffer(),
-                               b.reg_.get_buffer(), a.reg_.size()))
-            TaoCrypt::Add(a.reg_.get_buffer(), a.reg_.get_buffer(),
-                          modulus.reg_.get_buffer(), a.reg_.size());
-    }
-    else
-    {
-        a-=b;
-        if (a.IsNegative())
-            a+=modulus;
-    }
-
-    return a;
-}
-
-const Integer& ModularArithmetic::Inverse(const Integer &a) const
-{
-    if (!a)
-        return a;
-
-    CopyWords(result.reg_.begin(), modulus.reg_.begin(), modulus.reg_.size());
-    if (TaoCrypt::Subtract(result.reg_.begin(), result.reg_.begin(),
-                           a.reg_.begin(), a.reg_.size()))
-        Decrement(result.reg_.begin()+a.reg_.size(), 1,
-                  modulus.reg_.size()-a.reg_.size());
-
-    return result;
-}
-
-Integer ModularArithmetic::CascadeExponentiate(const Integer &x,
-                  const Integer &e1, const Integer &y, const Integer &e2) const
-{
-    if (modulus.IsOdd())
-    {
-        MontgomeryRepresentation dr(modulus);
-        return dr.ConvertOut(dr.CascadeExponentiate(dr.ConvertIn(x), e1,
-                                                    dr.ConvertIn(y), e2));
-    }
-    else
-        return AbstractRing::CascadeExponentiate(x, e1, y, e2);
-}
-
-void ModularArithmetic::SimultaneousExponentiate(Integer *results,
-        const Integer &base, const Integer *exponents,
-        unsigned int exponentsCount) const
-{
-    if (modulus.IsOdd())
-    {
-        MontgomeryRepresentation dr(modulus);
-        dr.SimultaneousExponentiate(results, dr.ConvertIn(base), exponents,
-                                    exponentsCount);
-        for (unsigned int i=0; i
-
-namespace TaoCrypt {
-
-
-MD2::MD2()
-    : X_(X_SIZE), C_(BLOCK_SIZE), buffer_(BLOCK_SIZE)
-{
-    Init();
-}
-
-void MD2::Init()
-{
-    memset(X_.get_buffer(), 0, X_SIZE);
-    memset(C_.get_buffer(), 0, BLOCK_SIZE);
-    memset(buffer_.get_buffer(), 0, BLOCK_SIZE);
-    count_ = 0;
-}
-
-
-void MD2::Update(const byte* data, word32 len)
-{
-
-    static const byte S[256] = 
-    {
-        41, 46, 67, 201, 162, 216, 124, 1, 61, 54, 84, 161, 236, 240, 6,
-        19, 98, 167, 5, 243, 192, 199, 115, 140, 152, 147, 43, 217, 188,
-        76, 130, 202, 30, 155, 87, 60, 253, 212, 224, 22, 103, 66, 111, 24,
-        138, 23, 229, 18, 190, 78, 196, 214, 218, 158, 222, 73, 160, 251,
-        245, 142, 187, 47, 238, 122, 169, 104, 121, 145, 21, 178, 7, 63,
-        148, 194, 16, 137, 11, 34, 95, 33, 128, 127, 93, 154, 90, 144, 50,
-        39, 53, 62, 204, 231, 191, 247, 151, 3, 255, 25, 48, 179, 72, 165,
-        181, 209, 215, 94, 146, 42, 172, 86, 170, 198, 79, 184, 56, 210,
-        150, 164, 125, 182, 118, 252, 107, 226, 156, 116, 4, 241, 69, 157,
-        112, 89, 100, 113, 135, 32, 134, 91, 207, 101, 230, 45, 168, 2, 27,
-        96, 37, 173, 174, 176, 185, 246, 28, 70, 97, 105, 52, 64, 126, 15,
-        85, 71, 163, 35, 221, 81, 175, 58, 195, 92, 249, 206, 186, 197,
-        234, 38, 44, 83, 13, 110, 133, 40, 132, 9, 211, 223, 205, 244, 65,
-        129, 77, 82, 106, 220, 55, 200, 108, 193, 171, 250, 36, 225, 123,
-        8, 12, 189, 177, 74, 120, 136, 149, 139, 227, 99, 232, 109, 233,
-        203, 213, 254, 59, 0, 29, 57, 242, 239, 183, 14, 102, 88, 208, 228,
-        166, 119, 114, 248, 235, 117, 75, 10, 49, 68, 80, 180, 143, 237,
-        31, 26, 219, 153, 141, 51, 159, 17, 131, 20
-    };
-
-    while (len) {
-        word32 L = (PAD_SIZE - count_) < len ? (PAD_SIZE - count_) : len;
-        memcpy(buffer_.get_buffer() + count_, data, L);
-        count_ += L;
-        data += L;
-        len  -= L;
-
-        if (count_==PAD_SIZE) {
-            count_ = 0;
-            memcpy(X_.get_buffer() + PAD_SIZE, buffer_.get_buffer(), PAD_SIZE);
-            byte t = C_[15];
-
-            int i;
-            for(i = 0; i < PAD_SIZE; i++) {
-                X_[32 + i] = X_[PAD_SIZE + i] ^ X_[i];
-                t = C_[i] ^= S[buffer_[i] ^ t];
-            }
-
-            t=0;
-            for(i = 0; i < 18; i++) {
-                for(int j = 0; j < X_SIZE; j += 8) {
-                    t = X_[j+0] ^= S[t];
-                    t = X_[j+1] ^= S[t];
-                    t = X_[j+2] ^= S[t];
-                    t = X_[j+3] ^= S[t];
-                    t = X_[j+4] ^= S[t];
-                    t = X_[j+5] ^= S[t];
-                    t = X_[j+6] ^= S[t];
-                    t = X_[j+7] ^= S[t];
-                }
-                t = (t + i) & 0xFF;
-            }
-        }
-    }
-}
-
-
-void MD2::Final(byte *hash)
-{
-    byte   padding[BLOCK_SIZE];
-    word32 padLen = PAD_SIZE - count_;
-
-    for (word32 i = 0; i < padLen; i++)
-        padding[i] = static_cast(padLen);
-
-    Update(padding, padLen);
-    Update(C_.get_buffer(), BLOCK_SIZE);
-
-    memcpy(hash, X_.get_buffer(), DIGEST_SIZE);
-
-    Init();
-}
-
-
-
-
-} // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/md4.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/md4.cpp
deleted file mode 100644
index 9364a1c2..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/md4.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* based on Wei Dai's md4.cpp from CryptoPP */
-
-#include "runtime.hpp"
-#include "md4.hpp"
-#ifdef USE_SYS_STL
-    #include 
-#else
-    #include "algorithm.hpp"
-#endif
-
-
-namespace STL = STL_NAMESPACE;
-   
-
-namespace TaoCrypt {
-
-void MD4::Init()
-{
-    digest_[0] = 0x67452301L;
-    digest_[1] = 0xefcdab89L;
-    digest_[2] = 0x98badcfeL;
-    digest_[3] = 0x10325476L;
-
-    buffLen_ = 0;
-    loLen_  = 0;
-    hiLen_  = 0;
-}
-
-
-MD4::MD4(const MD4& that) : HASHwithTransform(DIGEST_SIZE / sizeof(word32),
-                                              BLOCK_SIZE) 
-{ 
-    buffLen_ = that.buffLen_;
-    loLen_  =  that.loLen_;
-    hiLen_  =  that.hiLen_;
-
-    memcpy(digest_, that.digest_, DIGEST_SIZE);
-    memcpy(buffer_, that.buffer_, BLOCK_SIZE);
-}
-
-MD4& MD4::operator= (const MD4& that)
-{
-    MD4 tmp(that);
-    Swap(tmp);
-
-    return *this;
-}
-
-
-void MD4::Swap(MD4& other)
-{
-    STL::swap(loLen_,   other.loLen_);
-    STL::swap(hiLen_,   other.hiLen_);
-    STL::swap(buffLen_, other.buffLen_);
-
-    memcpy(digest_, other.digest_, DIGEST_SIZE);
-    memcpy(buffer_, other.buffer_, BLOCK_SIZE);
-}
-
-
-void MD4::Transform()
-{
-#define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z))))
-#define G(x, y, z) (((x) & (y)) | ((x) & (z)) | ((y) & (z)))
-#define H(x, y, z) ((x) ^ (y) ^ (z))
-
-    word32 A, B, C, D;
-
-    A = digest_[0];
-    B = digest_[1];
-    C = digest_[2];
-    D = digest_[3];
-
-#define function(a,b,c,d,k,s) a=rotlFixed(a+F(b,c,d)+buffer_[k],s);
-    function(A,B,C,D, 0, 3);
-    function(D,A,B,C, 1, 7);
-    function(C,D,A,B, 2,11);
-    function(B,C,D,A, 3,19);
-    function(A,B,C,D, 4, 3);
-    function(D,A,B,C, 5, 7);
-    function(C,D,A,B, 6,11);
-    function(B,C,D,A, 7,19);
-    function(A,B,C,D, 8, 3);
-    function(D,A,B,C, 9, 7);
-    function(C,D,A,B,10,11);
-    function(B,C,D,A,11,19);
-    function(A,B,C,D,12, 3);
-    function(D,A,B,C,13, 7);
-    function(C,D,A,B,14,11);
-    function(B,C,D,A,15,19);
-
-#undef function	  
-#define function(a,b,c,d,k,s) a=rotlFixed(a+G(b,c,d)+buffer_[k]+0x5a827999,s);
-    function(A,B,C,D, 0, 3);
-    function(D,A,B,C, 4, 5);
-    function(C,D,A,B, 8, 9);
-    function(B,C,D,A,12,13);
-    function(A,B,C,D, 1, 3);
-    function(D,A,B,C, 5, 5);
-    function(C,D,A,B, 9, 9);
-    function(B,C,D,A,13,13);
-    function(A,B,C,D, 2, 3);
-    function(D,A,B,C, 6, 5);
-    function(C,D,A,B,10, 9);
-    function(B,C,D,A,14,13);
-    function(A,B,C,D, 3, 3);
-    function(D,A,B,C, 7, 5);
-    function(C,D,A,B,11, 9);
-    function(B,C,D,A,15,13);
-
-#undef function	 
-#define function(a,b,c,d,k,s) a=rotlFixed(a+H(b,c,d)+buffer_[k]+0x6ed9eba1,s);
-    function(A,B,C,D, 0, 3);
-    function(D,A,B,C, 8, 9);
-    function(C,D,A,B, 4,11);
-    function(B,C,D,A,12,15);
-    function(A,B,C,D, 2, 3);
-    function(D,A,B,C,10, 9);
-    function(C,D,A,B, 6,11);
-    function(B,C,D,A,14,15);
-    function(A,B,C,D, 1, 3);
-    function(D,A,B,C, 9, 9);
-    function(C,D,A,B, 5,11);
-    function(B,C,D,A,13,15);
-    function(A,B,C,D, 3, 3);
-    function(D,A,B,C,11, 9);
-    function(C,D,A,B, 7,11);
-    function(B,C,D,A,15,15);
-
-    digest_[0] += A;
-    digest_[1] += B;
-    digest_[2] += C;
-    digest_[3] += D;
-}
-
-
-} // namespace
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/md5.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/md5.cpp
deleted file mode 100644
index 45cfa8a3..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/md5.cpp
+++ /dev/null
@@ -1,506 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* based on Wei Dai's md5.cpp from CryptoPP */
-
-#include "runtime.hpp"
-#include "md5.hpp"
-#ifdef USE_SYS_STL
-    #include 
-#else
-    #include "algorithm.hpp"
-#endif
-
-
-namespace STL = STL_NAMESPACE;
-
-
-
-namespace TaoCrypt {
-
-void MD5::Init()
-{
-    digest_[0] = 0x67452301L;
-    digest_[1] = 0xefcdab89L;
-    digest_[2] = 0x98badcfeL;
-    digest_[3] = 0x10325476L;
-
-    buffLen_ = 0;
-    loLen_  = 0;
-    hiLen_  = 0;
-}
-
-
-MD5::MD5(const MD5& that) : HASHwithTransform(DIGEST_SIZE / sizeof(word32),
-                                              BLOCK_SIZE) 
-{ 
-    buffLen_ = that.buffLen_;
-    loLen_  =  that.loLen_;
-    hiLen_  =  that.hiLen_;
-
-    memcpy(digest_, that.digest_, DIGEST_SIZE);
-    memcpy(buffer_, that.buffer_, BLOCK_SIZE);
-}
-
-MD5& MD5::operator= (const MD5& that)
-{
-    MD5 tmp(that);
-    Swap(tmp);
-
-    return *this;
-}
-
-
-void MD5::Swap(MD5& other)
-{
-    STL::swap(loLen_,   other.loLen_);
-    STL::swap(hiLen_,   other.hiLen_);
-    STL::swap(buffLen_, other.buffLen_);
-
-    memcpy(digest_, other.digest_, DIGEST_SIZE);
-    memcpy(buffer_, other.buffer_, BLOCK_SIZE);
-}
-
-
-#ifdef DO_MD5_ASM
-
-// Update digest with data of size len
-void MD5::Update(const byte* data, word32 len)
-{
-    if (!isMMX) {
-        HASHwithTransform::Update(data, len);
-        return;
-    }
-
-    byte* local = reinterpret_cast(buffer_);
-
-    // remove buffered data if possible
-    if (buffLen_)  {   
-        word32 add = min(len, BLOCK_SIZE - buffLen_);
-        memcpy(&local[buffLen_], data, add);
-
-        buffLen_ += add;
-        data     += add;
-        len      -= add;
-
-        if (buffLen_ == BLOCK_SIZE) {
-            Transform();
-            AddLength(BLOCK_SIZE);
-            buffLen_ = 0;
-        }
-    }
-
-    // at once for asm
-    if (buffLen_ == 0) {
-        word32 times = len / BLOCK_SIZE;
-        if (times) {
-            AsmTransform(data, times);
-            const word32 add = BLOCK_SIZE * times;
-            AddLength(add);
-            len  -= add;
-            data += add;
-        }
-    }
-
-    // cache any data left
-    if (len) {
-        memcpy(&local[buffLen_], data, len);
-        buffLen_ += len;
-    }
-}
-
-
-
-
-/*
-    // w = rotlFixed(w + f(x, y, z) + index[edi] + data, s) + x
-#define ASMMD5STEP(f, w, x, y, z, index, data, s)       \
-    f(x, y, z)                                          \
-    AS2(    mov   ebp, [edi + index * 4]            )   \
-    AS2(    lea     w, [esi + w + data]             )   \
-    AS2(    add     w, ebp                          )   \
-    AS2(    rol     w, s                            )   \
-    AS2(    add     w, x                            )
-
-
-    // F1(x, y, z) (z ^ (x & (y ^ z)))
-    // place in esi
-#define ASMF1(x, y, z) \
-    AS2(    mov   esi, y                )   \
-    AS2(    xor   esi, z                )   \
-    AS2(    and   esi, x                )   \
-    AS2(    xor   esi, z                )
-
-
-#define ASMF2(x, y, z) ASMF1(z, x, y)
-
-
-    // F3(x ^ y ^ z)
-    // place in esi
-#define ASMF3(x, y, z)  \
-    AS2(    mov   esi, x                )   \
-    AS2(    xor   esi, y                )   \
-    AS2(    xor   esi, z                )
-
-
-
-    // F4(x, y, z) (y ^ (x | ~z))
-    // place in esi
-#define ASMF4(x, y, z)  \
-    AS2(    mov   esi, z                )   \
-    AS1(    not   esi                   )   \
-    AS2(     or   esi, x                )   \
-    AS2(    xor   esi, y                )
-*/
-
-
-    // combine above ASMMD5STEP(f w/ each f ASMF1 - F4
-
-    // esi already set up, after using set for next round
-    // ebp already set up, set up using next round index
-    
-#define MD5STEP1(w, x, y, z, index, data, s)    \
-    AS2(    xor   esi, z                    )   \
-    AS2(    and   esi, x                    )   \
-    AS2(    lea     w, [ebp + w + data]     )   \
-    AS2(    xor   esi, z                    )   \
-    AS2(    add     w, esi                  )   \
-    AS2(    mov   esi, x                    )   \
-    AS2(    rol     w, s                    )   \
-    AS2(    mov   ebp, [edi + index * 4]    )   \
-    AS2(    add     w, x                    )
-
-#define MD5STEP2(w, x, y, z, index, data, s)    \
-    AS2(    xor   esi, x                    )   \
-    AS2(    and   esi, z                    )   \
-    AS2(    lea     w, [ebp + w + data]     )   \
-    AS2(    xor   esi, y                    )   \
-    AS2(    add     w, esi                  )   \
-    AS2(    mov   esi, x                    )   \
-    AS2(    rol     w, s                    )   \
-    AS2(    mov   ebp, [edi + index * 4]    )   \
-    AS2(    add     w, x                    )
-
-
-#define MD5STEP3(w, x, y, z, index, data, s)    \
-    AS2(    xor   esi, z                    )   \
-    AS2(    lea     w, [ebp + w + data]     )   \
-    AS2(    xor   esi, x                    )   \
-    AS2(    add     w, esi                  )   \
-    AS2(    mov   esi, x                    )   \
-    AS2(    rol     w, s                    )   \
-    AS2(    mov   ebp, [edi + index * 4]    )   \
-    AS2(    add     w, x                    )
-
-
-#define MD5STEP4(w, x, y, z, index, data, s)    \
-    AS2(     or   esi, x                    )   \
-    AS2(    lea     w, [ebp + w + data]     )   \
-    AS2(    xor   esi, y                    )   \
-    AS2(    add     w, esi                  )   \
-    AS2(    mov   esi, y                    )   \
-    AS2(    rol     w, s                    )   \
-    AS1(    not   esi                       )   \
-    AS2(    mov   ebp, [edi + index * 4]    )   \
-    AS2(    add     w, x                    )
-
-
-
-#ifdef _MSC_VER
-    __declspec(naked) 
-#else
-    __attribute__ ((noinline))
-#endif
-void MD5::AsmTransform(const byte* data, word32 times)
-{
-#ifdef __GNUC__
-    #define AS1(x)    #x ";"
-    #define AS2(x, y) #x ", " #y ";"
-
-    #define PROLOG()  \
-    __asm__ __volatile__ \
-    ( \
-        ".intel_syntax noprefix;" \
-        "push ebx;" \
-        "push ebp;"
-    #define EPILOG()  \
-        "pop ebp;" \
-        "pop ebx;" \
-       	"emms;" \
-       	".att_syntax;" \
-            : \
-            : "c" (this), "D" (data), "a" (times) \
-            : "%esi", "%edx", "memory", "cc" \
-    );
-
-#else
-    #define AS1(x)    __asm x
-    #define AS2(x, y) __asm x, y
-
-    #define PROLOG() \
-        AS1(    push  ebp                       )   \
-        AS2(    mov   ebp, esp                  )   \
-        AS2(    movd  mm3, edi                  )   \
-        AS2(    movd  mm4, ebx                  )   \
-        AS2(    movd  mm5, esi                  )   \
-        AS2(    movd  mm6, ebp                  )   \
-        AS2(    mov   edi, DWORD PTR [ebp +  8] )   \
-        AS2(    mov   eax, DWORD PTR [ebp + 12] )
-
-    #define EPILOG() \
-        AS2(    movd  ebp, mm6                  )   \
-        AS2(    movd  esi, mm5                  )   \
-        AS2(    movd  ebx, mm4                  )   \
-        AS2(    movd  edi, mm3                  )   \
-        AS2(    mov   esp, ebp                  )   \
-        AS1(    pop   ebp                       )   \
-        AS1(    emms                            )   \
-        AS1(    ret  8                          )
-        
-#endif
-
-
-    PROLOG()
-
-    AS2(    mov   esi, ecx              )
-
-    #ifdef OLD_GCC_OFFSET
-        AS2(    add   esi, 20               )   // digest_[0]
-    #else
-        AS2(    add   esi, 16               )   // digest_[0]
-    #endif
-
-    AS2(    movd  mm2, eax              )   // store times_
-    AS2(    movd  mm1, esi              )   // store digest_
-    
-    AS2(    mov   eax, [esi]            )   // a
-    AS2(    mov   ebx, [esi +  4]       )   // b
-    AS2(    mov   ecx, [esi +  8]       )   // c
-    AS2(    mov   edx, [esi + 12]       )   // d
-  
-#ifdef _MSC_VER
-    AS1( loopStart: )  // loopStart
-#else
-    AS1( 0: )          // loopStart for some gas (need numeric for jump back 
-#endif
-
-    // set up
-    AS2(    mov   esi, ecx      )
-    AS2(    mov   ebp, [edi]    )
-
-    MD5STEP1( eax, ebx, ecx, edx, 1,   0xd76aa478,  7)
-    MD5STEP1( edx, eax, ebx, ecx, 2,   0xe8c7b756, 12)
-    MD5STEP1( ecx, edx, eax, ebx, 3,   0x242070db, 17)
-    MD5STEP1( ebx, ecx, edx, eax, 4,   0xc1bdceee, 22)
-    MD5STEP1( eax, ebx, ecx, edx, 5,   0xf57c0faf,  7)
-    MD5STEP1( edx, eax, ebx, ecx, 6,   0x4787c62a, 12)
-    MD5STEP1( ecx, edx, eax, ebx, 7,   0xa8304613, 17)
-    MD5STEP1( ebx, ecx, edx, eax, 8,   0xfd469501, 22)
-    MD5STEP1( eax, ebx, ecx, edx, 9,   0x698098d8,  7)
-    MD5STEP1( edx, eax, ebx, ecx, 10,  0x8b44f7af, 12)
-    MD5STEP1( ecx, edx, eax, ebx, 11,  0xffff5bb1, 17)
-    MD5STEP1( ebx, ecx, edx, eax, 12,  0x895cd7be, 22)
-    MD5STEP1( eax, ebx, ecx, edx, 13,  0x6b901122,  7)
-    MD5STEP1( edx, eax, ebx, ecx, 14,  0xfd987193, 12)
-    MD5STEP1( ecx, edx, eax, ebx, 15,  0xa679438e, 17)
-    MD5STEP1( ebx, ecx, edx, eax, 1,   0x49b40821, 22)
-
-    MD5STEP2( eax, ebx, ecx, edx, 6,  0xf61e2562,  5)
-    MD5STEP2( edx, eax, ebx, ecx, 11, 0xc040b340,  9)
-    MD5STEP2( ecx, edx, eax, ebx, 0,  0x265e5a51, 14)
-    MD5STEP2( ebx, ecx, edx, eax, 5,  0xe9b6c7aa, 20)
-    MD5STEP2( eax, ebx, ecx, edx, 10, 0xd62f105d,  5)
-    MD5STEP2( edx, eax, ebx, ecx, 15, 0x02441453,  9)
-    MD5STEP2( ecx, edx, eax, ebx, 4,  0xd8a1e681, 14)
-    MD5STEP2( ebx, ecx, edx, eax, 9,  0xe7d3fbc8, 20)
-    MD5STEP2( eax, ebx, ecx, edx, 14, 0x21e1cde6,  5)
-    MD5STEP2( edx, eax, ebx, ecx, 3,  0xc33707d6,  9)
-    MD5STEP2( ecx, edx, eax, ebx, 8,  0xf4d50d87, 14)
-    MD5STEP2( ebx, ecx, edx, eax, 13, 0x455a14ed, 20)
-    MD5STEP2( eax, ebx, ecx, edx, 2,  0xa9e3e905,  5)
-    MD5STEP2( edx, eax, ebx, ecx, 7,  0xfcefa3f8,  9)
-    MD5STEP2( ecx, edx, eax, ebx, 12, 0x676f02d9, 14)
-    MD5STEP2( ebx, ecx, edx, eax, 5,  0x8d2a4c8a, 20)
-
-    MD5STEP3(  eax, ebx, ecx, edx, 8,   0xfffa3942,  4)
-    MD5STEP3(  edx, eax, ebx, ecx, 11,  0x8771f681, 11)
-    MD5STEP3(  ecx, edx, eax, ebx, 14,  0x6d9d6122, 16)
-    MD5STEP3(  ebx, ecx, edx, eax, 1,   0xfde5380c, 23)
-    MD5STEP3(  eax, ebx, ecx, edx, 4,   0xa4beea44,  4)
-    MD5STEP3(  edx, eax, ebx, ecx, 7,   0x4bdecfa9, 11)
-    MD5STEP3(  ecx, edx, eax, ebx, 10,  0xf6bb4b60, 16)
-    MD5STEP3(  ebx, ecx, edx, eax, 13,  0xbebfbc70, 23)
-    MD5STEP3(  eax, ebx, ecx, edx, 0,   0x289b7ec6,  4)
-    MD5STEP3(  edx, eax, ebx, ecx, 3,   0xeaa127fa, 11)
-    MD5STEP3(  ecx, edx, eax, ebx, 6,   0xd4ef3085, 16)
-    MD5STEP3(  ebx, ecx, edx, eax, 9,   0x04881d05, 23)
-    MD5STEP3(  eax, ebx, ecx, edx, 12,  0xd9d4d039,  4)
-    MD5STEP3(  edx, eax, ebx, ecx, 15,  0xe6db99e5, 11)
-    MD5STEP3(  ecx, edx, eax, ebx, 2,   0x1fa27cf8, 16)
-    MD5STEP3(  ebx, ecx, edx, eax, 0,   0xc4ac5665, 23)
-
-    // setup
-    AS2(    mov   esi, edx      )
-    AS1(    not   esi           )
-
-    MD5STEP4(  eax, ebx, ecx, edx, 7,   0xf4292244,  6)
-    MD5STEP4(  edx, eax, ebx, ecx, 14,  0x432aff97, 10)
-    MD5STEP4(  ecx, edx, eax, ebx, 5,   0xab9423a7, 15)
-    MD5STEP4(  ebx, ecx, edx, eax, 12,  0xfc93a039, 21)
-    MD5STEP4(  eax, ebx, ecx, edx, 3,   0x655b59c3,  6)
-    MD5STEP4(  edx, eax, ebx, ecx, 10,  0x8f0ccc92, 10)
-    MD5STEP4(  ecx, edx, eax, ebx, 1,   0xffeff47d, 15)
-    MD5STEP4(  ebx, ecx, edx, eax, 8,   0x85845dd1, 21)
-    MD5STEP4(  eax, ebx, ecx, edx, 15,  0x6fa87e4f,  6)
-    MD5STEP4(  edx, eax, ebx, ecx, 6,   0xfe2ce6e0, 10)
-    MD5STEP4(  ecx, edx, eax, ebx, 13,  0xa3014314, 15)
-    MD5STEP4(  ebx, ecx, edx, eax, 4,   0x4e0811a1, 21)
-    MD5STEP4(  eax, ebx, ecx, edx, 11,  0xf7537e82,  6)
-    MD5STEP4(  edx, eax, ebx, ecx, 2,   0xbd3af235, 10)
-    MD5STEP4(  ecx, edx, eax, ebx, 9,   0x2ad7d2bb, 15)
-    MD5STEP4(  ebx, ecx, edx, eax, 9,   0xeb86d391, 21)
-    
-    AS2(    movd  esi, mm1              )   // digest_
-
-    AS2(    add   [esi],      eax       )   // write out
-    AS2(    add   [esi +  4], ebx       )
-    AS2(    add   [esi +  8], ecx       )
-    AS2(    add   [esi + 12], edx       )
-
-    AS2(    add   edi, 64               )
-
-    AS2(    mov   eax, [esi]            )
-    AS2(    mov   ebx, [esi +  4]       )
-    AS2(    mov   ecx, [esi +  8]       )
-    AS2(    mov   edx, [esi + 12]       )
-
-    AS2(    movd  ebp, mm2              )   // times
-    AS1(    dec   ebp                   )
-    AS2(    movd  mm2, ebp              )
-#ifdef _MSC_VER
-    AS1(    jnz   loopStart )  // loopStart
-#else
-    AS1(    jnz   0b )         // loopStart
-#endif
-
-
-    EPILOG()
-}
-
-
-#endif // DO_MD5_ASM
-
-
-void MD5::Transform()
-{
-#define F1(x, y, z) (z ^ (x & (y ^ z)))
-#define F2(x, y, z) F1(z, x, y)
-#define F3(x, y, z) (x ^ y ^ z)
-#define F4(x, y, z) (y ^ (x | ~z))
-
-#define MD5STEP(f, w, x, y, z, data, s) \
-    w = rotlFixed(w + f(x, y, z) + data, s) + x
-
-    // Copy context->state[] to working vars 
-    word32 a = digest_[0];
-    word32 b = digest_[1];
-    word32 c = digest_[2];
-    word32 d = digest_[3];
-
-    MD5STEP(F1, a, b, c, d, buffer_[0]  + 0xd76aa478,  7);
-    MD5STEP(F1, d, a, b, c, buffer_[1]  + 0xe8c7b756, 12);
-    MD5STEP(F1, c, d, a, b, buffer_[2]  + 0x242070db, 17);
-    MD5STEP(F1, b, c, d, a, buffer_[3]  + 0xc1bdceee, 22);
-    MD5STEP(F1, a, b, c, d, buffer_[4]  + 0xf57c0faf,  7);
-    MD5STEP(F1, d, a, b, c, buffer_[5]  + 0x4787c62a, 12);
-    MD5STEP(F1, c, d, a, b, buffer_[6]  + 0xa8304613, 17);
-    MD5STEP(F1, b, c, d, a, buffer_[7]  + 0xfd469501, 22);
-    MD5STEP(F1, a, b, c, d, buffer_[8]  + 0x698098d8,  7);
-    MD5STEP(F1, d, a, b, c, buffer_[9]  + 0x8b44f7af, 12);
-    MD5STEP(F1, c, d, a, b, buffer_[10] + 0xffff5bb1, 17);
-    MD5STEP(F1, b, c, d, a, buffer_[11] + 0x895cd7be, 22);
-    MD5STEP(F1, a, b, c, d, buffer_[12] + 0x6b901122,  7);
-    MD5STEP(F1, d, a, b, c, buffer_[13] + 0xfd987193, 12);
-    MD5STEP(F1, c, d, a, b, buffer_[14] + 0xa679438e, 17);
-    MD5STEP(F1, b, c, d, a, buffer_[15] + 0x49b40821, 22);
-
-    MD5STEP(F2, a, b, c, d, buffer_[1]  + 0xf61e2562,  5);
-    MD5STEP(F2, d, a, b, c, buffer_[6]  + 0xc040b340,  9);
-    MD5STEP(F2, c, d, a, b, buffer_[11] + 0x265e5a51, 14);
-    MD5STEP(F2, b, c, d, a, buffer_[0]  + 0xe9b6c7aa, 20);
-    MD5STEP(F2, a, b, c, d, buffer_[5]  + 0xd62f105d,  5);
-    MD5STEP(F2, d, a, b, c, buffer_[10] + 0x02441453,  9);
-    MD5STEP(F2, c, d, a, b, buffer_[15] + 0xd8a1e681, 14);
-    MD5STEP(F2, b, c, d, a, buffer_[4]  + 0xe7d3fbc8, 20);
-    MD5STEP(F2, a, b, c, d, buffer_[9]  + 0x21e1cde6,  5);
-    MD5STEP(F2, d, a, b, c, buffer_[14] + 0xc33707d6,  9);
-    MD5STEP(F2, c, d, a, b, buffer_[3]  + 0xf4d50d87, 14);
-    MD5STEP(F2, b, c, d, a, buffer_[8]  + 0x455a14ed, 20);
-    MD5STEP(F2, a, b, c, d, buffer_[13] + 0xa9e3e905,  5);
-    MD5STEP(F2, d, a, b, c, buffer_[2]  + 0xfcefa3f8,  9);
-    MD5STEP(F2, c, d, a, b, buffer_[7]  + 0x676f02d9, 14);
-    MD5STEP(F2, b, c, d, a, buffer_[12] + 0x8d2a4c8a, 20);
-
-    MD5STEP(F3, a, b, c, d, buffer_[5]  + 0xfffa3942,  4);
-    MD5STEP(F3, d, a, b, c, buffer_[8]  + 0x8771f681, 11);
-    MD5STEP(F3, c, d, a, b, buffer_[11] + 0x6d9d6122, 16);
-    MD5STEP(F3, b, c, d, a, buffer_[14] + 0xfde5380c, 23);
-    MD5STEP(F3, a, b, c, d, buffer_[1]  + 0xa4beea44,  4);
-    MD5STEP(F3, d, a, b, c, buffer_[4]  + 0x4bdecfa9, 11);
-    MD5STEP(F3, c, d, a, b, buffer_[7]  + 0xf6bb4b60, 16);
-    MD5STEP(F3, b, c, d, a, buffer_[10] + 0xbebfbc70, 23);
-    MD5STEP(F3, a, b, c, d, buffer_[13] + 0x289b7ec6,  4);
-    MD5STEP(F3, d, a, b, c, buffer_[0]  + 0xeaa127fa, 11);
-    MD5STEP(F3, c, d, a, b, buffer_[3]  + 0xd4ef3085, 16);
-    MD5STEP(F3, b, c, d, a, buffer_[6]  + 0x04881d05, 23);
-    MD5STEP(F3, a, b, c, d, buffer_[9]  + 0xd9d4d039,  4);
-    MD5STEP(F3, d, a, b, c, buffer_[12] + 0xe6db99e5, 11);
-    MD5STEP(F3, c, d, a, b, buffer_[15] + 0x1fa27cf8, 16);
-    MD5STEP(F3, b, c, d, a, buffer_[2]  + 0xc4ac5665, 23);
-
-    MD5STEP(F4, a, b, c, d, buffer_[0]  + 0xf4292244,  6);
-    MD5STEP(F4, d, a, b, c, buffer_[7]  + 0x432aff97, 10);
-    MD5STEP(F4, c, d, a, b, buffer_[14] + 0xab9423a7, 15);
-    MD5STEP(F4, b, c, d, a, buffer_[5]  + 0xfc93a039, 21);
-    MD5STEP(F4, a, b, c, d, buffer_[12] + 0x655b59c3,  6);
-    MD5STEP(F4, d, a, b, c, buffer_[3]  + 0x8f0ccc92, 10);
-    MD5STEP(F4, c, d, a, b, buffer_[10] + 0xffeff47d, 15);
-    MD5STEP(F4, b, c, d, a, buffer_[1]  + 0x85845dd1, 21);
-    MD5STEP(F4, a, b, c, d, buffer_[8]  + 0x6fa87e4f,  6);
-    MD5STEP(F4, d, a, b, c, buffer_[15] + 0xfe2ce6e0, 10);
-    MD5STEP(F4, c, d, a, b, buffer_[6]  + 0xa3014314, 15);
-    MD5STEP(F4, b, c, d, a, buffer_[13] + 0x4e0811a1, 21);
-    MD5STEP(F4, a, b, c, d, buffer_[4]  + 0xf7537e82,  6);
-    MD5STEP(F4, d, a, b, c, buffer_[11] + 0xbd3af235, 10);
-    MD5STEP(F4, c, d, a, b, buffer_[2]  + 0x2ad7d2bb, 15);
-    MD5STEP(F4, b, c, d, a, buffer_[9]  + 0xeb86d391, 21);
-    
-    // Add the working vars back into digest state[]
-    digest_[0] += a;
-    digest_[1] += b;
-    digest_[2] += c;
-    digest_[3] += d;
-
-    // Wipe variables
-    a = b = c = d = 0;
-}
-
-
-} // namespace
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/misc.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/misc.cpp
deleted file mode 100644
index fd9e8b92..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/misc.cpp
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* based on Wei Dai's misc.cpp from CryptoPP */
-
-
-#include "runtime.hpp"
-#include "misc.hpp"
-
-
-#ifdef __GNUC__
-    #include 
-    #include 
-#endif
-
-#ifdef USE_SYS_STL
-    #include 
-#else
-    #include "algorithm.hpp"
-#endif
-
-namespace STL = STL_NAMESPACE;
-
-
-#ifdef YASSL_PURE_C
-
-    void* operator new(size_t sz, TaoCrypt::new_t)
-    {
-        void* ptr = malloc(sz ? sz : 1);
-        if (!ptr) abort();
-
-        return ptr;
-    }
-
-
-    void operator delete(void* ptr, TaoCrypt::new_t)
-    {
-        if (ptr) free(ptr);
-    }
-
-
-    void* operator new[](size_t sz, TaoCrypt::new_t nt)
-    {
-        return ::operator new(sz, nt);
-    }
-
-
-    void operator delete[](void* ptr, TaoCrypt::new_t nt)
-    {
-        ::operator delete(ptr, nt);
-    }
-
-
-    /* uncomment to test
-    // make sure not using globals anywhere by forgetting to use overloaded
-    void* operator new(size_t sz);
-
-    void operator delete(void* ptr);
-
-    void* operator new[](size_t sz);
-
-    void operator delete[](void* ptr);
-    */
-
-
-    namespace TaoCrypt {
-
-        new_t tc;   // for library new
-
-    }
-
-#if defined(__ICC) || defined(__INTEL_COMPILER)
-
-extern "C" {
-
-    int __cxa_pure_virtual() {
-      return 0;
-    }
-
-}  // extern "C"
-
-#endif
-
-#endif // YASSL_PURE_C
-
-
-namespace TaoCrypt {
-
-
-inline void XorWords(word* r, const word* a, unsigned int n)
-{
-    for (unsigned int i=0; i> (i-1)*8)
-            break;
-
-    return i;
-}
-
-
-unsigned int BitPrecision(word value)
-{
-    if (!value)
-        return 0;
-
-    unsigned int l = 0,
-                 h = 8 * sizeof(value);
-
-    while (h-l > 1)
-    {
-        unsigned int t = (l+h)/2;
-        if (value >> t)
-            l = t;
-        else
-            h = t;
-    }
-
-    return h;
-}
-
-
-word Crop(word value, unsigned int size)
-{
-    if (size < 8*sizeof(value))
-        return (value & ((1L << size) - 1));
-    else
-        return value;
-}
-
-
-
-#ifdef TAOCRYPT_X86ASM_AVAILABLE
-
-#ifndef _MSC_VER
-    static jmp_buf s_env;
-    static void SigIllHandler(int)
-    {
-        longjmp(s_env, 1);
-    }
-#endif
-
-
-bool HaveCpuId()
-{
-#ifdef _MSC_VER
-    __try
-    {
-        __asm
-        {
-            mov eax, 0
-            cpuid
-        }            
-    }
-    __except (1)
-    {
-        return false;
-    }
-    return true;
-#else
-    word32 eax, ebx;
-    __asm__ __volatile
-    (
-        /* Put EFLAGS in eax and ebx */
-        "pushf;"
-        "pushf;"
-        "pop %0;"
-        "movl %0,%1;"
-
-        /* Flip the cpuid bit and store back in EFLAGS */
-        "xorl $0x200000,%0;"
-        "push %0;"
-        "popf;"
-
-        /* Read EFLAGS again */
-        "pushf;"
-        "pop %0;"
-        "popf"
-        : "=r" (eax), "=r" (ebx)
-        :
-        : "cc"
-    );
-
-    if (eax == ebx)
-        return false;
-    return true;
-#endif
-}
-
-
-void CpuId(word32 input, word32 *output)
-{
-#ifdef __GNUC__
-    __asm__
-    (
-        // save ebx in case -fPIC is being used
-        "push %%ebx; cpuid; mov %%ebx, %%edi; pop %%ebx"
-        : "=a" (output[0]), "=D" (output[1]), "=c" (output[2]), "=d"(output[3])
-        : "a" (input)
-    );
-#else
-    __asm
-    {
-        mov eax, input
-        cpuid
-        mov edi, output
-        mov [edi], eax
-        mov [edi+4], ebx
-        mov [edi+8], ecx
-        mov [edi+12], edx
-    }
-#endif
-}
-
-
-bool IsPentium()
-{
-    if (!HaveCpuId())
-        return false;
-
-    word32 cpuid[4];
-
-    CpuId(0, cpuid);
-    STL::swap(cpuid[2], cpuid[3]);
-    if (memcmp(cpuid+1, "GenuineIntel", 12) != 0)
-        return false;
-
-    CpuId(1, cpuid);
-    byte family = ((cpuid[0] >> 8) & 0xf);
-    if (family < 5)
-        return false;
-
-    return true;
-}
-
-
-
-static bool IsMmx()
-{
-    if (!IsPentium())
-        return false;
-
-    word32 cpuid[4];
-
-    CpuId(1, cpuid);
-    if ((cpuid[3] & (1 << 23)) == 0)
-        return false;
-
-    return true;
-}
-
-
-bool isMMX = IsMmx();
-
-
-#endif // TAOCRYPT_X86ASM_AVAILABLE
-
-
-
-
-}  // namespace
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/rabbit.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/rabbit.cpp
deleted file mode 100644
index 5e32f383..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/rabbit.cpp
+++ /dev/null
@@ -1,255 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-#include "runtime.hpp"
-#include "rabbit.hpp"
-
-
-
-namespace TaoCrypt {
-
-
-#define U32V(x)  (word32)(x)
-
-
-#ifdef BIG_ENDIAN_ORDER
-    #define LITTLE32(x) ByteReverse((word32)x)
-#else
-    #define LITTLE32(x) (x)
-#endif
-
-
-// local
-namespace {
-
-
-/* Square a 32-bit unsigned integer to obtain the 64-bit result and return */
-/* the upper 32 bits XOR the lower 32 bits */
-word32 RABBIT_g_func(word32 x)
-{
-    /* Temporary variables */
-    word32 a, b, h, l;
-
-    /* Construct high and low argument for squaring */
-    a = x&0xFFFF;
-    b = x>>16;
-
-    /* Calculate high and low result of squaring */
-    h = (((U32V(a*a)>>17) + U32V(a*b))>>15) + b*b;
-    l = x*x;
-
-    /* Return high XOR low */
-    return U32V(h^l);
-}
-
-
-} // namespace local
-
-
-/* Calculate the next internal state */
-void Rabbit::NextState(RabbitCtx which)
-{
-    /* Temporary variables */
-    word32 g[8], c_old[8], i;
-
-    Ctx* ctx;
-
-    if (which == Master)
-        ctx = &masterCtx_;
-    else
-        ctx = &workCtx_;
-
-    /* Save old counter values */
-    for (i=0; i<8; i++)
-        c_old[i] = ctx->c[i];
-
-    /* Calculate new counter values */
-    ctx->c[0] = U32V(ctx->c[0] + 0x4D34D34D + ctx->carry);
-    ctx->c[1] = U32V(ctx->c[1] + 0xD34D34D3 + (ctx->c[0] < c_old[0]));
-    ctx->c[2] = U32V(ctx->c[2] + 0x34D34D34 + (ctx->c[1] < c_old[1]));
-    ctx->c[3] = U32V(ctx->c[3] + 0x4D34D34D + (ctx->c[2] < c_old[2]));
-    ctx->c[4] = U32V(ctx->c[4] + 0xD34D34D3 + (ctx->c[3] < c_old[3]));
-    ctx->c[5] = U32V(ctx->c[5] + 0x34D34D34 + (ctx->c[4] < c_old[4]));
-    ctx->c[6] = U32V(ctx->c[6] + 0x4D34D34D + (ctx->c[5] < c_old[5]));
-    ctx->c[7] = U32V(ctx->c[7] + 0xD34D34D3 + (ctx->c[6] < c_old[6]));
-    ctx->carry = (ctx->c[7] < c_old[7]);
-   
-    /* Calculate the g-values */
-    for (i=0;i<8;i++)
-        g[i] = RABBIT_g_func(U32V(ctx->x[i] + ctx->c[i]));
-
-    /* Calculate new state values */
-    ctx->x[0] = U32V(g[0] + rotlFixed(g[7],16) + rotlFixed(g[6], 16));
-    ctx->x[1] = U32V(g[1] + rotlFixed(g[0], 8) + g[7]);
-    ctx->x[2] = U32V(g[2] + rotlFixed(g[1],16) + rotlFixed(g[0], 16));
-    ctx->x[3] = U32V(g[3] + rotlFixed(g[2], 8) + g[1]);
-    ctx->x[4] = U32V(g[4] + rotlFixed(g[3],16) + rotlFixed(g[2], 16));
-    ctx->x[5] = U32V(g[5] + rotlFixed(g[4], 8) + g[3]);
-    ctx->x[6] = U32V(g[6] + rotlFixed(g[5],16) + rotlFixed(g[4], 16));
-    ctx->x[7] = U32V(g[7] + rotlFixed(g[6], 8) + g[5]);
-}
-
-
-/* IV setup */
-void Rabbit::SetIV(const byte* iv)
-{
-    /* Temporary variables */
-    word32 i0, i1, i2, i3, i;
-      
-    /* Generate four subvectors */
-    i0 = LITTLE32(*(word32*)(iv+0));
-    i2 = LITTLE32(*(word32*)(iv+4));
-    i1 = (i0>>16) | (i2&0xFFFF0000);
-    i3 = (i2<<16) | (i0&0x0000FFFF);
-
-    /* Modify counter values */
-    workCtx_.c[0] = masterCtx_.c[0] ^ i0;
-    workCtx_.c[1] = masterCtx_.c[1] ^ i1;
-    workCtx_.c[2] = masterCtx_.c[2] ^ i2;
-    workCtx_.c[3] = masterCtx_.c[3] ^ i3;
-    workCtx_.c[4] = masterCtx_.c[4] ^ i0;
-    workCtx_.c[5] = masterCtx_.c[5] ^ i1;
-    workCtx_.c[6] = masterCtx_.c[6] ^ i2;
-    workCtx_.c[7] = masterCtx_.c[7] ^ i3;
-
-    /* Copy state variables */
-    for (i=0; i<8; i++)
-        workCtx_.x[i] = masterCtx_.x[i];
-    workCtx_.carry = masterCtx_.carry;
-
-    /* Iterate the system four times */
-    for (i=0; i<4; i++)
-        NextState(Work);
-}
-
-
-/* Key setup */
-void Rabbit::SetKey(const byte* key, const byte* iv)
-{
-    /* Temporary variables */
-    word32 k0, k1, k2, k3, i;
-
-    /* Generate four subkeys */
-    k0 = LITTLE32(*(word32*)(key+ 0));
-    k1 = LITTLE32(*(word32*)(key+ 4));
-    k2 = LITTLE32(*(word32*)(key+ 8));
-    k3 = LITTLE32(*(word32*)(key+12));
-
-    /* Generate initial state variables */
-    masterCtx_.x[0] = k0;
-    masterCtx_.x[2] = k1;
-    masterCtx_.x[4] = k2;
-    masterCtx_.x[6] = k3;
-    masterCtx_.x[1] = U32V(k3<<16) | (k2>>16);
-    masterCtx_.x[3] = U32V(k0<<16) | (k3>>16);
-    masterCtx_.x[5] = U32V(k1<<16) | (k0>>16);
-    masterCtx_.x[7] = U32V(k2<<16) | (k1>>16);
-
-    /* Generate initial counter values */
-    masterCtx_.c[0] = rotlFixed(k2, 16);
-    masterCtx_.c[2] = rotlFixed(k3, 16);
-    masterCtx_.c[4] = rotlFixed(k0, 16);
-    masterCtx_.c[6] = rotlFixed(k1, 16);
-    masterCtx_.c[1] = (k0&0xFFFF0000) | (k1&0xFFFF);
-    masterCtx_.c[3] = (k1&0xFFFF0000) | (k2&0xFFFF);
-    masterCtx_.c[5] = (k2&0xFFFF0000) | (k3&0xFFFF);
-    masterCtx_.c[7] = (k3&0xFFFF0000) | (k0&0xFFFF);
-
-    /* Clear carry bit */
-    masterCtx_.carry = 0;
-
-    /* Iterate the system four times */
-    for (i=0; i<4; i++)
-        NextState(Master);
-
-    /* Modify the counters */
-    for (i=0; i<8; i++)
-        masterCtx_.c[i] ^= masterCtx_.x[(i+4)&0x7];
-
-    /* Copy master instance to work instance */
-    for (i=0; i<8; i++) {
-        workCtx_.x[i] = masterCtx_.x[i];
-        workCtx_.c[i] = masterCtx_.c[i];
-    }
-    workCtx_.carry = masterCtx_.carry;
-
-    if (iv) SetIV(iv);    
-}
-
-
-/* Encrypt/decrypt a message of any size */
-void Rabbit::Process(byte* output, const byte* input, word32 msglen)
-{
-    /* Temporary variables */
-    word32 i;
-
-    /* Encrypt/decrypt all full blocks */
-    while (msglen >= 16) {
-        /* Iterate the system */
-        NextState(Work);
-
-        /* Encrypt/decrypt 16 bytes of data */
-        *(word32*)(output+ 0) = *(word32*)(input+ 0) ^
-                   LITTLE32(workCtx_.x[0] ^ (workCtx_.x[5]>>16) ^
-                   U32V(workCtx_.x[3]<<16));
-        *(word32*)(output+ 4) = *(word32*)(input+ 4) ^
-                   LITTLE32(workCtx_.x[2] ^ (workCtx_.x[7]>>16) ^
-                   U32V(workCtx_.x[5]<<16));
-        *(word32*)(output+ 8) = *(word32*)(input+ 8) ^
-                   LITTLE32(workCtx_.x[4] ^ (workCtx_.x[1]>>16) ^
-                   U32V(workCtx_.x[7]<<16));
-        *(word32*)(output+12) = *(word32*)(input+12) ^
-                   LITTLE32(workCtx_.x[6] ^ (workCtx_.x[3]>>16) ^
-                   U32V(workCtx_.x[1]<<16));
-
-        /* Increment pointers and decrement length */
-        input  += 16;
-        output += 16;
-        msglen -= 16;
-    }
-
-    /* Encrypt/decrypt remaining data */
-    if (msglen) {
-
-        word32 tmp[4];
-        byte*  buffer = (byte*)tmp;
-
-        memset(tmp, 0, sizeof(tmp));   /* help static analysis */
-
-        /* Iterate the system */
-        NextState(Work);
-
-        /* Generate 16 bytes of pseudo-random data */
-        tmp[0] = LITTLE32(workCtx_.x[0] ^
-                  (workCtx_.x[5]>>16) ^ U32V(workCtx_.x[3]<<16));
-        tmp[1] = LITTLE32(workCtx_.x[2] ^ 
-                  (workCtx_.x[7]>>16) ^ U32V(workCtx_.x[5]<<16));
-        tmp[2] = LITTLE32(workCtx_.x[4] ^ 
-                  (workCtx_.x[1]>>16) ^ U32V(workCtx_.x[7]<<16));
-        tmp[3] = LITTLE32(workCtx_.x[6] ^ 
-                  (workCtx_.x[3]>>16) ^ U32V(workCtx_.x[1]<<16));
-
-        /* Encrypt/decrypt the data */
-        for (i=0; i
-#include 
-
-#if defined(_WIN32)
-    #define _WIN32_WINNT 0x0400
-    #include 
-    #include 
-#else
-    #include 
-    #include 
-    #include 
-#endif // _WIN32
-
-namespace TaoCrypt {
-
-
-// Get seed and key cipher
-RandomNumberGenerator::RandomNumberGenerator()
-{
-    byte key[32];
-    byte junk[256];
-
-    seed_.GenerateSeed(key, sizeof(key));
-    cipher_.SetKey(key, sizeof(key));
-    GenerateBlock(junk, sizeof(junk));  // rid initial state
-}
-
-
-// place a generated block in output
-void RandomNumberGenerator::GenerateBlock(byte* output, word32 sz)
-{
-    memset(output, 0, sz);
-    cipher_.Process(output, output, sz);
-}
-
-
-byte RandomNumberGenerator::GenerateByte()
-{
-    byte b;
-    GenerateBlock(&b, 1);
-
-    return b;
-}
-
-
-#if defined(_WIN32)
-
-/* The OS_Seed implementation for windows */
-
-OS_Seed::OS_Seed()
-{
-    if(!CryptAcquireContext(&handle_, 0, 0, PROV_RSA_FULL,
-                             CRYPT_VERIFYCONTEXT))
-        error_.SetError(WINCRYPT_E);
-}
-
-
-OS_Seed::~OS_Seed()
-{
-    CryptReleaseContext(handle_, 0);
-}
-
-
-void OS_Seed::GenerateSeed(byte* output, word32 sz)
-{
-    if (!CryptGenRandom(handle_, sz, output))
-        error_.SetError(CRYPTGEN_E);
-}
-
-
-#else
-
-/* The default OS_Seed implementation */
-
-OS_Seed::OS_Seed()
-{
-    fd_ = open("/dev/urandom",O_RDONLY);
-    if (fd_ == -1) {
-        fd_ = open("/dev/random",O_RDONLY);
-        if (fd_ == -1)
-            error_.SetError(OPEN_RAN_E);
-    }
-}
-
-
-OS_Seed::~OS_Seed() 
-{
-    close(fd_);
-}
-
-
-// may block
-void OS_Seed::GenerateSeed(byte* output, word32 sz)
-{
-    while (sz) {
-        int len = read(fd_, output, sz);
-        if (len == -1) {
-            error_.SetError(READ_RAN_E);
-            return;
-        }
-
-        sz     -= len;
-        output += len;
-
-        if (sz)
-            sleep(1);
-    }
-}
-
-#endif // _WIN32
-
-
-
-} // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/ripemd.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/ripemd.cpp
deleted file mode 100644
index 5d03dc61..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/ripemd.cpp
+++ /dev/null
@@ -1,844 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/* based on Wei Dai's ripemd.cpp from CryptoPP */
-
-#include "runtime.hpp"
-#include "ripemd.hpp"
-#ifdef USE_SYS_STL
-    #include 
-#else
-    #include "algorithm.hpp"
-#endif
-
-
-namespace STL = STL_NAMESPACE;
-
-
-
-namespace TaoCrypt {
-
-void RIPEMD160::Init()
-{
-    digest_[0] = 0x67452301L;
-    digest_[1] = 0xefcdab89L;
-    digest_[2] = 0x98badcfeL;
-    digest_[3] = 0x10325476L;
-    digest_[4] = 0xc3d2e1f0L;
-
-    buffLen_ = 0;
-    loLen_  = 0;
-    hiLen_  = 0;
-}
-
-
-RIPEMD160::RIPEMD160(const RIPEMD160& that)
-    : HASHwithTransform(DIGEST_SIZE / sizeof(word32), BLOCK_SIZE) 
-{ 
-    buffLen_ = that.buffLen_;
-    loLen_   = that.loLen_;
-    hiLen_   = that.hiLen_;
-
-    memcpy(digest_, that.digest_, DIGEST_SIZE);
-    memcpy(buffer_, that.buffer_, BLOCK_SIZE);
-}
-
-
-RIPEMD160& RIPEMD160::operator= (const RIPEMD160& that)
-{
-    RIPEMD160 tmp(that);
-    Swap(tmp);
-
-    return *this;
-}
-
-
-void RIPEMD160::Swap(RIPEMD160& other)
-{
-    STL::swap(loLen_,   other.loLen_);
-    STL::swap(hiLen_,   other.hiLen_);
-    STL::swap(buffLen_, other.buffLen_);
-
-    memcpy(digest_, other.digest_, DIGEST_SIZE);
-    memcpy(buffer_, other.buffer_, BLOCK_SIZE);
-}
-
-
-#ifdef DO_RIPEMD_ASM
-
-// Update digest with data of size len
-void RIPEMD160::Update(const byte* data, word32 len)
-{
-    if (!isMMX) {
-        HASHwithTransform::Update(data, len);
-        return;
-    }
-
-    byte* local = reinterpret_cast(buffer_);
-
-    // remove buffered data if possible
-    if (buffLen_)  {   
-        word32 add = min(len, BLOCK_SIZE - buffLen_);
-        memcpy(&local[buffLen_], data, add);
-
-        buffLen_ += add;
-        data     += add;
-        len      -= add;
-
-        if (buffLen_ == BLOCK_SIZE) {
-            Transform();
-            AddLength(BLOCK_SIZE);
-            buffLen_ = 0;
-        }
-    }
-
-    // all at once for asm
-    if (buffLen_ == 0) {
-        word32 times = len / BLOCK_SIZE;
-        if (times) {
-            AsmTransform(data, times);
-            const word32 add = BLOCK_SIZE * times;
-            AddLength(add);
-            len  -= add;
-            data += add;
-        }
-    }
-
-    // cache any data left
-    if (len) {
-        memcpy(&local[buffLen_], data, len);
-        buffLen_ += len;
-    }
-}
-
-#endif // DO_RIPEMD_ASM
-
-
-// for all
-#define F(x, y, z)    (x ^ y ^ z) 
-#define G(x, y, z)    (z ^ (x & (y^z)))
-#define H(x, y, z)    (z ^ (x | ~y))
-#define I(x, y, z)    (y ^ (z & (x^y)))
-#define J(x, y, z)    (x ^ (y | ~z))
-
-#define k0 0
-#define k1 0x5a827999
-#define k2 0x6ed9eba1
-#define k3 0x8f1bbcdc
-#define k4 0xa953fd4e
-#define k5 0x50a28be6
-#define k6 0x5c4dd124
-#define k7 0x6d703ef3
-#define k8 0x7a6d76e9
-#define k9 0
-
-// for 160 and 320
-#define Subround(f, a, b, c, d, e, x, s, k) \
-    a += f(b, c, d) + x + k;\
-    a = rotlFixed((word32)a, s) + e;\
-    c = rotlFixed((word32)c, 10U)
-
-
-void RIPEMD160::Transform()
-{
-    unsigned long a1, b1, c1, d1, e1, a2, b2, c2, d2, e2;
-    a1 = a2 = digest_[0];
-    b1 = b2 = digest_[1];
-    c1 = c2 = digest_[2];
-    d1 = d2 = digest_[3];
-    e1 = e2 = digest_[4];
-
-    Subround(F, a1, b1, c1, d1, e1, buffer_[ 0], 11, k0);
-    Subround(F, e1, a1, b1, c1, d1, buffer_[ 1], 14, k0);
-    Subround(F, d1, e1, a1, b1, c1, buffer_[ 2], 15, k0);
-    Subround(F, c1, d1, e1, a1, b1, buffer_[ 3], 12, k0);
-    Subround(F, b1, c1, d1, e1, a1, buffer_[ 4],  5, k0);
-    Subround(F, a1, b1, c1, d1, e1, buffer_[ 5],  8, k0);
-    Subround(F, e1, a1, b1, c1, d1, buffer_[ 6],  7, k0);
-    Subround(F, d1, e1, a1, b1, c1, buffer_[ 7],  9, k0);
-    Subround(F, c1, d1, e1, a1, b1, buffer_[ 8], 11, k0);
-    Subround(F, b1, c1, d1, e1, a1, buffer_[ 9], 13, k0);
-    Subround(F, a1, b1, c1, d1, e1, buffer_[10], 14, k0);
-    Subround(F, e1, a1, b1, c1, d1, buffer_[11], 15, k0);
-    Subround(F, d1, e1, a1, b1, c1, buffer_[12],  6, k0);
-    Subround(F, c1, d1, e1, a1, b1, buffer_[13],  7, k0);
-    Subround(F, b1, c1, d1, e1, a1, buffer_[14],  9, k0);
-    Subround(F, a1, b1, c1, d1, e1, buffer_[15],  8, k0);
-
-    Subround(G, e1, a1, b1, c1, d1, buffer_[ 7],  7, k1);
-    Subround(G, d1, e1, a1, b1, c1, buffer_[ 4],  6, k1);
-    Subround(G, c1, d1, e1, a1, b1, buffer_[13],  8, k1);
-    Subround(G, b1, c1, d1, e1, a1, buffer_[ 1], 13, k1);
-    Subround(G, a1, b1, c1, d1, e1, buffer_[10], 11, k1);
-    Subround(G, e1, a1, b1, c1, d1, buffer_[ 6],  9, k1);
-    Subround(G, d1, e1, a1, b1, c1, buffer_[15],  7, k1);
-    Subround(G, c1, d1, e1, a1, b1, buffer_[ 3], 15, k1);
-    Subround(G, b1, c1, d1, e1, a1, buffer_[12],  7, k1);
-    Subround(G, a1, b1, c1, d1, e1, buffer_[ 0], 12, k1);
-    Subround(G, e1, a1, b1, c1, d1, buffer_[ 9], 15, k1);
-    Subround(G, d1, e1, a1, b1, c1, buffer_[ 5],  9, k1);
-    Subround(G, c1, d1, e1, a1, b1, buffer_[ 2], 11, k1);
-    Subround(G, b1, c1, d1, e1, a1, buffer_[14],  7, k1);
-    Subround(G, a1, b1, c1, d1, e1, buffer_[11], 13, k1);
-    Subround(G, e1, a1, b1, c1, d1, buffer_[ 8], 12, k1);
-
-    Subround(H, d1, e1, a1, b1, c1, buffer_[ 3], 11, k2);
-    Subround(H, c1, d1, e1, a1, b1, buffer_[10], 13, k2);
-    Subround(H, b1, c1, d1, e1, a1, buffer_[14],  6, k2);
-    Subround(H, a1, b1, c1, d1, e1, buffer_[ 4],  7, k2);
-    Subround(H, e1, a1, b1, c1, d1, buffer_[ 9], 14, k2);
-    Subround(H, d1, e1, a1, b1, c1, buffer_[15],  9, k2);
-    Subround(H, c1, d1, e1, a1, b1, buffer_[ 8], 13, k2);
-    Subround(H, b1, c1, d1, e1, a1, buffer_[ 1], 15, k2);
-    Subround(H, a1, b1, c1, d1, e1, buffer_[ 2], 14, k2);
-    Subround(H, e1, a1, b1, c1, d1, buffer_[ 7],  8, k2);
-    Subround(H, d1, e1, a1, b1, c1, buffer_[ 0], 13, k2);
-    Subround(H, c1, d1, e1, a1, b1, buffer_[ 6],  6, k2);
-    Subround(H, b1, c1, d1, e1, a1, buffer_[13],  5, k2);
-    Subround(H, a1, b1, c1, d1, e1, buffer_[11], 12, k2);
-    Subround(H, e1, a1, b1, c1, d1, buffer_[ 5],  7, k2);
-    Subround(H, d1, e1, a1, b1, c1, buffer_[12],  5, k2);
-
-    Subround(I, c1, d1, e1, a1, b1, buffer_[ 1], 11, k3);
-    Subround(I, b1, c1, d1, e1, a1, buffer_[ 9], 12, k3);
-    Subround(I, a1, b1, c1, d1, e1, buffer_[11], 14, k3);
-    Subround(I, e1, a1, b1, c1, d1, buffer_[10], 15, k3);
-    Subround(I, d1, e1, a1, b1, c1, buffer_[ 0], 14, k3);
-    Subround(I, c1, d1, e1, a1, b1, buffer_[ 8], 15, k3);
-    Subround(I, b1, c1, d1, e1, a1, buffer_[12],  9, k3);
-    Subround(I, a1, b1, c1, d1, e1, buffer_[ 4],  8, k3);
-    Subround(I, e1, a1, b1, c1, d1, buffer_[13],  9, k3);
-    Subround(I, d1, e1, a1, b1, c1, buffer_[ 3], 14, k3);
-    Subround(I, c1, d1, e1, a1, b1, buffer_[ 7],  5, k3);
-    Subround(I, b1, c1, d1, e1, a1, buffer_[15],  6, k3);
-    Subround(I, a1, b1, c1, d1, e1, buffer_[14],  8, k3);
-    Subround(I, e1, a1, b1, c1, d1, buffer_[ 5],  6, k3);
-    Subround(I, d1, e1, a1, b1, c1, buffer_[ 6],  5, k3);
-    Subround(I, c1, d1, e1, a1, b1, buffer_[ 2], 12, k3);
-
-    Subround(J, b1, c1, d1, e1, a1, buffer_[ 4],  9, k4);
-    Subround(J, a1, b1, c1, d1, e1, buffer_[ 0], 15, k4);
-    Subround(J, e1, a1, b1, c1, d1, buffer_[ 5],  5, k4);
-    Subround(J, d1, e1, a1, b1, c1, buffer_[ 9], 11, k4);
-    Subround(J, c1, d1, e1, a1, b1, buffer_[ 7],  6, k4);
-    Subround(J, b1, c1, d1, e1, a1, buffer_[12],  8, k4);
-    Subround(J, a1, b1, c1, d1, e1, buffer_[ 2], 13, k4);
-    Subround(J, e1, a1, b1, c1, d1, buffer_[10], 12, k4);
-    Subround(J, d1, e1, a1, b1, c1, buffer_[14],  5, k4);
-    Subround(J, c1, d1, e1, a1, b1, buffer_[ 1], 12, k4);
-    Subround(J, b1, c1, d1, e1, a1, buffer_[ 3], 13, k4);
-    Subround(J, a1, b1, c1, d1, e1, buffer_[ 8], 14, k4);
-    Subround(J, e1, a1, b1, c1, d1, buffer_[11], 11, k4);
-    Subround(J, d1, e1, a1, b1, c1, buffer_[ 6],  8, k4);
-    Subround(J, c1, d1, e1, a1, b1, buffer_[15],  5, k4);
-    Subround(J, b1, c1, d1, e1, a1, buffer_[13],  6, k4);
-
-    Subround(J, a2, b2, c2, d2, e2, buffer_[ 5],  8, k5);
-    Subround(J, e2, a2, b2, c2, d2, buffer_[14],  9, k5);
-    Subround(J, d2, e2, a2, b2, c2, buffer_[ 7],  9, k5);
-    Subround(J, c2, d2, e2, a2, b2, buffer_[ 0], 11, k5);
-    Subround(J, b2, c2, d2, e2, a2, buffer_[ 9], 13, k5);
-    Subround(J, a2, b2, c2, d2, e2, buffer_[ 2], 15, k5);
-    Subround(J, e2, a2, b2, c2, d2, buffer_[11], 15, k5);
-    Subround(J, d2, e2, a2, b2, c2, buffer_[ 4],  5, k5);
-    Subround(J, c2, d2, e2, a2, b2, buffer_[13],  7, k5);
-    Subround(J, b2, c2, d2, e2, a2, buffer_[ 6],  7, k5);
-    Subround(J, a2, b2, c2, d2, e2, buffer_[15],  8, k5);
-    Subround(J, e2, a2, b2, c2, d2, buffer_[ 8], 11, k5);
-    Subround(J, d2, e2, a2, b2, c2, buffer_[ 1], 14, k5);
-    Subround(J, c2, d2, e2, a2, b2, buffer_[10], 14, k5);
-    Subround(J, b2, c2, d2, e2, a2, buffer_[ 3], 12, k5);
-    Subround(J, a2, b2, c2, d2, e2, buffer_[12],  6, k5);
-
-    Subround(I, e2, a2, b2, c2, d2, buffer_[ 6],  9, k6); 
-    Subround(I, d2, e2, a2, b2, c2, buffer_[11], 13, k6);
-    Subround(I, c2, d2, e2, a2, b2, buffer_[ 3], 15, k6);
-    Subround(I, b2, c2, d2, e2, a2, buffer_[ 7],  7, k6);
-    Subround(I, a2, b2, c2, d2, e2, buffer_[ 0], 12, k6);
-    Subround(I, e2, a2, b2, c2, d2, buffer_[13],  8, k6);
-    Subround(I, d2, e2, a2, b2, c2, buffer_[ 5],  9, k6);
-    Subround(I, c2, d2, e2, a2, b2, buffer_[10], 11, k6);
-    Subround(I, b2, c2, d2, e2, a2, buffer_[14],  7, k6);
-    Subround(I, a2, b2, c2, d2, e2, buffer_[15],  7, k6);
-    Subround(I, e2, a2, b2, c2, d2, buffer_[ 8], 12, k6);
-    Subround(I, d2, e2, a2, b2, c2, buffer_[12],  7, k6);
-    Subround(I, c2, d2, e2, a2, b2, buffer_[ 4],  6, k6);
-    Subround(I, b2, c2, d2, e2, a2, buffer_[ 9], 15, k6);
-    Subround(I, a2, b2, c2, d2, e2, buffer_[ 1], 13, k6);
-    Subround(I, e2, a2, b2, c2, d2, buffer_[ 2], 11, k6);
-
-    Subround(H, d2, e2, a2, b2, c2, buffer_[15],  9, k7);
-    Subround(H, c2, d2, e2, a2, b2, buffer_[ 5],  7, k7);
-    Subround(H, b2, c2, d2, e2, a2, buffer_[ 1], 15, k7);
-    Subround(H, a2, b2, c2, d2, e2, buffer_[ 3], 11, k7);
-    Subround(H, e2, a2, b2, c2, d2, buffer_[ 7],  8, k7);
-    Subround(H, d2, e2, a2, b2, c2, buffer_[14],  6, k7);
-    Subround(H, c2, d2, e2, a2, b2, buffer_[ 6],  6, k7);
-    Subround(H, b2, c2, d2, e2, a2, buffer_[ 9], 14, k7);
-    Subround(H, a2, b2, c2, d2, e2, buffer_[11], 12, k7);
-    Subround(H, e2, a2, b2, c2, d2, buffer_[ 8], 13, k7);
-    Subround(H, d2, e2, a2, b2, c2, buffer_[12],  5, k7);
-    Subround(H, c2, d2, e2, a2, b2, buffer_[ 2], 14, k7);
-    Subround(H, b2, c2, d2, e2, a2, buffer_[10], 13, k7);
-    Subround(H, a2, b2, c2, d2, e2, buffer_[ 0], 13, k7);
-    Subround(H, e2, a2, b2, c2, d2, buffer_[ 4],  7, k7);
-    Subround(H, d2, e2, a2, b2, c2, buffer_[13],  5, k7);
-
-    Subround(G, c2, d2, e2, a2, b2, buffer_[ 8], 15, k8);
-    Subround(G, b2, c2, d2, e2, a2, buffer_[ 6],  5, k8);
-    Subround(G, a2, b2, c2, d2, e2, buffer_[ 4],  8, k8);
-    Subround(G, e2, a2, b2, c2, d2, buffer_[ 1], 11, k8);
-    Subround(G, d2, e2, a2, b2, c2, buffer_[ 3], 14, k8);
-    Subround(G, c2, d2, e2, a2, b2, buffer_[11], 14, k8);
-    Subround(G, b2, c2, d2, e2, a2, buffer_[15],  6, k8);
-    Subround(G, a2, b2, c2, d2, e2, buffer_[ 0], 14, k8);
-    Subround(G, e2, a2, b2, c2, d2, buffer_[ 5],  6, k8);
-    Subround(G, d2, e2, a2, b2, c2, buffer_[12],  9, k8);
-    Subround(G, c2, d2, e2, a2, b2, buffer_[ 2], 12, k8);
-    Subround(G, b2, c2, d2, e2, a2, buffer_[13],  9, k8);
-    Subround(G, a2, b2, c2, d2, e2, buffer_[ 9], 12, k8);
-    Subround(G, e2, a2, b2, c2, d2, buffer_[ 7],  5, k8);
-    Subround(G, d2, e2, a2, b2, c2, buffer_[10], 15, k8);
-    Subround(G, c2, d2, e2, a2, b2, buffer_[14],  8, k8);
-
-    Subround(F, b2, c2, d2, e2, a2, buffer_[12],  8, k9);
-    Subround(F, a2, b2, c2, d2, e2, buffer_[15],  5, k9);
-    Subround(F, e2, a2, b2, c2, d2, buffer_[10], 12, k9);
-    Subround(F, d2, e2, a2, b2, c2, buffer_[ 4],  9, k9);
-    Subround(F, c2, d2, e2, a2, b2, buffer_[ 1], 12, k9);
-    Subround(F, b2, c2, d2, e2, a2, buffer_[ 5],  5, k9);
-    Subround(F, a2, b2, c2, d2, e2, buffer_[ 8], 14, k9);
-    Subround(F, e2, a2, b2, c2, d2, buffer_[ 7],  6, k9);
-    Subround(F, d2, e2, a2, b2, c2, buffer_[ 6],  8, k9);
-    Subround(F, c2, d2, e2, a2, b2, buffer_[ 2], 13, k9);
-    Subround(F, b2, c2, d2, e2, a2, buffer_[13],  6, k9);
-    Subround(F, a2, b2, c2, d2, e2, buffer_[14],  5, k9);
-    Subround(F, e2, a2, b2, c2, d2, buffer_[ 0], 15, k9);
-    Subround(F, d2, e2, a2, b2, c2, buffer_[ 3], 13, k9);
-    Subround(F, c2, d2, e2, a2, b2, buffer_[ 9], 11, k9);
-    Subround(F, b2, c2, d2, e2, a2, buffer_[11], 11, k9);
-
-    c1         = digest_[1] + c1 + d2;
-    digest_[1] = digest_[2] + d1 + e2;
-    digest_[2] = digest_[3] + e1 + a2;
-    digest_[3] = digest_[4] + a1 + b2;
-    digest_[4] = digest_[0] + b1 + c2;
-    digest_[0] = c1;
-}
-
-
-#ifdef DO_RIPEMD_ASM
-
-/*
-    // F(x ^ y ^ z)
-    // place in esi
-#define ASMF(x, y, z)  \
-    AS2(    mov   esi, x                )   \
-    AS2(    xor   esi, y                )   \
-    AS2(    xor   esi, z                )
-
-
-    // G(z ^ (x & (y^z)))
-    // place in esi
-#define ASMG(x, y, z)  \
-    AS2(    mov   esi, z                )   \
-    AS2(    xor   esi, y                )   \
-    AS2(    and   esi, x                )   \
-    AS2(    xor   esi, z                )
-
-    
-    // H(z ^ (x | ~y))
-    // place in esi
-#define ASMH(x, y, z) \
-    AS2(    mov   esi, y                )   \
-    AS1(    not   esi                   )   \
-    AS2(     or   esi, x                )   \
-    AS2(    xor   esi, z                )
-
-
-    // I(y ^ (z & (x^y)))
-    // place in esi
-#define ASMI(x, y, z)  \
-    AS2(    mov   esi, y                )   \
-    AS2(    xor   esi, x                )   \
-    AS2(    and   esi, z                )   \
-    AS2(    xor   esi, y                )
-
-
-    // J(x ^ (y | ~z)))
-    // place in esi
-#define ASMJ(x, y, z)   \
-    AS2(    mov   esi, z                )   \
-    AS1(    not   esi                   )   \
-    AS2(     or   esi, y                )   \
-    AS2(    xor   esi, x                )
-
-
-// for 160 and 320
-// #define ASMSubround(f, a, b, c, d, e, i, s, k) 
-//    a += f(b, c, d) + data[i] + k;
-//    a = rotlFixed((word32)a, s) + e;
-//    c = rotlFixed((word32)c, 10U)
-
-#define ASMSubround(f, a, b, c, d, e, index, s, k) \
-    // a += f(b, c, d) + data[i] + k                    \
-    AS2(    mov   esp, [edi + index * 4]            )   \
-    f(b, c, d)                                          \
-    AS2(    add   esi, k                            )   \
-    AS2(    add   esi, esp                          )   \
-    AS2(    add     a, esi                          )   \
-    // a = rotlFixed((word32)a, s) + e                  \
-    AS2(    rol     a, s                            )   \
-    AS2(    rol     c, 10                           )   \
-    // c = rotlFixed((word32)c, 10U)                    \
-    AS2(    add     a, e                            )
-*/
-
-
-// combine F into subround w/ setup
-// esi already has c, setup for next round when done
-// esp already has edi[index], setup for next round when done
-
-#define ASMSubroundF(a, b, c, d, e, index, s) \
-    /* a += (b ^ c ^ d) + data[i] + k  */               \
-    AS2(    xor   esi, b                            )   \
-    AS2(    add     a, [edi + index * 4]            )   \
-    AS2(    xor   esi, d                            )   \
-    AS2(    add     a, esi                          )   \
-    /* a = rotlFixed((word32)a, s) + e */               \
-    AS2(    mov   esi, b                            )   \
-    AS2(    rol     a, s                            )   \
-    /* c = rotlFixed((word32)c, 10U) */                 \
-    AS2(    rol     c, 10                           )   \
-    AS2(    add     a, e                            )
-
-
-// combine G into subround w/ setup
-// esi already has c, setup for next round when done
-// esp already has edi[index], setup for next round when done
-
-#define ASMSubroundG(a, b, c, d, e, index, s, k) \
-    /* a += (d ^ (b & (c^d))) + data[i] + k  */         \
-    AS2(    xor   esi, d                            )   \
-    AS2(    and   esi, b                            )   \
-    AS2(    add     a, [edi + index * 4]            )   \
-    AS2(    xor   esi, d                            )   \
-    AS2(    lea     a, [esi + a + k]                )   \
-    /* a = rotlFixed((word32)a, s) + e */               \
-    AS2(    mov   esi, b                            )   \
-    AS2(    rol     a, s                            )   \
-    /* c = rotlFixed((word32)c, 10U) */                 \
-    AS2(    rol     c, 10                           )   \
-    AS2(    add     a, e                            )
-
-
-// combine H into subround w/ setup
-// esi already has c, setup for next round when done
-// esp already has edi[index], setup for next round when done
-
-#define ASMSubroundH(a, b, c, d, e, index, s, k) \
-    /* a += (d ^ (b | ~c)) + data[i] + k  */            \
-    AS1(    not   esi                               )   \
-    AS2(     or   esi, b                            )   \
-    AS2(    add     a, [edi + index * 4]            )   \
-    AS2(    xor   esi, d                            )   \
-    AS2(    lea     a, [esi + a + k]                )   \
-    /* a = rotlFixed((word32)a, s) + e */               \
-    AS2(    mov   esi, b                            )   \
-    AS2(    rol     a, s                            )   \
-    /* c = rotlFixed((word32)c, 10U) */                 \
-    AS2(    rol     c, 10                           )   \
-    AS2(    add     a, e                            )
-
-
-// combine I into subround w/ setup
-// esi already has c, setup for next round when done
-// esp already has edi[index], setup for next round when done
-
-#define ASMSubroundI(a, b, c, d, e, index, s, k) \
-    /* a += (c ^ (d & (b^c))) + data[i] + k  */         \
-    AS2(    xor   esi, b                            )   \
-    AS2(    and   esi, d                            )   \
-    AS2(    add     a, [edi + index * 4]            )   \
-    AS2(    xor   esi, c                            )   \
-    AS2(    lea     a, [esi + a + k]                )   \
-    /* a = rotlFixed((word32)a, s) + e */               \
-    AS2(    mov   esi, b                            )   \
-    AS2(    rol     a, s                            )   \
-    /* c = rotlFixed((word32)c, 10U) */                 \
-    AS2(    rol     c, 10                           )   \
-    AS2(    add     a, e                            )
-
-
-// combine J into subround w/ setup
-// esi already has d, setup for next round when done
-// esp already has edi[index], setup for next round when done
-
-#define ASMSubroundJ(a, b, c, d, e, index, s, k) \
-    /* a += (b ^ (c | ~d))) + data[i] + k  */           \
-    AS1(    not   esi                               )   \
-    AS2(     or   esi, c                            )   \
-    /* c = rotlFixed((word32)c, 10U) */                 \
-    AS2(    add     a, [edi + index * 4]            )   \
-    AS2(    xor   esi, b                            )   \
-    AS2(    rol     c, 10                           )   \
-    AS2(    lea     a, [esi + a + k]                )   \
-    /* a = rotlFixed((word32)a, s) + e */               \
-    AS2(    rol     a, s                            )   \
-    AS2(    mov   esi, c                            )   \
-    AS2(    add     a, e                            )
-
-
-#ifdef _MSC_VER
-    __declspec(naked) 
-#else
-    __attribute__ ((noinline))
-#endif
-void RIPEMD160::AsmTransform(const byte* data, word32 times)
-{
-#ifdef __GNUC__
-    #define AS1(x)    #x ";"
-    #define AS2(x, y) #x ", " #y ";"
-
-    #define PROLOG()  \
-    __asm__ __volatile__ \
-    ( \
-        ".intel_syntax noprefix;" \
-        "push ebx;" \
-        "push ebp;"
-    #define EPILOG()  \
-        "pop ebp;" \
-        "pop ebx;" \
-       	"emms;" \
-       	".att_syntax;" \
-            : \
-            : "c" (this), "D" (data), "d" (times) \
-            : "%esi", "%eax", "memory", "cc" \
-    );
-
-#else
-    #define AS1(x)    __asm x
-    #define AS2(x, y) __asm x, y
-
-    #define PROLOG() \
-        AS1(    push  ebp                       )   \
-        AS2(    mov   ebp, esp                  )   \
-        AS2(    movd  mm3, edi                  )   \
-        AS2(    movd  mm4, ebx                  )   \
-        AS2(    movd  mm5, esi                  )   \
-        AS2(    movd  mm6, ebp                  )   \
-        AS2(    mov   edi, DWORD PTR [ebp +  8] )   \
-        AS2(    mov   edx, DWORD PTR [ebp + 12] )
-
-    #define EPILOG() \
-        AS2(    movd  ebp, mm6                  )   \
-        AS2(    movd  esi, mm5                  )   \
-        AS2(    movd  ebx, mm4                  )   \
-        AS2(    movd  edi, mm3                  )   \
-        AS2(    mov   esp, ebp                  )   \
-        AS1(    pop   ebp                       )   \
-        AS1(    emms                            )   \
-        AS1(    ret   8                         )
-        
-#endif
-
-    PROLOG()
-
-    #ifdef OLD_GCC_OFFSET
-        AS2(    lea   esi, [ecx + 20]               )   // digest_[0]
-    #else
-        AS2(    lea   esi, [ecx + 16]               )   // digest_[0]
-    #endif
-
-    AS2(    sub   esp, 24               )   // make room for tmp a1 - e1
-    AS2(    movd  mm1, esi              )   // store digest_
-    
-#ifdef _MSC_VER
-    AS1( loopStart: )  // loopStart
-#else
-    AS1( 0: )          // loopStart for some gas (need numeric for jump back 
-#endif
-
-    AS2(    movd  mm2, edx              )   // store times_
-
-    AS2(    mov   eax, [esi]            )   // a1
-    AS2(    mov   ebx, [esi +  4]       )   // b1
-    AS2(    mov   ecx, [esi +  8]       )   // c1
-    AS2(    mov   edx, [esi + 12]       )   // d1
-    AS2(    mov   ebp, [esi + 16]       )   // e1
-
-    // setup 
-    AS2(    mov   esi, ecx      )
-
-    ASMSubroundF( eax, ebx, ecx, edx, ebp,  0, 11)
-    ASMSubroundF( ebp, eax, ebx, ecx, edx,  1, 14)
-    ASMSubroundF( edx, ebp, eax, ebx, ecx,  2, 15)
-    ASMSubroundF( ecx, edx, ebp, eax, ebx,  3, 12)
-    ASMSubroundF( ebx, ecx, edx, ebp, eax,  4,  5)
-    ASMSubroundF( eax, ebx, ecx, edx, ebp,  5,  8)
-    ASMSubroundF( ebp, eax, ebx, ecx, edx,  6,  7)
-    ASMSubroundF( edx, ebp, eax, ebx, ecx,  7,  9)
-    ASMSubroundF( ecx, edx, ebp, eax, ebx,  8, 11)
-    ASMSubroundF( ebx, ecx, edx, ebp, eax,  9, 13)
-    ASMSubroundF( eax, ebx, ecx, edx, ebp, 10, 14)
-    ASMSubroundF( ebp, eax, ebx, ecx, edx, 11, 15)
-    ASMSubroundF( edx, ebp, eax, ebx, ecx, 12,  6)
-    ASMSubroundF( ecx, edx, ebp, eax, ebx, 13,  7)
-    ASMSubroundF( ebx, ecx, edx, ebp, eax, 14,  9)
-    ASMSubroundF( eax, ebx, ecx, edx, ebp, 15,  8)
-
-    ASMSubroundG( ebp, eax, ebx, ecx, edx,  7,  7, k1)
-    ASMSubroundG( edx, ebp, eax, ebx, ecx,  4,  6, k1)
-    ASMSubroundG( ecx, edx, ebp, eax, ebx, 13,  8, k1)
-    ASMSubroundG( ebx, ecx, edx, ebp, eax,  1, 13, k1)
-    ASMSubroundG( eax, ebx, ecx, edx, ebp, 10, 11, k1)
-    ASMSubroundG( ebp, eax, ebx, ecx, edx,  6,  9, k1)
-    ASMSubroundG( edx, ebp, eax, ebx, ecx, 15,  7, k1)
-    ASMSubroundG( ecx, edx, ebp, eax, ebx,  3, 15, k1)
-    ASMSubroundG( ebx, ecx, edx, ebp, eax, 12,  7, k1)
-    ASMSubroundG( eax, ebx, ecx, edx, ebp,  0, 12, k1)
-    ASMSubroundG( ebp, eax, ebx, ecx, edx,  9, 15, k1)
-    ASMSubroundG( edx, ebp, eax, ebx, ecx,  5,  9, k1)
-    ASMSubroundG( ecx, edx, ebp, eax, ebx,  2, 11, k1)
-    ASMSubroundG( ebx, ecx, edx, ebp, eax, 14,  7, k1)
-    ASMSubroundG( eax, ebx, ecx, edx, ebp, 11, 13, k1)
-    ASMSubroundG( ebp, eax, ebx, ecx, edx,  8, 12, k1)
-
-    ASMSubroundH( edx, ebp, eax, ebx, ecx,  3, 11, k2)
-    ASMSubroundH( ecx, edx, ebp, eax, ebx, 10, 13, k2)
-    ASMSubroundH( ebx, ecx, edx, ebp, eax, 14,  6, k2)
-    ASMSubroundH( eax, ebx, ecx, edx, ebp,  4,  7, k2)
-    ASMSubroundH( ebp, eax, ebx, ecx, edx,  9, 14, k2)
-    ASMSubroundH( edx, ebp, eax, ebx, ecx, 15,  9, k2)
-    ASMSubroundH( ecx, edx, ebp, eax, ebx,  8, 13, k2)
-    ASMSubroundH( ebx, ecx, edx, ebp, eax,  1, 15, k2)
-    ASMSubroundH( eax, ebx, ecx, edx, ebp,  2, 14, k2)
-    ASMSubroundH( ebp, eax, ebx, ecx, edx,  7,  8, k2)
-    ASMSubroundH( edx, ebp, eax, ebx, ecx,  0, 13, k2)
-    ASMSubroundH( ecx, edx, ebp, eax, ebx,  6,  6, k2)
-    ASMSubroundH( ebx, ecx, edx, ebp, eax, 13,  5, k2)
-    ASMSubroundH( eax, ebx, ecx, edx, ebp, 11, 12, k2)
-    ASMSubroundH( ebp, eax, ebx, ecx, edx,  5,  7, k2)
-    ASMSubroundH( edx, ebp, eax, ebx, ecx, 12,  5, k2)
-
-    ASMSubroundI( ecx, edx, ebp, eax, ebx,  1, 11, k3)
-    ASMSubroundI( ebx, ecx, edx, ebp, eax,  9, 12, k3)
-    ASMSubroundI( eax, ebx, ecx, edx, ebp, 11, 14, k3)
-    ASMSubroundI( ebp, eax, ebx, ecx, edx, 10, 15, k3)
-    ASMSubroundI( edx, ebp, eax, ebx, ecx,  0, 14, k3)
-    ASMSubroundI( ecx, edx, ebp, eax, ebx,  8, 15, k3)
-    ASMSubroundI( ebx, ecx, edx, ebp, eax, 12,  9, k3)
-    ASMSubroundI( eax, ebx, ecx, edx, ebp,  4,  8, k3)
-    ASMSubroundI( ebp, eax, ebx, ecx, edx, 13,  9, k3)
-    ASMSubroundI( edx, ebp, eax, ebx, ecx,  3, 14, k3)
-    ASMSubroundI( ecx, edx, ebp, eax, ebx,  7,  5, k3)
-    ASMSubroundI( ebx, ecx, edx, ebp, eax, 15,  6, k3)
-    ASMSubroundI( eax, ebx, ecx, edx, ebp, 14,  8, k3)
-    ASMSubroundI( ebp, eax, ebx, ecx, edx,  5,  6, k3)
-    ASMSubroundI( edx, ebp, eax, ebx, ecx,  6,  5, k3)
-    ASMSubroundI( ecx, edx, ebp, eax, ebx,  2, 12, k3)
-
-    // setup
-    AS2(    mov   esi, ebp      )
-
-    ASMSubroundJ( ebx, ecx, edx, ebp, eax,  4,  9, k4)
-    ASMSubroundJ( eax, ebx, ecx, edx, ebp,  0, 15, k4)
-    ASMSubroundJ( ebp, eax, ebx, ecx, edx,  5,  5, k4)
-    ASMSubroundJ( edx, ebp, eax, ebx, ecx,  9, 11, k4)
-    ASMSubroundJ( ecx, edx, ebp, eax, ebx,  7,  6, k4)
-    ASMSubroundJ( ebx, ecx, edx, ebp, eax, 12,  8, k4)
-    ASMSubroundJ( eax, ebx, ecx, edx, ebp,  2, 13, k4)
-    ASMSubroundJ( ebp, eax, ebx, ecx, edx, 10, 12, k4)
-    ASMSubroundJ( edx, ebp, eax, ebx, ecx, 14,  5, k4)
-    ASMSubroundJ( ecx, edx, ebp, eax, ebx,  1, 12, k4)
-    ASMSubroundJ( ebx, ecx, edx, ebp, eax,  3, 13, k4)
-    ASMSubroundJ( eax, ebx, ecx, edx, ebp,  8, 14, k4)
-    ASMSubroundJ( ebp, eax, ebx, ecx, edx, 11, 11, k4)
-    ASMSubroundJ( edx, ebp, eax, ebx, ecx,  6,  8, k4)
-    ASMSubroundJ( ecx, edx, ebp, eax, ebx, 15,  5, k4)
-    ASMSubroundJ( ebx, ecx, edx, ebp, eax, 13,  6, k4)
-
-    // store a1 - e1 on stack
-    AS2(    movd  esi, mm1              )   // digest_
-
-    AS2(    mov   [esp],      eax       )
-    AS2(    mov   [esp +  4], ebx       )
-    AS2(    mov   [esp +  8], ecx       )
-    AS2(    mov   [esp + 12], edx       )
-    AS2(    mov   [esp + 16], ebp       )
-
-    AS2(    mov   eax, [esi]            )   // a2
-    AS2(    mov   ebx, [esi +  4]       )   // b2
-    AS2(    mov   ecx, [esi +  8]       )   // c2
-    AS2(    mov   edx, [esi + 12]       )   // d2
-    AS2(    mov   ebp, [esi + 16]       )   // e2
-
-
-    // setup
-    AS2(    mov   esi, edx      )
-
-    ASMSubroundJ( eax, ebx, ecx, edx, ebp,  5,  8, k5)
-    ASMSubroundJ( ebp, eax, ebx, ecx, edx, 14,  9, k5)
-    ASMSubroundJ( edx, ebp, eax, ebx, ecx,  7,  9, k5)
-    ASMSubroundJ( ecx, edx, ebp, eax, ebx,  0, 11, k5)
-    ASMSubroundJ( ebx, ecx, edx, ebp, eax,  9, 13, k5)
-    ASMSubroundJ( eax, ebx, ecx, edx, ebp,  2, 15, k5)
-    ASMSubroundJ( ebp, eax, ebx, ecx, edx, 11, 15, k5)
-    ASMSubroundJ( edx, ebp, eax, ebx, ecx,  4,  5, k5)
-    ASMSubroundJ( ecx, edx, ebp, eax, ebx, 13,  7, k5)
-    ASMSubroundJ( ebx, ecx, edx, ebp, eax,  6,  7, k5)
-    ASMSubroundJ( eax, ebx, ecx, edx, ebp, 15,  8, k5)
-    ASMSubroundJ( ebp, eax, ebx, ecx, edx,  8, 11, k5)
-    ASMSubroundJ( edx, ebp, eax, ebx, ecx,  1, 14, k5)
-    ASMSubroundJ( ecx, edx, ebp, eax, ebx, 10, 14, k5)
-    ASMSubroundJ( ebx, ecx, edx, ebp, eax,  3, 12, k5)
-    ASMSubroundJ( eax, ebx, ecx, edx, ebp, 12,  6, k5)
-
-    // setup
-    AS2(    mov   esi, ebx      )
-
-    ASMSubroundI( ebp, eax, ebx, ecx, edx,  6,  9, k6) 
-    ASMSubroundI( edx, ebp, eax, ebx, ecx, 11, 13, k6)
-    ASMSubroundI( ecx, edx, ebp, eax, ebx,  3, 15, k6)
-    ASMSubroundI( ebx, ecx, edx, ebp, eax,  7,  7, k6)
-    ASMSubroundI( eax, ebx, ecx, edx, ebp,  0, 12, k6)
-    ASMSubroundI( ebp, eax, ebx, ecx, edx, 13,  8, k6)
-    ASMSubroundI( edx, ebp, eax, ebx, ecx,  5,  9, k6)
-    ASMSubroundI( ecx, edx, ebp, eax, ebx, 10, 11, k6)
-    ASMSubroundI( ebx, ecx, edx, ebp, eax, 14,  7, k6)
-    ASMSubroundI( eax, ebx, ecx, edx, ebp, 15,  7, k6)
-    ASMSubroundI( ebp, eax, ebx, ecx, edx,  8, 12, k6)
-    ASMSubroundI( edx, ebp, eax, ebx, ecx, 12,  7, k6)
-    ASMSubroundI( ecx, edx, ebp, eax, ebx,  4,  6, k6)
-    ASMSubroundI( ebx, ecx, edx, ebp, eax,  9, 15, k6)
-    ASMSubroundI( eax, ebx, ecx, edx, ebp,  1, 13, k6)
-    ASMSubroundI( ebp, eax, ebx, ecx, edx,  2, 11, k6)
-
-    ASMSubroundH( edx, ebp, eax, ebx, ecx, 15,  9, k7)
-    ASMSubroundH( ecx, edx, ebp, eax, ebx,  5,  7, k7)
-    ASMSubroundH( ebx, ecx, edx, ebp, eax,  1, 15, k7)
-    ASMSubroundH( eax, ebx, ecx, edx, ebp,  3, 11, k7)
-    ASMSubroundH( ebp, eax, ebx, ecx, edx,  7,  8, k7)
-    ASMSubroundH( edx, ebp, eax, ebx, ecx, 14,  6, k7)
-    ASMSubroundH( ecx, edx, ebp, eax, ebx,  6,  6, k7)
-    ASMSubroundH( ebx, ecx, edx, ebp, eax,  9, 14, k7)
-    ASMSubroundH( eax, ebx, ecx, edx, ebp, 11, 12, k7)
-    ASMSubroundH( ebp, eax, ebx, ecx, edx,  8, 13, k7)
-    ASMSubroundH( edx, ebp, eax, ebx, ecx, 12,  5, k7)
-    ASMSubroundH( ecx, edx, ebp, eax, ebx,  2, 14, k7)
-    ASMSubroundH( ebx, ecx, edx, ebp, eax, 10, 13, k7)
-    ASMSubroundH( eax, ebx, ecx, edx, ebp,  0, 13, k7)
-    ASMSubroundH( ebp, eax, ebx, ecx, edx,  4,  7, k7)
-    ASMSubroundH( edx, ebp, eax, ebx, ecx, 13,  5, k7)
-
-    ASMSubroundG( ecx, edx, ebp, eax, ebx,  8, 15, k8)
-    ASMSubroundG( ebx, ecx, edx, ebp, eax,  6,  5, k8)
-    ASMSubroundG( eax, ebx, ecx, edx, ebp,  4,  8, k8)
-    ASMSubroundG( ebp, eax, ebx, ecx, edx,  1, 11, k8)
-    ASMSubroundG( edx, ebp, eax, ebx, ecx,  3, 14, k8)
-    ASMSubroundG( ecx, edx, ebp, eax, ebx, 11, 14, k8)
-    ASMSubroundG( ebx, ecx, edx, ebp, eax, 15,  6, k8)
-    ASMSubroundG( eax, ebx, ecx, edx, ebp,  0, 14, k8)
-    ASMSubroundG( ebp, eax, ebx, ecx, edx,  5,  6, k8)
-    ASMSubroundG( edx, ebp, eax, ebx, ecx, 12,  9, k8)
-    ASMSubroundG( ecx, edx, ebp, eax, ebx,  2, 12, k8)
-    ASMSubroundG( ebx, ecx, edx, ebp, eax, 13,  9, k8)
-    ASMSubroundG( eax, ebx, ecx, edx, ebp,  9, 12, k8)
-    ASMSubroundG( ebp, eax, ebx, ecx, edx,  7,  5, k8)
-    ASMSubroundG( edx, ebp, eax, ebx, ecx, 10, 15, k8)
-    ASMSubroundG( ecx, edx, ebp, eax, ebx, 14,  8, k8)
-
-    ASMSubroundF( ebx, ecx, edx, ebp, eax, 12,  8)
-    ASMSubroundF( eax, ebx, ecx, edx, ebp, 15,  5)
-    ASMSubroundF( ebp, eax, ebx, ecx, edx, 10, 12)
-    ASMSubroundF( edx, ebp, eax, ebx, ecx,  4,  9)
-    ASMSubroundF( ecx, edx, ebp, eax, ebx,  1, 12)
-    ASMSubroundF( ebx, ecx, edx, ebp, eax,  5,  5)
-    ASMSubroundF( eax, ebx, ecx, edx, ebp,  8, 14)
-    ASMSubroundF( ebp, eax, ebx, ecx, edx,  7,  6)
-    ASMSubroundF( edx, ebp, eax, ebx, ecx,  6,  8)
-    ASMSubroundF( ecx, edx, ebp, eax, ebx,  2, 13)
-    ASMSubroundF( ebx, ecx, edx, ebp, eax, 13,  6)
-    ASMSubroundF( eax, ebx, ecx, edx, ebp, 14,  5)
-    ASMSubroundF( ebp, eax, ebx, ecx, edx,  0, 15)
-    ASMSubroundF( edx, ebp, eax, ebx, ecx,  3, 13)
-    ASMSubroundF( ecx, edx, ebp, eax, ebx,  9, 11)
-    ASMSubroundF( ebx, ecx, edx, ebp, eax, 11, 11)
-
-    // advance data and store for next round
-    AS2(    add   edi, 64                       )
-    AS2(    movd  esi, mm1                      )   // digest_
-    AS2(    movd  mm0, edi                      )   // store
-
-    // now edi as tmp
-
-    // c1         = digest_[1] + c1 + d2;
-    AS2(    add   [esp +  8], edx               )   // + d2
-    AS2(    mov   edi, [esi + 4]                )   // digest_[1]
-    AS2(    add   [esp +  8], edi               )
-
-    // digest_[1] = digest_[2] + d1 + e2;
-    AS2(    mov   [esi + 4], ebp                )   // e2
-    AS2(    mov   edi, [esp + 12]               )   // d1
-    AS2(    add   edi, [esi + 8]                )   // digest_[2]
-    AS2(    add   [esi + 4], edi                )
-
-    // digest_[2] = digest_[3] + e1 + a2;
-    AS2(    mov   [esi + 8], eax                )   // a2
-    AS2(    mov   edi, [esp + 16]               )   // e1
-    AS2(    add   edi, [esi + 12]               )   // digest_[3]
-    AS2(    add   [esi + 8], edi                )
-
-    // digest_[3] = digest_[4] + a1 + b2;
-    AS2(    mov   [esi + 12], ebx               )   // b2
-    AS2(    mov   edi, [esp]                    )   // a1
-    AS2(    add   edi, [esi + 16]               )   // digest_[4]
-    AS2(    add   [esi + 12], edi               )
-
-    // digest_[4] = digest_[0] + b1 + c2;
-    AS2(    mov   [esi + 16], ecx               )   // c2
-    AS2(    mov   edi, [esp +  4]               )   // b1
-    AS2(    add   edi, [esi]                    )   // digest_[0]
-    AS2(    add   [esi + 16], edi               )
-
-    // digest_[0] = c1;
-    AS2(    mov   edi, [esp +  8]               )   // c1
-    AS2(    mov   [esi], edi                    )
-
-    // setup for loop back
-    AS2(    movd  edx, mm2              )   // times
-    AS2(    movd  edi, mm0              )   // data, already advanced
-    AS1(    dec   edx                   )
-#ifdef _MSC_VER
-    AS1(    jnz   loopStart )  // loopStart
-#else
-    AS1(    jnz   0b )         // loopStart
-#endif
-
-    // inline adjust 
-    AS2(    add   esp, 24               )   // fix room on stack
-
-    EPILOG()
-}
-
-
-#endif // DO_RIPEMD_ASM
-
-
-} // namespace TaoCrypt
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/rsa.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/rsa.cpp
deleted file mode 100644
index 73f678e2..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/rsa.cpp
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* based on Wei Dai's rsa.cpp from CryptoPP */
-
-#include "runtime.hpp"
-#include "rsa.hpp"
-#include "asn.hpp"
-#include "modarith.hpp"
-
-
-
-namespace TaoCrypt {
-
-
-Integer RSA_PublicKey::ApplyFunction(const Integer& x) const
-{
-    return a_exp_b_mod_c(x, e_, n_);
-}
-
-
-RSA_PublicKey::RSA_PublicKey(Source& source)
-{
-    Initialize(source);
-}
-
-
-void RSA_PublicKey::Initialize(Source& source)
-{
-    RSA_Public_Decoder decoder(source);
-    decoder.Decode(*this);
-}
-
-
-Integer RSA_PrivateKey::CalculateInverse(RandomNumberGenerator& rng,
-                                         const Integer& x) const
-{
-    ModularArithmetic modn(n_);
-
-    Integer r(rng, Integer::One(), n_ - Integer::One());
-    Integer re = modn.Exponentiate(r, e_);
-    re = modn.Multiply(re, x);			// blind
-
-    // here we follow the notation of PKCS #1 and let u=q inverse mod p
-    // but in ModRoot, u=p inverse mod q, so we reverse the order of p and q
-
-    Integer y = ModularRoot(re, dq_, dp_, q_, p_, u_);
-    y = modn.Divide(y, r);				    // unblind
-       
-    return y;
-}
-
-
-RSA_PrivateKey::RSA_PrivateKey(Source& source)
-{
-    Initialize(source);
-}
-
-
-void RSA_PrivateKey::Initialize(Source& source)
-{
-    RSA_Private_Decoder decoder(source);
-    decoder.Decode(*this);
-}
-
-
-void RSA_BlockType2::Pad(const byte *input, word32 inputLen, byte *pkcsBlock,
-                         word32 pkcsBlockLen, RandomNumberGenerator& rng) const
-{
-    // convert from bit length to byte length
-    if (pkcsBlockLen % 8 != 0)
-    {
-        pkcsBlock[0] = 0;
-        pkcsBlock++;
-    }
-    pkcsBlockLen /= 8;
-
-    pkcsBlock[0] = 2;  // block type 2
-
-    // pad with non-zero random bytes
-    word32 padLen = pkcsBlockLen - inputLen - 1;
-    rng.GenerateBlock(&pkcsBlock[1], padLen);
-    for (word32 i = 1; i < padLen; i++)
-        if (pkcsBlock[i] == 0) pkcsBlock[i] = 0x01;
-    
-    pkcsBlock[pkcsBlockLen-inputLen-1] = 0;     // separator
-    memcpy(pkcsBlock+pkcsBlockLen-inputLen, input, inputLen);
-}
-
-word32 RSA_BlockType2::UnPad(const byte *pkcsBlock, unsigned int pkcsBlockLen,
-                           byte *output) const
-{
-    bool invalid = false;
-    unsigned int maxOutputLen = SaturatingSubtract(pkcsBlockLen / 8, 10U);
-
-    // convert from bit length to byte length
-    if (pkcsBlockLen % 8 != 0)
-    {
-        invalid = (pkcsBlock[0] != 0) || invalid;
-        pkcsBlock++;
-    }
-    pkcsBlockLen /= 8;
-
-    // Require block type 2.
-    invalid = (pkcsBlock[0] != 2) || invalid;
-
-    // skip past the padding until we find the separator
-    unsigned i=1;
-    while (i maxOutputLen) || invalid;
-
-    if (invalid)
-        return 0;
-
-    memcpy (output, pkcsBlock+i, outputLen);
-    return outputLen;
-}
-
-
-void RSA_BlockType1::Pad(const byte* input, word32 inputLen, byte* pkcsBlock,
-                         word32 pkcsBlockLen, RandomNumberGenerator&) const
-{
-    // sanity checks
-    if (input == NULL || pkcsBlock == NULL)
-        return;
-
-    // convert from bit length to byte length
-    if (pkcsBlockLen % 8 != 0)
-    {
-        pkcsBlock[0] = 0;
-        pkcsBlock++;
-    }
-    pkcsBlockLen /= 8;
-
-    pkcsBlock[0] = 1;  // block type 1 for SSL
-
-    // pad with 0xff bytes
-    memset(&pkcsBlock[1], 0xFF, pkcsBlockLen - inputLen - 2);
-
-    pkcsBlock[pkcsBlockLen-inputLen-1] = 0;     // separator
-    memcpy(pkcsBlock+pkcsBlockLen-inputLen, input, inputLen);
-}
-
-
-word32 RSA_BlockType1::UnPad(const byte* pkcsBlock, word32 pkcsBlockLen,
-                             byte* output) const
-{
-    bool invalid = false;
-    unsigned int maxOutputLen = SaturatingSubtract(pkcsBlockLen / 8, 10U);
-
-    // convert from bit length to byte length
-    if (pkcsBlockLen % 8 != 0)
-    {
-        invalid = (pkcsBlock[0] != 0) || invalid;
-        pkcsBlock++;
-    }
-    pkcsBlockLen /= 8;
-
-    // Require block type 1 for SSL.
-    invalid = (pkcsBlock[0] != 1) || invalid;
-
-    // skip past the padding until we find the separator
-    unsigned i=1;
-    while (i maxOutputLen) || invalid;
-
-    if (invalid)
-        return 0;
-
-    memcpy(output, pkcsBlock+i, outputLen);
-    return outputLen;
-}
-
-
-word32 SSL_Decrypt(const RSA_PublicKey& key, const byte* sig, byte* plain)
-{
-    PK_Lengths lengths(key.GetModulus());
-   
-    ByteBlock paddedBlock(BitsToBytes(lengths.PaddedBlockBitLength()));
-    Integer x = key.ApplyFunction(Integer(sig,
-                                          lengths.FixedCiphertextLength()));
-    if (x.ByteCount() > paddedBlock.size())
-        x = Integer::Zero();	
-    x.Encode(paddedBlock.get_buffer(), paddedBlock.size());
-    return RSA_BlockType1().UnPad(paddedBlock.get_buffer(),
-                                  lengths.PaddedBlockBitLength(), plain);
-}
-
-
-} // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/sha.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/sha.cpp
deleted file mode 100644
index 4206f7f6..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/sha.cpp
+++ /dev/null
@@ -1,1033 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* based on Wei Dai's sha.cpp from CryptoPP */
-
-#include "runtime.hpp"
-#include 
-#include "sha.hpp"
-#ifdef USE_SYS_STL
-    #include 
-#else
-    #include "algorithm.hpp"
-#endif
-
-
-namespace STL = STL_NAMESPACE;
-
-
-
-namespace TaoCrypt {
-
-#define blk0(i) (W[i] = buffer_[i])
-#define blk1(i) (W[i&15] = \
-                 rotlFixed(W[(i+13)&15]^W[(i+8)&15]^W[(i+2)&15]^W[i&15],1))
-
-#define f1(x,y,z) (z^(x &(y^z)))
-#define f2(x,y,z) (x^y^z)
-#define f3(x,y,z) ((x&y)|(z&(x|y)))
-#define f4(x,y,z) (x^y^z)
-
-// (R0+R1), R2, R3, R4 are the different operations used in SHA1
-#define R0(v,w,x,y,z,i) z+= f1(w,x,y) + blk0(i) + 0x5A827999+ \
-                        rotlFixed(v,5); w = rotlFixed(w,30);
-#define R1(v,w,x,y,z,i) z+= f1(w,x,y) + blk1(i) + 0x5A827999+ \
-                        rotlFixed(v,5); w = rotlFixed(w,30);
-#define R2(v,w,x,y,z,i) z+= f2(w,x,y) + blk1(i) + 0x6ED9EBA1+ \
-                        rotlFixed(v,5); w = rotlFixed(w,30);
-#define R3(v,w,x,y,z,i) z+= f3(w,x,y) + blk1(i) + 0x8F1BBCDC+ \
-                        rotlFixed(v,5); w = rotlFixed(w,30);
-#define R4(v,w,x,y,z,i) z+= f4(w,x,y) + blk1(i) + 0xCA62C1D6+ \
-                        rotlFixed(v,5); w = rotlFixed(w,30);
-
-
-void SHA::Init()
-{
-    digest_[0] = 0x67452301L;
-    digest_[1] = 0xEFCDAB89L;
-    digest_[2] = 0x98BADCFEL;
-    digest_[3] = 0x10325476L;
-    digest_[4] = 0xC3D2E1F0L;
-
-    buffLen_ = 0;
-    loLen_  = 0;
-    hiLen_  = 0;
-}
-
-void SHA256::Init()
-{
-    digest_[0] = 0x6A09E667L;
-    digest_[1] = 0xBB67AE85L;
-    digest_[2] = 0x3C6EF372L;
-    digest_[3] = 0xA54FF53AL;
-    digest_[4] = 0x510E527FL;
-    digest_[5] = 0x9B05688CL;
-    digest_[6] = 0x1F83D9ABL;
-    digest_[7] = 0x5BE0CD19L;
-
-    buffLen_ = 0;
-    loLen_  = 0;
-    hiLen_  = 0;
-}
-
-
-void SHA224::Init()
-{
-    digest_[0] = 0xc1059ed8;
-    digest_[1] = 0x367cd507;
-    digest_[2] = 0x3070dd17;
-    digest_[3] = 0xf70e5939;
-    digest_[4] = 0xffc00b31;
-    digest_[5] = 0x68581511;
-    digest_[6] = 0x64f98fa7;
-    digest_[7] = 0xbefa4fa4;
-
-    buffLen_ = 0;
-    loLen_  = 0;
-    hiLen_  = 0;
-}
-
-
-#ifdef WORD64_AVAILABLE
-
-void SHA512::Init()
-{
-    digest_[0] = W64LIT(0x6a09e667f3bcc908);
-    digest_[1] = W64LIT(0xbb67ae8584caa73b);
-    digest_[2] = W64LIT(0x3c6ef372fe94f82b);
-    digest_[3] = W64LIT(0xa54ff53a5f1d36f1);
-    digest_[4] = W64LIT(0x510e527fade682d1);
-    digest_[5] = W64LIT(0x9b05688c2b3e6c1f);
-    digest_[6] = W64LIT(0x1f83d9abfb41bd6b);
-    digest_[7] = W64LIT(0x5be0cd19137e2179);
-
-    buffLen_ = 0;
-    loLen_  = 0;
-    hiLen_  = 0;
-}
-
-
-void SHA384::Init()
-{
-    digest_[0] = W64LIT(0xcbbb9d5dc1059ed8);
-    digest_[1] = W64LIT(0x629a292a367cd507);
-    digest_[2] = W64LIT(0x9159015a3070dd17);
-    digest_[3] = W64LIT(0x152fecd8f70e5939);
-    digest_[4] = W64LIT(0x67332667ffc00b31);
-    digest_[5] = W64LIT(0x8eb44a8768581511);
-    digest_[6] = W64LIT(0xdb0c2e0d64f98fa7);
-    digest_[7] = W64LIT(0x47b5481dbefa4fa4);
-
-    buffLen_ = 0;
-    loLen_  = 0;
-    hiLen_  = 0;
-}
-
-#endif // WORD64_AVAILABLE
-
-
-SHA::SHA(const SHA& that) : HASHwithTransform(DIGEST_SIZE / sizeof(word32),
-                                              BLOCK_SIZE) 
-{ 
-    buffLen_ = that.buffLen_;
-    loLen_   = that.loLen_;
-    hiLen_   = that.hiLen_;
-
-    memcpy(digest_, that.digest_, DIGEST_SIZE);
-    memcpy(buffer_, that.buffer_, BLOCK_SIZE);
-}
-
-
-SHA256::SHA256(const SHA256& that) : HASHwithTransform(DIGEST_SIZE /
-                                       sizeof(word32), BLOCK_SIZE) 
-{ 
-    buffLen_ = that.buffLen_;
-    loLen_   = that.loLen_;
-    hiLen_   = that.hiLen_;
-
-    memcpy(digest_, that.digest_, DIGEST_SIZE);
-    memcpy(buffer_, that.buffer_, BLOCK_SIZE);
-}
-
-
-SHA224::SHA224(const SHA224& that) : HASHwithTransform(SHA256::DIGEST_SIZE /
-                                       sizeof(word32), BLOCK_SIZE) 
-{ 
-    buffLen_ = that.buffLen_;
-    loLen_   = that.loLen_;
-    hiLen_   = that.hiLen_;
-
-    memcpy(digest_, that.digest_, DIGEST_SIZE);
-    memcpy(buffer_, that.buffer_, BLOCK_SIZE);
-}
-
-
-#ifdef WORD64_AVAILABLE 
-
-SHA512::SHA512(const SHA512& that) : HASH64withTransform(DIGEST_SIZE /
-                                       sizeof(word64), BLOCK_SIZE) 
-{ 
-    buffLen_ = that.buffLen_;
-    loLen_   = that.loLen_;
-    hiLen_   = that.hiLen_;
-
-    memcpy(digest_, that.digest_, DIGEST_SIZE);
-    memcpy(buffer_, that.buffer_, BLOCK_SIZE);
-}
-
-
-SHA384::SHA384(const SHA384& that) : HASH64withTransform(SHA512::DIGEST_SIZE /
-                                       sizeof(word64), BLOCK_SIZE) 
-{ 
-    buffLen_ = that.buffLen_;
-    loLen_   = that.loLen_;
-    hiLen_   = that.hiLen_;
-
-    memcpy(digest_, that.digest_, DIGEST_SIZE);
-    memcpy(buffer_, that.buffer_, BLOCK_SIZE);
-}
-
-#endif // WORD64_AVAILABLE
-
-
-SHA& SHA::operator= (const SHA& that)
-{
-    SHA tmp(that);
-    Swap(tmp);
-
-    return *this;
-}
-
-
-SHA256& SHA256::operator= (const SHA256& that)
-{
-    SHA256 tmp(that);
-    Swap(tmp);
-
-    return *this;
-}
-
-
-SHA224& SHA224::operator= (const SHA224& that)
-{
-    SHA224 tmp(that);
-    Swap(tmp);
-
-    return *this;
-}
-
-
-#ifdef WORD64_AVAILABLE
-
-SHA512& SHA512::operator= (const SHA512& that)
-{
-    SHA512 tmp(that);
-    Swap(tmp);
-
-    return *this;
-}
-
-
-SHA384& SHA384::operator= (const SHA384& that)
-{
-    SHA384 tmp(that);
-    Swap(tmp);
-
-    return *this;
-}
-
-#endif // WORD64_AVAILABLE
-
-
-void SHA::Swap(SHA& other)
-{
-    STL::swap(loLen_,   other.loLen_);
-    STL::swap(hiLen_,   other.hiLen_);
-    STL::swap(buffLen_, other.buffLen_);
-
-    memcpy(digest_, other.digest_, DIGEST_SIZE);
-    memcpy(buffer_, other.buffer_, BLOCK_SIZE);
-}
-
-
-void SHA256::Swap(SHA256& other)
-{
-    STL::swap(loLen_,   other.loLen_);
-    STL::swap(hiLen_,   other.hiLen_);
-    STL::swap(buffLen_, other.buffLen_);
-
-    memcpy(digest_, other.digest_, DIGEST_SIZE);
-    memcpy(buffer_, other.buffer_, BLOCK_SIZE);
-}
-
-
-void SHA224::Swap(SHA224& other)
-{
-    STL::swap(loLen_,   other.loLen_);
-    STL::swap(hiLen_,   other.hiLen_);
-    STL::swap(buffLen_, other.buffLen_);
-
-    memcpy(digest_, other.digest_, DIGEST_SIZE);
-    memcpy(buffer_, other.buffer_, BLOCK_SIZE);
-}
-
-
-#ifdef WORD64_AVAILABLE
-
-void SHA512::Swap(SHA512& other)
-{
-    STL::swap(loLen_,   other.loLen_);
-    STL::swap(hiLen_,   other.hiLen_);
-    STL::swap(buffLen_, other.buffLen_);
-
-    memcpy(digest_, other.digest_, DIGEST_SIZE);
-    memcpy(buffer_, other.buffer_, BLOCK_SIZE);
-}
-
-
-void SHA384::Swap(SHA384& other)
-{
-    STL::swap(loLen_,   other.loLen_);
-    STL::swap(hiLen_,   other.hiLen_);
-    STL::swap(buffLen_, other.buffLen_);
-
-    memcpy(digest_, other.digest_, DIGEST_SIZE);
-    memcpy(buffer_, other.buffer_, BLOCK_SIZE);
-}
-
-#endif // WORD64_AVIALABLE
-
-
-#ifdef DO_SHA_ASM
-
-// Update digest with data of size len
-void SHA::Update(const byte* data, word32 len)
-{
-    if (!isMMX) {
-        HASHwithTransform::Update(data, len);
-        return;
-    }
-
-    byte* local = reinterpret_cast(buffer_);
-
-    // remove buffered data if possible
-    if (buffLen_)  {   
-        word32 add = min(len, BLOCK_SIZE - buffLen_);
-        memcpy(&local[buffLen_], data, add);
-
-        buffLen_ += add;
-        data     += add;
-        len      -= add;
-
-        if (buffLen_ == BLOCK_SIZE) {
-            ByteReverse(local, local, BLOCK_SIZE);
-            Transform();
-            AddLength(BLOCK_SIZE);
-            buffLen_ = 0;
-        }
-    }
-
-    // all at once for asm
-    if (buffLen_ == 0) {
-        word32 times = len / BLOCK_SIZE;
-        if (times) {
-            AsmTransform(data, times);
-            const word32 add = BLOCK_SIZE * times;
-            AddLength(add);
-            len  -= add;
-            data += add;
-        }
-    }
-
-    // cache any data left
-    if (len) {
-        memcpy(&local[buffLen_], data, len);
-        buffLen_ += len;
-    }
-}
-
-#endif // DO_SHA_ASM
-
-
-void SHA::Transform()
-{
-    word32 W[BLOCK_SIZE / sizeof(word32)];
-
-    // Copy context->state[] to working vars 
-    word32 a = digest_[0];
-    word32 b = digest_[1];
-    word32 c = digest_[2];
-    word32 d = digest_[3];
-    word32 e = digest_[4];
-
-    // 4 rounds of 20 operations each. Loop unrolled. 
-    R0(a,b,c,d,e, 0); R0(e,a,b,c,d, 1); R0(d,e,a,b,c, 2); R0(c,d,e,a,b, 3);
-    R0(b,c,d,e,a, 4); R0(a,b,c,d,e, 5); R0(e,a,b,c,d, 6); R0(d,e,a,b,c, 7);
-    R0(c,d,e,a,b, 8); R0(b,c,d,e,a, 9); R0(a,b,c,d,e,10); R0(e,a,b,c,d,11);
-    R0(d,e,a,b,c,12); R0(c,d,e,a,b,13); R0(b,c,d,e,a,14); R0(a,b,c,d,e,15);
-
-    R1(e,a,b,c,d,16); R1(d,e,a,b,c,17); R1(c,d,e,a,b,18); R1(b,c,d,e,a,19);
-
-    R2(a,b,c,d,e,20); R2(e,a,b,c,d,21); R2(d,e,a,b,c,22); R2(c,d,e,a,b,23);
-    R2(b,c,d,e,a,24); R2(a,b,c,d,e,25); R2(e,a,b,c,d,26); R2(d,e,a,b,c,27);
-    R2(c,d,e,a,b,28); R2(b,c,d,e,a,29); R2(a,b,c,d,e,30); R2(e,a,b,c,d,31);
-    R2(d,e,a,b,c,32); R2(c,d,e,a,b,33); R2(b,c,d,e,a,34); R2(a,b,c,d,e,35);
-    R2(e,a,b,c,d,36); R2(d,e,a,b,c,37); R2(c,d,e,a,b,38); R2(b,c,d,e,a,39);
-
-    R3(a,b,c,d,e,40); R3(e,a,b,c,d,41); R3(d,e,a,b,c,42); R3(c,d,e,a,b,43);
-    R3(b,c,d,e,a,44); R3(a,b,c,d,e,45); R3(e,a,b,c,d,46); R3(d,e,a,b,c,47);
-    R3(c,d,e,a,b,48); R3(b,c,d,e,a,49); R3(a,b,c,d,e,50); R3(e,a,b,c,d,51);
-    R3(d,e,a,b,c,52); R3(c,d,e,a,b,53); R3(b,c,d,e,a,54); R3(a,b,c,d,e,55);
-    R3(e,a,b,c,d,56); R3(d,e,a,b,c,57); R3(c,d,e,a,b,58); R3(b,c,d,e,a,59);
-
-    R4(a,b,c,d,e,60); R4(e,a,b,c,d,61); R4(d,e,a,b,c,62); R4(c,d,e,a,b,63);
-    R4(b,c,d,e,a,64); R4(a,b,c,d,e,65); R4(e,a,b,c,d,66); R4(d,e,a,b,c,67);
-    R4(c,d,e,a,b,68); R4(b,c,d,e,a,69); R4(a,b,c,d,e,70); R4(e,a,b,c,d,71);
-    R4(d,e,a,b,c,72); R4(c,d,e,a,b,73); R4(b,c,d,e,a,74); R4(a,b,c,d,e,75);
-    R4(e,a,b,c,d,76); R4(d,e,a,b,c,77); R4(c,d,e,a,b,78); R4(b,c,d,e,a,79);
-
-    // Add the working vars back into digest state[]
-    digest_[0] += a;
-    digest_[1] += b;
-    digest_[2] += c;
-    digest_[3] += d;
-    digest_[4] += e;
-
-    // Wipe variables
-    a = b = c = d = e = 0;
-    memset(W, 0, sizeof(W));
-}
-
-
-#define blk2(i) (W[i&15]+=s1(W[(i-2)&15])+W[(i-7)&15]+s0(W[(i-15)&15]))
-
-#define Ch(x,y,z) (z^(x&(y^z)))
-#define Maj(x,y,z) ((x&y)|(z&(x|y)))
-
-#define a(i) T[(0-i)&7]
-#define b(i) T[(1-i)&7]
-#define c(i) T[(2-i)&7]
-#define d(i) T[(3-i)&7]
-#define e(i) T[(4-i)&7]
-#define f(i) T[(5-i)&7]
-#define g(i) T[(6-i)&7]
-#define h(i) T[(7-i)&7]
-
-#define R(i) h(i)+=S1(e(i))+Ch(e(i),f(i),g(i))+K[i+j]+(j?blk2(i):blk0(i));\
-	d(i)+=h(i);h(i)+=S0(a(i))+Maj(a(i),b(i),c(i))
-
-// for SHA256
-#define S0(x) (rotrFixed(x,2)^rotrFixed(x,13)^rotrFixed(x,22))
-#define S1(x) (rotrFixed(x,6)^rotrFixed(x,11)^rotrFixed(x,25))
-#define s0(x) (rotrFixed(x,7)^rotrFixed(x,18)^(x>>3))
-#define s1(x) (rotrFixed(x,17)^rotrFixed(x,19)^(x>>10))
-
-
-static const word32 K256[64] = {
-	0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
-	0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
-	0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
-	0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
-	0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
-	0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
-	0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
-	0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
-	0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
-	0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
-	0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
-	0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
-	0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
-	0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
-	0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
-	0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
-};
-
-
-static void Transform256(word32* digest_, word32* buffer_)
-{
-    const  word32* K = K256;
-
-    word32 W[16];
-    word32 T[8];
-
-    // Copy digest to working vars
-    memcpy(T, digest_, sizeof(T));
-
-    // 64 operations, partially loop unrolled
-    for (unsigned int j = 0; j < 64; j += 16) {
-        R( 0); R( 1); R( 2); R( 3);
-        R( 4); R( 5); R( 6); R( 7);
-        R( 8); R( 9); R(10); R(11);
-        R(12); R(13); R(14); R(15);
-    }
-
-    // Add the working vars back into digest
-    digest_[0] += a(0);
-    digest_[1] += b(0);
-    digest_[2] += c(0);
-    digest_[3] += d(0);
-    digest_[4] += e(0);
-    digest_[5] += f(0);
-    digest_[6] += g(0);
-    digest_[7] += h(0);
-
-    // Wipe variables
-    memset(W, 0, sizeof(W));
-    memset(T, 0, sizeof(T));
-}
-
-
-// undef for 256
-#undef S0
-#undef S1
-#undef s0
-#undef s1
-
-
-void SHA256::Transform()
-{
-    Transform256(digest_, buffer_);
-}
-
-
-void SHA224::Transform()
-{
-    Transform256(digest_, buffer_);
-}
-
-
-#ifdef WORD64_AVAILABLE
-
-static const word64 K512[80] = {
-	W64LIT(0x428a2f98d728ae22), W64LIT(0x7137449123ef65cd),
-	W64LIT(0xb5c0fbcfec4d3b2f), W64LIT(0xe9b5dba58189dbbc),
-	W64LIT(0x3956c25bf348b538), W64LIT(0x59f111f1b605d019),
-	W64LIT(0x923f82a4af194f9b), W64LIT(0xab1c5ed5da6d8118),
-	W64LIT(0xd807aa98a3030242), W64LIT(0x12835b0145706fbe),
-	W64LIT(0x243185be4ee4b28c), W64LIT(0x550c7dc3d5ffb4e2),
-	W64LIT(0x72be5d74f27b896f), W64LIT(0x80deb1fe3b1696b1),
-	W64LIT(0x9bdc06a725c71235), W64LIT(0xc19bf174cf692694),
-	W64LIT(0xe49b69c19ef14ad2), W64LIT(0xefbe4786384f25e3),
-	W64LIT(0x0fc19dc68b8cd5b5), W64LIT(0x240ca1cc77ac9c65),
-	W64LIT(0x2de92c6f592b0275), W64LIT(0x4a7484aa6ea6e483),
-	W64LIT(0x5cb0a9dcbd41fbd4), W64LIT(0x76f988da831153b5),
-	W64LIT(0x983e5152ee66dfab), W64LIT(0xa831c66d2db43210),
-	W64LIT(0xb00327c898fb213f), W64LIT(0xbf597fc7beef0ee4),
-	W64LIT(0xc6e00bf33da88fc2), W64LIT(0xd5a79147930aa725),
-	W64LIT(0x06ca6351e003826f), W64LIT(0x142929670a0e6e70),
-	W64LIT(0x27b70a8546d22ffc), W64LIT(0x2e1b21385c26c926),
-	W64LIT(0x4d2c6dfc5ac42aed), W64LIT(0x53380d139d95b3df),
-	W64LIT(0x650a73548baf63de), W64LIT(0x766a0abb3c77b2a8),
-	W64LIT(0x81c2c92e47edaee6), W64LIT(0x92722c851482353b),
-	W64LIT(0xa2bfe8a14cf10364), W64LIT(0xa81a664bbc423001),
-	W64LIT(0xc24b8b70d0f89791), W64LIT(0xc76c51a30654be30),
-	W64LIT(0xd192e819d6ef5218), W64LIT(0xd69906245565a910),
-	W64LIT(0xf40e35855771202a), W64LIT(0x106aa07032bbd1b8),
-	W64LIT(0x19a4c116b8d2d0c8), W64LIT(0x1e376c085141ab53),
-	W64LIT(0x2748774cdf8eeb99), W64LIT(0x34b0bcb5e19b48a8),
-	W64LIT(0x391c0cb3c5c95a63), W64LIT(0x4ed8aa4ae3418acb),
-	W64LIT(0x5b9cca4f7763e373), W64LIT(0x682e6ff3d6b2b8a3),
-	W64LIT(0x748f82ee5defb2fc), W64LIT(0x78a5636f43172f60),
-	W64LIT(0x84c87814a1f0ab72), W64LIT(0x8cc702081a6439ec),
-	W64LIT(0x90befffa23631e28), W64LIT(0xa4506cebde82bde9),
-	W64LIT(0xbef9a3f7b2c67915), W64LIT(0xc67178f2e372532b),
-	W64LIT(0xca273eceea26619c), W64LIT(0xd186b8c721c0c207),
-	W64LIT(0xeada7dd6cde0eb1e), W64LIT(0xf57d4f7fee6ed178),
-	W64LIT(0x06f067aa72176fba), W64LIT(0x0a637dc5a2c898a6),
-	W64LIT(0x113f9804bef90dae), W64LIT(0x1b710b35131c471b),
-	W64LIT(0x28db77f523047d84), W64LIT(0x32caab7b40c72493),
-	W64LIT(0x3c9ebe0a15c9bebc), W64LIT(0x431d67c49c100d4c),
-	W64LIT(0x4cc5d4becb3e42b6), W64LIT(0x597f299cfc657e2a),
-	W64LIT(0x5fcb6fab3ad6faec), W64LIT(0x6c44198c4a475817)
-};
-
-
-// for SHA512
-#define S0(x) (rotrFixed(x,28)^rotrFixed(x,34)^rotrFixed(x,39))
-#define S1(x) (rotrFixed(x,14)^rotrFixed(x,18)^rotrFixed(x,41))
-#define s0(x) (rotrFixed(x,1)^rotrFixed(x,8)^(x>>7))
-#define s1(x) (rotrFixed(x,19)^rotrFixed(x,61)^(x>>6))
-
-
-static void Transform512(word64* digest_, word64* buffer_)
-{
-    const word64* K = K512;
-
-    word64 W[16];
-    word64 T[8];
-
-    // Copy digest to working vars
-    memcpy(T, digest_, sizeof(T));
-
-    // 64 operations, partially loop unrolled
-    for (unsigned int j = 0; j < 80; j += 16) {
-        R( 0); R( 1); R( 2); R( 3);
-        R( 4); R( 5); R( 6); R( 7);
-        R( 8); R( 9); R(10); R(11);
-        R(12); R(13); R(14); R(15);
-    }
-
-    // Add the working vars back into digest 
-
-    digest_[0] += a(0);
-    digest_[1] += b(0);
-    digest_[2] += c(0);
-    digest_[3] += d(0);
-    digest_[4] += e(0);
-    digest_[5] += f(0);
-    digest_[6] += g(0);
-    digest_[7] += h(0);
-
-    // Wipe variables
-    memset(W, 0, sizeof(W));
-    memset(T, 0, sizeof(T));
-}
-
-
-void SHA512::Transform()
-{
-    Transform512(digest_, buffer_);
-}
-
-
-void SHA384::Transform()
-{
-    Transform512(digest_, buffer_);
-}
-
-#endif // WORD64_AVIALABLE
-
-
-#ifdef DO_SHA_ASM
-
-// f1(x,y,z) (z^(x &(y^z)))
-// place in esi
-#define ASMf1(x,y,z)   \
-    AS2(    mov   esi, y    )   \
-    AS2(    xor   esi, z    )   \
-    AS2(    and   esi, x    )   \
-    AS2(    xor   esi, z    )
-
-
-// R0(v,w,x,y,z,i) =
-//      z+= f1(w,x,y) + W[i] + 0x5A827999 + rotlFixed(v,5);
-//      w = rotlFixed(w,30);
-
-//      use esi for f
-//      use edi as tmp
-
-
-#define ASMR0(v,w,x,y,z,i) \
-    AS2(    mov   esi, x                        )   \
-    AS2(    mov   edi, [esp + i * 4]            )   \
-    AS2(    xor   esi, y                        )   \
-    AS2(    and   esi, w                        )   \
-    AS2(    lea     z, [edi + z + 0x5A827999]   )   \
-    AS2(    mov   edi, v                        )   \
-    AS2(    xor   esi, y                        )   \
-    AS2(    rol   edi, 5                        )   \
-    AS2(    add     z, esi                      )   \
-    AS2(    rol     w, 30                       )   \
-    AS2(    add     z, edi                      )
-
-
-/*  Some macro stuff, but older gas ( < 2,16 ) can't process &, so do by hand
-    % won't work on gas at all
-
-#define xstr(s) str(s)
-#define  str(s) #s
-
-#define WOFF1(a) ( a       & 15)
-#define WOFF2(a) ((a +  2) & 15)
-#define WOFF3(a) ((a +  8) & 15)
-#define WOFF4(a) ((a + 13) & 15)
-
-#ifdef __GNUC__
-    #define WGET1(i) asm("mov esp, [edi - "xstr(WOFF1(i))" * 4] ");
-    #define WGET2(i) asm("xor esp, [edi - "xstr(WOFF2(i))" * 4] ");
-    #define WGET3(i) asm("xor esp, [edi - "xstr(WOFF3(i))" * 4] ");
-    #define WGET4(i) asm("xor esp, [edi - "xstr(WOFF4(i))" * 4] ");
-    #define WPUT1(i) asm("mov [edi - "xstr(WOFF1(i))" * 4], esp ");
-#else
-    #define WGET1(i) AS2( mov   esp, [edi - WOFF1(i) * 4]   )
-    #define WGET2(i) AS2( xor   esp, [edi - WOFF2(i) * 4]   )
-    #define WGET3(i) AS2( xor   esp, [edi - WOFF3(i) * 4]   )
-    #define WGET4(i) AS2( xor   esp, [edi - WOFF4(i) * 4]   )
-    #define WPUT1(i) AS2( mov   [edi - WOFF1(i) * 4], esp   )
-#endif
-*/
-
-// ASMR1 = ASMR0 but use esp for W calcs
-
-#define ASMR1(v,w,x,y,z,i,W1,W2,W3,W4) \
-    AS2(    mov   edi, [esp + W1 * 4]           )   \
-    AS2(    mov   esi, x                        )   \
-    AS2(    xor   edi, [esp + W2 * 4]           )   \
-    AS2(    xor   esi, y                        )   \
-    AS2(    xor   edi, [esp + W3 * 4]           )   \
-    AS2(    and   esi, w                        )   \
-    AS2(    xor   edi, [esp + W4 * 4]           )   \
-    AS2(    rol   edi, 1                        )   \
-    AS2(    xor   esi, y                        )   \
-    AS2(    mov   [esp + W1 * 4], edi           )   \
-    AS2(    lea     z, [edi + z + 0x5A827999]   )   \
-    AS2(    mov   edi, v                        )   \
-    AS2(    rol   edi, 5                        )   \
-    AS2(    add     z, esi                      )   \
-    AS2(    rol     w, 30                       )   \
-    AS2(    add     z, edi                      )
-
-
-// ASMR2 = ASMR1 but f is xor, xor instead
-
-#define ASMR2(v,w,x,y,z,i,W1,W2,W3,W4) \
-    AS2(    mov   edi, [esp + W1 * 4]           )   \
-    AS2(    mov   esi, x                        )   \
-    AS2(    xor   edi, [esp + W2 * 4]           )   \
-    AS2(    xor   esi, y                        )   \
-    AS2(    xor   edi, [esp + W3 * 4]           )   \
-    AS2(    xor   esi, w                        )   \
-    AS2(    xor   edi, [esp + W4 * 4]           )   \
-    AS2(    rol   edi, 1                        )   \
-    AS2(    add     z, esi                      )   \
-    AS2(    mov   [esp + W1 * 4], edi           )   \
-    AS2(    lea     z, [edi + z + 0x6ED9EBA1]   )   \
-    AS2(    mov   edi, v                        )   \
-    AS2(    rol   edi, 5                        )   \
-    AS2(    rol     w, 30                       )   \
-    AS2(    add     z, edi                      )
-
-
-// ASMR3 = ASMR2 but f is (x&y)|(z&(x|y))
-//               which is (w&x)|(y&(w|x))
-
-#define ASMR3(v,w,x,y,z,i,W1,W2,W3,W4) \
-    AS2(    mov   edi, [esp + W1 * 4]           )   \
-    AS2(    mov   esi, x                        )   \
-    AS2(    xor   edi, [esp + W2 * 4]           )   \
-    AS2(     or   esi, w                        )   \
-    AS2(    xor   edi, [esp + W3 * 4]           )   \
-    AS2(    and   esi, y                        )   \
-    AS2(    xor   edi, [esp + W4 * 4]           )   \
-    AS2(    movd  mm0, esi                      )   \
-    AS2(    rol   edi, 1                        )   \
-    AS2(    mov   esi, x                        )   \
-    AS2(    mov   [esp + W1 * 4], edi           )   \
-    AS2(    and   esi, w                        )   \
-    AS2(    lea     z, [edi + z + 0x8F1BBCDC]   )   \
-    AS2(    movd  edi, mm0                      )   \
-    AS2(     or   esi, edi                      )   \
-    AS2(    mov   edi, v                        )   \
-    AS2(    rol   edi, 5                        )   \
-    AS2(    add     z, esi                      )   \
-    AS2(    rol     w, 30                       )   \
-    AS2(    add     z, edi                      )
-
-
-// ASMR4 = ASMR2 but different constant
-
-#define ASMR4(v,w,x,y,z,i,W1,W2,W3,W4) \
-    AS2(    mov   edi, [esp + W1 * 4]           )   \
-    AS2(    mov   esi, x                        )   \
-    AS2(    xor   edi, [esp + W2 * 4]           )   \
-    AS2(    xor   esi, y                        )   \
-    AS2(    xor   edi, [esp + W3 * 4]           )   \
-    AS2(    xor   esi, w                        )   \
-    AS2(    xor   edi, [esp + W4 * 4]           )   \
-    AS2(    rol   edi, 1                        )   \
-    AS2(    add     z, esi                      )   \
-    AS2(    mov   [esp + W1 * 4], edi           )   \
-    AS2(    lea     z, [edi + z + 0xCA62C1D6]   )   \
-    AS2(    mov   edi, v                        )   \
-    AS2(    rol   edi, 5                        )   \
-    AS2(    rol     w, 30                       )   \
-    AS2(    add     z, edi                      )
-
-
-#ifdef _MSC_VER
-    __declspec(naked)
-#else
-    __attribute__ ((noinline))
-#endif
-void SHA::AsmTransform(const byte* data, word32 times)
-{
-#ifdef __GNUC__
-    #define AS1(x)    #x ";"
-    #define AS2(x, y) #x ", " #y ";"
-
-    #define PROLOG()  \
-    __asm__ __volatile__ \
-    ( \
-        ".intel_syntax noprefix;" \
-        "push ebx;" \
-        "push ebp;"
-    #define EPILOG()  \
-        "pop ebp;" \
-        "pop ebx;" \
-       	"emms;" \
-       	".att_syntax;" \
-            : \
-            : "c" (this), "D" (data), "a" (times) \
-            : "%esi", "%edx", "memory", "cc" \
-    );
-
-#else
-    #define AS1(x)    __asm x
-    #define AS2(x, y) __asm x, y
-
-    #define PROLOG() \
-        AS1(    push  ebp                           )   \
-        AS2(    mov   ebp, esp                      )   \
-        AS2(    movd  mm3, edi                      )   \
-        AS2(    movd  mm4, ebx                      )   \
-        AS2(    movd  mm5, esi                      )   \
-        AS2(    movd  mm6, ebp                      )   \
-        AS2(    mov   edi, data                     )   \
-        AS2(    mov   eax, times                    )
-
-    #define EPILOG() \
-        AS2(    movd  ebp, mm6                  )   \
-        AS2(    movd  esi, mm5                  )   \
-        AS2(    movd  ebx, mm4                  )   \
-        AS2(    movd  edi, mm3                  )   \
-        AS2(    mov   esp, ebp                  )   \
-        AS1(    pop   ebp                       )   \
-        AS1(    emms   )                            \
-        AS1(    ret 8  )   
-#endif
-
-    PROLOG()
-
-    AS2(    mov   esi, ecx              )
-
-    #ifdef OLD_GCC_OFFSET
-        AS2(    add   esi, 20               )   // digest_[0]
-    #else
-        AS2(    add   esi, 16               )   // digest_[0]
-    #endif
-
-    AS2(    movd  mm2, eax              )   // store times_
-    AS2(    movd  mm1, esi              )   // store digest_
-
-    AS2(    sub   esp, 68               )   // make room on stack
-
-#ifdef _MSC_VER
-    AS1( loopStart: )  // loopStart
-#else
-    AS1( 0: )          // loopStart for some gas (need numeric for jump back 
-#endif
-
-    // byte reverse 16 words of input, 4 at a time, put on stack for W[]
-
-    // part 1
-    AS2(    mov   eax, [edi]        )
-    AS2(    mov   ebx, [edi +  4]   )
-    AS2(    mov   ecx, [edi +  8]   )
-    AS2(    mov   edx, [edi + 12]   )
-
-    AS1(    bswap eax   )
-    AS1(    bswap ebx   )
-    AS1(    bswap ecx   )
-    AS1(    bswap edx   )
-
-    AS2(    mov   [esp],      eax   )
-    AS2(    mov   [esp +  4], ebx   )
-    AS2(    mov   [esp +  8], ecx   )
-    AS2(    mov   [esp + 12], edx   )
-
-    // part 2
-    AS2(    mov   eax, [edi + 16]   )
-    AS2(    mov   ebx, [edi + 20]   )
-    AS2(    mov   ecx, [edi + 24]   )
-    AS2(    mov   edx, [edi + 28]   )
-
-    AS1(    bswap eax   )
-    AS1(    bswap ebx   )
-    AS1(    bswap ecx   )
-    AS1(    bswap edx   )
-
-    AS2(    mov   [esp + 16], eax   )
-    AS2(    mov   [esp + 20], ebx   )
-    AS2(    mov   [esp + 24], ecx   )
-    AS2(    mov   [esp + 28], edx   )
-
-
-    // part 3
-    AS2(    mov   eax, [edi + 32]   )
-    AS2(    mov   ebx, [edi + 36]   )
-    AS2(    mov   ecx, [edi + 40]   )
-    AS2(    mov   edx, [edi + 44]   )
-
-    AS1(    bswap eax   )
-    AS1(    bswap ebx   )
-    AS1(    bswap ecx   )
-    AS1(    bswap edx   )
-
-    AS2(    mov   [esp + 32], eax   )
-    AS2(    mov   [esp + 36], ebx   )
-    AS2(    mov   [esp + 40], ecx   )
-    AS2(    mov   [esp + 44], edx   )
-
-
-    // part 4
-    AS2(    mov   eax, [edi + 48]   )
-    AS2(    mov   ebx, [edi + 52]   )
-    AS2(    mov   ecx, [edi + 56]   )
-    AS2(    mov   edx, [edi + 60]   )
-
-    AS1(    bswap eax   )
-    AS1(    bswap ebx   )
-    AS1(    bswap ecx   )
-    AS1(    bswap edx   )
-
-    AS2(    mov   [esp + 48], eax   )
-    AS2(    mov   [esp + 52], ebx   )
-    AS2(    mov   [esp + 56], ecx   )
-    AS2(    mov   [esp + 60], edx   )
-
-    AS2(    mov   [esp + 64], edi   )   // store edi for end
-
-    // read from digest_
-    AS2(    mov   eax, [esi]            )   // a1
-    AS2(    mov   ebx, [esi +  4]       )   // b1
-    AS2(    mov   ecx, [esi +  8]       )   // c1
-    AS2(    mov   edx, [esi + 12]       )   // d1
-    AS2(    mov   ebp, [esi + 16]       )   // e1
-
-
-    ASMR0(eax, ebx, ecx, edx, ebp,  0)
-    ASMR0(ebp, eax, ebx, ecx, edx,  1)
-    ASMR0(edx, ebp, eax, ebx, ecx,  2)
-    ASMR0(ecx, edx, ebp, eax, ebx,  3)
-    ASMR0(ebx, ecx, edx, ebp, eax,  4)
-    ASMR0(eax, ebx, ecx, edx, ebp,  5)
-    ASMR0(ebp, eax, ebx, ecx, edx,  6)
-    ASMR0(edx, ebp, eax, ebx, ecx,  7)
-    ASMR0(ecx, edx, ebp, eax, ebx,  8)
-    ASMR0(ebx, ecx, edx, ebp, eax,  9)
-    ASMR0(eax, ebx, ecx, edx, ebp, 10)
-    ASMR0(ebp, eax, ebx, ecx, edx, 11)
-    ASMR0(edx, ebp, eax, ebx, ecx, 12)
-    ASMR0(ecx, edx, ebp, eax, ebx, 13)
-    ASMR0(ebx, ecx, edx, ebp, eax, 14)
-    ASMR0(eax, ebx, ecx, edx, ebp, 15)
-
-    ASMR1(ebp, eax, ebx, ecx, edx, 16,  0,  2,  8, 13)
-    ASMR1(edx, ebp, eax, ebx, ecx, 17,  1,  3,  9, 14)
-    ASMR1(ecx, edx, ebp, eax, ebx, 18,  2,  4, 10, 15)
-    ASMR1(ebx, ecx, edx, ebp, eax, 19,  3,  5, 11,  0)
-
-    ASMR2(eax, ebx, ecx, edx, ebp, 20,  4,  6, 12,  1)
-    ASMR2(ebp, eax, ebx, ecx, edx, 21,  5,  7, 13,  2)
-    ASMR2(edx, ebp, eax, ebx, ecx, 22,  6,  8, 14,  3)
-    ASMR2(ecx, edx, ebp, eax, ebx, 23,  7,  9, 15,  4)
-    ASMR2(ebx, ecx, edx, ebp, eax, 24,  8, 10,  0,  5)
-    ASMR2(eax, ebx, ecx, edx, ebp, 25,  9, 11,  1,  6)
-    ASMR2(ebp, eax, ebx, ecx, edx, 26, 10, 12,  2,  7)
-    ASMR2(edx, ebp, eax, ebx, ecx, 27, 11, 13,  3,  8)
-    ASMR2(ecx, edx, ebp, eax, ebx, 28, 12, 14,  4,  9)
-    ASMR2(ebx, ecx, edx, ebp, eax, 29, 13, 15,  5, 10)
-    ASMR2(eax, ebx, ecx, edx, ebp, 30, 14,  0,  6, 11)
-    ASMR2(ebp, eax, ebx, ecx, edx, 31, 15,  1,  7, 12)
-    ASMR2(edx, ebp, eax, ebx, ecx, 32,  0,  2,  8, 13)
-    ASMR2(ecx, edx, ebp, eax, ebx, 33,  1,  3,  9, 14)
-    ASMR2(ebx, ecx, edx, ebp, eax, 34,  2,  4, 10, 15)
-    ASMR2(eax, ebx, ecx, edx, ebp, 35,  3,  5, 11,  0)
-    ASMR2(ebp, eax, ebx, ecx, edx, 36,  4,  6, 12,  1)
-    ASMR2(edx, ebp, eax, ebx, ecx, 37,  5,  7, 13,  2)
-    ASMR2(ecx, edx, ebp, eax, ebx, 38,  6,  8, 14,  3)
-    ASMR2(ebx, ecx, edx, ebp, eax, 39,  7,  9, 15,  4)
-
-
-    ASMR3(eax, ebx, ecx, edx, ebp, 40,  8, 10,  0,  5)
-    ASMR3(ebp, eax, ebx, ecx, edx, 41,  9, 11,  1,  6)
-    ASMR3(edx, ebp, eax, ebx, ecx, 42, 10, 12,  2,  7)
-    ASMR3(ecx, edx, ebp, eax, ebx, 43, 11, 13,  3,  8)
-    ASMR3(ebx, ecx, edx, ebp, eax, 44, 12, 14,  4,  9)
-    ASMR3(eax, ebx, ecx, edx, ebp, 45, 13, 15,  5, 10)
-    ASMR3(ebp, eax, ebx, ecx, edx, 46, 14,  0,  6, 11)
-    ASMR3(edx, ebp, eax, ebx, ecx, 47, 15,  1,  7, 12)
-    ASMR3(ecx, edx, ebp, eax, ebx, 48,  0,  2,  8, 13)
-    ASMR3(ebx, ecx, edx, ebp, eax, 49,  1,  3,  9, 14)
-    ASMR3(eax, ebx, ecx, edx, ebp, 50,  2,  4, 10, 15)
-    ASMR3(ebp, eax, ebx, ecx, edx, 51,  3,  5, 11,  0)
-    ASMR3(edx, ebp, eax, ebx, ecx, 52,  4,  6, 12,  1)
-    ASMR3(ecx, edx, ebp, eax, ebx, 53,  5,  7, 13,  2)
-    ASMR3(ebx, ecx, edx, ebp, eax, 54,  6,  8, 14,  3)
-    ASMR3(eax, ebx, ecx, edx, ebp, 55,  7,  9, 15,  4)
-    ASMR3(ebp, eax, ebx, ecx, edx, 56,  8, 10,  0,  5)
-    ASMR3(edx, ebp, eax, ebx, ecx, 57,  9, 11,  1,  6)
-    ASMR3(ecx, edx, ebp, eax, ebx, 58, 10, 12,  2,  7)
-    ASMR3(ebx, ecx, edx, ebp, eax, 59, 11, 13,  3,  8)
-
-    ASMR4(eax, ebx, ecx, edx, ebp, 60, 12, 14,  4,  9)
-    ASMR4(ebp, eax, ebx, ecx, edx, 61, 13, 15,  5, 10)
-    ASMR4(edx, ebp, eax, ebx, ecx, 62, 14,  0,  6, 11)
-    ASMR4(ecx, edx, ebp, eax, ebx, 63, 15,  1,  7, 12)
-    ASMR4(ebx, ecx, edx, ebp, eax, 64,  0,  2,  8, 13)
-    ASMR4(eax, ebx, ecx, edx, ebp, 65,  1,  3,  9, 14)
-    ASMR4(ebp, eax, ebx, ecx, edx, 66,  2,  4, 10, 15)
-    ASMR4(edx, ebp, eax, ebx, ecx, 67,  3,  5, 11,  0)
-    ASMR4(ecx, edx, ebp, eax, ebx, 68,  4,  6, 12,  1)
-    ASMR4(ebx, ecx, edx, ebp, eax, 69,  5,  7, 13,  2)
-    ASMR4(eax, ebx, ecx, edx, ebp, 70,  6,  8, 14,  3)
-    ASMR4(ebp, eax, ebx, ecx, edx, 71,  7,  9, 15,  4)
-    ASMR4(edx, ebp, eax, ebx, ecx, 72,  8, 10,  0,  5)
-    ASMR4(ecx, edx, ebp, eax, ebx, 73,  9, 11,  1,  6)
-    ASMR4(ebx, ecx, edx, ebp, eax, 74, 10, 12,  2,  7)
-    ASMR4(eax, ebx, ecx, edx, ebp, 75, 11, 13,  3,  8)
-    ASMR4(ebp, eax, ebx, ecx, edx, 76, 12, 14,  4,  9)
-    ASMR4(edx, ebp, eax, ebx, ecx, 77, 13, 15,  5, 10)
-    ASMR4(ecx, edx, ebp, eax, ebx, 78, 14,  0,  6, 11)
-    ASMR4(ebx, ecx, edx, ebp, eax, 79, 15,  1,  7, 12)
-
-
-    AS2(    movd  esi, mm1              )   // digest_
-
-    AS2(    add   [esi],      eax       )   // write out
-    AS2(    add   [esi +  4], ebx       )
-    AS2(    add   [esi +  8], ecx       )
-    AS2(    add   [esi + 12], edx       )
-    AS2(    add   [esi + 16], ebp       )
-
-    // setup next round
-    AS2(    movd  ebp, mm2              )   // times
- 
-    AS2(    mov   edi, DWORD PTR [esp + 64] )   // data
-    
-    AS2(    add   edi, 64               )   // next round of data
-    AS2(    mov   [esp + 64], edi       )   // restore
-    
-    AS1(    dec   ebp                   )
-    AS2(    movd  mm2, ebp              )
-#ifdef _MSC_VER
-    AS1(    jnz   loopStart )  // loopStart
-#else
-    AS1(    jnz   0b )         // loopStart
-#endif
-
-    // inline adjust 
-    AS2(    add   esp, 68               )   // fix room on stack
-
-    EPILOG()
-}
-
-
-#endif // DO_SHA_ASM
-
-} // namespace
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/template_instnt.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/template_instnt.cpp
deleted file mode 100644
index 651ef93a..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/template_instnt.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
-   Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-
-/*  Explicit template instantiation requests 
- */
-
-
-#include "runtime.hpp"
-#include "integer.hpp"
-#include "rsa.hpp"
-#include "sha.hpp"
-#include "md5.hpp"
-#include "hmac.hpp"
-#include "ripemd.hpp"
-#include "pwdbased.hpp"
-#include "algebra.hpp"
-#include "vector.hpp"
-#include "hash.hpp"
-
-#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
-namespace TaoCrypt {
-
-#if defined(SSE2_INTRINSICS_AVAILABLE)
-template AlignedAllocator::pointer StdReallocate >(AlignedAllocator&, unsigned int*, AlignedAllocator::size_type, AlignedAllocator::size_type, bool);
-#endif
-
-template class RSA_Decryptor;
-template class RSA_Encryptor;
-template class RSA_Encryptor;
-template void tcDelete(HASH*);
-template void tcDelete(Integer*);
-template void tcArrayDelete(byte*);
-template AllocatorWithCleanup::pointer StdReallocate >(AllocatorWithCleanup&, byte*, AllocatorWithCleanup::size_type, AllocatorWithCleanup::size_type, bool);
-template void tcArrayDelete(word*);
-template AllocatorWithCleanup::pointer StdReallocate >(AllocatorWithCleanup&, word*, AllocatorWithCleanup::size_type, AllocatorWithCleanup::size_type, bool);
-
-#ifndef TAOCRYPT_SLOW_WORD64 // defined when word != word32
-template void tcArrayDelete(word32*);
-template AllocatorWithCleanup::pointer StdReallocate >(AllocatorWithCleanup&, word32*, AllocatorWithCleanup::size_type, AllocatorWithCleanup::size_type, bool);
-#endif
-
-template void tcArrayDelete(char*);
-
-template class PBKDF2_HMAC;
-template class HMAC;
-template class HMAC;
-template class HMAC;
-}
-
-namespace mySTL {
-template vector* uninit_fill_n*, size_t, vector >(vector*, size_t, vector const&);
-template void destroy*>(vector*, vector*);
-template TaoCrypt::Integer* uninit_copy(TaoCrypt::Integer*, TaoCrypt::Integer*, TaoCrypt::Integer*);
-template TaoCrypt::Integer* uninit_fill_n(TaoCrypt::Integer*, size_t, TaoCrypt::Integer const&);
-template void destroy(TaoCrypt::Integer*, TaoCrypt::Integer*);
-template TaoCrypt::byte* GetArrayMemory(size_t);
-template void FreeArrayMemory(TaoCrypt::byte*);
-template TaoCrypt::Integer* GetArrayMemory(size_t);
-template void FreeArrayMemory(TaoCrypt::Integer*);
-template vector* GetArrayMemory >(size_t);
-template void FreeArrayMemory >(vector*);
-template void FreeArrayMemory(void*);
-}
-
-#endif
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/tftables.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/tftables.cpp
deleted file mode 100644
index 314b303a..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/tftables.cpp
+++ /dev/null
@@ -1,349 +0,0 @@
-/*
-   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* based on Wei Dai's tftables.cpp from CryptoPP */
-
-#include "runtime.hpp"
-#include "twofish.hpp"
-
-
-namespace TaoCrypt {
-
-
-const byte Twofish::q_[2][256] = {
-{
-   0xA9, 0x67, 0xB3, 0xE8, 0x04, 0xFD, 0xA3, 0x76, 0x9A, 0x92, 0x80, 0x78,
-   0xE4, 0xDD, 0xD1, 0x38, 0x0D, 0xC6, 0x35, 0x98, 0x18, 0xF7, 0xEC, 0x6C,
-   0x43, 0x75, 0x37, 0x26, 0xFA, 0x13, 0x94, 0x48, 0xF2, 0xD0, 0x8B, 0x30,
-   0x84, 0x54, 0xDF, 0x23, 0x19, 0x5B, 0x3D, 0x59, 0xF3, 0xAE, 0xA2, 0x82,
-   0x63, 0x01, 0x83, 0x2E, 0xD9, 0x51, 0x9B, 0x7C, 0xA6, 0xEB, 0xA5, 0xBE,
-   0x16, 0x0C, 0xE3, 0x61, 0xC0, 0x8C, 0x3A, 0xF5, 0x73, 0x2C, 0x25, 0x0B,
-   0xBB, 0x4E, 0x89, 0x6B, 0x53, 0x6A, 0xB4, 0xF1, 0xE1, 0xE6, 0xBD, 0x45,
-   0xE2, 0xF4, 0xB6, 0x66, 0xCC, 0x95, 0x03, 0x56, 0xD4, 0x1C, 0x1E, 0xD7,
-   0xFB, 0xC3, 0x8E, 0xB5, 0xE9, 0xCF, 0xBF, 0xBA, 0xEA, 0x77, 0x39, 0xAF,
-   0x33, 0xC9, 0x62, 0x71, 0x81, 0x79, 0x09, 0xAD, 0x24, 0xCD, 0xF9, 0xD8,
-   0xE5, 0xC5, 0xB9, 0x4D, 0x44, 0x08, 0x86, 0xE7, 0xA1, 0x1D, 0xAA, 0xED,
-   0x06, 0x70, 0xB2, 0xD2, 0x41, 0x7B, 0xA0, 0x11, 0x31, 0xC2, 0x27, 0x90,
-   0x20, 0xF6, 0x60, 0xFF, 0x96, 0x5C, 0xB1, 0xAB, 0x9E, 0x9C, 0x52, 0x1B,
-   0x5F, 0x93, 0x0A, 0xEF, 0x91, 0x85, 0x49, 0xEE, 0x2D, 0x4F, 0x8F, 0x3B,
-   0x47, 0x87, 0x6D, 0x46, 0xD6, 0x3E, 0x69, 0x64, 0x2A, 0xCE, 0xCB, 0x2F,
-   0xFC, 0x97, 0x05, 0x7A, 0xAC, 0x7F, 0xD5, 0x1A, 0x4B, 0x0E, 0xA7, 0x5A,
-   0x28, 0x14, 0x3F, 0x29, 0x88, 0x3C, 0x4C, 0x02, 0xB8, 0xDA, 0xB0, 0x17,
-   0x55, 0x1F, 0x8A, 0x7D, 0x57, 0xC7, 0x8D, 0x74, 0xB7, 0xC4, 0x9F, 0x72,
-   0x7E, 0x15, 0x22, 0x12, 0x58, 0x07, 0x99, 0x34, 0x6E, 0x50, 0xDE, 0x68,
-   0x65, 0xBC, 0xDB, 0xF8, 0xC8, 0xA8, 0x2B, 0x40, 0xDC, 0xFE, 0x32, 0xA4,
-   0xCA, 0x10, 0x21, 0xF0, 0xD3, 0x5D, 0x0F, 0x00, 0x6F, 0x9D, 0x36, 0x42,
-   0x4A, 0x5E, 0xC1, 0xE0
-},
-{
-   0x75, 0xF3, 0xC6, 0xF4, 0xDB, 0x7B, 0xFB, 0xC8, 0x4A, 0xD3, 0xE6, 0x6B,
-   0x45, 0x7D, 0xE8, 0x4B, 0xD6, 0x32, 0xD8, 0xFD, 0x37, 0x71, 0xF1, 0xE1,
-   0x30, 0x0F, 0xF8, 0x1B, 0x87, 0xFA, 0x06, 0x3F, 0x5E, 0xBA, 0xAE, 0x5B,
-   0x8A, 0x00, 0xBC, 0x9D, 0x6D, 0xC1, 0xB1, 0x0E, 0x80, 0x5D, 0xD2, 0xD5,
-   0xA0, 0x84, 0x07, 0x14, 0xB5, 0x90, 0x2C, 0xA3, 0xB2, 0x73, 0x4C, 0x54,
-   0x92, 0x74, 0x36, 0x51, 0x38, 0xB0, 0xBD, 0x5A, 0xFC, 0x60, 0x62, 0x96,
-   0x6C, 0x42, 0xF7, 0x10, 0x7C, 0x28, 0x27, 0x8C, 0x13, 0x95, 0x9C, 0xC7,
-   0x24, 0x46, 0x3B, 0x70, 0xCA, 0xE3, 0x85, 0xCB, 0x11, 0xD0, 0x93, 0xB8,
-   0xA6, 0x83, 0x20, 0xFF, 0x9F, 0x77, 0xC3, 0xCC, 0x03, 0x6F, 0x08, 0xBF,
-   0x40, 0xE7, 0x2B, 0xE2, 0x79, 0x0C, 0xAA, 0x82, 0x41, 0x3A, 0xEA, 0xB9,
-   0xE4, 0x9A, 0xA4, 0x97, 0x7E, 0xDA, 0x7A, 0x17, 0x66, 0x94, 0xA1, 0x1D,
-   0x3D, 0xF0, 0xDE, 0xB3, 0x0B, 0x72, 0xA7, 0x1C, 0xEF, 0xD1, 0x53, 0x3E,
-   0x8F, 0x33, 0x26, 0x5F, 0xEC, 0x76, 0x2A, 0x49, 0x81, 0x88, 0xEE, 0x21,
-   0xC4, 0x1A, 0xEB, 0xD9, 0xC5, 0x39, 0x99, 0xCD, 0xAD, 0x31, 0x8B, 0x01,
-   0x18, 0x23, 0xDD, 0x1F, 0x4E, 0x2D, 0xF9, 0x48, 0x4F, 0xF2, 0x65, 0x8E,
-   0x78, 0x5C, 0x58, 0x19, 0x8D, 0xE5, 0x98, 0x57, 0x67, 0x7F, 0x05, 0x64,
-   0xAF, 0x63, 0xB6, 0xFE, 0xF5, 0xB7, 0x3C, 0xA5, 0xCE, 0xE9, 0x68, 0x44,
-   0xE0, 0x4D, 0x43, 0x69, 0x29, 0x2E, 0xAC, 0x15, 0x59, 0xA8, 0x0A, 0x9E,
-   0x6E, 0x47, 0xDF, 0x34, 0x35, 0x6A, 0xCF, 0xDC, 0x22, 0xC9, 0xC0, 0x9B,
-   0x89, 0xD4, 0xED, 0xAB, 0x12, 0xA2, 0x0D, 0x52, 0xBB, 0x02, 0x2F, 0xA9,
-   0xD7, 0x61, 0x1E, 0xB4, 0x50, 0x04, 0xF6, 0xC2, 0x16, 0x25, 0x86, 0x56,
-   0x55, 0x09, 0xBE, 0x91
-}
-};
-
-
-const word32 Twofish::mds_[4][256] = {
-    {
-	0xbcbc3275, 0xecec21f3, 0x202043c6, 0xb3b3c9f4, 
-	0xdada03db, 0x02028b7b, 0xe2e22bfb, 0x9e9efac8, 
-	0xc9c9ec4a, 0xd4d409d3, 0x18186be6, 0x1e1e9f6b, 
-	0x98980e45, 0xb2b2387d, 0xa6a6d2e8, 0x2626b74b, 
-	0x3c3c57d6, 0x93938a32, 0x8282eed8, 0x525298fd, 
-	0x7b7bd437, 0xbbbb3771, 0x5b5b97f1, 0x474783e1, 
-	0x24243c30, 0x5151e20f, 0xbabac6f8, 0x4a4af31b, 
-	0xbfbf4887, 0x0d0d70fa, 0xb0b0b306, 0x7575de3f, 
-	0xd2d2fd5e, 0x7d7d20ba, 0x666631ae, 0x3a3aa35b, 
-	0x59591c8a, 0x00000000, 0xcdcd93bc, 0x1a1ae09d, 
-	0xaeae2c6d, 0x7f7fabc1, 0x2b2bc7b1, 0xbebeb90e, 
-	0xe0e0a080, 0x8a8a105d, 0x3b3b52d2, 0x6464bad5, 
-	0xd8d888a0, 0xe7e7a584, 0x5f5fe807, 0x1b1b1114, 
-	0x2c2cc2b5, 0xfcfcb490, 0x3131272c, 0x808065a3, 
-	0x73732ab2, 0x0c0c8173, 0x79795f4c, 0x6b6b4154, 
-	0x4b4b0292, 0x53536974, 0x94948f36, 0x83831f51, 
-	0x2a2a3638, 0xc4c49cb0, 0x2222c8bd, 0xd5d5f85a, 
-	0xbdbdc3fc, 0x48487860, 0xffffce62, 0x4c4c0796, 
-	0x4141776c, 0xc7c7e642, 0xebeb24f7, 0x1c1c1410, 
-	0x5d5d637c, 0x36362228, 0x6767c027, 0xe9e9af8c, 
-	0x4444f913, 0x1414ea95, 0xf5f5bb9c, 0xcfcf18c7, 
-	0x3f3f2d24, 0xc0c0e346, 0x7272db3b, 0x54546c70, 
-	0x29294cca, 0xf0f035e3, 0x0808fe85, 0xc6c617cb, 
-	0xf3f34f11, 0x8c8ce4d0, 0xa4a45993, 0xcaca96b8, 
-	0x68683ba6, 0xb8b84d83, 0x38382820, 0xe5e52eff, 
-	0xadad569f, 0x0b0b8477, 0xc8c81dc3, 0x9999ffcc, 
-	0x5858ed03, 0x19199a6f, 0x0e0e0a08, 0x95957ebf, 
-	0x70705040, 0xf7f730e7, 0x6e6ecf2b, 0x1f1f6ee2, 
-	0xb5b53d79, 0x09090f0c, 0x616134aa, 0x57571682, 
-	0x9f9f0b41, 0x9d9d803a, 0x111164ea, 0x2525cdb9, 
-	0xafafdde4, 0x4545089a, 0xdfdf8da4, 0xa3a35c97, 
-	0xeaead57e, 0x353558da, 0xededd07a, 0x4343fc17, 
-	0xf8f8cb66, 0xfbfbb194, 0x3737d3a1, 0xfafa401d, 
-	0xc2c2683d, 0xb4b4ccf0, 0x32325dde, 0x9c9c71b3, 
-	0x5656e70b, 0xe3e3da72, 0x878760a7, 0x15151b1c, 
-	0xf9f93aef, 0x6363bfd1, 0x3434a953, 0x9a9a853e, 
-	0xb1b1428f, 0x7c7cd133, 0x88889b26, 0x3d3da65f, 
-	0xa1a1d7ec, 0xe4e4df76, 0x8181942a, 0x91910149, 
-	0x0f0ffb81, 0xeeeeaa88, 0x161661ee, 0xd7d77321, 
-	0x9797f5c4, 0xa5a5a81a, 0xfefe3feb, 0x6d6db5d9, 
-	0x7878aec5, 0xc5c56d39, 0x1d1de599, 0x7676a4cd, 
-	0x3e3edcad, 0xcbcb6731, 0xb6b6478b, 0xefef5b01, 
-	0x12121e18, 0x6060c523, 0x6a6ab0dd, 0x4d4df61f, 
-	0xcecee94e, 0xdede7c2d, 0x55559df9, 0x7e7e5a48, 
-	0x2121b24f, 0x03037af2, 0xa0a02665, 0x5e5e198e, 
-	0x5a5a6678, 0x65654b5c, 0x62624e58, 0xfdfd4519, 
-	0x0606f48d, 0x404086e5, 0xf2f2be98, 0x3333ac57, 
-	0x17179067, 0x05058e7f, 0xe8e85e05, 0x4f4f7d64, 
-	0x89896aaf, 0x10109563, 0x74742fb6, 0x0a0a75fe, 
-	0x5c5c92f5, 0x9b9b74b7, 0x2d2d333c, 0x3030d6a5, 
-	0x2e2e49ce, 0x494989e9, 0x46467268, 0x77775544, 
-	0xa8a8d8e0, 0x9696044d, 0x2828bd43, 0xa9a92969, 
-	0xd9d97929, 0x8686912e, 0xd1d187ac, 0xf4f44a15, 
-	0x8d8d1559, 0xd6d682a8, 0xb9b9bc0a, 0x42420d9e, 
-	0xf6f6c16e, 0x2f2fb847, 0xdddd06df, 0x23233934, 
-	0xcccc6235, 0xf1f1c46a, 0xc1c112cf, 0x8585ebdc, 
-	0x8f8f9e22, 0x7171a1c9, 0x9090f0c0, 0xaaaa539b, 
-	0x0101f189, 0x8b8be1d4, 0x4e4e8ced, 0x8e8e6fab, 
-	0xababa212, 0x6f6f3ea2, 0xe6e6540d, 0xdbdbf252, 
-	0x92927bbb, 0xb7b7b602, 0x6969ca2f, 0x3939d9a9, 
-	0xd3d30cd7, 0xa7a72361, 0xa2a2ad1e, 0xc3c399b4, 
-	0x6c6c4450, 0x07070504, 0x04047ff6, 0x272746c2, 
-	0xacaca716, 0xd0d07625, 0x50501386, 0xdcdcf756, 
-	0x84841a55, 0xe1e15109, 0x7a7a25be, 0x1313ef91
-    },
-    {
-	0xa9d93939, 0x67901717, 0xb3719c9c, 0xe8d2a6a6, 
-	0x04050707, 0xfd985252, 0xa3658080, 0x76dfe4e4, 
-	0x9a084545, 0x92024b4b, 0x80a0e0e0, 0x78665a5a, 
-	0xe4ddafaf, 0xddb06a6a, 0xd1bf6363, 0x38362a2a, 
-	0x0d54e6e6, 0xc6432020, 0x3562cccc, 0x98bef2f2, 
-	0x181e1212, 0xf724ebeb, 0xecd7a1a1, 0x6c774141, 
-	0x43bd2828, 0x7532bcbc, 0x37d47b7b, 0x269b8888, 
-	0xfa700d0d, 0x13f94444, 0x94b1fbfb, 0x485a7e7e, 
-	0xf27a0303, 0xd0e48c8c, 0x8b47b6b6, 0x303c2424, 
-	0x84a5e7e7, 0x54416b6b, 0xdf06dddd, 0x23c56060, 
-	0x1945fdfd, 0x5ba33a3a, 0x3d68c2c2, 0x59158d8d, 
-	0xf321ecec, 0xae316666, 0xa23e6f6f, 0x82165757, 
-	0x63951010, 0x015befef, 0x834db8b8, 0x2e918686, 
-	0xd9b56d6d, 0x511f8383, 0x9b53aaaa, 0x7c635d5d, 
-	0xa63b6868, 0xeb3ffefe, 0xa5d63030, 0xbe257a7a, 
-	0x16a7acac, 0x0c0f0909, 0xe335f0f0, 0x6123a7a7, 
-	0xc0f09090, 0x8cafe9e9, 0x3a809d9d, 0xf5925c5c, 
-	0x73810c0c, 0x2c273131, 0x2576d0d0, 0x0be75656, 
-	0xbb7b9292, 0x4ee9cece, 0x89f10101, 0x6b9f1e1e, 
-	0x53a93434, 0x6ac4f1f1, 0xb499c3c3, 0xf1975b5b, 
-	0xe1834747, 0xe66b1818, 0xbdc82222, 0x450e9898, 
-	0xe26e1f1f, 0xf4c9b3b3, 0xb62f7474, 0x66cbf8f8, 
-	0xccff9999, 0x95ea1414, 0x03ed5858, 0x56f7dcdc, 
-	0xd4e18b8b, 0x1c1b1515, 0x1eada2a2, 0xd70cd3d3, 
-	0xfb2be2e2, 0xc31dc8c8, 0x8e195e5e, 0xb5c22c2c, 
-	0xe9894949, 0xcf12c1c1, 0xbf7e9595, 0xba207d7d, 
-	0xea641111, 0x77840b0b, 0x396dc5c5, 0xaf6a8989, 
-	0x33d17c7c, 0xc9a17171, 0x62ceffff, 0x7137bbbb, 
-	0x81fb0f0f, 0x793db5b5, 0x0951e1e1, 0xaddc3e3e, 
-	0x242d3f3f, 0xcda47676, 0xf99d5555, 0xd8ee8282, 
-	0xe5864040, 0xc5ae7878, 0xb9cd2525, 0x4d049696, 
-	0x44557777, 0x080a0e0e, 0x86135050, 0xe730f7f7, 
-	0xa1d33737, 0x1d40fafa, 0xaa346161, 0xed8c4e4e, 
-	0x06b3b0b0, 0x706c5454, 0xb22a7373, 0xd2523b3b, 
-	0x410b9f9f, 0x7b8b0202, 0xa088d8d8, 0x114ff3f3, 
-	0x3167cbcb, 0xc2462727, 0x27c06767, 0x90b4fcfc, 
-	0x20283838, 0xf67f0404, 0x60784848, 0xff2ee5e5, 
-	0x96074c4c, 0x5c4b6565, 0xb1c72b2b, 0xab6f8e8e, 
-	0x9e0d4242, 0x9cbbf5f5, 0x52f2dbdb, 0x1bf34a4a, 
-	0x5fa63d3d, 0x9359a4a4, 0x0abcb9b9, 0xef3af9f9, 
-	0x91ef1313, 0x85fe0808, 0x49019191, 0xee611616, 
-	0x2d7cdede, 0x4fb22121, 0x8f42b1b1, 0x3bdb7272, 
-	0x47b82f2f, 0x8748bfbf, 0x6d2caeae, 0x46e3c0c0, 
-	0xd6573c3c, 0x3e859a9a, 0x6929a9a9, 0x647d4f4f, 
-	0x2a948181, 0xce492e2e, 0xcb17c6c6, 0x2fca6969, 
-	0xfcc3bdbd, 0x975ca3a3, 0x055ee8e8, 0x7ad0eded, 
-	0xac87d1d1, 0x7f8e0505, 0xd5ba6464, 0x1aa8a5a5, 
-	0x4bb72626, 0x0eb9bebe, 0xa7608787, 0x5af8d5d5, 
-	0x28223636, 0x14111b1b, 0x3fde7575, 0x2979d9d9, 
-	0x88aaeeee, 0x3c332d2d, 0x4c5f7979, 0x02b6b7b7, 
-	0xb896caca, 0xda583535, 0xb09cc4c4, 0x17fc4343, 
-	0x551a8484, 0x1ff64d4d, 0x8a1c5959, 0x7d38b2b2, 
-	0x57ac3333, 0xc718cfcf, 0x8df40606, 0x74695353, 
-	0xb7749b9b, 0xc4f59797, 0x9f56adad, 0x72dae3e3, 
-	0x7ed5eaea, 0x154af4f4, 0x229e8f8f, 0x12a2abab, 
-	0x584e6262, 0x07e85f5f, 0x99e51d1d, 0x34392323, 
-	0x6ec1f6f6, 0x50446c6c, 0xde5d3232, 0x68724646, 
-	0x6526a0a0, 0xbc93cdcd, 0xdb03dada, 0xf8c6baba, 
-	0xc8fa9e9e, 0xa882d6d6, 0x2bcf6e6e, 0x40507070, 
-	0xdceb8585, 0xfe750a0a, 0x328a9393, 0xa48ddfdf, 
-	0xca4c2929, 0x10141c1c, 0x2173d7d7, 0xf0ccb4b4, 
-	0xd309d4d4, 0x5d108a8a, 0x0fe25151, 0x00000000, 
-	0x6f9a1919, 0x9de01a1a, 0x368f9494, 0x42e6c7c7, 
-	0x4aecc9c9, 0x5efdd2d2, 0xc1ab7f7f, 0xe0d8a8a8
-    },
-    {
-	0xbc75bc32, 0xecf3ec21, 0x20c62043, 0xb3f4b3c9, 
-	0xdadbda03, 0x027b028b, 0xe2fbe22b, 0x9ec89efa, 
-	0xc94ac9ec, 0xd4d3d409, 0x18e6186b, 0x1e6b1e9f, 
-	0x9845980e, 0xb27db238, 0xa6e8a6d2, 0x264b26b7, 
-	0x3cd63c57, 0x9332938a, 0x82d882ee, 0x52fd5298, 
-	0x7b377bd4, 0xbb71bb37, 0x5bf15b97, 0x47e14783, 
-	0x2430243c, 0x510f51e2, 0xbaf8bac6, 0x4a1b4af3, 
-	0xbf87bf48, 0x0dfa0d70, 0xb006b0b3, 0x753f75de, 
-	0xd25ed2fd, 0x7dba7d20, 0x66ae6631, 0x3a5b3aa3, 
-	0x598a591c, 0x00000000, 0xcdbccd93, 0x1a9d1ae0, 
-	0xae6dae2c, 0x7fc17fab, 0x2bb12bc7, 0xbe0ebeb9, 
-	0xe080e0a0, 0x8a5d8a10, 0x3bd23b52, 0x64d564ba, 
-	0xd8a0d888, 0xe784e7a5, 0x5f075fe8, 0x1b141b11, 
-	0x2cb52cc2, 0xfc90fcb4, 0x312c3127, 0x80a38065, 
-	0x73b2732a, 0x0c730c81, 0x794c795f, 0x6b546b41, 
-	0x4b924b02, 0x53745369, 0x9436948f, 0x8351831f, 
-	0x2a382a36, 0xc4b0c49c, 0x22bd22c8, 0xd55ad5f8, 
-	0xbdfcbdc3, 0x48604878, 0xff62ffce, 0x4c964c07, 
-	0x416c4177, 0xc742c7e6, 0xebf7eb24, 0x1c101c14, 
-	0x5d7c5d63, 0x36283622, 0x672767c0, 0xe98ce9af, 
-	0x441344f9, 0x149514ea, 0xf59cf5bb, 0xcfc7cf18, 
-	0x3f243f2d, 0xc046c0e3, 0x723b72db, 0x5470546c, 
-	0x29ca294c, 0xf0e3f035, 0x088508fe, 0xc6cbc617, 
-	0xf311f34f, 0x8cd08ce4, 0xa493a459, 0xcab8ca96, 
-	0x68a6683b, 0xb883b84d, 0x38203828, 0xe5ffe52e, 
-	0xad9fad56, 0x0b770b84, 0xc8c3c81d, 0x99cc99ff, 
-	0x580358ed, 0x196f199a, 0x0e080e0a, 0x95bf957e, 
-	0x70407050, 0xf7e7f730, 0x6e2b6ecf, 0x1fe21f6e, 
-	0xb579b53d, 0x090c090f, 0x61aa6134, 0x57825716, 
-	0x9f419f0b, 0x9d3a9d80, 0x11ea1164, 0x25b925cd, 
-	0xafe4afdd, 0x459a4508, 0xdfa4df8d, 0xa397a35c, 
-	0xea7eead5, 0x35da3558, 0xed7aedd0, 0x431743fc, 
-	0xf866f8cb, 0xfb94fbb1, 0x37a137d3, 0xfa1dfa40, 
-	0xc23dc268, 0xb4f0b4cc, 0x32de325d, 0x9cb39c71, 
-	0x560b56e7, 0xe372e3da, 0x87a78760, 0x151c151b, 
-	0xf9eff93a, 0x63d163bf, 0x345334a9, 0x9a3e9a85, 
-	0xb18fb142, 0x7c337cd1, 0x8826889b, 0x3d5f3da6, 
-	0xa1eca1d7, 0xe476e4df, 0x812a8194, 0x91499101, 
-	0x0f810ffb, 0xee88eeaa, 0x16ee1661, 0xd721d773, 
-	0x97c497f5, 0xa51aa5a8, 0xfeebfe3f, 0x6dd96db5, 
-	0x78c578ae, 0xc539c56d, 0x1d991de5, 0x76cd76a4, 
-	0x3ead3edc, 0xcb31cb67, 0xb68bb647, 0xef01ef5b, 
-	0x1218121e, 0x602360c5, 0x6add6ab0, 0x4d1f4df6, 
-	0xce4ecee9, 0xde2dde7c, 0x55f9559d, 0x7e487e5a, 
-	0x214f21b2, 0x03f2037a, 0xa065a026, 0x5e8e5e19, 
-	0x5a785a66, 0x655c654b, 0x6258624e, 0xfd19fd45, 
-	0x068d06f4, 0x40e54086, 0xf298f2be, 0x335733ac, 
-	0x17671790, 0x057f058e, 0xe805e85e, 0x4f644f7d, 
-	0x89af896a, 0x10631095, 0x74b6742f, 0x0afe0a75, 
-	0x5cf55c92, 0x9bb79b74, 0x2d3c2d33, 0x30a530d6, 
-	0x2ece2e49, 0x49e94989, 0x46684672, 0x77447755, 
-	0xa8e0a8d8, 0x964d9604, 0x284328bd, 0xa969a929, 
-	0xd929d979, 0x862e8691, 0xd1acd187, 0xf415f44a, 
-	0x8d598d15, 0xd6a8d682, 0xb90ab9bc, 0x429e420d, 
-	0xf66ef6c1, 0x2f472fb8, 0xdddfdd06, 0x23342339, 
-	0xcc35cc62, 0xf16af1c4, 0xc1cfc112, 0x85dc85eb, 
-	0x8f228f9e, 0x71c971a1, 0x90c090f0, 0xaa9baa53, 
-	0x018901f1, 0x8bd48be1, 0x4eed4e8c, 0x8eab8e6f, 
-	0xab12aba2, 0x6fa26f3e, 0xe60de654, 0xdb52dbf2, 
-	0x92bb927b, 0xb702b7b6, 0x692f69ca, 0x39a939d9, 
-	0xd3d7d30c, 0xa761a723, 0xa21ea2ad, 0xc3b4c399, 
-	0x6c506c44, 0x07040705, 0x04f6047f, 0x27c22746, 
-	0xac16aca7, 0xd025d076, 0x50865013, 0xdc56dcf7, 
-	0x8455841a, 0xe109e151, 0x7abe7a25, 0x139113ef
-    },
-    {
-	0xd939a9d9, 0x90176790, 0x719cb371, 0xd2a6e8d2, 
-	0x05070405, 0x9852fd98, 0x6580a365, 0xdfe476df, 
-	0x08459a08, 0x024b9202, 0xa0e080a0, 0x665a7866, 
-	0xddafe4dd, 0xb06addb0, 0xbf63d1bf, 0x362a3836, 
-	0x54e60d54, 0x4320c643, 0x62cc3562, 0xbef298be, 
-	0x1e12181e, 0x24ebf724, 0xd7a1ecd7, 0x77416c77, 
-	0xbd2843bd, 0x32bc7532, 0xd47b37d4, 0x9b88269b, 
-	0x700dfa70, 0xf94413f9, 0xb1fb94b1, 0x5a7e485a, 
-	0x7a03f27a, 0xe48cd0e4, 0x47b68b47, 0x3c24303c, 
-	0xa5e784a5, 0x416b5441, 0x06dddf06, 0xc56023c5, 
-	0x45fd1945, 0xa33a5ba3, 0x68c23d68, 0x158d5915, 
-	0x21ecf321, 0x3166ae31, 0x3e6fa23e, 0x16578216, 
-	0x95106395, 0x5bef015b, 0x4db8834d, 0x91862e91, 
-	0xb56dd9b5, 0x1f83511f, 0x53aa9b53, 0x635d7c63, 
-	0x3b68a63b, 0x3ffeeb3f, 0xd630a5d6, 0x257abe25, 
-	0xa7ac16a7, 0x0f090c0f, 0x35f0e335, 0x23a76123, 
-	0xf090c0f0, 0xafe98caf, 0x809d3a80, 0x925cf592, 
-	0x810c7381, 0x27312c27, 0x76d02576, 0xe7560be7, 
-	0x7b92bb7b, 0xe9ce4ee9, 0xf10189f1, 0x9f1e6b9f, 
-	0xa93453a9, 0xc4f16ac4, 0x99c3b499, 0x975bf197, 
-	0x8347e183, 0x6b18e66b, 0xc822bdc8, 0x0e98450e, 
-	0x6e1fe26e, 0xc9b3f4c9, 0x2f74b62f, 0xcbf866cb, 
-	0xff99ccff, 0xea1495ea, 0xed5803ed, 0xf7dc56f7, 
-	0xe18bd4e1, 0x1b151c1b, 0xada21ead, 0x0cd3d70c, 
-	0x2be2fb2b, 0x1dc8c31d, 0x195e8e19, 0xc22cb5c2, 
-	0x8949e989, 0x12c1cf12, 0x7e95bf7e, 0x207dba20, 
-	0x6411ea64, 0x840b7784, 0x6dc5396d, 0x6a89af6a, 
-	0xd17c33d1, 0xa171c9a1, 0xceff62ce, 0x37bb7137, 
-	0xfb0f81fb, 0x3db5793d, 0x51e10951, 0xdc3eaddc, 
-	0x2d3f242d, 0xa476cda4, 0x9d55f99d, 0xee82d8ee, 
-	0x8640e586, 0xae78c5ae, 0xcd25b9cd, 0x04964d04, 
-	0x55774455, 0x0a0e080a, 0x13508613, 0x30f7e730, 
-	0xd337a1d3, 0x40fa1d40, 0x3461aa34, 0x8c4eed8c, 
-	0xb3b006b3, 0x6c54706c, 0x2a73b22a, 0x523bd252, 
-	0x0b9f410b, 0x8b027b8b, 0x88d8a088, 0x4ff3114f, 
-	0x67cb3167, 0x4627c246, 0xc06727c0, 0xb4fc90b4, 
-	0x28382028, 0x7f04f67f, 0x78486078, 0x2ee5ff2e, 
-	0x074c9607, 0x4b655c4b, 0xc72bb1c7, 0x6f8eab6f, 
-	0x0d429e0d, 0xbbf59cbb, 0xf2db52f2, 0xf34a1bf3, 
-	0xa63d5fa6, 0x59a49359, 0xbcb90abc, 0x3af9ef3a, 
-	0xef1391ef, 0xfe0885fe, 0x01914901, 0x6116ee61, 
-	0x7cde2d7c, 0xb2214fb2, 0x42b18f42, 0xdb723bdb, 
-	0xb82f47b8, 0x48bf8748, 0x2cae6d2c, 0xe3c046e3, 
-	0x573cd657, 0x859a3e85, 0x29a96929, 0x7d4f647d, 
-	0x94812a94, 0x492ece49, 0x17c6cb17, 0xca692fca, 
-	0xc3bdfcc3, 0x5ca3975c, 0x5ee8055e, 0xd0ed7ad0, 
-	0x87d1ac87, 0x8e057f8e, 0xba64d5ba, 0xa8a51aa8, 
-	0xb7264bb7, 0xb9be0eb9, 0x6087a760, 0xf8d55af8, 
-	0x22362822, 0x111b1411, 0xde753fde, 0x79d92979, 
-	0xaaee88aa, 0x332d3c33, 0x5f794c5f, 0xb6b702b6, 
-	0x96cab896, 0x5835da58, 0x9cc4b09c, 0xfc4317fc, 
-	0x1a84551a, 0xf64d1ff6, 0x1c598a1c, 0x38b27d38, 
-	0xac3357ac, 0x18cfc718, 0xf4068df4, 0x69537469, 
-	0x749bb774, 0xf597c4f5, 0x56ad9f56, 0xdae372da, 
-	0xd5ea7ed5, 0x4af4154a, 0x9e8f229e, 0xa2ab12a2, 
-	0x4e62584e, 0xe85f07e8, 0xe51d99e5, 0x39233439, 
-	0xc1f66ec1, 0x446c5044, 0x5d32de5d, 0x72466872, 
-	0x26a06526, 0x93cdbc93, 0x03dadb03, 0xc6baf8c6, 
-	0xfa9ec8fa, 0x82d6a882, 0xcf6e2bcf, 0x50704050, 
-	0xeb85dceb, 0x750afe75, 0x8a93328a, 0x8ddfa48d, 
-	0x4c29ca4c, 0x141c1014, 0x73d72173, 0xccb4f0cc, 
-	0x09d4d309, 0x108a5d10, 0xe2510fe2, 0x00000000, 
-	0x9a196f9a, 0xe01a9de0, 0x8f94368f, 0xe6c742e6, 
-	0xecc94aec, 0xfdd25efd, 0xab7fc1ab, 0xd8a8e0d8
-    }
-};
-
-
-} // namespace
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/twofish.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/src/twofish.cpp
deleted file mode 100644
index 3051af21..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/src/twofish.cpp
+++ /dev/null
@@ -1,582 +0,0 @@
-/*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-/* C++ based on Wei Dai's twofish.cpp from CryptoPP */
-/* x86 asm original */
-
-
-#if defined(TAOCRYPT_KERNEL_MODE)
-    #define DO_TAOCRYPT_KERNEL_MODE
-#endif                                  // only some modules now support this
-
-#include "runtime.hpp"
-#include "twofish.hpp"
-
-
-
-namespace TaoCrypt {
-
-
-#if defined(DO_TWOFISH_ASM)
-
-// ia32 optimized version
-void Twofish::Process(byte* out, const byte* in, word32 sz)
-{
-    if (!isMMX) {
-        Mode_BASE::Process(out, in, sz);
-        return;
-    }
-
-    word32 blocks = sz / BLOCK_SIZE;
-
-    if (mode_ == ECB)
-        while (blocks--) {
-            if (dir_ == ENCRYPTION)
-                AsmEncrypt(in, out);
-            else
-                AsmDecrypt(in, out);
-        
-            out += BLOCK_SIZE;
-            in  += BLOCK_SIZE;
-        }
-    else if (mode_ == CBC) {
-        if (dir_ == ENCRYPTION) {
-            while (blocks--) {
-                r_[0] ^= *(word32*)in;
-                r_[1] ^= *(word32*)(in +  4);
-                r_[2] ^= *(word32*)(in +  8);
-                r_[3] ^= *(word32*)(in + 12);
-
-                AsmEncrypt((byte*)r_, (byte*)r_);
-                memcpy(out, r_, BLOCK_SIZE);
-
-                out += BLOCK_SIZE;
-                in  += BLOCK_SIZE;
-            }
-        }
-        else {
-            while (blocks--) {
-                AsmDecrypt(in, out);
-               
-                *(word32*)out        ^= r_[0];
-                *(word32*)(out +  4) ^= r_[1];
-                *(word32*)(out +  8) ^= r_[2];
-                *(word32*)(out + 12) ^= r_[3];
-
-                memcpy(r_, in, BLOCK_SIZE);
-
-                out += BLOCK_SIZE;
-                in  += BLOCK_SIZE;
-            }
-        }
-    }
-}
-
-#endif // DO_TWOFISH_ASM
-
-
-namespace {     // locals
-
-// compute (c * x^4) mod (x^4 + (a + 1/a) * x^3 + a * x^2 + (a + 1/a) * x + 1)
-// over GF(256)
-static inline unsigned int Mod(unsigned int c)
-{
-	static const unsigned int modulus = 0x14d;
-	unsigned int c2 = (c<<1) ^ ((c & 0x80) ? modulus : 0);
-	unsigned int c1 = c2 ^ (c>>1) ^ ((c & 1) ? (modulus>>1) : 0);
-	return c | (c1 << 8) | (c2 << 16) | (c1 << 24);
-}
-
-// compute RS(12,8) code with the above polynomial as generator
-// this is equivalent to multiplying by the RS matrix
-static word32 ReedSolomon(word32 high, word32 low)
-{
-	for (unsigned int i=0; i<8; i++) {
-		high = Mod(high>>24) ^ (high<<8) ^ (low>>24);
-		low <<= 8;
-	}
-	return high;
-}
-
-}  // local namespace
-
-
-
-inline word32 Twofish::h0(word32 x, const word32* key, unsigned int kLen)
-{
-	x = x | (x<<8) | (x<<16) | (x<<24);
-	switch(kLen)
-	{
-#define Q(a, b, c, d, t) q_[a][GETBYTE(t,0)] ^ (q_[b][GETBYTE(t,1)] << 8) ^  \
-            (q_[c][GETBYTE(t,2)] << 16) ^ (q_[d][GETBYTE(t,3)] << 24)
-	case 4: x = Q(1, 0, 0, 1, x) ^ key[6];
-	case 3: x = Q(1, 1, 0, 0, x) ^ key[4];
-	case 2: x = Q(0, 1, 0, 1, x) ^ key[2];
-			x = Q(0, 0, 1, 1, x) ^ key[0];
-	}
-	return x;
-}
-
-inline word32 Twofish::h(word32 x, const word32* key, unsigned int kLen)
-{
-	x = h0(x, key, kLen);
-	return mds_[0][GETBYTE(x,0)] ^ mds_[1][GETBYTE(x,1)] ^ 
-        mds_[2][GETBYTE(x,2)] ^ mds_[3][GETBYTE(x,3)];
-}
-
-
-void Twofish::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/)
-{
-	unsigned int len = (keylen <= 16 ? 2 : (keylen <= 24 ? 3 : 4));
-    word32 key[8];
-	GetUserKey(LittleEndianOrder, key, len*2, userKey, keylen);
-
-	unsigned int i;
-	for (i=0; i<40; i+=2) {
-		word32 a = h(i, key, len);
-		word32 b = rotlFixed(h(i+1, key+1, len), 8);
-		k_[i] = a+b;
-		k_[i+1] = rotlFixed(a+2*b, 9);
-	}
-
-	word32 svec[8];
-	for (i=0; i gpBlock;
-
-void Twofish::encrypt(const byte* inBlock, const byte* xorBlock,
-                  byte* outBlock) const
-{
-	word32 x, y, a, b, c, d;
-
-	gpBlock::Get(inBlock)(a)(b)(c)(d);
-
-	a ^= k_[0];
-	b ^= k_[1];
-	c ^= k_[2];
-	d ^= k_[3];
-
-	const word32 *k = k_+8;
-
-	ENCCYCLE (0);
-	ENCCYCLE (1);
-	ENCCYCLE (2);
-	ENCCYCLE (3);
-	ENCCYCLE (4);
-	ENCCYCLE (5);
-	ENCCYCLE (6);
-	ENCCYCLE (7);
-
-	c ^= k_[4];
-	d ^= k_[5];
-	a ^= k_[6];
-	b ^= k_[7]; 
-
-	gpBlock::Put(xorBlock, outBlock)(c)(d)(a)(b);
-}
-
-
-void Twofish::decrypt(const byte* inBlock, const byte* xorBlock,
-                  byte* outBlock) const
-{
-	word32 x, y, a, b, c, d;
-
-	gpBlock::Get(inBlock)(c)(d)(a)(b);
-
-	c ^= k_[4];
-	d ^= k_[5];
-	a ^= k_[6];
-	b ^= k_[7];
-
-	const word32 *k = k_+8;
-	DECCYCLE (7);
-	DECCYCLE (6);
-	DECCYCLE (5);
-	DECCYCLE (4);
-	DECCYCLE (3);
-	DECCYCLE (2);
-	DECCYCLE (1);
-	DECCYCLE (0);
-
-	a ^= k_[0];
-	b ^= k_[1];
-	c ^= k_[2];
-	d ^= k_[3];
-
-	gpBlock::Put(xorBlock, outBlock)(a)(b)(c)(d);
-}
-
-
-
-#if defined(DO_TWOFISH_ASM)
-    #ifdef __GNUC__
-        #define AS1(x)    #x ";"
-        #define AS2(x, y) #x ", " #y ";"
-
-        #define PROLOG()  \
-        __asm__ __volatile__ \
-        ( \
-            ".intel_syntax noprefix;" \
-            "push ebx;" \
-            "push ebp;" \
-            "movd mm3, eax;" \
-            "movd mm6, ebp;"
-        #define EPILOG()  \
-            "pop ebp;" \
-            "pop ebx;" \
-       	    "emms;" \
-       	    ".att_syntax;" \
-                : \
-                : "D" (this), "S" (inBlock), "a" (outBlock) \
-                : "%ecx", "%edx", "memory", "cc" \
-        );
-
-    #else
-        #define AS1(x)    __asm x
-        #define AS2(x, y) __asm x, y
-
-        #define PROLOG() \
-            AS1(    push  ebp                           )   \
-            AS2(    mov   ebp, esp                      )   \
-            AS2(    movd  mm3, edi                      )   \
-            AS2(    movd  mm4, ebx                      )   \
-            AS2(    movd  mm5, esi                      )   \
-            AS2(    movd  mm6, ebp                      )   \
-            AS2(    mov   edi, ecx                      )   \
-            AS2(    mov   esi, DWORD PTR [ebp +  8]     )
-
-        /* ebp already set */
-        #define EPILOG()  \
-            AS2(    movd esi, mm5                   )   \
-            AS2(    movd ebx, mm4                   )   \
-            AS2(    movd edi, mm3                   )   \
-            AS2(    mov  esp, ebp                   )   \
-            AS1(    pop  ebp                        )   \
-            AS1(    emms                            )   \
-            AS1(    ret 8                           )    
-            
-    #endif
-
-
-
-
-    // x = esi, y = [esp], s_ = ebp
-    // edi always open for G1 and G2
-    // G1 also uses edx after save and restore
-    // G2 also uses eax after save and restore
-    //      and ecx for tmp [esp] which Rounds also use
-    //      and restore from mm7
-
-    // x = G1(a)   bytes(0,1,2,3)
-#define ASMG1(z, zl, zh) \
-    AS2(    movd  mm2, edx                          )   \
-    AS2(    movzx edi, zl                           )   \
-    AS2(    mov   esi, DWORD PTR     [ebp + edi*4]  )   \
-    AS2(    movzx edx, zh                           )   \
-    AS2(    xor   esi, DWORD PTR 1024[ebp + edx*4]  )   \
-                                                        \
-    AS2(    mov   edx, z                            )   \
-    AS2(    shr   edx, 16                           )   \
-    AS2(    movzx edi, dl                           )   \
-    AS2(    xor   esi, DWORD PTR 2048[ebp + edi*4]  )   \
-    AS2(    movzx edx, dh                           )   \
-    AS2(    xor   esi, DWORD PTR 3072[ebp + edx*4]  )   \
-    AS2(    movd  edx, mm2                          )
-
-
-    // y = G2(b)  bytes(3,0,1,2)  [ put y into ecx for Rounds ]
-#define ASMG2(z, zl, zh)    \
-    AS2(    movd  mm7, ecx                          )   \
-    AS2(    movd  mm2, eax                          )   \
-    AS2(    mov   edi, z                            )   \
-    AS2(    shr   edi, 24                           )   \
-    AS2(    mov   ecx, DWORD PTR     [ebp + edi*4]  )   \
-    AS2(    movzx eax, zl                           )   \
-    AS2(    xor   ecx, DWORD PTR 1024[ebp + eax*4]  )   \
-                                                        \
-    AS2(    mov   eax, z                            )   \
-    AS2(    shr   eax, 16                           )   \
-    AS2(    movzx edi, zh                           )   \
-    AS2(    xor   ecx, DWORD PTR 2048[ebp + edi*4]  )   \
-    AS2(    movzx eax, al                           )   \
-    AS2(    xor   ecx, DWORD PTR 3072[ebp + eax*4]  )   \
-    AS2(    movd  eax, mm2                          )
-
-
-    // encrypt Round (n), 
-    // x = esi, k = ebp, edi open
-    // y is in ecx from G2, restore when done from mm7
-    //      before C (which be same register!)
-#define ASMENCROUND(N, A, A2, A3, B, B2, B3, C, D)      \
-    /* setup s_  */                                     \
-    AS2(    movd  ebp, mm1                          )   \
-    ASMG1(A, A2, A3)                                    \
-    ASMG2(B, B2, B3)                                    \
-    /* setup k  */                                      \
-    AS2(    movd  ebp, mm0                          )   \
-    /* x += y   */                                      \
-    AS2(    add   esi, ecx                          )   \
-    AS2(    add   ebp, 32                           )   \
-    /* y += x + k[2 * (n) + 1] */                       \
-    AS2(    add   ecx, esi                          )   \
-    AS2(    rol   D,   1                            )   \
-    AS2(    add   ecx, DWORD PTR [ebp + 8 * N + 4]  )   \
-	/* (d) = rotlFixed(d, 1) ^ y  */                    \
-    AS2(    xor   D,   ecx                          )   \
-    AS2(    movd  ecx, mm7                          )   \
-	/* (c) ^= x + k[2 * (n)] */                         \
-    AS2(    mov   edi, esi                          )   \
-    AS2(    add   edi, DWORD PTR [ebp + 8 * N]      )   \
-    AS2(    xor   C,   edi                          )   \
-	/* (c) = rotrFixed(c, 1) */                         \
-    AS2(    ror   C,   1                            )
-
-
-    // decrypt Round (n), 
-    // x = esi, k = ebp, edi open
-    // y is in ecx from G2, restore ecx from mm7 when done
-#define ASMDECROUND(N, A, A2, A3, B, B2, B3, C, D)      \
-    /* setup s_  */                                     \
-    AS2(    movd  ebp, mm1                          )   \
-    ASMG1(A, A2, A3)                                    \
-    ASMG2(B, B2, B3)                                    \
-    /* setup k  */                                      \
-    AS2(    movd  ebp, mm0                          )   \
-    /* x += y   */                                      \
-    AS2(    add   esi, ecx                          )   \
-    AS2(    add   ebp, 32                           )   \
-    /* y += x     */                                    \
-    AS2(    add   ecx, esi                          )   \
-	/* (d) ^= y + k[2 * (n) + 1] */                     \
-    AS2(    mov   edi, DWORD PTR [ebp + 8 * N + 4]  )   \
-    AS2(    add   edi, ecx                          )   \
-    AS2(    movd  ecx, mm7                          )   \
-    AS2(    xor   D,   edi                          )   \
-	/* (d) = rotrFixed(d, 1)     */                     \
-    AS2(    ror   D,   1                            )   \
-	/* (c) = rotlFixed(c, 1)     */                     \
-    AS2(    rol   C,   1                            )   \
-	/* (c) ^= (x + k[2 * (n)])   */                     \
-    AS2(    mov   edi, esi                          )   \
-    AS2(    add   edi, DWORD PTR [ebp + 8 * N]      )   \
-    AS2(    xor   C,   edi                          )
-
-
-#ifdef _MSC_VER
-    __declspec(naked) 
-#else
-    __attribute__ ((noinline))
-#endif
-void Twofish::AsmEncrypt(const byte* inBlock, byte* outBlock) const
-{
-    PROLOG()
-
-    #ifdef OLD_GCC_OFFSET
-        AS2(    add   edi, 60                       ) // k_
-    #else
-        AS2(    add   edi, 56                       ) // k_
-    #endif
-
-    AS2(    mov   ebp, edi                      )
-
-    AS2(    mov   eax, DWORD PTR [esi]          ) // a
-    AS2(    movd  mm0, edi                      ) // store k_
-    AS2(    mov   ebx, DWORD PTR [esi +  4]     ) // b
-    AS2(    add   ebp, 160                      ) // s_[0]
-    AS2(    mov   ecx, DWORD PTR [esi +  8]     ) // c
-    AS2(    movd  mm1, ebp                      ) // store s_
-    AS2(    mov   edx, DWORD PTR [esi + 12]     ) // d
-    
-    AS2(    xor   eax, DWORD PTR [edi]          ) // k_[0]
-    AS2(    xor   ebx, DWORD PTR [edi +  4]     ) //   [1]
-    AS2(    xor   ecx, DWORD PTR [edi +  8]     ) //   [2]
-    AS2(    xor   edx, DWORD PTR [edi + 12]     ) //   [3]
-
-
-    ASMENCROUND( 0, eax, al, ah, ebx, bl, bh, ecx, edx)
-    ASMENCROUND( 1, ecx, cl, ch, edx, dl, dh, eax, ebx)
-    ASMENCROUND( 2, eax, al, ah, ebx, bl, bh, ecx, edx)
-    ASMENCROUND( 3, ecx, cl, ch, edx, dl, dh, eax, ebx)
-    ASMENCROUND( 4, eax, al, ah, ebx, bl, bh, ecx, edx)
-    ASMENCROUND( 5, ecx, cl, ch, edx, dl, dh, eax, ebx)
-    ASMENCROUND( 6, eax, al, ah, ebx, bl, bh, ecx, edx)
-    ASMENCROUND( 7, ecx, cl, ch, edx, dl, dh, eax, ebx)
-    ASMENCROUND( 8, eax, al, ah, ebx, bl, bh, ecx, edx)
-    ASMENCROUND( 9, ecx, cl, ch, edx, dl, dh, eax, ebx)
-    ASMENCROUND(10, eax, al, ah, ebx, bl, bh, ecx, edx)
-    ASMENCROUND(11, ecx, cl, ch, edx, dl, dh, eax, ebx)
-    ASMENCROUND(12, eax, al, ah, ebx, bl, bh, ecx, edx)
-    ASMENCROUND(13, ecx, cl, ch, edx, dl, dh, eax, ebx)
-    ASMENCROUND(14, eax, al, ah, ebx, bl, bh, ecx, edx)
-    ASMENCROUND(15, ecx, cl, ch, edx, dl, dh, eax, ebx)
-
-
-    AS2(    movd  ebp, mm6                      )
-    AS2(    movd  esi, mm0                      ) // k_
-    #ifdef __GNUC__
-        AS2(    movd  edi, mm3                  ) // outBlock
-    #else
-        AS2(    mov   edi, [ebp + 12]           ) // outBlock
-    #endif
-
-    AS2(    xor   ecx, DWORD PTR [esi + 16]     ) // k_[4]
-    AS2(    xor   edx, DWORD PTR [esi + 20]     ) // k_[5]
-    AS2(    xor   eax, DWORD PTR [esi + 24]     ) // k_[6]
-    AS2(    xor   ebx, DWORD PTR [esi + 28]     ) // k_[7]
-
-    AS2(    mov   [edi],      ecx               ) // write out
-    AS2(    mov   [edi +  4], edx               ) // write out
-    AS2(    mov   [edi +  8], eax               ) // write out
-    AS2(    mov   [edi + 12], ebx               ) // write out
-
-
-    EPILOG()
-}
-
-
-#ifdef _MSC_VER
-    __declspec(naked) 
-#else
-    __attribute__ ((noinline))
-#endif
-void Twofish::AsmDecrypt(const byte* inBlock, byte* outBlock) const
-{
-    PROLOG()
-
-    #ifdef OLD_GCC_OFFSET
-        AS2(    add   edi, 60                       ) // k_
-    #else
-        AS2(    add   edi, 56                       ) // k_
-    #endif
-
-    AS2(    mov   ebp, edi                      )
-
-    AS2(    mov   ecx, DWORD PTR [esi]          ) // c
-    AS2(    movd  mm0, edi                      ) // store k_
-    AS2(    mov   edx, DWORD PTR [esi +  4]     ) // d
-    AS2(    add   ebp, 160                      ) // s_[0]
-    AS2(    mov   eax, DWORD PTR [esi +  8]     ) // a
-    AS2(    movd  mm1, ebp                      ) // store s_
-    AS2(    mov   ebx, DWORD PTR [esi + 12]     ) // b
-
-    AS2(    xor   ecx, DWORD PTR [edi + 16]     ) // k_[4]
-    AS2(    xor   edx, DWORD PTR [edi + 20]     ) //   [5]
-    AS2(    xor   eax, DWORD PTR [edi + 24]     ) //   [6]
-    AS2(    xor   ebx, DWORD PTR [edi + 28]     ) //   [7]
-
-
-    ASMDECROUND(15, ecx, cl, ch, edx, dl, dh, eax, ebx)
-    ASMDECROUND(14, eax, al, ah, ebx, bl, bh, ecx, edx)
-    ASMDECROUND(13, ecx, cl, ch, edx, dl, dh, eax, ebx)
-    ASMDECROUND(12, eax, al, ah, ebx, bl, bh, ecx, edx)
-    ASMDECROUND(11, ecx, cl, ch, edx, dl, dh, eax, ebx)
-    ASMDECROUND(10, eax, al, ah, ebx, bl, bh, ecx, edx)
-    ASMDECROUND( 9, ecx, cl, ch, edx, dl, dh, eax, ebx)
-    ASMDECROUND( 8, eax, al, ah, ebx, bl, bh, ecx, edx)
-    ASMDECROUND( 7, ecx, cl, ch, edx, dl, dh, eax, ebx)
-    ASMDECROUND( 6, eax, al, ah, ebx, bl, bh, ecx, edx)
-    ASMDECROUND( 5, ecx, cl, ch, edx, dl, dh, eax, ebx)
-    ASMDECROUND( 4, eax, al, ah, ebx, bl, bh, ecx, edx)
-    ASMDECROUND( 3, ecx, cl, ch, edx, dl, dh, eax, ebx)
-    ASMDECROUND( 2, eax, al, ah, ebx, bl, bh, ecx, edx)
-    ASMDECROUND( 1, ecx, cl, ch, edx, dl, dh, eax, ebx)
-    ASMDECROUND( 0, eax, al, ah, ebx, bl, bh, ecx, edx)
-
-
-    AS2(    movd  ebp, mm6                      )
-    AS2(    movd  esi, mm0                      ) // k_
-    #ifdef __GNUC__
-        AS2(    movd  edi, mm3                  ) // outBlock
-    #else
-        AS2(    mov   edi, [ebp + 12]           ) // outBlock
-    #endif
-
-    AS2(    xor   eax, DWORD PTR [esi     ]     ) // k_[0]
-    AS2(    xor   ebx, DWORD PTR [esi +  4]     ) // k_[1]
-    AS2(    xor   ecx, DWORD PTR [esi +  8]     ) // k_[2]
-    AS2(    xor   edx, DWORD PTR [esi + 12]     ) // k_[3]
-
-    AS2(    mov   [edi],      eax               ) // write out
-    AS2(    mov   [edi +  4], ebx               ) // write out
-    AS2(    mov   [edi +  8], ecx               ) // write out
-    AS2(    mov   [edi + 12], edx               ) // write out
-
-
-    EPILOG()
-}
-
-
-
-#endif // defined(DO_TWOFISH_ASM)
-
-
-
-
-
-} // namespace
-
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/taocrypt.dsp b/mysql-wsrep-5.6/extra/yassl/taocrypt/taocrypt.dsp
deleted file mode 100644
index 9c8e74da..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/taocrypt.dsp
+++ /dev/null
@@ -1,321 +0,0 @@
-# Microsoft Developer Studio Project File - Name="taocrypt" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=taocrypt - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "taocrypt.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "taocrypt.mak" CFG="taocrypt - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "taocrypt - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "taocrypt - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "taocrypt - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "taocrypt___Win32_Release"
-# PROP BASE Intermediate_Dir "taocrypt___Win32_Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /G6 /MT /W3 /O2 /I "include" /I "mySTL" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-
-!ELSEIF  "$(CFG)" == "taocrypt - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "taocrypt___Win32_Debug"
-# PROP BASE Intermediate_Dir "taocrypt___Win32_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /ZI /Od /I "include" /I "mySTL" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# SUBTRACT CPP /Fr
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-
-!ENDIF 
-
-# Begin Target
-
-# Name "taocrypt - Win32 Release"
-# Name "taocrypt - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\src\aes.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\aestables.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\algebra.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\arc4.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\asn.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\bftables.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\blowfish.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\coding.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\des.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\dh.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\dsa.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\file.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\hash.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\hc128.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\integer.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\md2.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\md4.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\md5.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\misc.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\rabbit.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\random.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\ripemd.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\rsa.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\sha.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\tftables.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\twofish.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\include\aes.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\algebra.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\arc4.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\asn.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\block.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\blowfish.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\coding.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\des.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\dh.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\dsa.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\error.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\file.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\hash.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\hc128.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\hmac.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\integer.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\md2.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\md4.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\md5.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\misc.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\modarith.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\modes.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\pwdbased.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\rabbit.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\random.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\ripemd.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\rsa.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\sha.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\twofish.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\type_traits.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\types.hpp
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/taocrypt.dsw b/mysql-wsrep-5.6/extra/yassl/taocrypt/taocrypt.dsw
deleted file mode 100644
index 43115069..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/taocrypt.dsw
+++ /dev/null
@@ -1,59 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "benchmark"=.\benchmark\benchmark.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name taocrypt
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "taocrypt"=.\taocrypt.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "test"=.\test\test.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name taocrypt
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/test.dsw b/mysql-wsrep-5.6/extra/yassl/taocrypt/test.dsw
deleted file mode 100644
index b5c03bc6..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/test.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "test"=.\test.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/test/make.bat b/mysql-wsrep-5.6/extra/yassl/taocrypt/test/make.bat
deleted file mode 100644
index a0cd1566..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/test/make.bat
+++ /dev/null
@@ -1,24 +0,0 @@
-REM Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
-REM 
-REM This program is free software; you can redistribute it and/or modify
-REM it under the terms of the GNU General Public License as published by
-REM the Free Software Foundation; version 2 of the License.
-REM 
-REM This program is distributed in the hope that it will be useful,
-REM but WITHOUT ANY WARRANTY; without even the implied warranty of
-REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-REM GNU General Public License for more details.
-REM 
-REM You should have received a copy of the GNU General Public License
-REM along with this program; if not, write to the Free Software
-REM Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-
-REM quick and dirty build file for testing different MSDEVs
-setlocal 
-
-set myFLAGS= /I../include /I../mySTL /c /W3 /G6 /O2
-
-cl %myFLAGS% test.cpp
-
-link.exe  /out:test.exe ../src/taocrypt.lib test.obj advapi32.lib
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/test/memory.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/test/memory.cpp
deleted file mode 100644
index 053d7968..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/test/memory.cpp
+++ /dev/null
@@ -1,359 +0,0 @@
-/*
-   Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-// memory.cpp
-#include "../../include/lock.hpp"     // locking
-#include           // std::bad_alloc
-#include       // malloc
-#include       // memset
-#include       // ofstream
-#include       // stringstream
-#include       // assert
-#include       // setiosflags
-
-/*********************************************************************
-
-To use MemoryTracker merely add this file to your project
-No need to instantiate anything
-
-If your app is multi threaded define MULTI_THREADED
-
-*********************************************************************/
-
-
-// locals
-namespace {
-
-class MemoryTracker {
-    std::ofstream log_;
-public:
-    MemoryTracker();
-    ~MemoryTracker();
-private:
-    MemoryTracker(const MemoryTracker&);             // hide copy
-    MemoryTracker& operator=(const MemoryTracker&);  // and assign
-
-    void LogStats();
-};
-
-
-struct alloc_node {
-    alloc_node* left_;
-    alloc_node* right_;
-  
-    alloc_node() : left_(0), right_(0) {}
-};
-
-
-alloc_node* Root = 0;
-
-size_t Allocs    = 0;
-size_t DeAllocs  = 0;
-size_t Bytes     = 0;
-
-
-struct size_tracker {
-    size_t size_;
-    size_t count_;
-};
-
-size_tracker sizes[] = 
-{
-    {0,0},
-    {2,0},
-    {4,0},
-    {8,0},
-    {16,0},
-    {32,0},
-    {64,0},
-    {128,0},
-    {256,0},
-    {512,0},
-    {1024,0},
-    {2048,0},
-    {4096,0},
-    {8192,0},
-};
-
-const size_t size_elements(sizeof(sizes) / sizeof(size_tracker));
-
-bool Tracking(false);
-
-using   yaSSL::Mutex;
-typedef Mutex::Lock Lock;
-
-Mutex mutex;
-
-MemoryTracker theTracker;
-
-
-bool lookup(alloc_node*& find, void* key, alloc_node*& prev)
-{
-    bool found(false);
-
-    while (find) {
-        if (find == key) {
-            found = true;
-            break;
-        }
-        prev = find;
-        if (key < find)
-            find = find->left_;
-        else
-            find = find->right_;
-    }
-    return found;
-}
-
-
-// iterative insert
-void insert(alloc_node* entry)
-{
-    if (!Root) {
-        Root = entry;
-        return;
-    }
-       
-    alloc_node* tmp  = Root;
-    alloc_node* prev = 0;
-
-    if (lookup(tmp, entry, prev)) 
-        assert(0); // duplicate
-
-    if (entry < prev)
-        prev->left_  = entry;
-    else
-        prev->right_ = entry;
-}
-
-
-alloc_node* predecessorSwap(alloc_node* del)
-{
-    alloc_node* pred = del->left_;
-    alloc_node* predPrev = del;
-
-    while (pred->right_) {
-        predPrev = pred;
-        pred = pred->right_;
-    }
-    if (predPrev == del)
-        predPrev->left_  = pred->left_;
-    else
-        predPrev->right_ = pred->left_;
-
-    pred->left_  = del->left_;
-    pred->right_ = del->right_;
-
-    return pred;
-}
-
-
-// iterative remove
-void remove(void* ptr)
-{
-    alloc_node* del  = Root;
-    alloc_node* prev = 0;
-    alloc_node* replace = 0;
-
-    if ( lookup(del, ptr, prev) == false)
-        assert(0); // oops, not there
-
-    if (del->left_ && del->right_)          // two children
-        replace = predecessorSwap(del);
-    else if (!del->left_ && !del->right_)   // no children
-        replace = 0;
-    else                                    // one child
-        replace = (del->left_) ? del->left_ : del->right_;
-
-    if (del == Root)
-        Root = replace;
-    else if (prev->left_ == del)
-        prev->left_  = replace;
-    else
-        prev->right_ = replace;
-}
-
-
-typedef void (*fp)(alloc_node*, void*);
-
-void applyInOrder(alloc_node* root, fp f, void* arg)
-{
-    if (root == 0)
-        return;
-    
-    applyInOrder(root->left_,  f, arg);
-    f(root, arg);
-    applyInOrder(root->right_, f, arg);
-}
-
-
-void show(alloc_node* ptr, void* arg)
-{
-    std::ofstream* log = static_cast(arg);
-    *log << ptr << '\n';
-}
-
-
-MemoryTracker::MemoryTracker() : log_("memory.log")
-{
-#ifdef __GNUC__
-    // Force pool allocator to cleanup at exit
-    setenv("GLIBCPP_FORCE_NEW", "1", 0);
-#endif
-
-#ifdef _MSC_VER
-    // msvc6 needs to create Facility for ostream before main starts, otherwise
-    // if another ostream is created and destroyed in main scope, log stats
-    // will access a dead Facility reference (std::numput)
-    int msvcFac = 6;
-    log_ << "MSVC " << msvcFac << "workaround" << std::endl; 
-#endif
-
-
-    Tracking = true;
-}
-
-
-MemoryTracker::~MemoryTracker()
-{
-    // stop tracking before log (which will alloc on output)
-    Tracking = false;
-    LogStats();
-
-    //assert(Allocs == DeAllocs);
-    //assert(Root == 0);
-}
-
-
-void MemoryTracker::LogStats()
-{
-    log_ << "Number of Allocs:     " << Allocs    << '\n';
-    log_ << "Number of DeAllocs:   " << DeAllocs  << '\n';
-    log_ << "Number of bytes used: " << Bytes     << '\n';
-
-    log_ << "Alloc size table:\n";
-    log_ << " Bytes " << '\t' << "   Times\n";
-
-    for (size_t i = 0; i < size_elements; ++i) {
-        log_ << " " << sizes[i].size_  << "  " << '\t';
-        log_ << std::setiosflags(std::ios::right) << std::setw(8);
-        log_ << sizes[i].count_ << '\n';
-    }
-
-    if (Allocs != DeAllocs) {
-        log_<< "Showing new'd allocs with no deletes" << '\n';
-        applyInOrder(Root, show, &log_);
-    }
-    log_.flush();
-}
-
-
-// return power of 2 up to size_tracker elements
-size_t powerOf2(size_t sz)
-{
-    size_t shifts = 0;
-
-    if (sz)
-        sz -= 1;
-    else
-        return 0;
-	   
-    while (sz) {
-        sz >>= 1;
-        ++shifts;
-    }
-
-    return shifts < size_elements ? shifts : size_elements;
-}
-
-
-} // namespace local
-
-
-void* operator new(size_t sz)
-{
-    // put alloc node in front of requested memory
-    void* ptr = malloc(sz + sizeof(alloc_node));
-    if (ptr) {
-        if (Tracking) {
-            Lock l(mutex);
-            ++Allocs;
-            Bytes += sz;
-            ++sizes[powerOf2(sz)].count_;
-            insert(new (ptr) alloc_node);
-        }
-        return static_cast(ptr) + sizeof(alloc_node);
-    }
-    else
-        assert(0);
-}
-
-
-void operator delete(void* ptr)
-{
-    if (ptr) {
-        ptr = static_cast(ptr) - sizeof(alloc_node);  // correct offset
-        if (Tracking) {
-            Lock l(mutex);
-            ++DeAllocs;
-            remove(ptr);
-        }
-        free(ptr);
-    }
-}
-
-
-void* operator new[](size_t sz)
-{
-    return ::operator new(sz);
-}
-
-
-void operator delete[](void* ptr)
-{
-    ::operator delete(ptr);
-}
-
-
-extern "C" {
-
-void* XMALLOC(size_t sz, void* head)
-{
-    return ::operator new(sz);
-}
-
-void* XREALLOC(void* ptr, size_t sz, void* heap)
-{
-    void* ret = ::operator new(sz);
-
-    if (ret && ptr)
-        memcpy(ret, ptr, sz);
-
-    if (ret)
-        ::operator delete(ptr);
-    return ret;
-}
-
-
-void XFREE(void* ptr, void* heap)
-{
-    ::operator delete(ptr);
-}
-
-}  // extern "C"
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/test/test.cpp b/mysql-wsrep-5.6/extra/yassl/taocrypt/test/test.cpp
deleted file mode 100644
index fc1f0e87..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/test/test.cpp
+++ /dev/null
@@ -1,1354 +0,0 @@
-/*
-   Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-// test.cpp
-// test taocrypt functionality
-
-#include 
-#include 
-
-#include "runtime.hpp"
-#include "sha.hpp"
-#include "md5.hpp"
-#include "md2.hpp"
-#include "md4.hpp"
-#include "ripemd.hpp"
-#include "hmac.hpp"
-#include "arc4.hpp"
-#include "des.hpp"
-#include "rsa.hpp"
-#include "dsa.hpp"
-#include "aes.hpp"
-#include "twofish.hpp"
-#include "blowfish.hpp"
-#include "asn.hpp"
-#include "dh.hpp"
-#include "coding.hpp"
-#include "random.hpp"
-#include "pwdbased.hpp"
-#include "rabbit.hpp"
-#include "hc128.hpp"
-
-
-
-using TaoCrypt::byte;
-using TaoCrypt::word32;
-using TaoCrypt::SHA;
-using TaoCrypt::SHA256;
-using TaoCrypt::SHA224;
-#ifdef WORD64_AVAILABLE
-    using TaoCrypt::SHA512;
-    using TaoCrypt::SHA384;
-#endif
-using TaoCrypt::MD5;
-using TaoCrypt::MD2;
-using TaoCrypt::MD4;
-using TaoCrypt::RIPEMD160;
-using TaoCrypt::HMAC;
-using TaoCrypt::ARC4;
-using TaoCrypt::DES_EDE3_CBC_Encryption;
-using TaoCrypt::DES_EDE3_CBC_Decryption;
-using TaoCrypt::DES_CBC_Encryption;
-using TaoCrypt::DES_CBC_Decryption;
-using TaoCrypt::DES_ECB_Encryption;
-using TaoCrypt::DES_ECB_Decryption;
-using TaoCrypt::AES_CBC_Encryption;
-using TaoCrypt::AES_CBC_Decryption;
-using TaoCrypt::AES_ECB_Encryption;
-using TaoCrypt::AES_ECB_Decryption;
-using TaoCrypt::Twofish_CBC_Encryption;
-using TaoCrypt::Twofish_CBC_Decryption;
-using TaoCrypt::Twofish_ECB_Encryption;
-using TaoCrypt::Twofish_ECB_Decryption;
-using TaoCrypt::Blowfish_CBC_Encryption;
-using TaoCrypt::Blowfish_CBC_Decryption;
-using TaoCrypt::Blowfish_ECB_Encryption;
-using TaoCrypt::Blowfish_ECB_Decryption;
-using TaoCrypt::RSA_PrivateKey;
-using TaoCrypt::RSA_PublicKey;
-using TaoCrypt::DSA_PrivateKey;
-using TaoCrypt::DSA_PublicKey;
-using TaoCrypt::DSA_Signer;
-using TaoCrypt::DSA_Verifier;
-using TaoCrypt::RSAES_Encryptor;
-using TaoCrypt::RSAES_Decryptor;
-using TaoCrypt::Source;
-using TaoCrypt::FileSource;
-using TaoCrypt::FileSource;
-using TaoCrypt::HexDecoder;
-using TaoCrypt::HexEncoder;
-using TaoCrypt::Base64Decoder;
-using TaoCrypt::Base64Encoder;
-using TaoCrypt::CertDecoder;
-using TaoCrypt::DH;
-using TaoCrypt::EncodeDSA_Signature;
-using TaoCrypt::DecodeDSA_Signature;
-using TaoCrypt::PBKDF2_HMAC;
-using TaoCrypt::tcArrayDelete;
-using TaoCrypt::GetCert;
-using TaoCrypt::GetPKCS_Cert;
-using TaoCrypt::Rabbit;
-using TaoCrypt::HC128;
-
-struct testVector {
-    byte*  input_;
-    byte*  output_; 
-    word32 inLen_;
-    word32 outLen_;
-
-    testVector(const char* in, const char* out) : input_((byte*)in),
-               output_((byte*)out), inLen_((word32)strlen(in)),
-               outLen_((word32)strlen(out)) {}
-};
-
-int  sha_test();
-int  sha256_test();
-#ifdef WORD64_AVAILABLE
-    int  sha512_test();
-    int  sha384_test();
-#endif
-int  sha224_test();
-int  md5_test();
-int  md2_test();
-int  md4_test();
-int  ripemd_test();
-int  hmac_test();
-int  arc4_test();
-int  des_test();
-int  aes_test();
-int  twofish_test();
-int  blowfish_test();
-int  rsa_test();
-int  dsa_test();
-int  dh_test();
-int  pwdbased_test();
-int  pkcs12_test();
-int  rabbit_test();
-int  hc128_test();
-
-TaoCrypt::RandomNumberGenerator rng;
-
-
-void err_sys(const char* msg, int es)
-{
-    printf("%s\n", msg);
-    exit(es);    
-}
-
-// func_args from test.hpp, so don't have to pull in other junk
-struct func_args {
-    int    argc;
-    char** argv;
-    int    return_code;
-};
-
-
-/* 
-   DES, AES, Blowfish, and Twofish need aligned (4 byte) input/output for
-   processing, can turn this off by setting gpBlock(assumeAligned = false)
-   but would hurt performance.  yaSSL always uses dynamic memory so we have
-   at least 8 byte alignment.  This test tried to force alignment for stack
-   variables (for convenience) but some compiler versions and optimizations
-   seemed to be off.  So we have msgTmp variable which we copy into dynamic
-   memory at runtime to ensure proper alignment, along with plain/cipher.
-   Whew!
-*/
-const byte msgTmp[] = { // "now is the time for all " w/o trailing 0
-    0x6e,0x6f,0x77,0x20,0x69,0x73,0x20,0x74,
-    0x68,0x65,0x20,0x74,0x69,0x6d,0x65,0x20,
-    0x66,0x6f,0x72,0x20,0x61,0x6c,0x6c,0x20
-};
-
-byte* msg    = 0;   // for block cipher input
-byte* plain  = 0;   // for cipher decrypt comparison 
-byte* cipher = 0;   // block output
-
-
-void taocrypt_test(void* args)
-{
-    ((func_args*)args)->return_code = -1; // error state
-
-    msg    = NEW_TC byte[24];
-    plain  = NEW_TC byte[24];
-    cipher = NEW_TC byte[24];
-
-    memcpy(msg, msgTmp, 24);
-
-    int ret = 0;
-    if ( (ret = sha_test()) ) 
-        err_sys("SHA      test failed!\n", ret);
-    else
-        printf( "SHA      test passed!\n");
-
-    if ( (ret = sha256_test()) ) 
-        err_sys("SHA-256  test failed!\n", ret);
-    else
-        printf( "SHA-256  test passed!\n");
-
-    if ( (ret = sha224_test()) ) 
-        err_sys("SHA-224  test failed!\n", ret);
-    else
-        printf( "SHA-224  test passed!\n");
-
-#ifdef WORD64_AVAILABLE
-
-    if ( (ret = sha512_test()) ) 
-        err_sys("SHA-512  test failed!\n", ret);
-    else
-        printf( "SHA-512  test passed!\n");
-
-    if ( (ret = sha384_test()) ) 
-        err_sys("SHA-384  test failed!\n", ret);
-    else
-        printf( "SHA-384  test passed!\n");
-
-#endif
-
-    if ( (ret = md5_test()) ) 
-        err_sys("MD5      test failed!\n", ret);
-    else
-        printf( "MD5      test passed!\n");
-
-    if ( (ret = md2_test()) ) 
-        err_sys("MD2      test failed!\n", ret);
-    else
-        printf( "MD2      test passed!\n");
-
-    if ( (ret = md4_test()) ) 
-        err_sys("MD4      test failed!\n", ret);
-    else
-        printf( "MD4      test passed!\n");
-
-    if ( (ret = ripemd_test()) )
-        err_sys("RIPEMD   test failed!\n", ret);
-    else
-        printf( "RIPEMD   test passed!\n");
-
-    if ( ( ret = hmac_test()) )
-        err_sys("HMAC     test failed!\n", ret);
-    else
-        printf( "HMAC     test passed!\n");
-
-    if ( (ret = arc4_test()) )
-        err_sys("ARC4     test failed!\n", ret);
-    else
-        printf( "ARC4     test passed!\n");
-
-    if ( (ret = rabbit_test()) )
-        err_sys("Rabbit   test failed!\n", ret);
-    else
-        printf( "Rabbit   test passed!\n");
-
-    if ( (ret = hc128_test()) )
-        err_sys("HC128    test failed!\n", ret);
-    else
-        printf( "HC128    test passed!\n");
-
-    if ( (ret = des_test()) )
-        err_sys("DES      test failed!\n", ret);
-    else
-        printf( "DES      test passed!\n");
-
-    if ( (ret = aes_test()) )
-        err_sys("AES      test failed!\n", ret);
-    else
-        printf( "AES      test passed!\n");
-
-    if ( (ret = twofish_test()) )
-        err_sys("Twofish  test failed!\n", ret);
-    else
-        printf( "Twofish  test passed!\n");
-
-    if ( (ret = blowfish_test()) )
-        err_sys("Blowfish test failed!\n", ret);
-    else
-        printf( "Blowfish test passed!\n");
-
-    if ( (ret = rsa_test()) )
-        err_sys("RSA      test failed!\n", ret);
-    else
-        printf( "RSA      test passed!\n");
-
-    if ( (ret = dh_test()) )
-        err_sys("DH       test failed!\n", ret);
-    else
-        printf( "DH       test passed!\n");
-
-    if ( (ret = dsa_test()) )
-        err_sys("DSA      test failed!\n", ret);
-    else
-        printf( "DSA      test passed!\n");
-
-    if ( (ret = pwdbased_test()) )
-        err_sys("PBKDF2   test failed!\n", ret);
-    else
-        printf( "PBKDF2   test passed!\n");
-
-    /* not ready yet
-    if ( (ret = pkcs12_test()) )
-        err_sys("PKCS12   test failed!\n", ret);
-    else
-        printf( "PKCS12   test passed!\n");
-    */
-
-    tcArrayDelete(cipher);
-    tcArrayDelete(plain);
-    tcArrayDelete(msg);
-
-    ((func_args*)args)->return_code = ret;
-}
-
-
-// so overall tests can pull in test function 
-#ifndef NO_MAIN_DRIVER
-
-    int main(int argc, char** argv)
-    {
-        func_args args;
-
-        args.argc = argc;
-        args.argv = argv;
-
-        taocrypt_test(&args);
-        TaoCrypt::CleanUp();
-
-        return args.return_code;
-    }
-
-#endif // NO_MAIN_DRIVER
-
-
-void file_test(const char* file, byte* check)
-{
-    FILE* f;
-    int i = 0;
-    MD5    md5;
-    byte   buf[1024];
-    byte   md5sum[MD5::DIGEST_SIZE];
-    
-    if( !( f = fopen( file, "rb" ) )) {
-        printf("Can't open %s\n", file);
-        return;
-    }
-    while( ( i = (int)fread(buf, 1, sizeof(buf), f )) > 0 )
-        md5.Update(buf, i);
-    
-    md5.Final(md5sum);
-    memcpy(check, md5sum, sizeof(md5sum));
-
-    for(int j = 0; j < MD5::DIGEST_SIZE; ++j ) 
-        printf( "%02x", md5sum[j] );
-   
-    printf("  %s\n", file);
-
-    fclose(f);
-}
-
-
-int sha_test()
-{
-    SHA  sha;
-    byte hash[SHA::DIGEST_SIZE];
-
-    testVector test_sha[] =
-    {
-        testVector("abc", 
-                 "\xA9\x99\x3E\x36\x47\x06\x81\x6A\xBA\x3E\x25\x71\x78\x50\xC2"
-                 "\x6C\x9C\xD0\xD8\x9D"),
-        testVector("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
-                 "\x84\x98\x3E\x44\x1C\x3B\xD2\x6E\xBA\xAE\x4A\xA1\xF9\x51\x29"
-                 "\xE5\xE5\x46\x70\xF1"),
-        testVector("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
-                 "aaaaaa", 
-                 "\x00\x98\xBA\x82\x4B\x5C\x16\x42\x7B\xD7\xA1\x12\x2A\x5A\x44"
-                 "\x2A\x25\xEC\x64\x4D"),
-        testVector("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
-                 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
-                 "aaaaaaaaaa",
-                 "\xAD\x5B\x3F\xDB\xCB\x52\x67\x78\xC2\x83\x9D\x2F\x15\x1E\xA7"
-                 "\x53\x99\x5E\x26\xA0")  
-    };
-
-    int times( sizeof(test_sha) / sizeof(testVector) );
-    for (int i = 0; i < times; ++i) {
-        sha.Update(test_sha[i].input_, test_sha[i].inLen_);
-        sha.Final(hash);
-
-        if (memcmp(hash, test_sha[i].output_, SHA::DIGEST_SIZE) != 0)
-            return -1 - i;
-    }
-
-    return 0;
-}
-
-
-int sha256_test()
-{
-    SHA256 sha;
-    byte   hash[SHA256::DIGEST_SIZE];
-
-    testVector test_sha[] =
-    {
-        testVector("abc",
-                 "\xBA\x78\x16\xBF\x8F\x01\xCF\xEA\x41\x41\x40\xDE\x5D\xAE\x22"
-                 "\x23\xB0\x03\x61\xA3\x96\x17\x7A\x9C\xB4\x10\xFF\x61\xF2\x00"
-                 "\x15\xAD"),
-        testVector("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
-                 "\x24\x8D\x6A\x61\xD2\x06\x38\xB8\xE5\xC0\x26\x93\x0C\x3E\x60"
-                 "\x39\xA3\x3C\xE4\x59\x64\xFF\x21\x67\xF6\xEC\xED\xD4\x19\xDB"
-                 "\x06\xC1")
-    };
-
-    int times( sizeof(test_sha) / sizeof(testVector) );
-    for (int i = 0; i < times; ++i) {
-        sha.Update(test_sha[i].input_, test_sha[i].inLen_);
-        sha.Final(hash);
-
-        if (memcmp(hash, test_sha[i].output_, SHA256::DIGEST_SIZE) != 0)
-            return -1 - i;
-    }
-
-    return 0;
-}
-
-
-#ifdef WORD64_AVAILABLE
-
-int sha512_test()
-{
-    SHA512 sha;
-    byte   hash[SHA512::DIGEST_SIZE];
-
-    testVector test_sha[] =
-    {
-        testVector("abc",
-                 "\xdd\xaf\x35\xa1\x93\x61\x7a\xba\xcc\x41\x73\x49\xae\x20\x41"
-                 "\x31\x12\xe6\xfa\x4e\x89\xa9\x7e\xa2\x0a\x9e\xee\xe6\x4b\x55"
-                 "\xd3\x9a\x21\x92\x99\x2a\x27\x4f\xc1\xa8\x36\xba\x3c\x23\xa3"
-                 "\xfe\xeb\xbd\x45\x4d\x44\x23\x64\x3c\xe8\x0e\x2a\x9a\xc9\x4f"
-                 "\xa5\x4c\xa4\x9f"),
-        testVector("abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhi"
-                   "jklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", 
-                 "\x8e\x95\x9b\x75\xda\xe3\x13\xda\x8c\xf4\xf7\x28\x14\xfc\x14"
-                 "\x3f\x8f\x77\x79\xc6\xeb\x9f\x7f\xa1\x72\x99\xae\xad\xb6\x88"
-                 "\x90\x18\x50\x1d\x28\x9e\x49\x00\xf7\xe4\x33\x1b\x99\xde\xc4"
-                 "\xb5\x43\x3a\xc7\xd3\x29\xee\xb6\xdd\x26\x54\x5e\x96\xe5\x5b"
-                 "\x87\x4b\xe9\x09")
-    };
-
-    int times( sizeof(test_sha) / sizeof(testVector) );
-    for (int i = 0; i < times; ++i) {
-        sha.Update(test_sha[i].input_, test_sha[i].inLen_);
-        sha.Final(hash);
-
-        if (memcmp(hash, test_sha[i].output_, SHA512::DIGEST_SIZE) != 0)
-            return -1 - i;
-    }
-
-    return 0;
-}
-
-
-int sha384_test()
-{
-    SHA384 sha;
-    byte   hash[SHA384::DIGEST_SIZE];
-
-    testVector test_sha[] =
-    {
-        testVector("abc",
-                 "\xcb\x00\x75\x3f\x45\xa3\x5e\x8b\xb5\xa0\x3d\x69\x9a\xc6\x50"
-                 "\x07\x27\x2c\x32\xab\x0e\xde\xd1\x63\x1a\x8b\x60\x5a\x43\xff"
-                 "\x5b\xed\x80\x86\x07\x2b\xa1\xe7\xcc\x23\x58\xba\xec\xa1\x34"
-                 "\xc8\x25\xa7"),
-        testVector("abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhi"
-                   "jklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", 
-                 "\x09\x33\x0c\x33\xf7\x11\x47\xe8\x3d\x19\x2f\xc7\x82\xcd\x1b"
-                 "\x47\x53\x11\x1b\x17\x3b\x3b\x05\xd2\x2f\xa0\x80\x86\xe3\xb0"
-                 "\xf7\x12\xfc\xc7\xc7\x1a\x55\x7e\x2d\xb9\x66\xc3\xe9\xfa\x91"
-                 "\x74\x60\x39")
-    };
-
-    int times( sizeof(test_sha) / sizeof(testVector) );
-    for (int i = 0; i < times; ++i) {
-        sha.Update(test_sha[i].input_, test_sha[i].inLen_);
-        sha.Final(hash);
-
-        if (memcmp(hash, test_sha[i].output_, SHA384::DIGEST_SIZE) != 0)
-            return -1 - i;
-    }
-
-    return 0;
-}
-
-#endif // WORD64_AVAILABLE
-
-
-int sha224_test()
-{
-    SHA224 sha;
-    byte   hash[SHA224::DIGEST_SIZE];
-
-    testVector test_sha[] =
-    {
-        testVector("abc",
-                 "\x23\x09\x7d\x22\x34\x05\xd8\x22\x86\x42\xa4\x77\xbd\xa2\x55"
-                 "\xb3\x2a\xad\xbc\xe4\xbd\xa0\xb3\xf7\xe3\x6c\x9d\xa7"),
-        testVector("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
-                 "\x75\x38\x8b\x16\x51\x27\x76\xcc\x5d\xba\x5d\xa1\xfd\x89\x01"
-                 "\x50\xb0\xc6\x45\x5c\xb4\xf5\x8b\x19\x52\x52\x25\x25")
-    };
-
-    int times( sizeof(test_sha) / sizeof(testVector) );
-    for (int i = 0; i < times; ++i) {
-        sha.Update(test_sha[i].input_, test_sha[i].inLen_);
-        sha.Final(hash);
-
-        if (memcmp(hash, test_sha[i].output_, SHA224::DIGEST_SIZE) != 0)
-            return -1 - i;
-    }
-
-    return 0;
-}
-
-
-int md5_test()
-{
-    MD5  md5;
-    byte hash[MD5::DIGEST_SIZE];
-
-    testVector test_md5[] =
-    {
-        testVector("abc", 
-                 "\x90\x01\x50\x98\x3c\xd2\x4f\xb0\xd6\x96\x3f\x7d\x28\xe1\x7f"
-                 "\x72"),
-        testVector("message digest", 
-                 "\xf9\x6b\x69\x7d\x7c\xb7\x93\x8d\x52\x5a\x2f\x31\xaa\xf1\x61"
-                 "\xd0"),
-        testVector("abcdefghijklmnopqrstuvwxyz",
-                 "\xc3\xfc\xd3\xd7\x61\x92\xe4\x00\x7d\xfb\x49\x6c\xca\x67\xe1"
-                 "\x3b"),
-        testVector("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345"
-                 "6789",
-                 "\xd1\x74\xab\x98\xd2\x77\xd9\xf5\xa5\x61\x1c\x2c\x9f\x41\x9d"
-                 "\x9f"),
-        testVector("1234567890123456789012345678901234567890123456789012345678"
-                 "9012345678901234567890",
-                 "\x57\xed\xf4\xa2\x2b\xe3\xc9\x55\xac\x49\xda\x2e\x21\x07\xb6"
-                 "\x7a")
-    };
-
-    int times( sizeof(test_md5) / sizeof(testVector) );
-    for (int i = 0; i < times; ++i) {
-        md5.Update(test_md5[i].input_, test_md5[i].inLen_);
-        md5.Final(hash);
-
-        if (memcmp(hash, test_md5[i].output_, MD5::DIGEST_SIZE) != 0)
-            return -5 - i;
-    }
-
-    return 0;
-}
-
-
-int md4_test()
-{
-    MD4  md4;
-    byte hash[MD4::DIGEST_SIZE];
-
-    testVector test_md4[] =
-    {
-        testVector("",
-                 "\x31\xd6\xcf\xe0\xd1\x6a\xe9\x31\xb7\x3c\x59\xd7\xe0\xc0\x89"
-                 "\xc0"),
-        testVector("a",
-                 "\xbd\xe5\x2c\xb3\x1d\xe3\x3e\x46\x24\x5e\x05\xfb\xdb\xd6\xfb"
-                 "\x24"),
-        testVector("abc", 
-                 "\xa4\x48\x01\x7a\xaf\x21\xd8\x52\x5f\xc1\x0a\xe8\x7a\xa6\x72"
-                 "\x9d"),
-        testVector("message digest", 
-                 "\xd9\x13\x0a\x81\x64\x54\x9f\xe8\x18\x87\x48\x06\xe1\xc7\x01"
-                 "\x4b"),
-        testVector("abcdefghijklmnopqrstuvwxyz",
-                 "\xd7\x9e\x1c\x30\x8a\xa5\xbb\xcd\xee\xa8\xed\x63\xdf\x41\x2d"
-                 "\xa9"),
-        testVector("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345"
-                 "6789",
-                 "\x04\x3f\x85\x82\xf2\x41\xdb\x35\x1c\xe6\x27\xe1\x53\xe7\xf0"
-                 "\xe4"),
-        testVector("1234567890123456789012345678901234567890123456789012345678"
-                 "9012345678901234567890",
-                 "\xe3\x3b\x4d\xdc\x9c\x38\xf2\x19\x9c\x3e\x7b\x16\x4f\xcc\x05"
-                 "\x36")
-    };
-
-    int times( sizeof(test_md4) / sizeof(testVector) );
-    for (int i = 0; i < times; ++i) {
-        md4.Update(test_md4[i].input_, test_md4[i].inLen_);
-        md4.Final(hash);
-
-        if (memcmp(hash, test_md4[i].output_, MD4::DIGEST_SIZE) != 0)
-            return -5 - i;
-    }
-
-    return 0;
-}
-
-
-int md2_test()
-{
-    MD2  md5;
-    byte hash[MD2::DIGEST_SIZE];
-
-    testVector test_md2[] =
-    {
-        testVector("",
-                   "\x83\x50\xe5\xa3\xe2\x4c\x15\x3d\xf2\x27\x5c\x9f\x80\x69"
-                   "\x27\x73"),
-        testVector("a",
-                   "\x32\xec\x01\xec\x4a\x6d\xac\x72\xc0\xab\x96\xfb\x34\xc0"
-                   "\xb5\xd1"),
-        testVector("abc",
-                   "\xda\x85\x3b\x0d\x3f\x88\xd9\x9b\x30\x28\x3a\x69\xe6\xde"
-                   "\xd6\xbb"),
-        testVector("message digest",
-                   "\xab\x4f\x49\x6b\xfb\x2a\x53\x0b\x21\x9f\xf3\x30\x31\xfe"
-                   "\x06\xb0"),
-        testVector("abcdefghijklmnopqrstuvwxyz",
-                   "\x4e\x8d\xdf\xf3\x65\x02\x92\xab\x5a\x41\x08\xc3\xaa\x47"
-                   "\x94\x0b"),
-        testVector("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
-                   "0123456789",
-                   "\xda\x33\xde\xf2\xa4\x2d\xf1\x39\x75\x35\x28\x46\xc3\x03"
-                   "\x38\xcd"),
-        testVector("12345678901234567890123456789012345678901234567890123456"
-                   "789012345678901234567890",
-                   "\xd5\x97\x6f\x79\xd8\x3d\x3a\x0d\xc9\x80\x6c\x3c\x66\xf3"
-                   "\xef\xd8")
-    };
-
-    int times( sizeof(test_md2) / sizeof(testVector) );
-    for (int i = 0; i < times; ++i) {
-        md5.Update(test_md2[i].input_, test_md2[i].inLen_);
-        md5.Final(hash);
-
-        if (memcmp(hash, test_md2[i].output_, MD2::DIGEST_SIZE) != 0)
-            return -10 - i;
-    }
-
-    return 0;
-}
-
-
-int ripemd_test()
-{
-    RIPEMD160  ripe160;
-    byte hash[RIPEMD160::DIGEST_SIZE];
-
-    testVector test_ripemd[] =
-    {
-        testVector("",
-                   "\x9c\x11\x85\xa5\xc5\xe9\xfc\x54\x61\x28\x08\x97\x7e\xe8"
-                   "\xf5\x48\xb2\x25\x8d\x31"),
-        testVector("a",
-                   "\x0b\xdc\x9d\x2d\x25\x6b\x3e\xe9\xda\xae\x34\x7b\xe6\xf4"
-                   "\xdc\x83\x5a\x46\x7f\xfe"),
-        testVector("abc",
-                   "\x8e\xb2\x08\xf7\xe0\x5d\x98\x7a\x9b\x04\x4a\x8e\x98\xc6"
-                   "\xb0\x87\xf1\x5a\x0b\xfc"),
-        testVector("message digest",
-                   "\x5d\x06\x89\xef\x49\xd2\xfa\xe5\x72\xb8\x81\xb1\x23\xa8"
-                   "\x5f\xfa\x21\x59\x5f\x36"),
-        testVector("abcdefghijklmnopqrstuvwxyz",
-                   "\xf7\x1c\x27\x10\x9c\x69\x2c\x1b\x56\xbb\xdc\xeb\x5b\x9d"
-                   "\x28\x65\xb3\x70\x8d\xbc"),
-        testVector("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
-                   "\x12\xa0\x53\x38\x4a\x9c\x0c\x88\xe4\x05\xa0\x6c\x27\xdc"
-                   "\xf4\x9a\xda\x62\xeb\x2b"),
-        testVector("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123"
-                   "456789",
-                   "\xb0\xe2\x0b\x6e\x31\x16\x64\x02\x86\xed\x3a\x87\xa5\x71"
-                   "\x30\x79\xb2\x1f\x51\x89"),
-        testVector("12345678901234567890123456789012345678901234567890123456"
-                   "789012345678901234567890",
-                   "\x9b\x75\x2e\x45\x57\x3d\x4b\x39\xf4\xdb\xd3\x32\x3c\xab"
-                   "\x82\xbf\x63\x32\x6b\xfb"),
-    };
-
-    int times( sizeof(test_ripemd) / sizeof(testVector) );
-    for (int i = 0; i < times; ++i) {
-        ripe160.Update(test_ripemd[i].input_, test_ripemd[i].inLen_);
-        ripe160.Final(hash);
-
-        if (memcmp(hash, test_ripemd[i].output_, RIPEMD160::DIGEST_SIZE) != 0)
-            return -100 - i;
-    }
-
-    return 0;
-}
-
-
-int hmac_test()
-{
-    HMAC hmacMD5;
-    byte hash[MD5::DIGEST_SIZE];
-
-    const char* keys[]=
-    {
-        "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",
-        "Jefe",
-        "\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA"
-    };
-
-    testVector test_hmacMD5[] = 
-    {
-        testVector("Hi There",
-                 "\x92\x94\x72\x7a\x36\x38\xbb\x1c\x13\xf4\x8e\xf8\x15\x8b\xfc"
-                 "\x9d"),
-        testVector("what do ya want for nothing?",
-                 "\x75\x0c\x78\x3e\x6a\xb0\xb5\x03\xea\xa8\x6e\x31\x0a\x5d\xb7"
-                 "\x38"),
-        testVector("\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
-                 "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
-                 "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
-                 "\xDD\xDD\xDD\xDD\xDD\xDD",
-                 "\x56\xbe\x34\x52\x1d\x14\x4c\x88\xdb\xb8\xc7\x33\xf0\xe8\xb3"
-                 "\xf6")
-    };
-
-    int times( sizeof(test_hmacMD5) / sizeof(testVector) );
-    for (int i = 0; i < times; ++i) {
-        hmacMD5.SetKey((byte*)keys[i], (word32)strlen(keys[i]));
-        hmacMD5.Update(test_hmacMD5[i].input_, test_hmacMD5[i].inLen_);
-        hmacMD5.Final(hash);
-
-        if (memcmp(hash, test_hmacMD5[i].output_, MD5::DIGEST_SIZE) != 0)
-            return -20 - i;
-    }
-
-    return 0;
-}
-
-
-int arc4_test()
-{
-    byte cipher[16];
-    byte plain[16];
-
-    const char* keys[] = 
-    {           
-        "\x01\x23\x45\x67\x89\xab\xcd\xef",
-        "\x01\x23\x45\x67\x89\xab\xcd\xef",
-        "\x00\x00\x00\x00\x00\x00\x00\x00",
-        "\xef\x01\x23\x45"
-    };
-
-    testVector test_arc4[] =
-    {
-        testVector("\x01\x23\x45\x67\x89\xab\xcd\xef",
-                   "\x75\xb7\x87\x80\x99\xe0\xc5\x96"),
-        testVector("\x00\x00\x00\x00\x00\x00\x00\x00",
-                   "\x74\x94\xc2\xe7\x10\x4b\x08\x79"),
-        testVector("\x00\x00\x00\x00\x00\x00\x00\x00",
-                   "\xde\x18\x89\x41\xa3\x37\x5d\x3a"),
-        testVector("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
-                   "\xd6\xa1\x41\xa7\xec\x3c\x38\xdf\xbd\x61")
-    };
-
-
-    int times( sizeof(test_arc4) / sizeof(testVector) );
-    for (int i = 0; i < times; ++i) {
-        ARC4::Encryption enc;
-        ARC4::Decryption dec;
-
-        enc.SetKey((byte*)keys[i], (word32)strlen(keys[i]));
-        dec.SetKey((byte*)keys[i], (word32)strlen(keys[i]));
-
-        enc.Process(cipher, test_arc4[i].input_, test_arc4[i].outLen_);
-        dec.Process(plain,  cipher, test_arc4[i].outLen_);
-
-        if (memcmp(plain, test_arc4[i].input_, test_arc4[i].outLen_))
-            return -30 - i;
-
-        if (memcmp(cipher, test_arc4[i].output_, test_arc4[i].outLen_))
-            return -40 - i;
-    }
-
-    return 0;
-}
-
-
-int rabbit_test()
-{
-    byte cipher[16];
-    byte plain[16];
-
-    const char* keys[] = 
-    {           
-        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
-        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
-        "\xAC\xC3\x51\xDC\xF1\x62\xFC\x3B\xFE\x36\x3D\x2E\x29\x13\x28\x91"
-    };
-
-    const char* ivs[] =
-    {
-        "\x00\x00\x00\x00\x00\x00\x00\x00",
-        "\x59\x7E\x26\xC1\x75\xF5\x73\xC3",
-        0
-    };
-
-
-    testVector test_rabbit[] =
-    {
-        testVector("\x00\x00\x00\x00\x00\x00\x00\x00",
-                   "\xED\xB7\x05\x67\x37\x5D\xCD\x7C"),
-        testVector("\x00\x00\x00\x00\x00\x00\x00\x00",
-                   "\x6D\x7D\x01\x22\x92\xCC\xDC\xE0"),
-        testVector("\x00\x00\x00\x00\x00\x00\x00\x00",
-                   "\x9C\x51\xE2\x87\x84\xC3\x7F\xE9")
-    };
-
-
-    int times( sizeof(test_rabbit) / sizeof(testVector) );
-    for (int i = 0; i < times; ++i) {
-        Rabbit::Encryption enc;
-        Rabbit::Decryption dec;
-
-        enc.SetKey((byte*)keys[i], (byte*)ivs[i]);
-        dec.SetKey((byte*)keys[i], (byte*)ivs[i]);
-
-        enc.Process(cipher, test_rabbit[i].input_, test_rabbit[i].outLen_);
-        dec.Process(plain,  cipher, test_rabbit[i].outLen_);
-
-        if (memcmp(plain, test_rabbit[i].input_, test_rabbit[i].outLen_))
-            return -230 - i;
-
-        if (memcmp(cipher, test_rabbit[i].output_, test_rabbit[i].outLen_))
-            return -240 - i;
-    }
-
-    return 0;
-}
-
-
-int hc128_test()
-{
-    byte cipher[16];
-    byte plain[16];
-
-    const char* keys[] = 
-    {           
-        "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
-        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
-        "\x00\x53\xA6\xF9\x4C\x9F\xF2\x45\x98\xEB\x3E\x91\xE4\x37\x8A\xDD",
-        "\x0F\x62\xB5\x08\x5B\xAE\x01\x54\xA7\xFA\x4D\xA0\xF3\x46\x99\xEC"
-    };
-
-    const char* ivs[] =
-    {
-        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
-        "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
-        "\x0D\x74\xDB\x42\xA9\x10\x77\xDE\x45\xAC\x13\x7A\xE1\x48\xAF\x16",
-        "\x28\x8F\xF6\x5D\xC4\x2B\x92\xF9\x60\xC7\x2E\x95\xFC\x63\xCA\x31"
-    };
-
-    testVector test_hc128[] =
-    {
-        testVector("\x00\x00\x00\x00\x00\x00\x00\x00",
-                   "\x37\x86\x02\xB9\x8F\x32\xA7\x48"),
-        testVector("\x00\x00\x00\x00\x00\x00\x00\x00",
-                   "\x33\x7F\x86\x11\xC6\xED\x61\x5F"),
-        testVector("\x00\x00\x00\x00\x00\x00\x00\x00",
-                   "\x2E\x1E\xD1\x2A\x85\x51\xC0\x5A"),
-      testVector("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
-                 "\x1C\xD8\xAE\xDD\xFE\x52\xE2\x17\xE8\x35\xD0\xB7\xE8\x4E\x29")
-    };
-
-    int times( sizeof(test_hc128) / sizeof(testVector) );
-    for (int i = 0; i < times; ++i) {
-        HC128::Encryption enc;
-        HC128::Decryption dec;
-
-        enc.SetKey((byte*)keys[i], (byte*)ivs[i]);
-        dec.SetKey((byte*)keys[i], (byte*)ivs[i]);
-
-        enc.Process(cipher, test_hc128[i].input_, test_hc128[i].outLen_);
-        dec.Process(plain,  cipher, test_hc128[i].outLen_);
-
-        if (memcmp(plain, test_hc128[i].input_, test_hc128[i].outLen_))
-            return -330 - i;
-
-        if (memcmp(cipher, test_hc128[i].output_, test_hc128[i].outLen_))
-            return -340 - i;
-    }
-
-    return 0;
-}
-
-
-int des_test()
-{
-    //ECB mode
-    DES_ECB_Encryption enc;
-    DES_ECB_Decryption dec;
-
-    const int sz = TaoCrypt::DES_BLOCK_SIZE * 3;
-    const byte key[] = { 0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef };
-    const byte iv[] =  { 0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef };
-
-    enc.SetKey(key, sizeof(key));
-    enc.Process(cipher, msg, sz);
-    dec.SetKey(key, sizeof(key));
-    dec.Process(plain, cipher, sz);
-
-    if (memcmp(plain, msg, sz))
-        return -50;
-
-    const byte verify1[] = 
-    {
-        0xf9,0x99,0xb8,0x8e,0xaf,0xea,0x71,0x53,
-        0x6a,0x27,0x17,0x87,0xab,0x88,0x83,0xf9,
-        0x89,0x3d,0x51,0xec,0x4b,0x56,0x3b,0x53
-    };
-
-    if (memcmp(cipher, verify1, sz))
-        return -51;
-
-    // CBC mode
-    DES_CBC_Encryption enc2;
-    DES_CBC_Decryption dec2;
-
-    enc2.SetKey(key, sizeof(key), iv);
-    enc2.Process(cipher, msg, sz);
-    dec2.SetKey(key, sizeof(key), iv);
-    dec2.Process(plain, cipher, sz);
-
-    if (memcmp(plain, msg, sz))
-        return -52;
-
-    const byte verify2[] = 
-    {
-        0x8b,0x7c,0x52,0xb0,0x01,0x2b,0x6c,0xb8,
-        0x4f,0x0f,0xeb,0xf3,0xfb,0x5f,0x86,0x73,
-        0x15,0x85,0xb3,0x22,0x4b,0x86,0x2b,0x4b
-    };
-
-    if (memcmp(cipher, verify2, sz))
-        return -53;
-
-    // EDE3 CBC mode
-    DES_EDE3_CBC_Encryption enc3;
-    DES_EDE3_CBC_Decryption dec3;
-
-    const byte key3[] = 
-    {
-        0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,
-        0xfe,0xde,0xba,0x98,0x76,0x54,0x32,0x10,
-        0x89,0xab,0xcd,0xef,0x01,0x23,0x45,0x67
-    };
-    const byte iv3[] = 
-    {
-        0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef,
-        0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-        0x11,0x21,0x31,0x41,0x51,0x61,0x71,0x81
-        
-    };
-
-    enc3.SetKey(key3, sizeof(key3), iv3);
-    enc3.Process(cipher, msg, sz);
-    dec3.SetKey(key3, sizeof(key3), iv3);
-    dec3.Process(plain, cipher, sz);
-
-    if (memcmp(plain, msg, sz))
-        return -54;
-
-    const byte verify3[] = 
-    {
-        0x08,0x8a,0xae,0xe6,0x9a,0xa9,0xc1,0x13,
-        0x93,0x7d,0xf7,0x3a,0x11,0x56,0x66,0xb3,
-        0x18,0xbc,0xbb,0x6d,0xd2,0xb1,0x16,0xda
-    };
-
-    if (memcmp(cipher, verify3, sz))
-        return -55;
-
-    return 0;
-}
-
-
-int aes_test()
-{
-    AES_CBC_Encryption enc;
-    AES_CBC_Decryption dec;
-    const int bs(TaoCrypt::AES::BLOCK_SIZE);
-
-    byte key[] = "0123456789abcdef   ";  // align
-    byte iv[]  = "1234567890abcdef   ";  // align
-
-    enc.SetKey(key, bs, iv);
-    dec.SetKey(key, bs, iv);
-
-    enc.Process(cipher, msg, bs);
-    dec.Process(plain, cipher, bs);
-
-    if (memcmp(plain, msg, bs))
-        return -60;
-
-    const byte verify[] = 
-    {
-        0x95,0x94,0x92,0x57,0x5f,0x42,0x81,0x53,
-        0x2c,0xcc,0x9d,0x46,0x77,0xa2,0x33,0xcb
-    };
-
-    if (memcmp(cipher, verify, bs))
-        return -61;
-
-    AES_ECB_Encryption enc2;
-    AES_ECB_Decryption dec2;
-
-    enc2.SetKey(key, bs, iv);
-    dec2.SetKey(key, bs, iv);
-
-    enc2.Process(cipher, msg, bs);
-    dec2.Process(plain, cipher, bs);
-
-    if (memcmp(plain, msg, bs))
-        return -62;
-
-    const byte verify2[] = 
-    {
-        0xd0,0xc9,0xd9,0xc9,0x40,0xe8,0x97,0xb6,
-        0xc8,0x8c,0x33,0x3b,0xb5,0x8f,0x85,0xd1
-    };
-
-    if (memcmp(cipher, verify2, bs))
-        return -63;
-
-    return 0;
-}
-
-
-int twofish_test()
-{
-    Twofish_CBC_Encryption enc;
-    Twofish_CBC_Decryption dec;
-    const int bs(TaoCrypt::Twofish::BLOCK_SIZE);
-
-    byte key[] = "0123456789abcdef   ";  // align
-    byte iv[]  = "1234567890abcdef   ";  // align
-
-    enc.SetKey(key, bs, iv);
-    dec.SetKey(key, bs, iv);
-
-    enc.Process(cipher, msg, bs);
-    dec.Process(plain, cipher, bs);
-
-    if (memcmp(plain, msg, bs))
-        return -60;
-
-    const byte verify[] = 
-    {
-        0xD2,0xD7,0x47,0x47,0x4A,0x65,0x4E,0x16,
-        0x21,0x03,0x58,0x79,0x5F,0x02,0x27,0x2C
-    };
-
-    if (memcmp(cipher, verify, bs))
-        return -61;
-
-    Twofish_ECB_Encryption enc2;
-    Twofish_ECB_Decryption dec2;
-
-    enc2.SetKey(key, bs, iv);
-    dec2.SetKey(key, bs, iv);
-
-    enc2.Process(cipher, msg, bs);
-    dec2.Process(plain, cipher, bs);
-
-    if (memcmp(plain, msg, bs))
-        return -62;
-
-    const byte verify2[] = 
-    {
-        0x3B,0x6C,0x63,0x10,0x34,0xAB,0xB2,0x87,
-        0xC4,0xCD,0x6B,0x91,0x14,0xC5,0x3A,0x09
-    };
-
-    if (memcmp(cipher, verify2, bs))
-        return -63;
-
-    return 0;
-}
-
-
-int blowfish_test()
-{
-    Blowfish_CBC_Encryption enc;
-    Blowfish_CBC_Decryption dec;
-    const int bs(TaoCrypt::Blowfish::BLOCK_SIZE);
-
-    byte key[] = "0123456789abcdef   ";  // align
-    byte iv[]  = "1234567890abcdef   ";  // align
-
-    enc.SetKey(key, 16, iv);
-    dec.SetKey(key, 16, iv);
-
-    enc.Process(cipher, msg, bs * 2);
-    dec.Process(plain, cipher, bs * 2);
-
-    if (memcmp(plain, msg, bs))
-        return -60;
-
-    const byte verify[] = 
-    {
-        0x0E,0x26,0xAA,0x29,0x11,0x25,0xAB,0xB5,
-        0xBC,0xD9,0x08,0xC4,0x94,0x6C,0x89,0xA3
-    };
-
-    if (memcmp(cipher, verify, bs))
-        return -61;
-
-    Blowfish_ECB_Encryption enc2;
-    Blowfish_ECB_Decryption dec2;
-
-    enc2.SetKey(key, 16, iv);
-    dec2.SetKey(key, 16, iv);
-
-    enc2.Process(cipher, msg, bs * 2);
-    dec2.Process(plain, cipher, bs * 2);
-
-    if (memcmp(plain, msg, bs))
-        return -62;
-
-    const byte verify2[] = 
-    {
-        0xE7,0x42,0xB9,0x37,0xC8,0x7D,0x93,0xCA,
-        0x8F,0xCE,0x39,0x32,0xDE,0xD7,0xBC,0x5B
-    };
-
-    if (memcmp(cipher, verify2, bs))
-        return -63;
-
-    return 0;
-}
-
-
-int rsa_test()
-{
-    Source source;
-    FileSource("../certs/client-key.der", source);
-    if (source.size() == 0) {
-        FileSource("../../certs/client-key.der", source);  // for testsuite
-        if (source.size() == 0) {
-            FileSource("../../../certs/client-key.der", source); // Debug dir
-            if (source.size() == 0)
-                err_sys("where's your certs dir?", -79);
-        }
-    }
-    RSA_PrivateKey priv(source);
-
-    RSAES_Encryptor enc(priv);
-    byte message[] = "Everyone gets Friday off.";
-    const word32 len = (word32)strlen((char*)message);
-    byte cipher[512];
-    enc.Encrypt(message, len, cipher, rng);
-
-    RSAES_Decryptor dec(priv);
-    byte plain[512];
-    dec.Decrypt(cipher, priv.FixedCiphertextLength(), plain, rng);
-
-    if (memcmp(plain, message, len))
-        return -70;
-
-    dec.SSL_Sign(message, len, cipher, rng);
-    if (!enc.SSL_Verify(message, len, cipher))
-        return -71;
-
-
-    // test decode   
-    Source source2;
-    FileSource("../certs/client-cert.der", source2);
-    if (source2.size() == 0) {
-        FileSource("../../certs/client-cert.der", source2);  // for testsuite
-        if (source2.size() == 0) {
-            FileSource("../../../certs/client-cert.der", source2); // Debug dir
-            if (source2.size() == 0)
-                err_sys("where's your certs dir?", -79);
-        }
-    }
-    CertDecoder cd(source2, true, 0, false, CertDecoder::CA);
-    if (cd.GetError().What())
-        err_sys("cert error", -80);
-    Source source3(cd.GetPublicKey().GetKey(), cd.GetPublicKey().size());
-    RSA_PublicKey pub(source3);
- 
-    return 0;
-}
-
-
-int dh_test()
-{
-    Source source;
-    FileSource("../certs/dh1024.dat", source);
-    if (source.size() == 0) {
-        FileSource("../../certs/dh1024.dat", source);  // for testsuite
-        if (source.size() == 0) {
-            FileSource("../../../certs/dh1024.dat", source); // win32 Debug dir
-            if (source.size() == 0)
-                err_sys("where's your certs dir?", -79);
-        }
-    }
-    HexDecoder hDec(source);
-
-    DH dh(source);
-
-    byte pub[128];
-    byte priv[128];
-    byte agree[128];
-    byte pub2[128];
-    byte priv2[128];
-    byte agree2[128];
-
-    DH dh2(dh);
-
-    dh.GenerateKeyPair(rng, priv, pub);
-    dh2.GenerateKeyPair(rng, priv2, pub2);
-    dh.Agree(agree, priv, pub2); 
-    dh2.Agree(agree2, priv2, pub);
-
-    
-    if ( memcmp(agree, agree2, dh.GetByteLength()) )
-        return -80;
-
-    return 0;
-}
-
-
-int dsa_test()
-{
-    Source source;
-    FileSource("../certs/dsa1024.der", source);
-    if (source.size() == 0) {
-        FileSource("../../certs/dsa1024.der", source);  // for testsuite
-        if (source.size() == 0) {
-            FileSource("../../../certs/dsa1024.der", source); // win32 Debug dir
-            if (source.size() == 0)
-                err_sys("where's your certs dir?", -89);
-        }
-    }
-
-    const char msg[] = "this is the message";
-    byte signature[40];
-
-    DSA_PrivateKey priv(source);
-    DSA_Signer signer(priv);
-
-    SHA sha;
-    byte digest[SHA::DIGEST_SIZE];
-    sha.Update((byte*)msg, sizeof(msg));
-    sha.Final(digest);
-
-    signer.Sign(digest, signature, rng);
-
-    byte encoded[sizeof(signature) + 6];
-    byte decoded[40];
-
-    word32 encSz = EncodeDSA_Signature(signer.GetR(), signer.GetS(), encoded);
-    DecodeDSA_Signature(decoded, encoded, encSz);
-
-    DSA_PublicKey pub(priv);
-    DSA_Verifier verifier(pub);
-
-    if (!verifier.Verify(digest, decoded))
-        return -90;
-
-    if (!verifier.Verify(digest, signature))
-        return -91;
-
-    return 0;
-}
-
-
-int pwdbased_test()
-{
-    PBKDF2_HMAC pb;
-
-    byte derived[32];
-    const byte pwd1[] = "password   ";  // align
-    const byte salt[]  = { 0x12, 0x34, 0x56, 0x78, 0x78, 0x56, 0x34, 0x12 };
-    
-    pb.DeriveKey(derived, 8, pwd1, 8, salt, sizeof(salt), 5);
-
-    const byte verify1[] = { 0xD1, 0xDA, 0xA7, 0x86, 0x15, 0xF2, 0x87, 0xE6 };
-
-    if ( memcmp(derived, verify1, sizeof(verify1)) )
-        return -101;
-
-
-    const byte pwd2[] = "All n-entities must communicate with other n-entities"
-                        " via n-1 entiteeheehees   ";  // align
-
-    pb.DeriveKey(derived, 24, pwd2, 76, salt, sizeof(salt), 500);
-
-    const byte verify2[] = { 0x6A, 0x89, 0x70, 0xBF, 0x68, 0xC9, 0x2C, 0xAE,
-                             0xA8, 0x4A, 0x8D, 0xF2, 0x85, 0x10, 0x85, 0x86,
-                             0x07, 0x12, 0x63, 0x80, 0xCC, 0x47, 0xAB, 0x2D
-    };
-
-    if ( memcmp(derived, verify2, sizeof(verify2)) )
-        return -102;
-
-    return 0;
-}
-
-
-/*
-int pkcs12_test()
-{
-    Source cert;
-    FileSource("../certs/server-cert.pem", cert);
-    if (cert.size() == 0) {
-        FileSource("../../certs/server-cert.pem", cert);  // for testsuite
-        if (cert.size() == 0) {
-            FileSource("../../../certs/server-cert.pem", cert); // Debug dir
-            if (cert.size() == 0)
-                err_sys("where's your certs dir?", -109);
-        }
-    }
-
-    if (GetCert(cert) != 0)
-        return -110;
-
-    Source source;
-    FileSource("../certs/server.p12", source);
-    if (source.size() == 0) {
-        FileSource("../../certs/server.p12", source);  // for testsuite
-        if (source.size() == 0) {
-            FileSource("../../../certs/server.p12", source); // Debug dir
-            if (source.size() == 0)
-                err_sys("where's your certs dir?", -111);
-        }
-    }
-
-    if (GetPKCS_Cert("password", source) != 0)
-        return -112;
-
-    return 0;
-}
-*/
-
diff --git a/mysql-wsrep-5.6/extra/yassl/taocrypt/test/test.dsp b/mysql-wsrep-5.6/extra/yassl/taocrypt/test/test.dsp
deleted file mode 100644
index 93b369de..00000000
--- a/mysql-wsrep-5.6/extra/yassl/taocrypt/test/test.dsp
+++ /dev/null
@@ -1,102 +0,0 @@
-# Microsoft Developer Studio Project File - Name="test" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=test - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "test.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "test.mak" CFG="test - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "test - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "test - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "test - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "test___Win32_Release"
-# PROP BASE Intermediate_Dir "test___Win32_Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /I "../include" /I "../mySTL" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-
-!ELSEIF  "$(CFG)" == "test - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "test___Win32_Debug"
-# PROP BASE Intermediate_Dir "test___Win32_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../include" /I "../mySTL" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-
-!ENDIF 
-
-# Begin Target
-
-# Name "test - Win32 Release"
-# Name "test - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\test.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/mysql-wsrep-5.6/extra/yassl/testsuite/cipher-test.sh b/mysql-wsrep-5.6/extra/yassl/testsuite/cipher-test.sh
deleted file mode 100644
index d3e69146..00000000
--- a/mysql-wsrep-5.6/extra/yassl/testsuite/cipher-test.sh
+++ /dev/null
@@ -1,131 +0,0 @@
-#!/bin/bash
-
-# test all yassl cipher suties 
-# 
-
-
-no_pid=-1
-server_pid=$no_pid
-
-
-do_cleanup() {
-    echo "in cleanup"
-
-    if [[ $server_pid != $no_pid ]]
-    then
-        echo "killing server"
-        kill -9 $server_pid
-    fi
-}
-
-do_trap() {
-    echo "got trap"
-    do_cleanup
-    exit -1
-}
-
-trap do_trap INT TERM
-
-
-# make sure example server and client are built
-if test ! -s ../examples/server/server; then
-    echo "Please build yaSSL first, example server missing"
-    exit -1
-fi
-
-if test ! -s ../examples/client/client; then
-    echo "Please build yaSSL first, example client missing"
-    exit -1
-fi
-
-
-# non DSA suites
-for suite in {"DHE-RSA-AES256-SHA","AES256-SHA","DHE-RSA-AES128-SHA","AES128-SHA","AES256-RMD","AES128-RMD","DES-CBC3-RMD","DHE-RSA-AES256-RMD","DHE-RSA-AES128-RMD","DHE-RSA-DES-CBC3-RMD","RC4-SHA","RC4-MD5","DES-CBC3-SHA","DES-CBC-SHA","EDH-RSA-DES-CBC3-SHA","EDH-RSA-DES-CBC-SHA"}
-do
-  for client_auth in {y,n}
-  do
-    echo "Trying $suite client auth = $client_auth ..."
-
-    if test -e server_ready; then
-        echo -e "removing exisitng server_ready file"
-        rm server_ready
-    fi
-    ../examples/server/server $client_auth &
-    server_pid=$!
-
-    while [ ! -s server_ready ]; do
-        echo -e "waiting for server_ready file..."
-        sleep 0.1
-    done
-
-    ../examples/client/client $suite
-    client_result=$?
-
-    wait $server_pid
-    server_result=$?
-
-    server_pid=$no_pid
-
-    if [[ $client_result != 0 ]]
-    then
-        echo "Client Error"
-        exit $client_result
-    fi
-
-    if [[ $server_result != 0 ]]
-    then
-        echo "Server Error"
-        exit $server_result
-    fi
-
-  done   # end client auth loop
-done  # end non dsa suite list
-echo -e "Non DSA Loop SUCCESS"
-
-
-
-# DSA suites
-for suite in {"DHE-DSS-AES256-SHA","DHE-DSS-AES128-SHA","DHE-DSS-AES256-RMD","DHE-DSS-AES128-RMD","DHE-DSS-DES-CBC3-RMD","EDH-DSS-DES-CBC3-SHA","EDH-DSS-DES-CBC-SHA"}
-do
-  for client_auth in {y,n}
-  do
-    echo "Trying $suite client auth = $client_auth ..."
-
-    if test -e server_ready; then
-        echo -e "removing exisitng server_ready file"
-        rm server_ready
-    fi
-    # d signifies DSA
-    ../examples/server/server $client_auth d &
-    server_pid=$!
-
-    while [ ! -s server_ready ]; do
-        echo -e "waiting for server_ready file..."
-        sleep 0.1
-    done
-
-    ../examples/client/client $suite
-    client_result=$?
-
-    wait $server_pid
-    server_result=$?
-
-    server_pid=$no_pid
-
-    if [[ $client_result != 0 ]]
-    then
-        echo "Client Error"
-        exit $client_result
-    fi
-
-    if [[ $server_result != 0 ]]
-    then
-        echo "Server Error"
-        exit $server_result
-    fi
-
-  done   # end client auth loop
-done  # end dsa suite list
-echo -e "DSA Loop SUCCESS"
-
-exit 0
diff --git a/mysql-wsrep-5.6/extra/yassl/testsuite/input b/mysql-wsrep-5.6/extra/yassl/testsuite/input
deleted file mode 100644
index d16cbc40..00000000
--- a/mysql-wsrep-5.6/extra/yassl/testsuite/input
+++ /dev/null
@@ -1,107 +0,0 @@
-// testsuite.cpp
-
-#include "test.hpp"
-#include "md5.hpp"
-
-typedef unsigned char byte;
-
-void taocrypt_test(void*);
-void file_test(char*, byte*);
-
-void client_test(void*);
-void echoclient_test(void*);
-
-THREAD_RETURN YASSL_API server_test(void*);
-THREAD_RETURN YASSL_API echoserver_test(void*);
-
-int main(int argc, char** argv)
-{
-    func_args args(argc, argv);
-    func_args server_args(args);
-
-    // *** Crypto Test ***
-    taocrypt_test(&args);
-    assert(args.return_code == 0);
-    
-    
-    // *** Simple yaSSL client server test ***
-    THREAD_TYPE thread;
-
-    start_thread(server_test, &server_args, &thread);
-    client_test(&args);
-
-    assert(args.return_code == 0);
-    join_thread(thread);
-    assert(server_args.return_code == 0);
-    
-
-    // *** Echo input yaSSL client server test ***
-    start_thread(echoserver_test, &server_args, &thread);
-    func_args echo_args;
-
-            // setup args
-    echo_args.argc = 3;
-    echo_args.argv = new char*[echo_args.argc];
-    for (int i = 0; i < echo_args.argc; i++)
-        echo_args.argv[i] = new char[32];
-   
-    strcpy(echo_args.argv[0], "echoclient");
-    strcpy(echo_args.argv[1], "input");
-    strcpy(echo_args.argv[2], "output");
-    remove("output");
-
-            // make sure OK
-    echoclient_test(&echo_args);
-    assert(echo_args.return_code == 0);
-
-
-    // *** Echo quit yaSSL client server test ***
-    echo_args.argc = 2;
-    strcpy(echo_args.argv[1], "quit");
-
-    echoclient_test(&echo_args);
-    assert(echo_args.return_code == 0);
-    join_thread(thread);
-    assert(server_args.return_code == 0);
-
-
-            // input output compare
-    byte input[TaoCrypt::MD5::DIGEST_SIZE];
-    byte output[TaoCrypt::MD5::DIGEST_SIZE];
-    file_test("input", input);
-    file_test("output", output);
-    assert(memcmp(input, output, sizeof(input)) == 0);
-
-    printf("\nAll tests passed!\n");
-
-    // cleanup
-    for (int j = echo_args.argc; j >= 0; j--)
-        delete[] echo_args.argv[j];
-    delete[] echo_args.argv;
-
-    return 0;
-}
-
-
-
-void start_thread(THREAD_FUNC fun, func_args* args, THREAD_TYPE* thread)
-{
-#ifdef _WIN32
-    *thread = _beginthreadex(0, 0, fun, args, 0, 0);
-#else
-    pthread_create(thread, 0, fun, args);
-#endif
-}
-
-
-void join_thread(THREAD_TYPE thread)
-{
-#ifdef _WIN32
-    int res = WaitForSingleObject(reinterpret_cast(thread), INFINITE);
-    assert(res == WAIT_OBJECT_0);
-    res = CloseHandle(reinterpret_cast(thread));
-    assert(res);
-#else
-    pthread_join(thread, 0);
-#endif
-}
diff --git a/mysql-wsrep-5.6/extra/yassl/testsuite/make.bat b/mysql-wsrep-5.6/extra/yassl/testsuite/make.bat
deleted file mode 100644
index ef8b9398..00000000
--- a/mysql-wsrep-5.6/extra/yassl/testsuite/make.bat
+++ /dev/null
@@ -1,29 +0,0 @@
-REM Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
-REM 
-REM This program is free software; you can redistribute it and/or modify
-REM it under the terms of the GNU General Public License as published by
-REM the Free Software Foundation; version 2 of the License.
-REM 
-REM This program is distributed in the hope that it will be useful,
-REM but WITHOUT ANY WARRANTY; without even the implied warranty of
-REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-REM GNU General Public License for more details.
-REM 
-REM You should have received a copy of the GNU General Public License
-REM along with this program; if not, write to the Free Software
-REM Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-
-REM quick and dirty build file for testing different MSDEVs
-setlocal 
-
-set myFLAGS= /I../include /I../taocrypt/include /I../taocrypt/mySTL /c /W3 /G6 /O2 /MT /D"WIN32" /D"NO_MAIN_DRIVER"
-
-cl %myFLAGS% testsuite.cpp
-cl %myFLAGS% ../examples/client/client.cpp
-cl %myFLAGS% ../examples/echoclient/echoclient.cpp
-cl %myFLAGS% ../examples/server/server.cpp
-cl %myFLAGS% ../examples/echoserver/echoserver.cpp
-cl %myFLAGS% ../taocrypt/test/test.cpp
-
-link.exe  /out:testsuite.exe ../src/yassl.lib ../taocrypt/src/taocrypt.lib testsuite.obj client.obj server.obj echoclient.obj echoserver.obj test.obj advapi32.lib Ws2_32.lib
-
diff --git a/mysql-wsrep-5.6/extra/yassl/testsuite/quit b/mysql-wsrep-5.6/extra/yassl/testsuite/quit
deleted file mode 100644
index 3db49b3a..00000000
--- a/mysql-wsrep-5.6/extra/yassl/testsuite/quit
+++ /dev/null
@@ -1,2 +0,0 @@
-quit
-
diff --git a/mysql-wsrep-5.6/extra/yassl/testsuite/test.hpp b/mysql-wsrep-5.6/extra/yassl/testsuite/test.hpp
deleted file mode 100644
index 92d41706..00000000
--- a/mysql-wsrep-5.6/extra/yassl/testsuite/test.hpp
+++ /dev/null
@@ -1,550 +0,0 @@
-/*
-   Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-// test.hpp
-
-#ifndef yaSSL_TEST_HPP
-#define yaSSL_TEST_HPP
-
-#include "runtime.hpp"
-#include "error.hpp"
-#include 
-#include 
-#include 
-
-//#define NON_BLOCKING  // test server and client example (not echos)
-
-#ifdef _WIN32
-    #include 
-    #include 
-    #ifdef TEST_IPV6            // don't require newer SDK for IPV4
-	    #include 
-        #include 
-    #endif
-    #define SOCKET_T unsigned int
-#else
-    #include 
-    #include 
-    #include 
-    #include 
-    #include 
-    #include 
-    #include 
-    #include 
-    #ifdef TEST_IPV6
-        #include 
-    #endif
-    #include 
-#ifdef NON_BLOCKING
-    #include 
-#endif
-    #define SOCKET_T int
-#endif /* _WIN32 */
-#include "openssl/ssl.h"   /* openssl compatibility test */
-
-
-#ifdef _MSC_VER
-    // disable conversion warning
-    // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy
-    #pragma warning(disable:4244 4996)
-#endif
-
-
-#if !defined(_SOCKLEN_T) && (defined(_WIN32) || defined(__APPLE__))
-    typedef int socklen_t;
-#endif
-
-
-// Check type of third arg to accept
-#if defined(__hpux)
-// HPUX uses int* for third parameter to accept
-    typedef int*       ACCEPT_THIRD_T;
-#else
-    typedef socklen_t* ACCEPT_THIRD_T;
-#endif
-
-
-#ifdef TEST_IPV6
-    typedef sockaddr_in6 SOCKADDR_IN_T;
-    #define AF_INET_V    AF_INET6
-#else
-    typedef sockaddr_in  SOCKADDR_IN_T;
-    #define AF_INET_V    AF_INET
-#endif
-   
-
-// Check if _POSIX_THREADS should be forced
-#if !defined(_POSIX_THREADS) && defined(__hpux)
-// HPUX does not define _POSIX_THREADS as it's not _fully_ implemented
-#define _POSIX_THREADS
-#endif
-
-
-#ifndef _POSIX_THREADS
-    typedef unsigned int  THREAD_RETURN;
-    typedef HANDLE        THREAD_TYPE;
-    #define YASSL_API __stdcall
-#else
-    typedef void*         THREAD_RETURN;
-    typedef pthread_t     THREAD_TYPE;
-    #define YASSL_API 
-#endif
-
-
-struct tcp_ready {
-#ifdef _POSIX_THREADS
-    pthread_mutex_t mutex_;
-    pthread_cond_t  cond_;
-    bool            ready_;   // predicate
-
-    tcp_ready() : ready_(false)
-    {
-        pthread_mutex_init(&mutex_, 0);
-        pthread_cond_init(&cond_, 0);
-    }
-
-    ~tcp_ready()
-    {
-        pthread_mutex_destroy(&mutex_);
-        pthread_cond_destroy(&cond_);
-    }
-#endif
-};    
-
-
-struct func_args {
-    int    argc;
-    char** argv;
-    int    return_code;
-    const char* file_ready;
-    tcp_ready* signal_;
-
-    func_args(int c = 0, char** v = 0) : argc(c), argv(v), file_ready(0) {}
-
-    void SetSignal(tcp_ready* p) { signal_ = p; }
-};
-
-typedef THREAD_RETURN YASSL_API THREAD_FUNC(void*);
-
-void start_thread(THREAD_FUNC, func_args*, THREAD_TYPE*);
-void join_thread(THREAD_TYPE);
-
-// yaSSL
-const char* const    yasslIP      = "127.0.0.1";
-const unsigned short yasslPort    =  11111;
-const unsigned short proxyPort    =  12345;
-
-
-// client
-const char* const cert = "../certs/client-cert.pem";
-const char* const key  = "../certs/client-key.pem";
-
-const char* const certSuite = "../../certs/client-cert.pem";
-const char* const keySuite  = "../../certs/client-key.pem";
-
-const char* const certDebug = "../../../certs/client-cert.pem";
-const char* const keyDebug  = "../../../certs/client-key.pem";
-
-
-// server
-const char* const svrCert = "../certs/server-cert.pem";
-const char* const svrKey  = "../certs/server-key.pem";
-
-const char* const svrCert2 = "../../certs/server-cert.pem";
-const char* const svrKey2  = "../../certs/server-key.pem";
-
-const char* const svrCert3 = "../../../certs/server-cert.pem";
-const char* const svrKey3  = "../../../certs/server-key.pem";
-
-
-// server dsa
-const char* const dsaCert = "../certs/dsa-cert.pem";
-const char* const dsaKey  = "../certs/dsa1024.der";
-
-const char* const dsaCert2 = "../../certs/dsa-cert.pem";
-const char* const dsaKey2  = "../../certs/dsa1024.der";
-
-const char* const dsaCert3 = "../../../certs/dsa-cert.pem";
-const char* const dsaKey3  = "../../../certs/dsa1024.der";
-
-
-// CA 
-const char* const caCert  = "../certs/ca-cert.pem";
-const char* const caCert2 = "../../certs/ca-cert.pem";
-const char* const caCert3 = "../../../certs/ca-cert.pem";
-
-
-using namespace yaSSL;
-
-
-inline void err_sys(const char* msg)
-{
-    printf("yassl error: %s\n", msg);
-    exit(EXIT_FAILURE);
-}
-
-
-extern "C" {
-  static int PasswordCallBack(char*, int, int, void*);
-}
-
-
-static int PasswordCallBack(char* passwd, int sz, int rw, void* userdata)
-{
-    strncpy(passwd, "yassl123", sz);
-    return 8;
-}
-
-
-inline void store_ca(SSL_CTX* ctx)
-{
-    // To allow testing from serveral dirs
-    if (SSL_CTX_load_verify_locations(ctx, caCert, 0) != SSL_SUCCESS)
-        if (SSL_CTX_load_verify_locations(ctx, caCert2, 0) != SSL_SUCCESS)
-            if (SSL_CTX_load_verify_locations(ctx, caCert3, 0) != SSL_SUCCESS)
-                err_sys("failed to use certificate: certs/cacert.pem");
-
-    // load client CA for server verify
-    if (SSL_CTX_load_verify_locations(ctx, cert, 0) != SSL_SUCCESS)
-        if (SSL_CTX_load_verify_locations(ctx, certSuite, 0) != SSL_SUCCESS)
-            if (SSL_CTX_load_verify_locations(ctx, certDebug,0) != SSL_SUCCESS)
-                err_sys("failed to use certificate: certs/client-cert.pem");
-
-    // DSA cert 
-    if (SSL_CTX_load_verify_locations(ctx, dsaCert, 0) != SSL_SUCCESS)
-        if (SSL_CTX_load_verify_locations(ctx, dsaCert2, 0) != SSL_SUCCESS)
-            if (SSL_CTX_load_verify_locations(ctx, dsaCert3, 0) != SSL_SUCCESS)
-                err_sys("failed to use certificate: certs/dsa-cert.pem");
-
-}
-
-
-// client
-inline void set_certs(SSL_CTX* ctx)
-{
-    store_ca(ctx);
-    SSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
-
-    // To allow testing from serveral dirs
-    if (SSL_CTX_use_certificate_file(ctx, cert, SSL_FILETYPE_PEM)
-        != SSL_SUCCESS)
-        if (SSL_CTX_use_certificate_file(ctx, certSuite, SSL_FILETYPE_PEM)
-            != SSL_SUCCESS)
-            if (SSL_CTX_use_certificate_file(ctx, certDebug, SSL_FILETYPE_PEM)
-                != SSL_SUCCESS)
-                err_sys("failed to use certificate: certs/client-cert.pem");
-    
-    // To allow testing from several dirs
-    if (SSL_CTX_use_PrivateKey_file(ctx, key, SSL_FILETYPE_PEM)
-         != SSL_SUCCESS) 
-         if (SSL_CTX_use_PrivateKey_file(ctx, keySuite, SSL_FILETYPE_PEM)
-            != SSL_SUCCESS) 
-                if (SSL_CTX_use_PrivateKey_file(ctx,keyDebug,SSL_FILETYPE_PEM)
-                    != SSL_SUCCESS) 
-                    err_sys("failed to use key file: certs/client-key.pem");
-}
-
-
-// server
-inline void set_serverCerts(SSL_CTX* ctx)
-{
-    store_ca(ctx);
-    SSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
-
-    // To allow testing from serveral dirs
-    if (SSL_CTX_use_certificate_file(ctx, svrCert, SSL_FILETYPE_PEM)
-        != SSL_SUCCESS)
-        if (SSL_CTX_use_certificate_file(ctx, svrCert2, SSL_FILETYPE_PEM)
-            != SSL_SUCCESS)
-            if (SSL_CTX_use_certificate_file(ctx, svrCert3, SSL_FILETYPE_PEM)
-                != SSL_SUCCESS)
-                err_sys("failed to use certificate: certs/server-cert.pem");
-    
-    // To allow testing from several dirs
-    if (SSL_CTX_use_PrivateKey_file(ctx, svrKey, SSL_FILETYPE_PEM)
-         != SSL_SUCCESS) 
-         if (SSL_CTX_use_PrivateKey_file(ctx, svrKey2, SSL_FILETYPE_PEM)
-            != SSL_SUCCESS) 
-                if (SSL_CTX_use_PrivateKey_file(ctx, svrKey3,SSL_FILETYPE_PEM)
-                    != SSL_SUCCESS) 
-                    err_sys("failed to use key file: certs/server-key.pem");
-}
-
-
-// dsa server
-inline void set_dsaServerCerts(SSL_CTX* ctx)
-{
-    store_ca(ctx);
-
-    // To allow testing from serveral dirs
-    if (SSL_CTX_use_certificate_file(ctx, dsaCert, SSL_FILETYPE_PEM)
-        != SSL_SUCCESS)
-        if (SSL_CTX_use_certificate_file(ctx, dsaCert2, SSL_FILETYPE_PEM)
-            != SSL_SUCCESS)
-            if (SSL_CTX_use_certificate_file(ctx, dsaCert3, SSL_FILETYPE_PEM)
-                != SSL_SUCCESS)
-                err_sys("failed to use certificate: certs/dsa-cert.pem");
-    
-    // To allow testing from several dirs
-    if (SSL_CTX_use_PrivateKey_file(ctx, dsaKey, SSL_FILETYPE_ASN1)
-         != SSL_SUCCESS) 
-         if (SSL_CTX_use_PrivateKey_file(ctx, dsaKey2, SSL_FILETYPE_ASN1)
-            != SSL_SUCCESS) 
-                if (SSL_CTX_use_PrivateKey_file(ctx, dsaKey3,SSL_FILETYPE_ASN1)
-                    != SSL_SUCCESS) 
-                    err_sys("failed to use key file: certs/dsa1024.der");
-}
-
-
-inline void set_args(int& argc, char**& argv, func_args& args)
-{
-    argc = args.argc;
-    argv = args.argv;
-    args.return_code = -1; // error state
-}
-
-
-inline void set_file_ready(const char* name, func_args& args)
-{
-    args.file_ready = name;
-}
-
-
-inline void tcp_set_nonblocking(SOCKET_T& sockfd)
-{
-#ifdef NON_BLOCKING
-    #ifdef _WIN32
-        unsigned long blocking = 1;
-        int ret = ioctlsocket(sockfd, FIONBIO, &blocking);
-    #else
-        int flags = fcntl(sockfd, F_GETFL, 0);
-        int ret = fcntl(sockfd, F_SETFL, flags | O_NONBLOCK);
-    #endif
-#endif
-}
-
-
-inline void tcp_socket(SOCKET_T& sockfd, SOCKADDR_IN_T& addr)
-{
-    sockfd = socket(AF_INET_V, SOCK_STREAM, 0);
-    memset(&addr, 0, sizeof(addr));
-
-#ifdef TEST_IPV6
-    addr.sin6_family = AF_INET_V;
-    addr.sin6_port = htons(yasslPort);
-    addr.sin6_addr = in6addr_loopback;
-
-    /* // for external testing later 
-    addrinfo hints;
-    memset(&hints, 0, sizeof(hints));
-    hints.ai_family   = AF_INET_V;
-    hints.ai_socktype = SOCK_STREAM;
-    hints.ai_flags    = AI_PASSIVE;
-
-    getaddrinfo(yasslIP6, yasslPortStr, &hints, info);
-    // then use info connect(sockfd, info->ai_addr, info->ai_addrlen)
-
-    if (*info == 0)
-        err_sys("getaddrinfo failed");
-        */   // end external testing later
-#else
-    addr.sin_family = AF_INET_V;
-#ifdef YASSL_PROXY_PORT
-    addr.sin_port = htons(proxyPort);
-#else
-    addr.sin_port = htons(yasslPort);
-#endif
-    addr.sin_addr.s_addr = inet_addr(yasslIP);
-#endif
-
-}
-
-
-inline void tcp_close(SOCKET_T& sockfd)
-{
-#ifdef _WIN32
-    closesocket(sockfd);
-#else
-    close(sockfd);
-#endif
-    sockfd = (SOCKET_T) -1;
-}
-
-
-inline void tcp_connect(SOCKET_T& sockfd)
-{
-    SOCKADDR_IN_T addr;
-    tcp_socket(sockfd, addr);
-
-    if (connect(sockfd, (const sockaddr*)&addr, sizeof(addr)) != 0) {
-        tcp_close(sockfd);
-        err_sys("tcp connect failed");
-    }
-}
-
-
-inline void tcp_listen(SOCKET_T& sockfd)
-{
-    SOCKADDR_IN_T addr;
-    tcp_socket(sockfd, addr);
-
-#ifndef _WIN32
-    int       on  = 1;
-    socklen_t len = sizeof(on);
-    setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &on, len);
-#endif
-
-    if (bind(sockfd, (const sockaddr*)&addr, sizeof(addr)) != 0) {
-        tcp_close(sockfd);
-        err_sys("tcp bind failed");
-    }
-    if (listen(sockfd, 3) != 0) {
-        tcp_close(sockfd);
-        err_sys("tcp listen failed");
-    }
-}
-
-
-inline void create_ready_file(func_args& args)
-{
-    FILE* f = fopen(args.file_ready, "w+");
-
-    if (f) {
-        fputs("ready", f);
-        fclose(f);
-    }
-}
-
-
-inline void tcp_accept(SOCKET_T& sockfd, SOCKET_T& clientfd, func_args& args)
-{
-    tcp_listen(sockfd);
-
-    SOCKADDR_IN_T client;
-    socklen_t client_len = sizeof(client);
-
-#if defined(_POSIX_THREADS) && defined(NO_MAIN_DRIVER)
-    // signal ready to tcp_accept
-    tcp_ready& ready = *args.signal_;
-    pthread_mutex_lock(&ready.mutex_);
-    ready.ready_ = true;
-    pthread_cond_signal(&ready.cond_);
-    pthread_mutex_unlock(&ready.mutex_);
-#endif
-
-    if (args.file_ready)
-        create_ready_file(args);
-
-    clientfd = accept(sockfd, (sockaddr*)&client, (ACCEPT_THIRD_T)&client_len);
-
-    if (clientfd == (SOCKET_T) -1) {
-        tcp_close(sockfd);
-        err_sys("tcp accept failed");
-    }
-
-#ifdef NON_BLOCKING
-    tcp_set_nonblocking(clientfd);
-#endif
-}
-
-
-inline void showPeer(SSL* ssl)
-{
-    X509* peer = SSL_get_peer_certificate(ssl);
-    if (peer) {
-        char* issuer  = X509_NAME_oneline(X509_get_issuer_name(peer), 0, 0);
-        char* subject = X509_NAME_oneline(X509_get_subject_name(peer), 0, 0);
-        X509_NAME_ENTRY* se = NULL;
-        ASN1_STRING*     sd = NULL;
-        char*            subCN = NULL;
-        X509_NAME* sub = X509_get_subject_name(peer);
-        int lastpos = -1;
-        if (sub)
-            lastpos = X509_NAME_get_index_by_NID(sub, NID_commonName, lastpos);
-        if (lastpos >= 0) {
-            se = X509_NAME_get_entry(sub, lastpos);
-            if (se)
-                sd = X509_NAME_ENTRY_get_data(se);
-            if (sd)
-                subCN = (char*)ASN1_STRING_data(sd);
-        }
-
-        printf("peer's cert info:\n issuer : %s\n subject: %s\n"
-               " subject cn: %s\n", issuer, subject, subCN);
-
-        free(subject);
-        free(issuer);
-    }
-    else
-        printf("peer has no cert!\n");
-}
-
-
-
-inline DH* set_tmpDH(SSL_CTX* ctx)
-{
-    static unsigned char dh1024_p[] =
-    {
-        0xE6, 0x96, 0x9D, 0x3D, 0x49, 0x5B, 0xE3, 0x2C, 0x7C, 0xF1, 0x80, 0xC3,
-        0xBD, 0xD4, 0x79, 0x8E, 0x91, 0xB7, 0x81, 0x82, 0x51, 0xBB, 0x05, 0x5E,
-        0x2A, 0x20, 0x64, 0x90, 0x4A, 0x79, 0xA7, 0x70, 0xFA, 0x15, 0xA2, 0x59,
-        0xCB, 0xD5, 0x23, 0xA6, 0xA6, 0xEF, 0x09, 0xC4, 0x30, 0x48, 0xD5, 0xA2,
-        0x2F, 0x97, 0x1F, 0x3C, 0x20, 0x12, 0x9B, 0x48, 0x00, 0x0E, 0x6E, 0xDD,
-        0x06, 0x1C, 0xBC, 0x05, 0x3E, 0x37, 0x1D, 0x79, 0x4E, 0x53, 0x27, 0xDF,
-        0x61, 0x1E, 0xBB, 0xBE, 0x1B, 0xAC, 0x9B, 0x5C, 0x60, 0x44, 0xCF, 0x02,
-        0x3D, 0x76, 0xE0, 0x5E, 0xEA, 0x9B, 0xAD, 0x99, 0x1B, 0x13, 0xA6, 0x3C,
-        0x97, 0x4E, 0x9E, 0xF1, 0x83, 0x9E, 0xB5, 0xDB, 0x12, 0x51, 0x36, 0xF7,
-        0x26, 0x2E, 0x56, 0xA8, 0x87, 0x15, 0x38, 0xDF, 0xD8, 0x23, 0xC6, 0x50,
-        0x50, 0x85, 0xE2, 0x1F, 0x0D, 0xD5, 0xC8, 0x6B,
-    };
-
-    static unsigned char dh1024_g[] =
-    {
-      0x02,
-    };
-
-    DH* dh;
-    if ( (dh = DH_new()) ) {
-        dh->p = BN_bin2bn(dh1024_p, sizeof(dh1024_p), 0);
-        dh->g = BN_bin2bn(dh1024_g, sizeof(dh1024_g), 0);
-    }
-    if (!dh->p || !dh->g) {
-        DH_free(dh);
-        dh = 0;
-    }
-    SSL_CTX_set_tmp_dh(ctx, dh);
-    return dh;
-}
-
-
-inline int verify_callback(int preverify_ok, X509_STORE_CTX* ctx)
-{
-    X509* err_cert = X509_STORE_CTX_get_current_cert(ctx);
-    int   err      = X509_STORE_CTX_get_error(ctx);
-    int   depth    = X509_STORE_CTX_get_error_depth(ctx);
-
-    // test allow self signed
-    if (err_cert && depth == 0 && err == TaoCrypt::SIG_OTHER_E)
-        return 1;
-
-    return 0;
-}
-
-
-#endif // yaSSL_TEST_HPP
-
diff --git a/mysql-wsrep-5.6/extra/yassl/testsuite/testsuite.cpp b/mysql-wsrep-5.6/extra/yassl/testsuite/testsuite.cpp
deleted file mode 100644
index 7973a370..00000000
--- a/mysql-wsrep-5.6/extra/yassl/testsuite/testsuite.cpp
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
-   Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING. If not, write to the
-   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-   MA  02110-1301  USA.
-*/
-
-// testsuite.cpp
-
-#include "test.hpp"
-#include "md5.hpp"
-
-
-typedef unsigned char byte;
-
-void taocrypt_test(void*);
-void file_test(const char*, byte*);
-
-void client_test(void*);
-void echoclient_test(void*);
-
-THREAD_RETURN YASSL_API server_test(void*);
-THREAD_RETURN YASSL_API echoserver_test(void*);
-
-void wait_tcp_ready(func_args&);
-
-
-
-int main(int argc, char** argv)
-{
-    func_args args(argc, argv);
-    func_args server_args(argc, argv);
-
-    // *** Crypto Test ***
-    taocrypt_test(&args);
-    assert(args.return_code == 0);
-    
-    
-    // *** Simple yaSSL client server test ***
-    tcp_ready ready;
-    server_args.SetSignal(&ready);
-
-    THREAD_TYPE serverThread;
-    start_thread(server_test, &server_args, &serverThread);
-    wait_tcp_ready(server_args);
-
-    client_test(&args);
-    assert(args.return_code == 0);
-    join_thread(serverThread);
-    assert(server_args.return_code == 0);
-    
-
-    // *** Echo input yaSSL client server test ***
-    start_thread(echoserver_test, &server_args, &serverThread);
-    wait_tcp_ready(server_args);
-    func_args echo_args;
-
-            // setup args
-    const int numArgs = 3;
-    echo_args.argc = numArgs;
-    char* myArgv[numArgs];
-
-    char argc0[32];
-    char argc1[32];
-    char argc2[32];
-
-    myArgv[0] = argc0;
-    myArgv[1] = argc1;
-    myArgv[2] = argc2;
-
-    echo_args.argv = myArgv;
-   
-    strcpy(echo_args.argv[0], "echoclient");
-    strcpy(echo_args.argv[1], "input");
-    strcpy(echo_args.argv[2], "output");
-    remove("output");
-
-            // make sure OK
-    echoclient_test(&echo_args);
-    assert(echo_args.return_code == 0);
-
-
-    // *** Echo quit yaSSL client server test ***
-    echo_args.argc = 2;
-    strcpy(echo_args.argv[1], "quit");
-
-    echoclient_test(&echo_args);
-    assert(echo_args.return_code == 0);
-    join_thread(serverThread);
-    assert(server_args.return_code == 0);
-
-
-            // input output compare
-    byte input[TaoCrypt::MD5::DIGEST_SIZE];
-    byte output[TaoCrypt::MD5::DIGEST_SIZE];
-    file_test("input", input);
-    file_test("output", output);
-    assert(memcmp(input, output, sizeof(input)) == 0);
-
-    printf("\nAll tests passed!\n");
-    yaSSL_CleanUp();
-
-    return 0;
-}
-
-
-
-void start_thread(THREAD_FUNC fun, func_args* args, THREAD_TYPE* thread)
-{
-#ifndef _POSIX_THREADS
-    *thread = (HANDLE)_beginthreadex(0, 0, fun, args, 0, 0);
-#else
-    pthread_create(thread, 0, fun, args);
-#endif
-}
-
-
-void join_thread(THREAD_TYPE thread)
-{
-#ifndef _POSIX_THREADS
-    int res = WaitForSingleObject(thread, INFINITE);
-    assert(res == WAIT_OBJECT_0);
-    res = CloseHandle(thread);
-    assert(res);
-#else
-    pthread_join(thread, 0);
-#endif
-}
-
-
-
-void wait_tcp_ready(func_args& args)
-{
-#ifdef _POSIX_THREADS
-    pthread_mutex_lock(&args.signal_->mutex_);
-    
-    if (!args.signal_->ready_)
-        pthread_cond_wait(&args.signal_->cond_, &args.signal_->mutex_);
-    args.signal_->ready_ = false; // reset
-
-    pthread_mutex_unlock(&args.signal_->mutex_);
-#endif
-}
-
-
-int test_openSSL_des()
-{
-    /* test des encrypt/decrypt */
-    char data[] = "this is my data ";
-    int  dataSz = (int)strlen(data);
-    DES_key_schedule key[3];
-    byte iv[8];
-    EVP_BytesToKey(EVP_des_ede3_cbc(), EVP_md5(), NULL, (byte*)data, dataSz, 1,
-                   (byte*)key, iv);
-
-    byte cipher[16];
-    DES_ede3_cbc_encrypt((byte*)data, cipher, dataSz, &key[0], &key[1],
-                         &key[2], &iv, true);
-    byte plain[16];
-    DES_ede3_cbc_encrypt(cipher, plain, 16, &key[0], &key[1], &key[2],
-                         &iv, false);
-    return 0;
-}
diff --git a/mysql-wsrep-5.6/extra/yassl/testsuite/testsuite.dsp b/mysql-wsrep-5.6/extra/yassl/testsuite/testsuite.dsp
deleted file mode 100644
index 2a7f5a77..00000000
--- a/mysql-wsrep-5.6/extra/yassl/testsuite/testsuite.dsp
+++ /dev/null
@@ -1,127 +0,0 @@
-# Microsoft Developer Studio Project File - Name="testsuite" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=testsuite - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "testsuite.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "testsuite.mak" CFG="testsuite - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "testsuite - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "testsuite - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "testsuite - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /O2 /I "../taocrypt/include" /I "../include" /I "../taocrypt/mySTL" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "NO_MAIN_DRIVER" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"LIBC"
-# SUBTRACT LINK32 /nodefaultlib
-
-!ELSEIF  "$(CFG)" == "testsuite - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /ZI /Od /I "../taocrypt/include" /I "../include" /I "../taocrypt/mySTL" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "NO_MAIN_DRIVER" /FR /YX /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /nodefaultlib:"LIBCD" /pdbtype:sept
-
-!ENDIF 
-
-# Begin Target
-
-# Name "testsuite - Win32 Release"
-# Name "testsuite - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\examples\client\client.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\examples\echoclient\echoclient.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\examples\echoserver\echoserver.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\examples\server\server.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\taocrypt\test\test.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\testsuite.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\test.hpp
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/mysql-wsrep-5.6/extra/yassl/yassl.dsp b/mysql-wsrep-5.6/extra/yassl/yassl.dsp
deleted file mode 100644
index f9b1699e..00000000
--- a/mysql-wsrep-5.6/extra/yassl/yassl.dsp
+++ /dev/null
@@ -1,192 +0,0 @@
-# Microsoft Developer Studio Project File - Name="yassl" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=yassl - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "yassl.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "yassl.mak" CFG="yassl - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "yassl - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "yassl - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "yassl - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "YASSL_PREFIX" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /O2 /I "include" /I "taocrypt\include" /I "taocrypt\mySTL" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "YASSL_PREFIX" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-
-!ELSEIF  "$(CFG)" == "yassl - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "YASSL_PREFIX" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /ZI /Od /I "include" /I "taocrypt\include" /I "taocrypt\mySTL" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "YASSL_PREFIX" /FR /YX /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-
-!ENDIF 
-
-# Begin Target
-
-# Name "yassl - Win32 Release"
-# Name "yassl - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\src\buffer.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\cert_wrapper.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\crypto_wrapper.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\handshake.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\lock.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\log.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\socket_wrapper.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\ssl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\timer.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\yassl_error.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\yassl_imp.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\yassl_int.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\include\buffer.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\cert_wrapper.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\crypto_wrapper.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\factory.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\handshake.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\lock.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\log.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\socket_wrapper.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\timer.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\yassl_error.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\yassl_imp.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\yassl_int.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\include\yassl_types.hpp
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/mysql-wsrep-5.6/extra/yassl/yassl.dsw b/mysql-wsrep-5.6/extra/yassl/yassl.dsw
deleted file mode 100644
index 8da089fc..00000000
--- a/mysql-wsrep-5.6/extra/yassl/yassl.dsw
+++ /dev/null
@@ -1,149 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "benchmark"=.\taocrypt\benchmark\benchmark.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name taocrypt
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "client"=.\examples\client\client.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name yassl
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "echoclient"=.\examples\echoclient\echoclient.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name yassl
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "echoserver"=.\examples\echoserver\echoserver.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name yassl
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "server"=.\examples\server\server.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name yassl
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "taocrypt"=.\taocrypt\taocrypt.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "test"=.\taocrypt\test\test.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name taocrypt
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "testsuite"=.\testsuite\testsuite.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name yassl
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "yassl"=.\yassl.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name taocrypt
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/mysql-wsrep-5.6/include/CMakeLists.txt b/mysql-wsrep-5.6/include/CMakeLists.txt
index 7c4a00d9..fad3ab9a 100644
--- a/mysql-wsrep-5.6/include/CMakeLists.txt
+++ b/mysql-wsrep-5.6/include/CMakeLists.txt
@@ -1,14 +1,21 @@
 # Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
diff --git a/mysql-wsrep-5.6/include/atomic/gcc_builtins.h b/mysql-wsrep-5.6/include/atomic/gcc_builtins.h
index fb6a537d..414f1ff8 100644
--- a/mysql-wsrep-5.6/include/atomic/gcc_builtins.h
+++ b/mysql-wsrep-5.6/include/atomic/gcc_builtins.h
@@ -4,13 +4,20 @@
 /* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/atomic/generic-msvc.h b/mysql-wsrep-5.6/include/atomic/generic-msvc.h
index 6c5272c9..1484570a 100644
--- a/mysql-wsrep-5.6/include/atomic/generic-msvc.h
+++ b/mysql-wsrep-5.6/include/atomic/generic-msvc.h
@@ -2,13 +2,20 @@
    Use is subject to license terms.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/atomic/nolock.h b/mysql-wsrep-5.6/include/atomic/nolock.h
index 23a5b7af..eefdfd9f 100644
--- a/mysql-wsrep-5.6/include/atomic/nolock.h
+++ b/mysql-wsrep-5.6/include/atomic/nolock.h
@@ -5,13 +5,20 @@
    reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/atomic/rwlock.h b/mysql-wsrep-5.6/include/atomic/rwlock.h
index 23f14eda..96a66c8c 100644
--- a/mysql-wsrep-5.6/include/atomic/rwlock.h
+++ b/mysql-wsrep-5.6/include/atomic/rwlock.h
@@ -4,13 +4,20 @@
 /* Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/atomic/solaris.h b/mysql-wsrep-5.6/include/atomic/solaris.h
index 7b6f0561..409fa1dc 100644
--- a/mysql-wsrep-5.6/include/atomic/solaris.h
+++ b/mysql-wsrep-5.6/include/atomic/solaris.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/base64.h b/mysql-wsrep-5.6/include/base64.h
index 64068080..f83bfe6b 100644
--- a/mysql-wsrep-5.6/include/base64.h
+++ b/mysql-wsrep-5.6/include/base64.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/big_endian.h b/mysql-wsrep-5.6/include/big_endian.h
index bee20fd2..59dde9ac 100644
--- a/mysql-wsrep-5.6/include/big_endian.h
+++ b/mysql-wsrep-5.6/include/big_endian.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/byte_order_generic.h b/mysql-wsrep-5.6/include/byte_order_generic.h
index fdbad4b0..86e0cb5f 100644
--- a/mysql-wsrep-5.6/include/byte_order_generic.h
+++ b/mysql-wsrep-5.6/include/byte_order_generic.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/byte_order_generic_x86.h b/mysql-wsrep-5.6/include/byte_order_generic_x86.h
index d69541e4..e61c747e 100644
--- a/mysql-wsrep-5.6/include/byte_order_generic_x86.h
+++ b/mysql-wsrep-5.6/include/byte_order_generic_x86.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/byte_order_generic_x86_64.h b/mysql-wsrep-5.6/include/byte_order_generic_x86_64.h
index c99c60c3..e65791c5 100644
--- a/mysql-wsrep-5.6/include/byte_order_generic_x86_64.h
+++ b/mysql-wsrep-5.6/include/byte_order_generic_x86_64.h
@@ -1,13 +1,25 @@
 /* Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/crypt_genhash_impl.h b/mysql-wsrep-5.6/include/crypt_genhash_impl.h
index 0e629b44..4c9b59ed 100644
--- a/mysql-wsrep-5.6/include/crypt_genhash_impl.h
+++ b/mysql-wsrep-5.6/include/crypt_genhash_impl.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/decimal.h b/mysql-wsrep-5.6/include/decimal.h
index 07f408c7..99d032d8 100644
--- a/mysql-wsrep-5.6/include/decimal.h
+++ b/mysql-wsrep-5.6/include/decimal.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/errmsg.h b/mysql-wsrep-5.6/include/errmsg.h
index 4b585774..6424352b 100644
--- a/mysql-wsrep-5.6/include/errmsg.h
+++ b/mysql-wsrep-5.6/include/errmsg.h
@@ -4,13 +4,20 @@
 /* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/ft_global.h b/mysql-wsrep-5.6/include/ft_global.h
index 1ff70cef..c6937c31 100644
--- a/mysql-wsrep-5.6/include/ft_global.h
+++ b/mysql-wsrep-5.6/include/ft_global.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/hash.h b/mysql-wsrep-5.6/include/hash.h
index 440d85b2..80642870 100644
--- a/mysql-wsrep-5.6/include/hash.h
+++ b/mysql-wsrep-5.6/include/hash.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/heap.h b/mysql-wsrep-5.6/include/heap.h
index 02cb5400..1046a82c 100644
--- a/mysql-wsrep-5.6/include/heap.h
+++ b/mysql-wsrep-5.6/include/heap.h
@@ -2,13 +2,20 @@
    Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/keycache.h b/mysql-wsrep-5.6/include/keycache.h
index 3184f980..642f6dd2 100644
--- a/mysql-wsrep-5.6/include/keycache.h
+++ b/mysql-wsrep-5.6/include/keycache.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/lf.h b/mysql-wsrep-5.6/include/lf.h
index 958dedf0..d8a8a254 100644
--- a/mysql-wsrep-5.6/include/lf.h
+++ b/mysql-wsrep-5.6/include/lf.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/little_endian.h b/mysql-wsrep-5.6/include/little_endian.h
index 0787423e..ebce0f33 100644
--- a/mysql-wsrep-5.6/include/little_endian.h
+++ b/mysql-wsrep-5.6/include/little_endian.h
@@ -1,13 +1,25 @@
 /* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/m_ctype.h b/mysql-wsrep-5.6/include/m_ctype.h
index 01ff8da7..adf44129 100644
--- a/mysql-wsrep-5.6/include/m_ctype.h
+++ b/mysql-wsrep-5.6/include/m_ctype.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/m_string.h b/mysql-wsrep-5.6/include/m_string.h
index 06f8bfad..29c3f220 100644
--- a/mysql-wsrep-5.6/include/m_string.h
+++ b/mysql-wsrep-5.6/include/m_string.h
@@ -2,13 +2,20 @@
    Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mutex_lock.h b/mysql-wsrep-5.6/include/mutex_lock.h
new file mode 100644
index 00000000..a7f60bbf
--- /dev/null
+++ b/mysql-wsrep-5.6/include/mutex_lock.h
@@ -0,0 +1,53 @@
+/* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License, version 2.0, for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA */
+
+#ifndef MUTEX_LOCK_INCLUDED
+#define MUTEX_LOCK_INCLUDED
+
+#include 
+
+/**
+  A simple wrapper around a mutex:
+  Grabs the mutex in the CTOR, releases it in the DTOR.
+  The mutex may be NULL, in which case this is a no-op.
+*/
+class Mutex_lock
+{
+public:
+  explicit Mutex_lock(mysql_mutex_t *mutex) : m_mutex(mutex)
+  {
+    if (m_mutex)
+      mysql_mutex_lock(m_mutex);
+  }
+  ~Mutex_lock()
+  {
+    if (m_mutex)
+      mysql_mutex_unlock(m_mutex);
+  }
+private:
+  mysql_mutex_t *m_mutex;
+
+  Mutex_lock(const Mutex_lock&);                /* Not copyable. */
+  void operator=(const Mutex_lock&);            /* Not assignable. */
+};
+
+#endif  // MUTEX_LOCK_INCLUDED
diff --git a/mysql-wsrep-5.6/include/my_aes.h b/mysql-wsrep-5.6/include/my_aes.h
index 1631a306..5c6d91ed 100644
--- a/mysql-wsrep-5.6/include/my_aes.h
+++ b/mysql-wsrep-5.6/include/my_aes.h
@@ -1,16 +1,23 @@
 #ifndef MY_AES_INCLUDED
 #define MY_AES_INCLUDED
 
-/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
 
  This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; version 2 of the License.
+ it under the terms of the GNU General Public License, version 2.0,
+ as published by the Free Software Foundation.
+
+ This program is also distributed with certain software (including
+ but not limited to OpenSSL) that is licensed under separate terms,
+ as designated in a particular file or component or in included license
+ documentation.  The authors of MySQL hereby grant you an additional
+ permission to link the program and your derivative works with the
+ separately licensed software that they have included with MySQL.
 
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
+ GNU General Public License, version 2.0, for more details.
 
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
@@ -35,7 +42,6 @@ enum my_aes_opmode
    my_aes_128_cbc,
    my_aes_192_cbc,
    my_aes_256_cbc,
-#ifndef HAVE_YASSL
    my_aes_128_cfb1,
    my_aes_192_cfb1,
    my_aes_256_cfb1,
@@ -48,15 +54,10 @@ enum my_aes_opmode
    my_aes_128_ofb,
    my_aes_192_ofb,
    my_aes_256_ofb,
-#endif
 };
 
 #define MY_AES_BEGIN my_aes_128_ecb
-#ifdef HAVE_YASSL
-#define MY_AES_END my_aes_256_cbc
-#else
 #define MY_AES_END my_aes_256_ofb
-#endif
 
 /* If bad data discovered during decoding */
 #define MY_AES_BAD_DATA  -1
diff --git a/mysql-wsrep-5.6/include/my_alarm.h b/mysql-wsrep-5.6/include/my_alarm.h
index 57d86f56..0db62b2b 100644
--- a/mysql-wsrep-5.6/include/my_alarm.h
+++ b/mysql-wsrep-5.6/include/my_alarm.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_alloc.h b/mysql-wsrep-5.6/include/my_alloc.h
index 9e2ef541..c4831182 100644
--- a/mysql-wsrep-5.6/include/my_alloc.h
+++ b/mysql-wsrep-5.6/include/my_alloc.h
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_atomic.h b/mysql-wsrep-5.6/include/my_atomic.h
index 1539d1eb..dcef7a39 100644
--- a/mysql-wsrep-5.6/include/my_atomic.h
+++ b/mysql-wsrep-5.6/include/my_atomic.h
@@ -4,13 +4,20 @@
 /* Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_attribute.h b/mysql-wsrep-5.6/include/my_attribute.h
index 5ee4eb16..134ac672 100644
--- a/mysql-wsrep-5.6/include/my_attribute.h
+++ b/mysql-wsrep-5.6/include/my_attribute.h
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_base.h b/mysql-wsrep-5.6/include/my_base.h
index b314d985..3a2c8fa6 100644
--- a/mysql-wsrep-5.6/include/my_base.h
+++ b/mysql-wsrep-5.6/include/my_base.h
@@ -1,13 +1,20 @@
-/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software Foundation,
@@ -486,7 +493,8 @@ is the global server default. */
 #define HA_ERR_TEMP_FILE_WRITE_FAILURE	189	/* Temporary file write failure */
 #define HA_ERR_INNODB_FORCED_RECOVERY 190	/* Innodb is in force recovery mode */
 #define HA_ERR_FTS_TOO_MANY_WORDS_IN_PHRASE	191 /* Too many words in a phrase */
-#define HA_ERR_LAST               191    /* Copy of last error nr */
+#define HA_ERR_FTS_TOO_MANY_NESTED_EXP 192  /* Too many sub-expression in search string */
+#define HA_ERR_LAST               192    /* Copy of last error nr */
 
 /* Number of different errors */
 #define HA_ERR_ERRORS            (HA_ERR_LAST - HA_ERR_FIRST + 1)
diff --git a/mysql-wsrep-5.6/include/my_bit.h b/mysql-wsrep-5.6/include/my_bit.h
index 8d9f485a..f93807c4 100644
--- a/mysql-wsrep-5.6/include/my_bit.h
+++ b/mysql-wsrep-5.6/include/my_bit.h
@@ -2,13 +2,20 @@
    Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_bitmap.h b/mysql-wsrep-5.6/include/my_bitmap.h
index 2e0a5457..32a816bf 100644
--- a/mysql-wsrep-5.6/include/my_bitmap.h
+++ b/mysql-wsrep-5.6/include/my_bitmap.h
@@ -2,13 +2,20 @@
    Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_byteorder.h b/mysql-wsrep-5.6/include/my_byteorder.h
index 11c5f2c9..abfd162c 100644
--- a/mysql-wsrep-5.6/include/my_byteorder.h
+++ b/mysql-wsrep-5.6/include/my_byteorder.h
@@ -4,13 +4,25 @@
 /* Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_check_opt.h b/mysql-wsrep-5.6/include/my_check_opt.h
index 7b064f69..379fac31 100644
--- a/mysql-wsrep-5.6/include/my_check_opt.h
+++ b/mysql-wsrep-5.6/include/my_check_opt.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
 
 This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; version 2 of the License.
+it under the terms of the GNU General Public License, version 2.0,
+as published by the Free Software Foundation.
+
+This program is also distributed with certain software (including
+but not limited to OpenSSL) that is licensed under separate terms,
+as designated in a particular file or component or in included license
+documentation.  The authors of MySQL hereby grant you an additional
+permission to link the program and your derivative works with the
+separately licensed software that they have included with MySQL.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+GNU General Public License, version 2.0, for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_compare.h b/mysql-wsrep-5.6/include/my_compare.h
index 6e88550a..19b027c8 100644
--- a/mysql-wsrep-5.6/include/my_compare.h
+++ b/mysql-wsrep-5.6/include/my_compare.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_compiler.h b/mysql-wsrep-5.6/include/my_compiler.h
index 000d4e42..8f476eb1 100644
--- a/mysql-wsrep-5.6/include/my_compiler.h
+++ b/mysql-wsrep-5.6/include/my_compiler.h
@@ -4,13 +4,25 @@
 /* Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_dbug.h b/mysql-wsrep-5.6/include/my_dbug.h
index e4353b5a..30488a20 100644
--- a/mysql-wsrep-5.6/include/my_dbug.h
+++ b/mysql-wsrep-5.6/include/my_dbug.h
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. 
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_default.h b/mysql-wsrep-5.6/include/my_default.h
index 66d6d918..59b86e7f 100644
--- a/mysql-wsrep-5.6/include/my_default.h
+++ b/mysql-wsrep-5.6/include/my_default.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_dir.h b/mysql-wsrep-5.6/include/my_dir.h
index 1ee002cc..d1044f21 100644
--- a/mysql-wsrep-5.6/include/my_dir.h
+++ b/mysql-wsrep-5.6/include/my_dir.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_getopt.h b/mysql-wsrep-5.6/include/my_getopt.h
index dd9cd2f0..88000e6f 100644
--- a/mysql-wsrep-5.6/include/my_getopt.h
+++ b/mysql-wsrep-5.6/include/my_getopt.h
@@ -2,13 +2,20 @@
    Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_global.h b/mysql-wsrep-5.6/include/my_global.h
index 5f716d4e..f5ac0a8a 100644
--- a/mysql-wsrep-5.6/include/my_global.h
+++ b/mysql-wsrep-5.6/include/my_global.h
@@ -2,13 +2,25 @@
    Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_libwrap.h b/mysql-wsrep-5.6/include/my_libwrap.h
index 9a017611..928a07ad 100644
--- a/mysql-wsrep-5.6/include/my_libwrap.h
+++ b/mysql-wsrep-5.6/include/my_libwrap.h
@@ -5,13 +5,20 @@
    Use is subject to license terms.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_list.h b/mysql-wsrep-5.6/include/my_list.h
index 294be663..9432d44d 100644
--- a/mysql-wsrep-5.6/include/my_list.h
+++ b/mysql-wsrep-5.6/include/my_list.h
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_md5.h b/mysql-wsrep-5.6/include/my_md5.h
index 4f891059..b1020ece 100644
--- a/mysql-wsrep-5.6/include/my_md5.h
+++ b/mysql-wsrep-5.6/include/my_md5.h
@@ -4,13 +4,20 @@
 /* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_murmur3.h b/mysql-wsrep-5.6/include/my_murmur3.h
index 9ef42864..ab71ebe5 100644
--- a/mysql-wsrep-5.6/include/my_murmur3.h
+++ b/mysql-wsrep-5.6/include/my_murmur3.h
@@ -4,13 +4,20 @@
 /* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_net.h b/mysql-wsrep-5.6/include/my_net.h
index ac1643b2..a657a20e 100644
--- a/mysql-wsrep-5.6/include/my_net.h
+++ b/mysql-wsrep-5.6/include/my_net.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_nosys.h b/mysql-wsrep-5.6/include/my_nosys.h
index d4690d32..d264812d 100644
--- a/mysql-wsrep-5.6/include/my_nosys.h
+++ b/mysql-wsrep-5.6/include/my_nosys.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_pthread.h b/mysql-wsrep-5.6/include/my_pthread.h
index 7dd8a8f6..5c4ed4e2 100644
--- a/mysql-wsrep-5.6/include/my_pthread.h
+++ b/mysql-wsrep-5.6/include/my_pthread.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_rdtsc.h b/mysql-wsrep-5.6/include/my_rdtsc.h
index 38ab0de8..9409ca5b 100644
--- a/mysql-wsrep-5.6/include/my_rdtsc.h
+++ b/mysql-wsrep-5.6/include/my_rdtsc.h
@@ -2,13 +2,20 @@
    Use is subject to license terms.
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
+
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_rnd.h b/mysql-wsrep-5.6/include/my_rnd.h
index 7dc0234c..bd0ffff8 100644
--- a/mysql-wsrep-5.6/include/my_rnd.h
+++ b/mysql-wsrep-5.6/include/my_rnd.h
@@ -2,23 +2,30 @@
 #define MY_RANDOM_INCLUDED
 
 /*
-   Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+   Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA */
 
 /*
-  A wrapper to use OpenSSL/YaSSL PRNGs.
+  A wrapper to use OpenSSL PRNGs.
 */
 
 #include 
diff --git a/mysql-wsrep-5.6/include/my_stacktrace.h b/mysql-wsrep-5.6/include/my_stacktrace.h
index ee038678..a4276c1b 100644
--- a/mysql-wsrep-5.6/include/my_stacktrace.h
+++ b/mysql-wsrep-5.6/include/my_stacktrace.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_sys.h b/mysql-wsrep-5.6/include/my_sys.h
index b228d649..b61fef18 100644
--- a/mysql-wsrep-5.6/include/my_sys.h
+++ b/mysql-wsrep-5.6/include/my_sys.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_time.h b/mysql-wsrep-5.6/include/my_time.h
index f1072411..08f25577 100644
--- a/mysql-wsrep-5.6/include/my_time.h
+++ b/mysql-wsrep-5.6/include/my_time.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
 
  This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; version 2 of the License.
+ it under the terms of the GNU General Public License, version 2.0,
+ as published by the Free Software Foundation.
+
+ This program is also distributed with certain software (including
+ but not limited to OpenSSL) that is licensed under separate terms,
+ as designated in a particular file or component or in included license
+ documentation.  The authors of MySQL hereby grant you an additional
+ permission to link the program and your derivative works with the
+ separately licensed software that they have included with MySQL.
 
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
+ GNU General Public License, version 2.0, for more details.
 
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_tree.h b/mysql-wsrep-5.6/include/my_tree.h
index 3db7b390..801e7e08 100644
--- a/mysql-wsrep-5.6/include/my_tree.h
+++ b/mysql-wsrep-5.6/include/my_tree.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_uctype.h b/mysql-wsrep-5.6/include/my_uctype.h
index 80ef01c0..cf0f0296 100644
--- a/mysql-wsrep-5.6/include/my_uctype.h
+++ b/mysql-wsrep-5.6/include/my_uctype.h
@@ -5,13 +5,20 @@
    Use is subject to license terms.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_user.h b/mysql-wsrep-5.6/include/my_user.h
index 48ef13f1..c2dc9b6e 100644
--- a/mysql-wsrep-5.6/include/my_user.h
+++ b/mysql-wsrep-5.6/include/my_user.h
@@ -2,13 +2,20 @@
    Use is subject to license terms
 
  This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; version 2 of the License.
+ it under the terms of the GNU General Public License, version 2.0,
+ as published by the Free Software Foundation.
+
+ This program is also distributed with certain software (including
+ but not limited to OpenSSL) that is licensed under separate terms,
+ as designated in a particular file or component or in included license
+ documentation.  The authors of MySQL hereby grant you an additional
+ permission to link the program and your derivative works with the
+ separately licensed software that they have included with MySQL.
 
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
+ GNU General Public License, version 2.0, for more details.
 
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/my_xml.h b/mysql-wsrep-5.6/include/my_xml.h
index 639fdc7d..3d6d335d 100644
--- a/mysql-wsrep-5.6/include/my_xml.h
+++ b/mysql-wsrep-5.6/include/my_xml.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/myisam.h b/mysql-wsrep-5.6/include/myisam.h
index 63248097..80488043 100644
--- a/mysql-wsrep-5.6/include/myisam.h
+++ b/mysql-wsrep-5.6/include/myisam.h
@@ -2,13 +2,20 @@
    Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/myisammrg.h b/mysql-wsrep-5.6/include/myisammrg.h
index 84b2d637..e8aa5606 100644
--- a/mysql-wsrep-5.6/include/myisammrg.h
+++ b/mysql-wsrep-5.6/include/myisammrg.h
@@ -2,13 +2,20 @@
    Use is subject to license terms.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/myisampack.h b/mysql-wsrep-5.6/include/myisampack.h
index cb744d14..82cf27e9 100644
--- a/mysql-wsrep-5.6/include/myisampack.h
+++ b/mysql-wsrep-5.6/include/myisampack.h
@@ -4,13 +4,20 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql.h b/mysql-wsrep-5.6/include/mysql.h
index 0aeed955..564d6da2 100644
--- a/mysql-wsrep-5.6/include/mysql.h
+++ b/mysql-wsrep-5.6/include/mysql.h
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql/client_plugin.h b/mysql-wsrep-5.6/include/mysql/client_plugin.h
index 9be9914a..6d7d569a 100644
--- a/mysql-wsrep-5.6/include/mysql/client_plugin.h
+++ b/mysql-wsrep-5.6/include/mysql/client_plugin.h
@@ -2,13 +2,20 @@
 /* Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql/get_password.h b/mysql-wsrep-5.6/include/mysql/get_password.h
index a633c58c..5b89ee17 100644
--- a/mysql-wsrep-5.6/include/mysql/get_password.h
+++ b/mysql-wsrep-5.6/include/mysql/get_password.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql/innodb_priv.h b/mysql-wsrep-5.6/include/mysql/innodb_priv.h
index c19becd6..ccc0dd97 100644
--- a/mysql-wsrep-5.6/include/mysql/innodb_priv.h
+++ b/mysql-wsrep-5.6/include/mysql/innodb_priv.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql/plugin.h b/mysql-wsrep-5.6/include/mysql/plugin.h
index 3cf31af0..fd597f3d 100644
--- a/mysql-wsrep-5.6/include/mysql/plugin.h
+++ b/mysql-wsrep-5.6/include/mysql/plugin.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
@@ -421,6 +428,10 @@ DECLARE_MYSQL_THDVAR_SIMPLE(name, double) = { \
 #define THDVAR(thd, name) \
   (*(MYSQL_SYSVAR_NAME(name).resolve(thd, MYSQL_SYSVAR_NAME(name).offset)))
 
+#define THDVAR_SET(thd, name, value) \
+  plugin_thdvar_safe_update(thd, MYSQL_SYSVAR(name), \
+                            (char **) &THDVAR(thd, name), \
+                            (const char *) value);
 
 /*
   Plugin description structure.
diff --git a/mysql-wsrep-5.6/include/mysql/plugin_audit.h b/mysql-wsrep-5.6/include/mysql/plugin_audit.h
index 40a4b5de..184313da 100644
--- a/mysql-wsrep-5.6/include/mysql/plugin_audit.h
+++ b/mysql-wsrep-5.6/include/mysql/plugin_audit.h
@@ -1,14 +1,20 @@
 /* Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
 
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License
-   as published by the Free Software Foundation; version 2 of
-   the License.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-   GNU General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql/plugin_auth.h b/mysql-wsrep-5.6/include/mysql/plugin_auth.h
index fc661de1..e6b41e6e 100644
--- a/mysql-wsrep-5.6/include/mysql/plugin_auth.h
+++ b/mysql-wsrep-5.6/include/mysql/plugin_auth.h
@@ -2,13 +2,20 @@
 /* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql/plugin_auth_common.h b/mysql-wsrep-5.6/include/mysql/plugin_auth_common.h
index a395a9fd..1d6c36db 100644
--- a/mysql-wsrep-5.6/include/mysql/plugin_auth_common.h
+++ b/mysql-wsrep-5.6/include/mysql/plugin_auth_common.h
@@ -2,13 +2,20 @@
 /* Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql/plugin_ftparser.h b/mysql-wsrep-5.6/include/mysql/plugin_ftparser.h
index 3816a0f8..908c751f 100644
--- a/mysql-wsrep-5.6/include/mysql/plugin_ftparser.h
+++ b/mysql-wsrep-5.6/include/mysql/plugin_ftparser.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql/plugin_validate_password.h b/mysql-wsrep-5.6/include/mysql/plugin_validate_password.h
index cd861d99..519df4f7 100644
--- a/mysql-wsrep-5.6/include/mysql/plugin_validate_password.h
+++ b/mysql-wsrep-5.6/include/mysql/plugin_validate_password.h
@@ -1,13 +1,20 @@
 /* Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql/psi/mysql_file.h b/mysql-wsrep-5.6/include/mysql/psi/mysql_file.h
index a83e2ef8..1920eb37 100644
--- a/mysql-wsrep-5.6/include/mysql/psi/mysql_file.h
+++ b/mysql-wsrep-5.6/include/mysql/psi/mysql_file.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
+
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software Foundation,
diff --git a/mysql-wsrep-5.6/include/mysql/psi/mysql_idle.h b/mysql-wsrep-5.6/include/mysql/psi/mysql_idle.h
index 5c72b715..257dea09 100644
--- a/mysql-wsrep-5.6/include/mysql/psi/mysql_idle.h
+++ b/mysql-wsrep-5.6/include/mysql/psi/mysql_idle.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.   
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
+
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software Foundation,
diff --git a/mysql-wsrep-5.6/include/mysql/psi/mysql_socket.h b/mysql-wsrep-5.6/include/mysql/psi/mysql_socket.h
index 209f113f..e7bdfb10 100644
--- a/mysql-wsrep-5.6/include/mysql/psi/mysql_socket.h
+++ b/mysql-wsrep-5.6/include/mysql/psi/mysql_socket.h
@@ -1,14 +1,20 @@
 /* Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License as
-published by the Free Software Foundation; version 2 of the
-License.
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License, version 2.0,
+as published by the Free Software Foundation.
+
+This program is also distributed with certain software (including
+but not limited to OpenSSL) that is licensed under separate terms,
+as designated in a particular file or component or in included license
+documentation.  The authors of MySQL hereby grant you an additional
+permission to link the program and your derivative works with the
+separately licensed software that they have included with MySQL.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License, version 2.0, for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql/psi/mysql_stage.h b/mysql-wsrep-5.6/include/mysql/psi/mysql_stage.h
index 91a5c12f..3f7bb859 100644
--- a/mysql-wsrep-5.6/include/mysql/psi/mysql_stage.h
+++ b/mysql-wsrep-5.6/include/mysql/psi/mysql_stage.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.   
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
+
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql/psi/mysql_statement.h b/mysql-wsrep-5.6/include/mysql/psi/mysql_statement.h
index 3d5943fa..cb76a24b 100644
--- a/mysql-wsrep-5.6/include/mysql/psi/mysql_statement.h
+++ b/mysql-wsrep-5.6/include/mysql/psi/mysql_statement.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.   
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
+
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql/psi/mysql_table.h b/mysql-wsrep-5.6/include/mysql/psi/mysql_table.h
index 815313e6..5bc3b15a 100644
--- a/mysql-wsrep-5.6/include/mysql/psi/mysql_table.h
+++ b/mysql-wsrep-5.6/include/mysql/psi/mysql_table.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
+
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software Foundation,
diff --git a/mysql-wsrep-5.6/include/mysql/psi/mysql_thread.h b/mysql-wsrep-5.6/include/mysql/psi/mysql_thread.h
index ee2693d2..71f623e9 100644
--- a/mysql-wsrep-5.6/include/mysql/psi/mysql_thread.h
+++ b/mysql-wsrep-5.6/include/mysql/psi/mysql_thread.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
+
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software Foundation,
diff --git a/mysql-wsrep-5.6/include/mysql/psi/psi.h b/mysql-wsrep-5.6/include/mysql/psi/psi.h
index 7fcff89c..0d49f2c8 100644
--- a/mysql-wsrep-5.6/include/mysql/psi/psi.h
+++ b/mysql-wsrep-5.6/include/mysql/psi/psi.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
+
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software Foundation,
diff --git a/mysql-wsrep-5.6/include/mysql/psi/psi_abi_v0.h b/mysql-wsrep-5.6/include/mysql/psi/psi_abi_v0.h
index 7444cb0b..60a3692f 100644
--- a/mysql-wsrep-5.6/include/mysql/psi/psi_abi_v0.h
+++ b/mysql-wsrep-5.6/include/mysql/psi/psi_abi_v0.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
+
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software Foundation,
diff --git a/mysql-wsrep-5.6/include/mysql/psi/psi_abi_v1.h b/mysql-wsrep-5.6/include/mysql/psi/psi_abi_v1.h
index 54c49f0c..723e5aa3 100644
--- a/mysql-wsrep-5.6/include/mysql/psi/psi_abi_v1.h
+++ b/mysql-wsrep-5.6/include/mysql/psi/psi_abi_v1.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
+
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software Foundation,
diff --git a/mysql-wsrep-5.6/include/mysql/psi/psi_abi_v2.h b/mysql-wsrep-5.6/include/mysql/psi/psi_abi_v2.h
index 08bca609..f4016650 100644
--- a/mysql-wsrep-5.6/include/mysql/psi/psi_abi_v2.h
+++ b/mysql-wsrep-5.6/include/mysql/psi/psi_abi_v2.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
+
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software Foundation,
diff --git a/mysql-wsrep-5.6/include/mysql/service_my_plugin_log.h b/mysql-wsrep-5.6/include/mysql/service_my_plugin_log.h
index 0cf78175..88bb0beb 100644
--- a/mysql-wsrep-5.6/include/mysql/service_my_plugin_log.h
+++ b/mysql-wsrep-5.6/include/mysql/service_my_plugin_log.h
@@ -1,15 +1,21 @@
 /*  Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
     
-    This program is free software; you can redistribute it and/or
-    modify it under the terms of the GNU General Public License as
-    published by the Free Software Foundation; version 2 of the
-    License.
-    
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License, version 2.0,
+    as published by the Free Software Foundation.
+
+    This program is also distributed with certain software (including
+    but not limited to OpenSSL) that is licensed under separate terms,
+    as designated in a particular file or component or in included license
+    documentation.  The authors of MySQL hereby grant you an additional
+    permission to link the program and your derivative works with the
+    separately licensed software that they have included with MySQL.
+
     This program is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-    GNU General Public License for more details.
-    
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License, version 2.0, for more details.
+
     You should have received a copy of the GNU General Public License
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
diff --git a/mysql-wsrep-5.6/include/mysql/service_my_snprintf.h b/mysql-wsrep-5.6/include/mysql/service_my_snprintf.h
index d5783faa..344efa8f 100644
--- a/mysql-wsrep-5.6/include/mysql/service_my_snprintf.h
+++ b/mysql-wsrep-5.6/include/mysql/service_my_snprintf.h
@@ -2,13 +2,20 @@
 /* Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql/service_mysql_string.h b/mysql-wsrep-5.6/include/mysql/service_mysql_string.h
index 3c121a6d..6a4cbfcc 100644
--- a/mysql-wsrep-5.6/include/mysql/service_mysql_string.h
+++ b/mysql-wsrep-5.6/include/mysql/service_mysql_string.h
@@ -1,13 +1,20 @@
 /* Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql/service_thd_alloc.h b/mysql-wsrep-5.6/include/mysql/service_thd_alloc.h
index 645fb310..daf5f5b6 100644
--- a/mysql-wsrep-5.6/include/mysql/service_thd_alloc.h
+++ b/mysql-wsrep-5.6/include/mysql/service_thd_alloc.h
@@ -2,13 +2,20 @@
 /* Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql/service_thd_wait.h b/mysql-wsrep-5.6/include/mysql/service_thd_wait.h
index 6b47a4ff..4f5a8e42 100644
--- a/mysql-wsrep-5.6/include/mysql/service_thd_wait.h
+++ b/mysql-wsrep-5.6/include/mysql/service_thd_wait.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql/service_thread_scheduler.h b/mysql-wsrep-5.6/include/mysql/service_thread_scheduler.h
index 5a5e0e2f..a6fc0206 100644
--- a/mysql-wsrep-5.6/include/mysql/service_thread_scheduler.h
+++ b/mysql-wsrep-5.6/include/mysql/service_thread_scheduler.h
@@ -2,13 +2,20 @@
   Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
+
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql/services.h b/mysql-wsrep-5.6/include/mysql/services.h
index 3c3ed98e..a56f2572 100644
--- a/mysql-wsrep-5.6/include/mysql/services.h
+++ b/mysql-wsrep-5.6/include/mysql/services.h
@@ -2,13 +2,20 @@
 /* Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql/thread_pool_priv.h b/mysql-wsrep-5.6/include/mysql/thread_pool_priv.h
index ee197709..cc5def06 100644
--- a/mysql-wsrep-5.6/include/mysql/thread_pool_priv.h
+++ b/mysql-wsrep-5.6/include/mysql/thread_pool_priv.h
@@ -2,13 +2,20 @@
   Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
+
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql_com.h b/mysql-wsrep-5.6/include/mysql_com.h
index 917e605e..1b73fc58 100644
--- a/mysql-wsrep-5.6/include/mysql_com.h
+++ b/mysql-wsrep-5.6/include/mysql_com.h
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql_com_server.h b/mysql-wsrep-5.6/include/mysql_com_server.h
index 1ea04020..4a49e364 100644
--- a/mysql-wsrep-5.6/include/mysql_com_server.h
+++ b/mysql-wsrep-5.6/include/mysql_com_server.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql_embed.h b/mysql-wsrep-5.6/include/mysql_embed.h
index b96083d0..06fbe93e 100644
--- a/mysql-wsrep-5.6/include/mysql_embed.h
+++ b/mysql-wsrep-5.6/include/mysql_embed.h
@@ -4,13 +4,20 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysql_time.h b/mysql-wsrep-5.6/include/mysql_time.h
index ac9719c6..8d486e3d 100644
--- a/mysql-wsrep-5.6/include/mysql_time.h
+++ b/mysql-wsrep-5.6/include/mysql_time.h
@@ -1,13 +1,25 @@
 /* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 
  This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; version 2 of the License.
+ it under the terms of the GNU General Public License, version 2.0,
+ as published by the Free Software Foundation.
+
+ This program is also distributed with certain software (including
+ but not limited to OpenSSL) that is licensed under separate terms,
+ as designated in a particular file or component or in included license
+ documentation.  The authors of MySQL hereby grant you an additional
+ permission to link the program and your derivative works with the
+ separately licensed software that they have included with MySQL.
+
+ Without limiting anything contained in the foregoing, this file,
+ which is part of C Driver for MySQL (Connector/C), is also subject to the
+ Universal FOSS Exception, version 1.0, a copy of which can be found at
+ http://oss.oracle.com/licenses/universal-foss-exception.
 
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
+ GNU General Public License, version 2.0, for more details.
 
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/mysys_err.h b/mysql-wsrep-5.6/include/mysys_err.h
index 35c7890a..72089b74 100644
--- a/mysql-wsrep-5.6/include/mysys_err.h
+++ b/mysql-wsrep-5.6/include/mysys_err.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/password.h b/mysql-wsrep-5.6/include/password.h
index 66e59e73..a027eee4 100644
--- a/mysql-wsrep-5.6/include/password.h
+++ b/mysql-wsrep-5.6/include/password.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/probes_mysql.d.base b/mysql-wsrep-5.6/include/probes_mysql.d.base
index 02eb9ec1..efc8522f 100644
--- a/mysql-wsrep-5.6/include/probes_mysql.d.base
+++ b/mysql-wsrep-5.6/include/probes_mysql.d.base
@@ -2,13 +2,20 @@
    Use is subject to license terms.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/probes_mysql.h b/mysql-wsrep-5.6/include/probes_mysql.h
index 191860d0..c6610946 100644
--- a/mysql-wsrep-5.6/include/probes_mysql.h
+++ b/mysql-wsrep-5.6/include/probes_mysql.h
@@ -2,13 +2,20 @@
    Use is subject to license terms.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/queues.h b/mysql-wsrep-5.6/include/queues.h
index 2581cec2..7d083734 100644
--- a/mysql-wsrep-5.6/include/queues.h
+++ b/mysql-wsrep-5.6/include/queues.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/service_versions.h b/mysql-wsrep-5.6/include/service_versions.h
index 5d3b9787..7c26c6c4 100644
--- a/mysql-wsrep-5.6/include/service_versions.h
+++ b/mysql-wsrep-5.6/include/service_versions.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/sha1.h b/mysql-wsrep-5.6/include/sha1.h
index 5e68333c..1f23a825 100644
--- a/mysql-wsrep-5.6/include/sha1.h
+++ b/mysql-wsrep-5.6/include/sha1.h
@@ -4,13 +4,20 @@
 /* Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
 
  This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; version 2 of the License.
+ it under the terms of the GNU General Public License, version 2.0,
+ as published by the Free Software Foundation.
+
+ This program is also distributed with certain software (including
+ but not limited to OpenSSL) that is licensed under separate terms,
+ as designated in a particular file or component or in included license
+ documentation.  The authors of MySQL hereby grant you an additional
+ permission to link the program and your derivative works with the
+ separately licensed software that they have included with MySQL.
 
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License, version 2.0, for more details.
 
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/sha2.h b/mysql-wsrep-5.6/include/sha2.h
index 737658e9..93bb3b3b 100644
--- a/mysql-wsrep-5.6/include/sha2.h
+++ b/mysql-wsrep-5.6/include/sha2.h
@@ -1,13 +1,20 @@
-/* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2007, 2019, Oracle and/or its affiliates. All rights reserved.
 
  This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; version 2 of the License.
+ it under the terms of the GNU General Public License, version 2.0,
+ as published by the Free Software Foundation.
+
+ This program is also distributed with certain software (including
+ but not limited to OpenSSL) that is licensed under separate terms,
+ as designated in a particular file or component or in included license
+ documentation.  The authors of MySQL hereby grant you an additional
+ permission to link the program and your derivative works with the
+ separately licensed software that they have included with MySQL.
 
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
+ GNU General Public License, version 2.0, for more details.
 
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
@@ -18,55 +25,13 @@
 
 #include 
 
-#if defined(HAVE_YASSL) || defined(HAVE_OPENSSL)
+#if defined(HAVE_OPENSSL)
 
 #  ifdef HAVE_STDDEF_H
 #    include 
 #  endif
 
-#  ifndef HAVE_YASSL
 #    include 
 
-#  else
-
-#include "../extra/yassl/taocrypt/include/sha.hpp"
-
-#    ifdef __cplusplus
-extern "C" {
-#    endif
-
-#ifndef SHA512_DIGEST_LENGTH
-#define SHA512_DIGEST_LENGTH TaoCrypt::SHA512::DIGEST_SIZE
-#endif
-
-#ifndef SHA384_DIGEST_LENGTH
-#define SHA384_DIGEST_LENGTH TaoCrypt::SHA384::DIGEST_SIZE
-#endif
-
-#ifndef SHA256_DIGEST_LENGTH
-#define SHA256_DIGEST_LENGTH TaoCrypt::SHA256::DIGEST_SIZE
-#endif
-
-#ifndef SHA224_DIGEST_LENGTH
-#define SHA224_DIGEST_LENGTH TaoCrypt::SHA224::DIGEST_SIZE
-#endif
-
-#define GEN_YASSL_SHA2_BRIDGE(size) \
-unsigned char* SHA##size(const unsigned char *input_ptr, size_t input_length, \
-               char unsigned *output_ptr);
-
-GEN_YASSL_SHA2_BRIDGE(512);
-GEN_YASSL_SHA2_BRIDGE(384);
-GEN_YASSL_SHA2_BRIDGE(256);
-GEN_YASSL_SHA2_BRIDGE(224);
-
-#undef GEN_YASSL_SHA2_BRIDGE
-
-#    ifdef __cplusplus
-}
-#    endif
-
-#  endif /* HAVE_YASSL */
-
-#endif /* HAVE_OPENSSL || HAVE_YASSL */
+#endif /* HAVE_OPENSSL */
 #endif /* included_sha2_h */
diff --git a/mysql-wsrep-5.6/include/sql_common.h b/mysql-wsrep-5.6/include/sql_common.h
index 0b8e811d..8b408f49 100644
--- a/mysql-wsrep-5.6/include/sql_common.h
+++ b/mysql-wsrep-5.6/include/sql_common.h
@@ -4,14 +4,21 @@
 /* Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
    
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-   
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
+   GNU General Public License, version 2.0, for more details.
+
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA */
diff --git a/mysql-wsrep-5.6/include/sslopt-case.h b/mysql-wsrep-5.6/include/sslopt-case.h
index 7a42aa63..3d51a64b 100644
--- a/mysql-wsrep-5.6/include/sslopt-case.h
+++ b/mysql-wsrep-5.6/include/sslopt-case.h
@@ -1,16 +1,23 @@
 #ifndef SSLOPT_CASE_INCLUDED
 #define SSLOPT_CASE_INCLUDED
 
-/* Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
@@ -29,11 +36,8 @@
       One can disable SSL later by using --skip-ssl or --ssl=0
     */
       opt_use_ssl= 1;
-    /* crl has no effect in yaSSL */  
-#ifdef HAVE_YASSL
       opt_ssl_crl= NULL;
       opt_ssl_crlpath= NULL;
-#endif
       break;
 #ifdef MYSQL_CLIENT
     case OPT_SSL_MODE:
diff --git a/mysql-wsrep-5.6/include/sslopt-longopts.h b/mysql-wsrep-5.6/include/sslopt-longopts.h
index f21d28f4..19b004b7 100644
--- a/mysql-wsrep-5.6/include/sslopt-longopts.h
+++ b/mysql-wsrep-5.6/include/sslopt-longopts.h
@@ -4,13 +4,20 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/sslopt-vars.h b/mysql-wsrep-5.6/include/sslopt-vars.h
index 7eebd86a..1af8bb9c 100644
--- a/mysql-wsrep-5.6/include/sslopt-vars.h
+++ b/mysql-wsrep-5.6/include/sslopt-vars.h
@@ -4,13 +4,20 @@
 /* Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/t_ctype.h b/mysql-wsrep-5.6/include/t_ctype.h
index c53deb21..7535bd14 100644
--- a/mysql-wsrep-5.6/include/t_ctype.h
+++ b/mysql-wsrep-5.6/include/t_ctype.h
@@ -2,13 +2,20 @@
    Use is subject to license terms
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/thr_alarm.h b/mysql-wsrep-5.6/include/thr_alarm.h
index 4d076b6d..0262f9cc 100644
--- a/mysql-wsrep-5.6/include/thr_alarm.h
+++ b/mysql-wsrep-5.6/include/thr_alarm.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/thr_lock.h b/mysql-wsrep-5.6/include/thr_lock.h
index 6b0741f1..2c63302d 100644
--- a/mysql-wsrep-5.6/include/thr_lock.h
+++ b/mysql-wsrep-5.6/include/thr_lock.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/typelib.h b/mysql-wsrep-5.6/include/typelib.h
index 919dd69d..eef970f5 100644
--- a/mysql-wsrep-5.6/include/typelib.h
+++ b/mysql-wsrep-5.6/include/typelib.h
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/violite.h b/mysql-wsrep-5.6/include/violite.h
index 1cd9c879..c16587d5 100644
--- a/mysql-wsrep-5.6/include/violite.h
+++ b/mysql-wsrep-5.6/include/violite.h
@@ -1,14 +1,21 @@
-/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights
+/* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights
  * reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
@@ -132,14 +139,6 @@ int vio_getnameinfo(const struct sockaddr *sa,
 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 #endif
 
-#define HEADER_DES_LOCL_H dummy_something
-#define YASSL_MYSQL_COMPATIBLE
-#ifndef YASSL_PREFIX
-#define YASSL_PREFIX
-#endif
-/* Set yaSSL to use same type as MySQL do for socket handles */
-typedef my_socket YASSL_SOCKET_T;
-#define YASSL_SOCKET_T_DEFINED
 #include 
 #include 
 
diff --git a/mysql-wsrep-5.6/include/waiting_threads.h b/mysql-wsrep-5.6/include/waiting_threads.h
index 554df743..493ac9c7 100644
--- a/mysql-wsrep-5.6/include/waiting_threads.h
+++ b/mysql-wsrep-5.6/include/waiting_threads.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/include/welcome_copyright_notice.h b/mysql-wsrep-5.6/include/welcome_copyright_notice.h
index 5b21fd7e..db68fe01 100644
--- a/mysql-wsrep-5.6/include/welcome_copyright_notice.h
+++ b/mysql-wsrep-5.6/include/welcome_copyright_notice.h
@@ -1,13 +1,20 @@
-/* Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2010, 2020, Oracle and/or its affiliates.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
@@ -16,7 +23,7 @@
 #ifndef _welcome_copyright_notice_h_
 #define _welcome_copyright_notice_h_
 
-#define COPYRIGHT_NOTICE_CURRENT_YEAR "2019"
+#define COPYRIGHT_NOTICE_CURRENT_YEAR "2021"
 
 /*
   This define specifies copyright notice which is displayed by every MySQL
diff --git a/mysql-wsrep-5.6/libmysql/CMakeLists.txt b/mysql-wsrep-5.6/libmysql/CMakeLists.txt
index 9985d0a7..78c72493 100644
--- a/mysql-wsrep-5.6/libmysql/CMakeLists.txt
+++ b/mysql-wsrep-5.6/libmysql/CMakeLists.txt
@@ -1,14 +1,21 @@
-# Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2019, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
@@ -167,7 +174,25 @@ ADD_CONVENIENCE_LIBRARY(clientlib ${CLIENT_SOURCES})
 DTRACE_INSTRUMENT(clientlib)
 ADD_DEPENDENCIES(clientlib GenError)
 
-SET(LIBS clientlib dbug strings vio mysys mysys_ssl ${ZLIB_LIBRARY} ${SSL_LIBRARIES} ${LIBDL})
+SET(LIBS_TO_MERGE
+  clientlib dbug strings vio mysys mysys_ssl
+  )
+SET(LIBS_TO_LINK ${LIBDL})
+
+IF(WITH_ZLIB STREQUAL "bundled")
+  LIST(APPEND LIBS_TO_MERGE ${ZLIB_LIBRARY})
+ELSE()
+  LIST(APPEND LIBS_TO_LINK ${ZLIB_LIBRARY})
+ENDIF()
+
+IF(WIN32)
+  OPTION(LINK_DYNAMIC_OPENSSL "On Windows link OpenSSL dynamically" OFF)
+ENDIF()
+IF(WITH_SSL STREQUAL "system" OR LINK_DYNAMIC_OPENSSL)
+  LIST(APPEND LIBS_TO_LINK ${SSL_LIBRARIES})
+ELSE()
+  LIST(APPEND LIBS_TO_MERGE ${SSL_LIBRARIES})
+ENDIF()
 
 #
 # On Windows platform client library includes the client-side 
@@ -176,16 +201,17 @@ SET(LIBS clientlib dbug strings vio mysys mysys_ssl ${ZLIB_LIBRARY} ${SSL_LIBRAR
 IF(WIN32)
   ADD_DEFINITIONS(-DAUTHENTICATION_WIN)
   ADD_SUBDIRECTORY(authentication_win)
-  LIST(APPEND LIBS auth_win_client)
+  LIST(APPEND LIBS_TO_MERGE auth_win_client)
 ENDIF()
 
 # Merge several convenience libraries into one big mysqlclient
-MERGE_LIBRARIES(mysqlclient STATIC ${LIBS} COMPONENT Development)
+MERGE_LIBRARIES(mysqlclient STATIC ${LIBS_TO_MERGE} COMPONENT Development)
+TARGET_LINK_LIBRARIES(mysqlclient ${LIBS_TO_LINK})
 
 # Visual Studio users need debug  static library for debug projects
 IF(MSVC)
- INSTALL_DEBUG_TARGET(mysqlclient DESTINATION ${INSTALL_LIBDIR}/debug)
- INSTALL_DEBUG_TARGET(clientlib DESTINATION ${INSTALL_LIBDIR}/debug)
+  INSTALL_DEBUG_TARGET(mysqlclient DESTINATION ${INSTALL_LIBDIR}/debug)
+  INSTALL_DEBUG_TARGET(clientlib DESTINATION ${INSTALL_LIBDIR}/debug)
 ENDIF()
 
 MACRO(GET_TARGET_NAME target out_name)
@@ -218,9 +244,10 @@ ENDIF()
 IF(NOT DISABLE_SHARED)
   # Merge several convenience libraries into one big mysqlclient
   # and link them together into shared library.
-  MERGE_LIBRARIES(libmysql SHARED ${LIBS}
+  MERGE_LIBRARIES(libmysql SHARED ${LIBS_TO_MERGE}
     EXPORTS ${CLIENT_API_FUNCTIONS}
     COMPONENT SharedLibraries)
+  TARGET_LINK_LIBRARIES(libmysql ${LIBS_TO_LINK})
   IF(UNIX)
     # libtool compatability
     IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE)
@@ -241,7 +268,7 @@ IF(NOT DISABLE_SHARED)
     ENDIF()
 
     GET_TARGET_PROPERTY(libmysql_link_flags libmysql LINK_FLAGS)
-    IF(NOT libmysql_link_flag)
+    IF(NOT libmysql_link_flags)
       SET(libmysql_link_flags)
     ENDIF()
     SET(libmysql_link_flags
diff --git a/mysql-wsrep-5.6/libmysql/authentication_win/CMakeLists.txt b/mysql-wsrep-5.6/libmysql/authentication_win/CMakeLists.txt
index 447a69ba..ec972d0f 100644
--- a/mysql-wsrep-5.6/libmysql/authentication_win/CMakeLists.txt
+++ b/mysql-wsrep-5.6/libmysql/authentication_win/CMakeLists.txt
@@ -1,14 +1,21 @@
 # Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
diff --git a/mysql-wsrep-5.6/libmysql/authentication_win/common.cc b/mysql-wsrep-5.6/libmysql/authentication_win/common.cc
index 4c01bd26..163f7c16 100644
--- a/mysql-wsrep-5.6/libmysql/authentication_win/common.cc
+++ b/mysql-wsrep-5.6/libmysql/authentication_win/common.cc
@@ -1,13 +1,20 @@
 /* Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libmysql/authentication_win/common.h b/mysql-wsrep-5.6/libmysql/authentication_win/common.h
index b42374fa..a337776a 100644
--- a/mysql-wsrep-5.6/libmysql/authentication_win/common.h
+++ b/mysql-wsrep-5.6/libmysql/authentication_win/common.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libmysql/authentication_win/handshake.cc b/mysql-wsrep-5.6/libmysql/authentication_win/handshake.cc
index cb3765b9..515eef97 100644
--- a/mysql-wsrep-5.6/libmysql/authentication_win/handshake.cc
+++ b/mysql-wsrep-5.6/libmysql/authentication_win/handshake.cc
@@ -1,13 +1,20 @@
 /* Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libmysql/authentication_win/handshake.h b/mysql-wsrep-5.6/libmysql/authentication_win/handshake.h
index 48ca6d13..82c5fe3d 100644
--- a/mysql-wsrep-5.6/libmysql/authentication_win/handshake.h
+++ b/mysql-wsrep-5.6/libmysql/authentication_win/handshake.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libmysql/authentication_win/handshake_client.cc b/mysql-wsrep-5.6/libmysql/authentication_win/handshake_client.cc
index fc993c83..b195fe9c 100644
--- a/mysql-wsrep-5.6/libmysql/authentication_win/handshake_client.cc
+++ b/mysql-wsrep-5.6/libmysql/authentication_win/handshake_client.cc
@@ -1,13 +1,20 @@
 /* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libmysql/authentication_win/log_client.cc b/mysql-wsrep-5.6/libmysql/authentication_win/log_client.cc
index 6973c95f..15a6d8c1 100644
--- a/mysql-wsrep-5.6/libmysql/authentication_win/log_client.cc
+++ b/mysql-wsrep-5.6/libmysql/authentication_win/log_client.cc
@@ -1,13 +1,20 @@
 /* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libmysql/authentication_win/plugin_client.cc b/mysql-wsrep-5.6/libmysql/authentication_win/plugin_client.cc
index 9fa9cfef..c3e1617e 100644
--- a/mysql-wsrep-5.6/libmysql/authentication_win/plugin_client.cc
+++ b/mysql-wsrep-5.6/libmysql/authentication_win/plugin_client.cc
@@ -1,13 +1,20 @@
 /* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libmysql/client_settings.h b/mysql-wsrep-5.6/libmysql/client_settings.h
index b233614f..6dcb8340 100644
--- a/mysql-wsrep-5.6/libmysql/client_settings.h
+++ b/mysql-wsrep-5.6/libmysql/client_settings.h
@@ -1,14 +1,26 @@
 /* Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
    
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-   
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
+   GNU General Public License, version 2.0, for more details.
+
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA */
diff --git a/mysql-wsrep-5.6/libmysql/conf_to_src.c b/mysql-wsrep-5.6/libmysql/conf_to_src.c
index 4209a834..e0b3f989 100644
--- a/mysql-wsrep-5.6/libmysql/conf_to_src.c
+++ b/mysql-wsrep-5.6/libmysql/conf_to_src.c
@@ -1,16 +1,20 @@
 /* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
 
-   There are special exceptions to the terms and conditions of the GPL as it
-   is applied to this software.
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libmysql/errmsg.c b/mysql-wsrep-5.6/libmysql/errmsg.c
index fa679d18..36f716dc 100644
--- a/mysql-wsrep-5.6/libmysql/errmsg.c
+++ b/mysql-wsrep-5.6/libmysql/errmsg.c
@@ -1,16 +1,25 @@
 /* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
 
-   There are special exceptions to the terms and conditions of the GPL as it
-   is applied to this software.
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libmysql/get_password.c b/mysql-wsrep-5.6/libmysql/get_password.c
index 55b7bf41..49c004b9 100644
--- a/mysql-wsrep-5.6/libmysql/get_password.c
+++ b/mysql-wsrep-5.6/libmysql/get_password.c
@@ -1,16 +1,25 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
 
-   There are special exceptions to the terms and conditions of the GPL as it
-   is applied to this software.
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libmysql/libmysql.c b/mysql-wsrep-5.6/libmysql/libmysql.c
index 64ed5e86..af0ec896 100644
--- a/mysql-wsrep-5.6/libmysql/libmysql.c
+++ b/mysql-wsrep-5.6/libmysql/libmysql.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libmysql/libmysql.ver.in b/mysql-wsrep-5.6/libmysql/libmysql.ver.in
index 98dbfe2d..9a4cb13f 100644
--- a/mysql-wsrep-5.6/libmysql/libmysql.ver.in
+++ b/mysql-wsrep-5.6/libmysql/libmysql.ver.in
@@ -1,13 +1,20 @@
 /* Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libmysql/libmysql.ver16.in b/mysql-wsrep-5.6/libmysql/libmysql.ver16.in
index 7b0cab44..67a26ffc 100644
--- a/mysql-wsrep-5.6/libmysql/libmysql.ver16.in
+++ b/mysql-wsrep-5.6/libmysql/libmysql.ver16.in
@@ -1,13 +1,20 @@
 /* Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libmysqld/CMakeLists.txt b/mysql-wsrep-5.6/libmysqld/CMakeLists.txt
index 2b4a7dcc..3bfaf977 100644
--- a/mysql-wsrep-5.6/libmysqld/CMakeLists.txt
+++ b/mysql-wsrep-5.6/libmysqld/CMakeLists.txt
@@ -1,14 +1,21 @@
 # Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
diff --git a/mysql-wsrep-5.6/libmysqld/emb_qcache.cc b/mysql-wsrep-5.6/libmysqld/emb_qcache.cc
index 17f5ce6b..42346fd6 100644
--- a/mysql-wsrep-5.6/libmysqld/emb_qcache.cc
+++ b/mysql-wsrep-5.6/libmysqld/emb_qcache.cc
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libmysqld/emb_qcache.h b/mysql-wsrep-5.6/libmysqld/emb_qcache.h
index 8fd166df..4d00f845 100644
--- a/mysql-wsrep-5.6/libmysqld/emb_qcache.h
+++ b/mysql-wsrep-5.6/libmysqld/emb_qcache.h
@@ -1,14 +1,21 @@
 /* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
    
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-   
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
+   GNU General Public License, version 2.0, for more details.
+
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA */
diff --git a/mysql-wsrep-5.6/libmysqld/embedded_priv.h b/mysql-wsrep-5.6/libmysqld/embedded_priv.h
index c096954a..a434b6b0 100644
--- a/mysql-wsrep-5.6/libmysqld/embedded_priv.h
+++ b/mysql-wsrep-5.6/libmysqld/embedded_priv.h
@@ -1,13 +1,20 @@
 /* Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libmysqld/examples/CMakeLists.txt b/mysql-wsrep-5.6/libmysqld/examples/CMakeLists.txt
index 07ed5c5f..9ab21f63 100644
--- a/mysql-wsrep-5.6/libmysqld/examples/CMakeLists.txt
+++ b/mysql-wsrep-5.6/libmysqld/examples/CMakeLists.txt
@@ -1,14 +1,21 @@
 # Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
diff --git a/mysql-wsrep-5.6/libmysqld/examples/builder-sample/emb_sample.bpr b/mysql-wsrep-5.6/libmysqld/examples/builder-sample/emb_sample.bpr
index 100e5b98..281b61be 100644
--- a/mysql-wsrep-5.6/libmysqld/examples/builder-sample/emb_sample.bpr
+++ b/mysql-wsrep-5.6/libmysqld/examples/builder-sample/emb_sample.bpr
@@ -2,14 +2,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/mysql-wsrep-5.6/libmysqld/examples/builder-sample/emb_sample.cpp b/mysql-wsrep-5.6/libmysqld/examples/builder-sample/emb_sample.cpp
index 0c8f4fa0..1742ec0c 100644
--- a/mysql-wsrep-5.6/libmysqld/examples/builder-sample/emb_sample.cpp
+++ b/mysql-wsrep-5.6/libmysqld/examples/builder-sample/emb_sample.cpp
@@ -2,14 +2,21 @@
 // Use is subject to license terms.
 // 
 // This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; version 2 of the License.
-// 
+// it under the terms of the GNU General Public License, version 2.0,
+// as published by the Free Software Foundation.
+//
+// This program is also distributed with certain software (including
+// but not limited to OpenSSL) that is licensed under separate terms,
+// as designated in a particular file or component or in included license
+// documentation.  The authors of MySQL hereby grant you an additional
+// permission to link the program and your derivative works with the
+// separately licensed software that they have included with MySQL.
+//
 // This program is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
+// GNU General Public License, version 2.0, for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/mysql-wsrep-5.6/libmysqld/examples/builder-sample/emb_samples.cpp b/mysql-wsrep-5.6/libmysqld/examples/builder-sample/emb_samples.cpp
index aab1385f..c5c3ae15 100644
--- a/mysql-wsrep-5.6/libmysqld/examples/builder-sample/emb_samples.cpp
+++ b/mysql-wsrep-5.6/libmysqld/examples/builder-sample/emb_samples.cpp
@@ -2,14 +2,21 @@
 // Use is subject to license terms.
 // 
 // This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; version 2 of the License.
-// 
+// it under the terms of the GNU General Public License, version 2.0,
+// as published by the Free Software Foundation.
+//
+// This program is also distributed with certain software (including
+// but not limited to OpenSSL) that is licensed under separate terms,
+// as designated in a particular file or component or in included license
+// documentation.  The authors of MySQL hereby grant you an additional
+// permission to link the program and your derivative works with the
+// separately licensed software that they have included with MySQL.
+//
 // This program is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
+// GNU General Public License, version 2.0, for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/mysql-wsrep-5.6/libmysqld/examples/builder-sample/emb_samples.h b/mysql-wsrep-5.6/libmysqld/examples/builder-sample/emb_samples.h
index 3024e75d..a23e9582 100644
--- a/mysql-wsrep-5.6/libmysqld/examples/builder-sample/emb_samples.h
+++ b/mysql-wsrep-5.6/libmysqld/examples/builder-sample/emb_samples.h
@@ -2,14 +2,21 @@
 // Use is subject to license terms.
 // 
 // This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; version 2 of the License.
-// 
+// it under the terms of the GNU General Public License, version 2.0,
+// as published by the Free Software Foundation.
+//
+// This program is also distributed with certain software (including
+// but not limited to OpenSSL) that is licensed under separate terms,
+// as designated in a particular file or component or in included license
+// documentation.  The authors of MySQL hereby grant you an additional
+// permission to link the program and your derivative works with the
+// separately licensed software that they have included with MySQL.
+//
 // This program is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
+// GNU General Public License, version 2.0, for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/mysql-wsrep-5.6/libmysqld/examples/test-run b/mysql-wsrep-5.6/libmysqld/examples/test-run
index 757f4f61..f6810298 100755
--- a/mysql-wsrep-5.6/libmysqld/examples/test-run
+++ b/mysql-wsrep-5.6/libmysqld/examples/test-run
@@ -4,13 +4,20 @@
 # Use is subject to license terms
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libmysqld/libmysqld.c b/mysql-wsrep-5.6/libmysqld/libmysqld.c
index 2dab1339..91708091 100644
--- a/mysql-wsrep-5.6/libmysqld/libmysqld.c
+++ b/mysql-wsrep-5.6/libmysqld/libmysqld.c
@@ -1,13 +1,20 @@
 /* Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libservices/CMakeLists.txt b/mysql-wsrep-5.6/libservices/CMakeLists.txt
index a247f2b3..aae1bff1 100644
--- a/mysql-wsrep-5.6/libservices/CMakeLists.txt
+++ b/mysql-wsrep-5.6/libservices/CMakeLists.txt
@@ -1,14 +1,21 @@
 # Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
diff --git a/mysql-wsrep-5.6/libservices/my_plugin_log_service.c b/mysql-wsrep-5.6/libservices/my_plugin_log_service.c
index 03e7f4e9..51a0c41d 100644
--- a/mysql-wsrep-5.6/libservices/my_plugin_log_service.c
+++ b/mysql-wsrep-5.6/libservices/my_plugin_log_service.c
@@ -1,15 +1,21 @@
 /*  Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
     
-    This program is free software; you can redistribute it and/or
-    modify it under the terms of the GNU General Public License as
-    published by the Free Software Foundation; version 2 of the
-    License.
-    
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License, version 2.0,
+    as published by the Free Software Foundation.
+
+    This program is also distributed with certain software (including
+    but not limited to OpenSSL) that is licensed under separate terms,
+    as designated in a particular file or component or in included license
+    documentation.  The authors of MySQL hereby grant you an additional
+    permission to link the program and your derivative works with the
+    separately licensed software that they have included with MySQL.
+
     This program is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-    GNU General Public License for more details.
-    
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License, version 2.0, for more details.
+
     You should have received a copy of the GNU General Public License
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
diff --git a/mysql-wsrep-5.6/libservices/my_snprintf_service.c b/mysql-wsrep-5.6/libservices/my_snprintf_service.c
index 8ac50739..0494c59e 100644
--- a/mysql-wsrep-5.6/libservices/my_snprintf_service.c
+++ b/mysql-wsrep-5.6/libservices/my_snprintf_service.c
@@ -2,13 +2,20 @@
    Use is subject to license terms.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libservices/my_thread_scheduler_service.c b/mysql-wsrep-5.6/libservices/my_thread_scheduler_service.c
index 0bbad39d..a8287ed4 100644
--- a/mysql-wsrep-5.6/libservices/my_thread_scheduler_service.c
+++ b/mysql-wsrep-5.6/libservices/my_thread_scheduler_service.c
@@ -2,13 +2,20 @@
   Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
+
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libservices/mysql_string_service.c b/mysql-wsrep-5.6/libservices/mysql_string_service.c
index c206ab3c..ecddc05a 100644
--- a/mysql-wsrep-5.6/libservices/mysql_string_service.c
+++ b/mysql-wsrep-5.6/libservices/mysql_string_service.c
@@ -1,15 +1,21 @@
 /*  Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
     
-    This program is free software; you can redistribute it and/or
-    modify it under the terms of the GNU General Public License as
-    published by the Free Software Foundation; version 2 of the
-    License.
-    
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License, version 2.0,
+    as published by the Free Software Foundation.
+
+    This program is also distributed with certain software (including
+    but not limited to OpenSSL) that is licensed under separate terms,
+    as designated in a particular file or component or in included license
+    documentation.  The authors of MySQL hereby grant you an additional
+    permission to link the program and your derivative works with the
+    separately licensed software that they have included with MySQL.
+
     This program is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-    GNU General Public License for more details.
-    
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License, version 2.0, for more details.
+
     You should have received a copy of the GNU General Public License
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
diff --git a/mysql-wsrep-5.6/libservices/thd_alloc_service.c b/mysql-wsrep-5.6/libservices/thd_alloc_service.c
index 65e3fc49..1967f9dd 100644
--- a/mysql-wsrep-5.6/libservices/thd_alloc_service.c
+++ b/mysql-wsrep-5.6/libservices/thd_alloc_service.c
@@ -2,13 +2,20 @@
    Use is subject to license terms.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/libservices/thd_wait_service.c b/mysql-wsrep-5.6/libservices/thd_wait_service.c
index 8cec4eec..8e983664 100644
--- a/mysql-wsrep-5.6/libservices/thd_wait_service.c
+++ b/mysql-wsrep-5.6/libservices/thd_wait_service.c
@@ -2,13 +2,20 @@
   Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
 
-  This program is distributed in the hope that it will be useful, but
-  WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-  General Public License for more details.
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/man/CMakeLists.txt b/mysql-wsrep-5.6/man/CMakeLists.txt
index 5df99224..573e6c1e 100644
--- a/mysql-wsrep-5.6/man/CMakeLists.txt
+++ b/mysql-wsrep-5.6/man/CMakeLists.txt
@@ -1,14 +1,21 @@
 # Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
diff --git a/mysql-wsrep-5.6/man/comp_err.1 b/mysql-wsrep-5.6/man/comp_err.1
index c8d03dbc..9a9486e3 100644
--- a/mysql-wsrep-5.6/man/comp_err.1
+++ b/mysql-wsrep-5.6/man/comp_err.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBcomp_err\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBCOMP_ERR\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBCOMP_ERR\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -43,12 +43,12 @@ to determine the error messages to display for different error codes\&.
 \fBcomp_err\fR
 normally is run automatically when MySQL is built\&. It compiles the
 errmsg\&.sys
-file from the text file located at
+file from the text\-format error information file located at
 sql/share/errmsg\-utf8\&.txt
 in MySQL source distributions\&.
 .PP
 \fBcomp_err\fR
-also generates
+also generates the
 mysqld_error\&.h,
 mysqld_ername\&.h, and
 sql_state\&.h
@@ -84,7 +84,6 @@ supports the following options\&.
 .\}
 \fB\-\-help\fR,
 \fB\-?\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -98,7 +97,6 @@ Display a help message and exit\&.
 .\}
 \fB\-\-charset=\fR\fB\fIdir_name\fR\fR,
 \fB\-C \fR\fB\fIdir_name\fR\fR
-.sp
 The character set directory\&. The default is
 \&.\&./sql/share/charsets\&.
 .RE
@@ -113,7 +111,6 @@ The character set directory\&. The default is
 .\}
 \fB\-\-debug=\fR\fB\fIdebug_options\fR\fR,
 \fB\-# \fR\fB\fIdebug_options\fR\fR
-.sp
 Write a debugging log\&. A typical
 \fIdebug_options\fR
 string is
@@ -131,7 +128,6 @@ d:t:O,/tmp/comp_err\&.trace\&.
 .\}
 \fB\-\-debug\-info\fR,
 \fB\-T\fR
-.sp
 Print some debugging information when the program exits\&.
 .RE
 .sp
@@ -143,9 +139,8 @@ Print some debugging information when the program exits\&.
 .sp -1
 .IP \(bu 2.3
 .\}
-\fB\-\-header_file=\fR\fB\fIfile_name\fR\fR,
+\fB\-\-header\-file=\fR\fB\fIfile_name\fR\fR,
 \fB\-H \fR\fB\fIfile_name\fR\fR
-.sp
 The name of the error header file\&. The default is
 mysqld_error\&.h\&.
 .RE
@@ -158,10 +153,9 @@ mysqld_error\&.h\&.
 .sp -1
 .IP \(bu 2.3
 .\}
-\fB\-\-in_file=\fR\fB\fIfile_name\fR\fR,
+\fB\-\-in\-file=\fR\fB\fIfile_name\fR\fR,
 \fB\-F \fR\fB\fIfile_name\fR\fR
-.sp
-The name of the input file\&. The default is
+The name of the input file that defines error messages\&. The default is
 \&.\&./sql/share/errmsg\-utf8\&.txt\&.
 .RE
 .sp
@@ -173,9 +167,8 @@ The name of the input file\&. The default is
 .sp -1
 .IP \(bu 2.3
 .\}
-\fB\-\-name_file=\fR\fB\fIfile_name\fR\fR,
+\fB\-\-name\-file=\fR\fB\fIfile_name\fR\fR,
 \fB\-N \fR\fB\fIfile_name\fR\fR
-.sp
 The name of the error name file\&. The default is
 mysqld_ername\&.h\&.
 .RE
@@ -188,9 +181,8 @@ mysqld_ername\&.h\&.
 .sp -1
 .IP \(bu 2.3
 .\}
-\fB\-\-out_dir=\fR\fB\fIdir_name\fR\fR,
+\fB\-\-out\-dir=\fR\fB\fIdir_name\fR\fR,
 \fB\-D \fR\fB\fIdir_name\fR\fR
-.sp
 The name of the output base directory\&. The default is
 \&.\&./sql/share/\&.
 .RE
@@ -203,9 +195,8 @@ The name of the output base directory\&. The default is
 .sp -1
 .IP \(bu 2.3
 .\}
-\fB\-\-out_file=\fR\fB\fIfile_name\fR\fR,
+\fB\-\-out\-file=\fR\fB\fIfile_name\fR\fR,
 \fB\-O \fR\fB\fIfile_name\fR\fR
-.sp
 The name of the output file\&. The default is
 errmsg\&.sys\&.
 .RE
@@ -218,9 +209,8 @@ errmsg\&.sys\&.
 .sp -1
 .IP \(bu 2.3
 .\}
-\fB\-\-statefile=\fR\fB\fIfile_name\fR\fR,
+\fB\-\-state\-file=\fR\fB\fIfile_name\fR\fR,
 \fB\-S \fR\fB\fIfile_name\fR\fR
-.sp
 The name for the SQLSTATE header file\&. The default is
 sql_state\&.h\&.
 .RE
@@ -235,13 +225,12 @@ sql_state\&.h\&.
 .\}
 \fB\-\-version\fR,
 \fB\-V\fR
-.sp
 Display version information and exit\&.
 .RE
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/innochecksum.1 b/mysql-wsrep-5.6/man/innochecksum.1
index 04b6ddee..8bc02e77 100644
--- a/mysql-wsrep-5.6/man/innochecksum.1
+++ b/mysql-wsrep-5.6/man/innochecksum.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBinnochecksum\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBINNOCHECKSUM\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBINNOCHECKSUM\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -156,7 +156,7 @@ Verbose mode; print a progress indicator every five seconds\&.
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/msql2mysql.1 b/mysql-wsrep-5.6/man/msql2mysql.1
index 8fcdea89..a7ef2a8f 100644
--- a/mysql-wsrep-5.6/man/msql2mysql.1
+++ b/mysql-wsrep-5.6/man/msql2mysql.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmsql2mysql\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMSQL2MYSQL\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMSQL2MYSQL\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -84,7 +84,7 @@ utility to make the function name substitutions\&. See
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/my_print_defaults.1 b/mysql-wsrep-5.6/man/my_print_defaults.1
index b604acc6..83d9dca3 100644
--- a/mysql-wsrep-5.6/man/my_print_defaults.1
+++ b/mysql-wsrep-5.6/man/my_print_defaults.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmy_print_defaults\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMY_PRINT_DEFAULTS\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMY_PRINT_DEFAULTS\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -35,7 +35,7 @@ my_print_defaults \- display options from option files
 .SH "DESCRIPTION"
 .PP
 \fBmy_print_defaults\fR
-displays the options that are present in option groups of option files\&. The output indicates what options will be used by programs that read the specified option groups\&. For example, the
+displays the options that are present in option groups of option files\&. The output indicates which options are used by programs that read the specified option groups\&. For example, the
 \fBmysqlcheck\fR
 program reads the
 [mysqlcheck]
@@ -73,7 +73,6 @@ supports the following options\&.
 .\}
 \fB\-\-help\fR,
 \fB\-?\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -88,7 +87,6 @@ Display a help message and exit\&.
 \fB\-\-config\-file=\fR\fB\fIfile_name\fR\fR,
 \fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR,
 \fB\-c \fR\fB\fIfile_name\fR\fR
-.sp
 Read only the given option file\&.
 .RE
 .sp
@@ -102,7 +100,6 @@ Read only the given option file\&.
 .\}
 \fB\-\-debug=\fR\fB\fIdebug_options\fR\fR,
 \fB\-# \fR\fB\fIdebug_options\fR\fR
-.sp
 Write a debugging log\&. A typical
 \fIdebug_options\fR
 string is
@@ -121,7 +118,6 @@ d:t:o,/tmp/my_print_defaults\&.trace\&.
 \fB\-\-defaults\-extra\-file=\fR\fB\fIfile_name\fR\fR,
 \fB\-\-extra\-file=\fR\fB\fIfile_name\fR\fR,
 \fB\-e \fR\fB\fIfile_name\fR\fR
-.sp
 Read this option file after the global option file but (on Unix) before the user option file\&.
 .sp
 For additional information about this and other option\-file options, see
@@ -138,7 +134,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-defaults\-group\-suffix=\fR\fB\fIsuffix\fR\fR,
 \fB\-g \fR\fB\fIsuffix\fR\fR
-.sp
 In addition to the groups named on the command line, read groups that have the given suffix\&.
 .sp
 For additional information about this and other option\-file options, see
@@ -155,7 +150,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-login\-path=\fR\fB\fIname\fR\fR,
 \fB\-l \fR\fB\fIname\fR\fR
-.sp
 Read options from the named login path in the
 \&.mylogin\&.cnf
 login path file\&. A
@@ -179,7 +173,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-no\-defaults\fR,
 \fB\-n\fR
-.sp
 Return an empty string\&.
 .sp
 For additional information about this and other option\-file options, see
@@ -196,7 +189,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-show\fR,
 \fB\-s\fR
-.sp
 As of MySQL 5\&.6\&.25,
 \fBmy_print_defaults\fR
 masks passwords by default\&. Use this option to display passwords in cleartext\&.
@@ -212,7 +204,6 @@ masks passwords by default\&. Use this option to display passwords in cleartext\
 .\}
 \fB\-\-verbose\fR,
 \fB\-v\fR
-.sp
 Verbose mode\&. Print more information about what the program does\&.
 .RE
 .sp
@@ -226,13 +217,12 @@ Verbose mode\&. Print more information about what the program does\&.
 .\}
 \fB\-\-version\fR,
 \fB\-V\fR
-.sp
 Display version information and exit\&.
 .RE
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/myisam_ftdump.1 b/mysql-wsrep-5.6/man/myisam_ftdump.1
index 174f9c02..dfa25062 100644
--- a/mysql-wsrep-5.6/man/myisam_ftdump.1
+++ b/mysql-wsrep-5.6/man/myisam_ftdump.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmyisam_ftdump\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYISAM_FTDUMP\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYISAM_FTDUMP\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -174,7 +174,6 @@ supports the following options:
 \fB\-\-help\fR,
 \fB\-h\fR
 \fB\-?\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -188,7 +187,6 @@ Display a help message and exit\&.
 .\}
 \fB\-\-count\fR,
 \fB\-c\fR
-.sp
 Calculate per\-word statistics (counts and global weights)\&.
 .RE
 .sp
@@ -202,7 +200,6 @@ Calculate per\-word statistics (counts and global weights)\&.
 .\}
 \fB\-\-dump\fR,
 \fB\-d\fR
-.sp
 Dump the index, including data offsets and word weights\&.
 .RE
 .sp
@@ -216,7 +213,6 @@ Dump the index, including data offsets and word weights\&.
 .\}
 \fB\-\-length\fR,
 \fB\-l\fR
-.sp
 Report the length distribution\&.
 .RE
 .sp
@@ -230,7 +226,6 @@ Report the length distribution\&.
 .\}
 \fB\-\-stats\fR,
 \fB\-s\fR
-.sp
 Report global index statistics\&. This is the default operation if no other operation is specified\&.
 .RE
 .sp
@@ -244,13 +239,12 @@ Report global index statistics\&. This is the default operation if no other oper
 .\}
 \fB\-\-verbose\fR,
 \fB\-v\fR
-.sp
 Verbose mode\&. Print more output about what the program does\&.
 .RE
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/myisamchk.1 b/mysql-wsrep-5.6/man/myisamchk.1
index 3ea664ff..a7411318 100644
--- a/mysql-wsrep-5.6/man/myisamchk.1
+++ b/mysql-wsrep-5.6/man/myisamchk.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmyisamchk\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYISAMCHK\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYISAMCHK\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -53,8 +53,8 @@ REPAIR TABLE
 statements to check and repair
 MyISAM
 tables\&. See
-Section\ \&13.7.2.2, \(lqCHECK TABLE Syntax\(rq, and
-Section\ \&13.7.2.5, \(lqREPAIR TABLE Syntax\(rq\&.
+Section\ \&13.7.2.2, \(lqCHECK TABLE Statement\(rq, and
+Section\ \&13.7.2.5, \(lqREPAIR TABLE Statement\(rq\&.
 .PP
 The use of
 \fBmyisamchk\fR
@@ -241,7 +241,7 @@ CHECK TABLE
 instead of
 \fBmyisamchk\fR
 to check tables\&. See
-Section\ \&13.7.2.2, \(lqCHECK TABLE Syntax\(rq\&.
+Section\ \&13.7.2.2, \(lqCHECK TABLE Statement\(rq\&.
 .sp .5v
 .RE
 .PP
@@ -265,7 +265,6 @@ The options described in this section can be used for any type of table maintena
 .\}
 \fB\-\-help\fR,
 \fB\-?\fR
-.sp
 Display a help message and exit\&. Options are grouped by type of operation\&.
 .RE
 .sp
@@ -279,7 +278,6 @@ Display a help message and exit\&. Options are grouped by type of operation\&.
 .\}
 \fB\-\-HELP\fR,
 \fB\-H\fR
-.sp
 Display a help message and exit\&. Options are presented in a single list\&.
 .RE
 .sp
@@ -293,12 +291,16 @@ Display a help message and exit\&. Options are presented in a single list\&.
 .\}
 \fB\-\-debug=\fR\fB\fIdebug_options\fR\fR,
 \fB\-# \fR\fB\fIdebug_options\fR\fR
-.sp
 Write a debugging log\&. A typical
 \fIdebug_options\fR
 string is
 d:t:o,\fIfile_name\fR\&. The default is
 d:t:o,/tmp/myisamchk\&.trace\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -310,7 +312,6 @@ d:t:o,/tmp/myisamchk\&.trace\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-extra\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Read this option file after the global option file but (on Unix) before the user option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -328,7 +329,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Use only the given option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -346,7 +346,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-group\-suffix=\fR\fB\fIstr\fR\fR
-.sp
 Read not only the usual option groups, but also groups with the usual names and a suffix of
 \fIstr\fR\&. For example,
 \fBmyisamchk\fR
@@ -373,7 +372,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-no\-defaults\fR
-.sp
 Do not read any option files\&. If program startup fails due to reading unknown options from an option file,
 \fB\-\-no\-defaults\fR
 can be used to prevent them from being read\&.
@@ -401,7 +399,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-print\-defaults\fR
-.sp
 Print the program name and all options that it gets from option files\&.
 .sp
 For additional information about this and other option\-file options, see
@@ -418,7 +415,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-silent\fR,
 \fB\-s\fR
-.sp
 Silent mode\&. Write output only when errors occur\&. You can use
 \fB\-s\fR
 twice (\fB\-ss\fR) to make
@@ -436,7 +432,6 @@ very silent\&.
 .\}
 \fB\-\-verbose\fR,
 \fB\-v\fR
-.sp
 Verbose mode\&. Print more information about what the program does\&. This can be used with
 \fB\-d\fR
 and
@@ -456,7 +451,6 @@ multiple times (\fB\-vv\fR,
 .\}
 \fB\-\-version\fR,
 \fB\-V\fR
-.sp
 Display version information and exit\&.
 .RE
 .sp
@@ -470,7 +464,6 @@ Display version information and exit\&.
 .\}
 \fB\-\-wait\fR,
 \fB\-w\fR
-.sp
 Instead of terminating with an error if the table is locked, wait until the table is unlocked before continuing\&. If you are running
 \fBmysqld\fR
 with external locking disabled, the table can be locked only by another
@@ -728,7 +721,6 @@ supports the following options for table checking operations:
 .\}
 \fB\-\-check\fR,
 \fB\-c\fR
-.sp
 Check the table for errors\&. This is the default operation if you specify no option that selects an operation type explicitly\&.
 .RE
 .sp
@@ -742,7 +734,6 @@ Check the table for errors\&. This is the default operation if you specify no op
 .\}
 \fB\-\-check\-only\-changed\fR,
 \fB\-C\fR
-.sp
 Check only tables that have changed since the last check\&.
 .RE
 .sp
@@ -756,7 +747,6 @@ Check only tables that have changed since the last check\&.
 .\}
 \fB\-\-extend\-check\fR,
 \fB\-e\fR
-.sp
 Check the table very thoroughly\&. This is quite slow if the table has many indexes\&. This option should only be used in extreme cases\&. Normally,
 \fBmyisamchk\fR
 or
@@ -785,7 +775,6 @@ the section called \(lqOBTAINING TABLE INFORMATION WITH MYISAMCHK\(rq\&.
 .\}
 \fB\-\-fast\fR,
 \fB\-F\fR
-.sp
 Check only tables that haven\*(Aqt been closed properly\&.
 .RE
 .sp
@@ -799,7 +788,6 @@ Check only tables that haven\*(Aqt been closed properly\&.
 .\}
 \fB\-\-force\fR,
 \fB\-f\fR
-.sp
 Do a repair operation automatically if
 \fBmyisamchk\fR
 finds any errors in the table\&. The repair type is the same as that specified with the
@@ -819,7 +807,6 @@ option\&.
 .\}
 \fB\-\-information\fR,
 \fB\-i\fR
-.sp
 Print informational statistics about the table that is checked\&.
 .RE
 .sp
@@ -833,7 +820,6 @@ Print informational statistics about the table that is checked\&.
 .\}
 \fB\-\-medium\-check\fR,
 \fB\-m\fR
-.sp
 Do a check that is faster than an
 \fB\-\-extend\-check\fR
 operation\&. This finds only 99\&.99% of all errors, which should be good enough in most cases\&.
@@ -849,7 +835,6 @@ operation\&. This finds only 99\&.99% of all errors, which should be good enough
 .\}
 \fB\-\-read\-only\fR,
 \fB\-T\fR
-.sp
 Do not mark the table as checked\&. This is useful if you use
 \fBmyisamchk\fR
 to check a table that is in use by some other application that does not use locking, such as
@@ -867,7 +852,6 @@ when run with external locking disabled\&.
 .\}
 \fB\-\-update\-state\fR,
 \fB\-U\fR
-.sp
 Store information in the
 \&.MYI
 file to indicate when the table was checked and whether the table crashed\&. This should be used to get full benefit of the
@@ -895,7 +879,6 @@ is given):
 .\}
 \fB\-\-backup\fR,
 \fB\-B\fR
-.sp
 Make a backup of the
 \&.MYD
 file as
@@ -911,9 +894,8 @@ file as
 .IP \(bu 2.3
 .\}
 \fB\-\-character\-sets\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The directory where character sets are installed\&. See
-Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
+Section\ \&10.15, \(lqCharacter Set Configuration\(rq\&.
 .RE
 .sp
 .RS 4
@@ -925,7 +907,6 @@ Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-correct\-checksum\fR
-.sp
 Correct the checksum information for the table\&.
 .RE
 .sp
@@ -939,7 +920,6 @@ Correct the checksum information for the table\&.
 .\}
 \fB\-\-data\-file\-length=\fR\fB\fIlen\fR\fR,
 \fB\-D \fR\fB\fIlen\fR\fR
-.sp
 The maximum length of the data file (when re\-creating data file when it is
 \(lqfull\(rq)\&.
 .RE
@@ -988,7 +968,6 @@ Overwrite old intermediate files (files with names like
 .\}
 \fB\-\-keys\-used=\fR\fB\fIval\fR\fR,
 \fB\-k \fR\fB\fIval\fR\fR
-.sp
 For
 \fBmyisamchk\fR, the option value is a bit value that indicates which indexes to update\&. Each binary bit of the option value corresponds to a table index, where the first index is bit 0\&. An option value of 0 disables updates to all indexes, which can be used to get faster inserts\&. Deactivated indexes can be reactivated by using
 \fBmyisamchk \-r\fR\&.
@@ -1004,7 +983,6 @@ For
 .\}
 \fB\-\-no\-symlinks\fR,
 \fB\-l\fR
-.sp
 Do not follow symbolic links\&. Normally
 \fBmyisamchk\fR
 repairs the table that a symlink points to\&. This option does not exist as of MySQL 4\&.0 because versions from 4\&.0 on do not remove symlinks during repair operations\&.
@@ -1019,7 +997,6 @@ repairs the table that a symlink points to\&. This option does not exist as of M
 .IP \(bu 2.3
 .\}
 \fB\-\-max\-record\-length=\fR\fB\fIlen\fR\fR
-.sp
 Skip rows larger than the given length if
 \fBmyisamchk\fR
 cannot allocate memory to hold them\&.
@@ -1035,7 +1012,6 @@ cannot allocate memory to hold them\&.
 .\}
 \fB\-\-parallel\-recover\fR,
 \fB\-p\fR
-.sp
 Use the same technique as
 \fB\-r\fR
 and
@@ -1053,7 +1029,6 @@ and
 .\}
 \fB\-\-quick\fR,
 \fB\-q\fR
-.sp
 Achieve a faster repair by modifying only the index file, not the data file\&. You can specify this option twice to force
 \fBmyisamchk\fR
 to modify the original data file in case of duplicate keys\&.
@@ -1069,7 +1044,6 @@ to modify the original data file in case of duplicate keys\&.
 .\}
 \fB\-\-recover\fR,
 \fB\-r\fR
-.sp
 Do a repair that can fix almost any problem except unique keys that are not unique (which is an extremely unlikely error with
 MyISAM
 tables)\&. If you want to recover a table, this is the option to try first\&. You should try
@@ -1095,7 +1069,6 @@ myisam_sort_buffer_size\&.
 .\}
 \fB\-\-safe\-recover\fR,
 \fB\-o\fR
-.sp
 Do a repair using an old recovery method that reads through all rows in order and updates all index trees based on the rows found\&. This is an order of magnitude slower than
 \fB\-\-recover\fR, but can handle a couple of very unlikely cases that
 \fB\-\-recover\fR
@@ -1120,7 +1093,6 @@ key_buffer_size\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-set\-collation=\fR\fB\fIname\fR\fR
-.sp
 Specify the collation to use for sorting table indexes\&. The character set name is implied by the first part of the collation name\&.
 .RE
 .sp
@@ -1134,7 +1106,6 @@ Specify the collation to use for sorting table indexes\&. The character set name
 .\}
 \fB\-\-sort\-recover\fR,
 \fB\-n\fR
-.sp
 Force
 \fBmyisamchk\fR
 to use sorting to resolve the keys even if the temporary files would be very large\&.
@@ -1150,7 +1121,6 @@ to use sorting to resolve the keys even if the temporary files would be very lar
 .\}
 \fB\-\-tmpdir=\fR\fB\fIdir_name\fR\fR,
 \fB\-t \fR\fB\fIdir_name\fR\fR
-.sp
 The path of the directory to be used for storing temporary files\&. If this is not set,
 \fBmyisamchk\fR
 uses the value of the
@@ -1170,7 +1140,6 @@ can be set to a list of directory paths that are used successively in round\-rob
 .\}
 \fB\-\-unpack\fR,
 \fB\-u\fR
-.sp
 Unpack a table that was packed with
 \fBmyisampack\fR\&.
 .RE
@@ -1189,7 +1158,6 @@ supports the following options for actions other than table checks and repairs:
 .\}
 \fB\-\-analyze\fR,
 \fB\-a\fR
-.sp
 Analyze the distribution of key values\&. This improves join performance by enabling the join optimizer to better choose the order in which to join the tables and which indexes it should use\&. To obtain information about the key distribution, use a
 \fBmyisamchk \-\-description \-\-verbose \fR\fB\fItbl_name\fR\fR
 command or the
@@ -1207,7 +1175,6 @@ statement\&.
 .\}
 \fB\-\-block\-search=\fR\fB\fIoffset\fR\fR,
 \fB\-b \fR\fB\fIoffset\fR\fR
-.sp
 Find the record that a block at the given offset belongs to\&.
 .RE
 .sp
@@ -1221,7 +1188,6 @@ Find the record that a block at the given offset belongs to\&.
 .\}
 \fB\-\-description\fR,
 \fB\-d\fR
-.sp
 Print some descriptive information about the table\&. Specifying the
 \fB\-\-verbose\fR
 option once or twice produces additional information\&. See
@@ -1238,7 +1204,6 @@ the section called \(lqOBTAINING TABLE INFORMATION WITH MYISAMCHK\(rq\&.
 .\}
 \fB\-\-set\-auto\-increment[=\fR\fB\fIvalue\fR\fR\fB]\fR,
 \fB\-A[\fR\fB\fIvalue\fR\fR\fB]\fR
-.sp
 Force
 AUTO_INCREMENT
 numbering for new records to start at the given value (or higher, if there are existing records with
@@ -1260,7 +1225,6 @@ numbers for new records begin with the largest value currently in the table, plu
 .\}
 \fB\-\-sort\-index\fR,
 \fB\-S\fR
-.sp
 Sort the index tree blocks in high\-low order\&. This optimizes seeks and makes table scans that use indexes faster\&.
 .RE
 .sp
@@ -1274,7 +1238,6 @@ Sort the index tree blocks in high\-low order\&. This optimizes seeks and makes
 .\}
 \fB\-\-sort\-records=\fR\fB\fIN\fR\fR,
 \fB\-R \fR\fB\fIN\fR\fR
-.sp
 Sort records according to a particular index\&. This makes your data much more localized and may speed up range\-based
 SELECT
 and
@@ -2478,7 +2441,7 @@ instead of
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/myisamlog.1 b/mysql-wsrep-5.6/man/myisamlog.1
index f5600846..c2fa18b5 100644
--- a/mysql-wsrep-5.6/man/myisamlog.1
+++ b/mysql-wsrep-5.6/man/myisamlog.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmyisamlog\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYISAMLOG\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYISAMLOG\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -240,7 +240,7 @@ Display version information\&.
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/myisampack.1 b/mysql-wsrep-5.6/man/myisampack.1
index a4dd6e6f..253c7c6a 100644
--- a/mysql-wsrep-5.6/man/myisampack.1
+++ b/mysql-wsrep-5.6/man/myisampack.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmyisampack\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYISAMPACK\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYISAMPACK\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -130,7 +130,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-help\fR,
 \fB\-?\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -144,7 +143,6 @@ Display a help message and exit\&.
 .\}
 \fB\-\-backup\fR,
 \fB\-b\fR
-.sp
 Make a backup of each table\*(Aqs data file using the name
 \fItbl_name\fR\&.OLD\&.
 .RE
@@ -158,9 +156,8 @@ Make a backup of each table\*(Aqs data file using the name
 .IP \(bu 2.3
 .\}
 \fB\-\-character\-sets\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The directory where character sets are installed\&. See
-Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
+Section\ \&10.15, \(lqCharacter Set Configuration\(rq\&.
 .RE
 .sp
 .RS 4
@@ -173,12 +170,16 @@ Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
 .\}
 \fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR,
 \fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR
-.sp
 Write a debugging log\&. A typical
 \fIdebug_options\fR
 string is
 d:t:o,\fIfile_name\fR\&. The default is
 d:t:o\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -191,7 +192,6 @@ d:t:o\&.
 .\}
 \fB\-\-force\fR,
 \fB\-f\fR
-.sp
 Produce a packed table even if it becomes larger than the original or if the intermediate file from an earlier invocation of
 \fBmyisampack\fR
 exists\&. (\fBmyisampack\fR
@@ -220,7 +220,6 @@ packs the table anyway\&.
 .\}
 \fB\-\-join=\fR\fB\fIbig_tbl_name\fR\fR,
 \fB\-j \fR\fB\fIbig_tbl_name\fR\fR
-.sp
 Join all tables named on the command line into a single packed table
 \fIbig_tbl_name\fR\&. All tables that are to be combined
 \fImust\fR
@@ -242,7 +241,6 @@ must exist\&. The source tables are read for the join operation but not modified
 .\}
 \fB\-\-silent\fR,
 \fB\-s\fR
-.sp
 Silent mode\&. Write output only when errors occur\&.
 .RE
 .sp
@@ -256,7 +254,6 @@ Silent mode\&. Write output only when errors occur\&.
 .\}
 \fB\-\-test\fR,
 \fB\-t\fR
-.sp
 Do not actually pack the table, just test packing it\&.
 .RE
 .sp
@@ -270,7 +267,6 @@ Do not actually pack the table, just test packing it\&.
 .\}
 \fB\-\-tmpdir=\fR\fB\fIdir_name\fR\fR,
 \fB\-T \fR\fB\fIdir_name\fR\fR
-.sp
 Use the named directory as the location where
 \fBmyisampack\fR
 creates temporary files\&.
@@ -286,7 +282,6 @@ creates temporary files\&.
 .\}
 \fB\-\-verbose\fR,
 \fB\-v\fR
-.sp
 Verbose mode\&. Write information about the progress of the packing operation and its result\&.
 .RE
 .sp
@@ -300,7 +295,6 @@ Verbose mode\&. Write information about the progress of the packing operation an
 .\}
 \fB\-\-version\fR,
 \fB\-V\fR
-.sp
 Display version information and exit\&.
 .RE
 .sp
@@ -314,7 +308,6 @@ Display version information and exit\&.
 .\}
 \fB\-\-wait\fR,
 \fB\-w\fR
-.sp
 Wait and retry if the table is in use\&. If the
 \fBmysqld\fR
 server was invoked with external locking disabled, it is not a good idea to invoke
@@ -329,9 +322,9 @@ The following sequence of commands illustrates a typical table compression sessi
 .\}
 .nf
 shell> \fBls \-l station\&.*\fR
-\-rw\-rw\-r\-\-   1 monty    my         994128 Apr 17 19:00 station\&.MYD
-\-rw\-rw\-r\-\-   1 monty    my          53248 Apr 17 19:00 station\&.MYI
-\-rw\-rw\-r\-\-   1 monty    my           5767 Apr 17 19:00 station\&.frm
+\-rw\-rw\-r\-\-   1 jones    my         994128 Apr 17 19:00 station\&.MYD
+\-rw\-rw\-r\-\-   1 jones    my          53248 Apr 17 19:00 station\&.MYI
+\-rw\-rw\-r\-\-   1 jones    my           5767 Apr 17 19:00 station\&.frm
 shell> \fBmyisamchk \-dvv station\fR
 MyISAM file:     station
 Isam\-version:  2
@@ -422,9 +415,9 @@ Data records: 1192
 \- Fixing index 2
 shell> \fBmysqladmin \-uroot flush\-tables\fR
 shell> \fBls \-l station\&.*\fR
-\-rw\-rw\-r\-\-   1 monty    my         127874 Apr 17 19:00 station\&.MYD
-\-rw\-rw\-r\-\-   1 monty    my          55296 Apr 17 19:04 station\&.MYI
-\-rw\-rw\-r\-\-   1 monty    my           5767 Apr 17 19:00 station\&.frm
+\-rw\-rw\-r\-\-   1 jones    my         127874 Apr 17 19:00 station\&.MYD
+\-rw\-rw\-r\-\-   1 jones    my          55296 Apr 17 19:04 station\&.MYI
+\-rw\-rw\-r\-\-   1 jones    my           5767 Apr 17 19:00 station\&.frm
 shell> \fBmyisamchk \-dvv station\fR
 MyISAM file:     station
 Isam\-version:  2
@@ -825,7 +818,7 @@ option to
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysql.1 b/mysql-wsrep-5.6/man/mysql.1
index a76a3fdf..502a5444 100644
--- a/mysql-wsrep-5.6/man/mysql.1
+++ b/mysql-wsrep-5.6/man/mysql.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQL\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQL\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -125,7 +125,6 @@ Section\ \&4.2.2.2, \(lqUsing Option Files\(rq\&.
 .\}
 \fB\-\-help\fR,
 \fB\-?\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -138,7 +137,6 @@ Display a help message and exit\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-auto\-rehash\fR
-.sp
 Enable automatic rehashing\&. This option is on by default, which enables database, table, and column name completion\&. Use
 \fB\-\-disable\-auto\-rehash\fR
 to disable rehashing\&. That causes
@@ -182,7 +180,6 @@ library is not available on Windows\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-auto\-vertical\-output\fR
-.sp
 Cause result sets to be displayed vertically if they are too wide for the current window, and using normal tabular format otherwise\&. (This applies to statements terminated by
 ;
 or
@@ -199,7 +196,6 @@ or
 .\}
 \fB\-\-batch\fR,
 \fB\-B\fR
-.sp
 Print results using tab as the column separator, with each row on a new line\&. With this option,
 \fBmysql\fR
 does not use the history file\&.
@@ -218,10 +214,133 @@ option\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-binary\-as\-hex\fR
-.sp
 When this option is given,
 \fBmysql\fR
-displays binary data using hexadecimal notation (0x\fIvalue\fR)\&. This occurs whether the overall output dislay format is tabular, vertical, HTML, or XML\&.
+displays binary data using hexadecimal notation (0x\fIvalue\fR)\&. This occurs whether the overall output display format is tabular, vertical, HTML, or XML\&.
+.sp
+\fB\-\-binary\-as\-hex\fR
+when enabled affects display of all binary strings, including those returned by functions such as
+CHAR()
+and
+UNHEX()\&. The following example demonistrates this using the ASCII code for
+A
+(65 decimal, 41 hexadecimal):
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fB\-\-binary\-as\-hex\fR
+disabled:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+mysql> \fBSELECT CHAR(0x41), UNHEX(\*(Aq41\*(Aq);\fR
++\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-+
+| CHAR(0x41) | UNHEX(\*(Aq41\*(Aq) |
++\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-+
+| A          | A           |
++\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-+
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fB\-\-binary\-as\-hex\fR
+enabled:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+mysql> \fBSELECT CHAR(0x41), UNHEX(\*(Aq41\*(Aq);\fR
++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
+| CHAR(0x41)             | UNHEX(\*(Aq41\*(Aq)              |
++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
+| 0x41                   | 0x41                     |
++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.sp
+To write a binary string expression so that it displays as a character string regardless of whether
+\fB\-\-binary\-as\-hex\fR
+is enabled, use these techniques:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The
+CHAR()
+function has a
+USING \fIcharset\fR
+clause:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+mysql> \fBSELECT CHAR(0x41 USING utf8mb4);\fR
++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
+| CHAR(0x41 USING utf8mb4) |
++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
+| A                        |
++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+More generally, use
+CONVERT()
+to convert an expression to a given character set:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+mysql> \fBSELECT CONVERT(UNHEX(\*(Aq41\*(Aq) USING utf8mb4);\fR
++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
+| CONVERT(UNHEX(\*(Aq41\*(Aq) USING utf8mb4) |
++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
+| A                                  |
++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
+.fi
+.if n \{\
+.RE
+.\}
+.RE
 .sp
 This option was added in MySQL 5\&.6\&.37\&.
 .RE
@@ -235,7 +354,6 @@ This option was added in MySQL 5\&.6\&.37\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-binary\-mode\fR
-.sp
 This option helps when processing
 \fBmysqlbinlog\fR
 output that may contain
@@ -272,7 +390,6 @@ command)\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-bind\-address=\fR\fB\fIip_address\fR\fR
-.sp
 On a computer having multiple network interfaces, use this option to select which interface to use for connecting to the MySQL server\&.
 .RE
 .sp
@@ -285,9 +402,8 @@ On a computer having multiple network interfaces, use this option to select whic
 .IP \(bu 2.3
 .\}
 \fB\-\-character\-sets\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The directory where character sets are installed\&. See
-Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
+Section\ \&10.15, \(lqCharacter Set Configuration\(rq\&.
 .RE
 .sp
 .RS 4
@@ -299,7 +415,6 @@ Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-column\-names\fR
-.sp
 Write column names in results\&.
 .RE
 .sp
@@ -312,8 +427,10 @@ Write column names in results\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-column\-type\-info\fR
-.sp
-Display result set metadata\&.
+Display result set metadata\&. This information corresponds to the contents of C API
+MYSQL_FIELD
+data structures\&. See
+\m[blue]\fBC API Data Structures\fR\m[]\&\s-2\u[1]\d\s+2\&.
 .RE
 .sp
 .RS 4
@@ -326,7 +443,6 @@ Display result set metadata\&.
 .\}
 \fB\-\-comments\fR,
 \fB\-c\fR
-.sp
 Whether to strip or preserve comments in statements sent to the server\&. The default is
 \fB\-\-skip\-comments\fR
 (strip comments), enable with
@@ -344,9 +460,8 @@ Whether to strip or preserve comments in statements sent to the server\&. The de
 .\}
 \fB\-\-compress\fR,
 \fB\-C\fR
-.sp
 Compress all information sent between the client and the server if possible\&. See
-Section\ \&4.2.5, \(lqConnection Compression Control\(rq\&.
+Section\ \&4.2.6, \(lqConnection Compression Control\(rq\&.
 .RE
 .sp
 .RS 4
@@ -358,11 +473,10 @@ Section\ \&4.2.5, \(lqConnection Compression Control\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-connect\-expired\-password\fR
-.sp
 Indicate to the server that the client can handle sandbox mode if the account used to connect has an expired password\&. This can be useful for noninteractive invocations of
 \fBmysql\fR
 because normally the server disconnects noninteractive clients that attempt to connect using an account with an expired password\&. (See
-Section\ \&6.2.10, \(lqPassword Expiration and Sandbox Mode\(rq\&.) This option was added in MySQL 5\&.6\&.12\&.
+Section\ \&6.2.10, \(lqServer Handling of Expired Passwords\(rq\&.) This option was added in MySQL 5\&.6\&.12\&.
 .RE
 .sp
 .RS 4
@@ -388,7 +502,6 @@ The number of seconds before connection timeout\&. (Default value is
 .\}
 \fB\-\-database=\fR\fB\fIdb_name\fR\fR,
 \fB\-D \fR\fB\fIdb_name\fR\fR
-.sp
 The database to use\&. This is useful primarily in an option file\&.
 .RE
 .sp
@@ -402,7 +515,6 @@ The database to use\&. This is useful primarily in an option file\&.
 .\}
 \fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR,
 \fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR
-.sp
 Write a debugging log\&. A typical
 \fIdebug_options\fR
 string is
@@ -424,8 +536,12 @@ built using this option\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-debug\-check\fR
-.sp
 Print some debugging information when the program exits\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -438,8 +554,12 @@ Print some debugging information when the program exits\&.
 .\}
 \fB\-\-debug\-info\fR,
 \fB\-T\fR
-.sp
 Print debugging information and memory and CPU usage statistics when the program exits\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -451,7 +571,6 @@ Print debugging information and memory and CPU usage statistics when the program
 .IP \(bu 2.3
 .\}
 \fB\-\-default\-auth=\fR\fB\fIplugin\fR\fR
-.sp
 A hint about which client\-side authentication plugin to use\&. See
 Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .RE
@@ -465,7 +584,6 @@ Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-default\-character\-set=\fR\fB\fIcharset_name\fR\fR
-.sp
 Use
 \fIcharset_name\fR
 as the default character set for the client and connection\&.
@@ -476,7 +594,7 @@ client by default uses another\&. In this case, output may be formatted incorrec
 .sp
 For more information, see
 Section\ \&10.4, \(lqConnection Character Sets and Collations\(rq, and
-Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
+Section\ \&10.15, \(lqCharacter Set Configuration\(rq\&.
 .RE
 .sp
 .RS 4
@@ -488,7 +606,6 @@ Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-extra\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Read this option file after the global option file but (on Unix) before the user option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -506,7 +623,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Use only the given option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -528,7 +644,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-group\-suffix=\fR\fB\fIstr\fR\fR
-.sp
 Read not only the usual option groups, but also groups with the usual names and a suffix of
 \fIstr\fR\&. For example,
 \fBmysql\fR
@@ -559,7 +674,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-delimiter=\fR\fB\fIstr\fR\fR
-.sp
 Set the statement delimiter\&. The default is the semicolon character (;)\&.
 .RE
 .sp
@@ -572,7 +686,6 @@ Set the statement delimiter\&. The default is the semicolon character (;)\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-disable\-named\-commands\fR
-.sp
 Disable named commands\&. Use the
 \e*
 form only, or use named commands only at the beginning of a line ending with a semicolon (;)\&.
@@ -592,7 +705,6 @@ the section called \(lqMYSQL CLIENT COMMANDS\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-enable\-cleartext\-plugin\fR
-.sp
 Enable the
 mysql_clear_password
 cleartext authentication plugin\&. (See
@@ -609,7 +721,6 @@ Section\ \&6.4.1.5, \(lqClient-Side Cleartext Pluggable Authentication\(rq\&.)
 .\}
 \fB\-\-execute=\fR\fB\fIstatement\fR\fR,
 \fB\-e \fR\fB\fIstatement\fR\fR
-.sp
 Execute the statement and quit\&. The default output format is like that produced with
 \fB\-\-batch\fR\&. See
 Section\ \&4.2.2.1, \(lqUsing Options on the Command Line\(rq, for some examples\&. With this option,
@@ -627,7 +738,6 @@ does not use the history file\&.
 .\}
 \fB\-\-force\fR,
 \fB\-f\fR
-.sp
 Continue even if an SQL error occurs\&.
 .RE
 .sp
@@ -640,7 +750,6 @@ Continue even if an SQL error occurs\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-histignore\fR
-.sp
 A list of one or more colon\-separated patterns specifying statements to ignore for logging purposes\&. These patterns are added to the default pattern list ("*IDENTIFIED*:*PASSWORD*")\&. The value specified for this option affects logging of statements written to the history file\&. For more information, see
 the section called \(lqMYSQL CLIENT LOGGING\(rq\&.
 .RE
@@ -655,7 +764,6 @@ the section called \(lqMYSQL CLIENT LOGGING\(rq\&.
 .\}
 \fB\-\-host=\fR\fB\fIhost_name\fR\fR,
 \fB\-h \fR\fB\fIhost_name\fR\fR
-.sp
 Connect to the MySQL server on the given host\&.
 .RE
 .sp
@@ -669,7 +777,6 @@ Connect to the MySQL server on the given host\&.
 .\}
 \fB\-\-html\fR,
 \fB\-H\fR
-.sp
 Produce HTML output\&.
 .RE
 .sp
@@ -683,7 +790,6 @@ Produce HTML output\&.
 .\}
 \fB\-\-ignore\-spaces\fR,
 \fB\-i\fR
-.sp
 Ignore spaces after function names\&. The effect of this is described in the discussion for the
 IGNORE_SPACE
 SQL mode (see
@@ -699,7 +805,6 @@ Section\ \&5.1.10, \(lqServer SQL Modes\(rq)\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-init\-command=str\fR
-.sp
 SQL statement to execute after connecting to the server\&. If auto\-reconnect is enabled, the statement is executed again after reconnection occurs\&.
 .RE
 .sp
@@ -712,7 +817,6 @@ SQL statement to execute after connecting to the server\&. If auto\-reconnect is
 .IP \(bu 2.3
 .\}
 \fB\-\-line\-numbers\fR
-.sp
 Write line numbers for errors\&. Disable this with
 \fB\-\-skip\-line\-numbers\fR\&.
 .RE
@@ -726,19 +830,29 @@ Write line numbers for errors\&. Disable this with
 .IP \(bu 2.3
 .\}
 \fB\-\-local\-infile[={0|1}]\fR
-.sp
-Enable or disable
+By default,
 LOCAL
 capability for
-LOAD DATA\&. For
-\fBmysql\fR, this capability is disabled by default\&. With no value, the option enables
-LOCAL\&. The option may be given as
+LOAD DATA
+is determined by the default compiled into the MySQL client library\&. To enable or disable
+LOCAL
+data loading explicitly, use the
+\fB\-\-local\-infile\fR
+option\&. When given with no value, the option enables
+LOCAL
+data loading\&. When given as
 \fB\-\-local\-infile=0\fR
 or
-\fB\-\-local\-infile=1\fR
-to explicitly disable or enable
-LOCAL\&. Enabling local data loading also requires that the server permits it; see
-Section\ \&6.1.6, \(lqSecurity Issues with LOAD DATA LOCAL\(rq
+\fB\-\-local\-infile=1\fR, the option disables or enables
+LOCAL
+data loading\&.
+.sp
+Successful use of
+LOCAL
+load operations within
+\fBmysql\fR
+also requires that the server permits local loading; see
+Section\ \&6.1.6, \(lqSecurity Considerations for LOAD DATA LOCAL\(rq
 .RE
 .sp
 .RS 4
@@ -750,7 +864,6 @@ Section\ \&6.1.6, \(lqSecurity Issues with LOAD DATA LOCAL\(rq
 .IP \(bu 2.3
 .\}
 \fB\-\-login\-path=\fR\fB\fIname\fR\fR
-.sp
 Read options from the named login path in the
 \&.mylogin\&.cnf
 login path file\&. A
@@ -799,7 +912,6 @@ The automatic limit for rows in a join when using
 .\}
 \fB\-\-named\-commands\fR,
 \fB\-G\fR
-.sp
 Enable named
 \fBmysql\fR
 commands\&. Long\-format commands are permitted, not just short\-format commands\&. For example,
@@ -834,7 +946,6 @@ The buffer size for TCP/IP and socket communication\&. (Default value is 16KB\&.
 .\}
 \fB\-\-no\-auto\-rehash\fR,
 \fB\-A\fR
-.sp
 This has the same effect as
 \fB\-\-skip\-auto\-rehash\fR\&. See the description for
 \fB\-\-auto\-rehash\fR\&.
@@ -850,7 +961,6 @@ This has the same effect as
 .\}
 \fB\-\-no\-beep\fR,
 \fB\-b\fR
-.sp
 Do not beep when errors occur\&.
 .RE
 .sp
@@ -863,7 +973,6 @@ Do not beep when errors occur\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-no\-defaults\fR
-.sp
 Do not read any option files\&. If program startup fails due to reading unknown options from an option file,
 \fB\-\-no\-defaults\fR
 can be used to prevent them from being read\&.
@@ -892,7 +1001,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-one\-database\fR,
 \fB\-o\fR
-.sp
 Ignore statements except those that occur while the default database is the one named on the command line\&. This option is rudimentary and should be used with care\&. Statement filtering is based only on
 USE
 statements\&.
@@ -993,7 +1101,6 @@ statement names a table in a different database\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-pager[=\fR\fB\fIcommand\fR\fR\fB]\fR
-.sp
 Use the given command for paging query output\&. If the command is omitted, the default pager is the value of your
 PAGER
 environment variable\&. Valid pagers are
@@ -1014,7 +1121,6 @@ the section called \(lqMYSQL CLIENT COMMANDS\(rq, discusses output paging furthe
 .\}
 \fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR,
 \fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR
-.sp
 The password of the MySQL account used for connecting to the server\&. The password value is optional\&. If not given,
 \fBmysql\fR
 prompts for one\&. If given, there must be
@@ -1045,7 +1151,6 @@ option\&.
 .\}
 \fB\-\-pipe\fR,
 \fB\-W\fR
-.sp
 On Windows, connect to the server using a named pipe\&. This option applies only if the server was started with the
 named_pipe
 system variable enabled to support named\-pipe connections\&. In addition, the user making the connection must be a member of the Windows group specified by the
@@ -1062,7 +1167,6 @@ system variable\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-plugin\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The directory in which to look for plugins\&. Specify this option if the
 \fB\-\-default\-auth\fR
 option is used to specify an authentication plugin but
@@ -1081,7 +1185,6 @@ Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .\}
 \fB\-\-port=\fR\fB\fIport_num\fR\fR,
 \fB\-P \fR\fB\fIport_num\fR\fR
-.sp
 For TCP/IP connections, the port number to use\&.
 .RE
 .sp
@@ -1094,7 +1197,6 @@ For TCP/IP connections, the port number to use\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-print\-defaults\fR
-.sp
 Print the program name and all options that it gets from option files\&.
 .sp
 For additional information about this and other option\-file options, see
@@ -1110,7 +1212,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-prompt=\fR\fB\fIformat_str\fR\fR
-.sp
 Set the prompt to the specified format\&. The default is
 mysql>\&. The special sequences that the prompt can contain are described in
 the section called \(lqMYSQL CLIENT COMMANDS\(rq\&.
@@ -1125,9 +1226,8 @@ the section called \(lqMYSQL CLIENT COMMANDS\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR
-.sp
-The connection protocol to use for connecting to the server\&. It is useful when the other connection parameters normally result in use of a protocol other than the one you want\&. For details on the permissible values, see
-Section\ \&4.2.4, \(lqConnecting to the MySQL Server Using Command Options\(rq\&.
+The transport protocol to use for connecting to the server\&. It is useful when the other connection parameters normally result in use of a protocol other than the one you want\&. For details on the permissible values, see
+Section\ \&4.2.5, \(lqConnection Transport Protocols\(rq\&.
 .RE
 .sp
 .RS 4
@@ -1140,7 +1240,6 @@ Section\ \&4.2.4, \(lqConnecting to the MySQL Server Using Command Options\(rq\&
 .\}
 \fB\-\-quick\fR,
 \fB\-q\fR
-.sp
 Do not cache each query result, print each row as it is received\&. This may slow down the server if the output is suspended\&. With this option,
 \fBmysql\fR
 does not use the history file\&.
@@ -1156,7 +1255,6 @@ does not use the history file\&.
 .\}
 \fB\-\-raw\fR,
 \fB\-r\fR
-.sp
 For tabular output, the
 \(lqboxing\(rq
 around columns enables one column value to be distinguished from another\&. For nontabular output (such as is produced in batch mode or when the
@@ -1208,7 +1306,6 @@ CHAR(92)
 .IP \(bu 2.3
 .\}
 \fB\-\-reconnect\fR
-.sp
 If the connection to the server is lost, automatically try to reconnect\&. A single reconnect attempt is made each time the connection is lost\&. To suppress reconnection behavior, use
 \fB\-\-skip\-reconnect\fR\&.
 .RE
@@ -1224,7 +1321,6 @@ If the connection to the server is lost, automatically try to reconnect\&. A sin
 \fB\-\-safe\-updates\fR,
 \fB\-\-i\-am\-a\-dummy\fR,
 \fB\-U\fR
-.sp
 If this option is enabled,
 UPDATE
 and
@@ -1250,7 +1346,6 @@ Using Safe-Updates Mode (--safe-updates)\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-secure\-auth\fR
-.sp
 Do not send passwords to the server in old (pre\-4\&.1) format\&. This prevents connections except for servers that use the newer password format\&. This option is enabled by default; use
 \fB\-\-skip\-secure\-auth\fR
 to disable it\&.
@@ -1266,7 +1361,7 @@ to disable it\&.
 \fBNote\fR
 .ps -1
 .br
-Passwords that use the pre\-4\&.1 hashing method are less secure than passwords that use the native password hashing method and should be avoided\&. Pre\-4\&.1 passwords are deprecated and support for them will be removed in a future MySQL release\&. For account upgrade instructions, see
+Passwords that use the pre\-4\&.1 hashing method are less secure than passwords that use the native password hashing method and should be avoided\&. Pre\-4\&.1 passwords are deprecated; expect support for them to be removed in a future MySQL release\&. For account upgrade instructions, see
 Section\ \&6.4.1.3, \(lqMigrating Away from Pre-4.1 Password Hashing and the mysql_old_password Plugin\(rq\&.
 .sp .5v
 .RE
@@ -1282,7 +1377,7 @@ Section\ \&6.4.1.3, \(lqMigrating Away from Pre-4.1 Password Hashing and the mys
 \fBNote\fR
 .ps -1
 .br
-This option is deprecated and will be removed in a future release\&. As of MySQL 5\&.7\&.5, it is always enabled and attempting to disable it produces an error\&.
+This option is deprecated; expect it to be removed in a future release\&. As of MySQL 5\&.7\&.5, it is always enabled and attempting to disable it produces an error\&.
 .sp .5v
 .RE
 .RE
@@ -1311,8 +1406,7 @@ statements when using
 .IP \(bu 2.3
 .\}
 \fB\-\-server\-public\-key\-path=\fR\fB\fIfile_name\fR\fR
-.sp
-The path name to a file containing a client\-side copy of the public key required by the server for RSA key pair\-based password exchange\&. The file must be in PEM format\&. This option applies to clients that authenticate with the
+The path name to a file in PEM format containing a client\-side copy of the public key required by the server for RSA key pair\-based password exchange\&. This option applies to clients that authenticate with the
 sha256_password
 authentication plugin\&. This option is ignored for accounts that do not authenticate with that plugin\&. It is also ignored if RSA\-based password exchange is not used, as is the case when the client connects to the server using a secure connection\&.
 .sp
@@ -1333,8 +1427,7 @@ Section\ \&6.4.1.4, \(lqSHA-256 Pluggable Authentication\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-shared\-memory\-base\-name=\fR\fB\fIname\fR\fR
-.sp
-On Windows, the shared\-memory name to use, for connections made using shared memory to a local server\&. The default value is
+On Windows, the shared\-memory name to use for connections made using shared memory to a local server\&. The default value is
 MYSQL\&. The shared\-memory name is case\-sensitive\&.
 .sp
 This option applies only if the server was started with the
@@ -1351,7 +1444,6 @@ system variable enabled to support shared\-memory connections\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-show\-warnings\fR
-.sp
 Cause warnings to be shown after each statement if there are any\&. This option applies to interactive and batch mode\&.
 .RE
 .sp
@@ -1364,11 +1456,14 @@ Cause warnings to be shown after each statement if there are any\&. This option
 .IP \(bu 2.3
 .\}
 \fB\-\-sigint\-ignore\fR
-.sp
 Ignore
 SIGINT
 signals (typically the result of typing
 Control+C)\&.
+.sp
+Without this option, typing
+Control+C
+interrupts the current statement if there is one, or cancels any partial input line otherwise\&.
 .RE
 .sp
 .RS 4
@@ -1381,7 +1476,6 @@ Control+C)\&.
 .\}
 \fB\-\-silent\fR,
 \fB\-s\fR
-.sp
 Silent mode\&. Produce less output\&. This option can be given multiple times to produce less and less output\&.
 .sp
 This option results in nontabular output format and escaping of special characters\&. Escaping may be disabled by using raw mode; see the description for the
@@ -1399,7 +1493,6 @@ option\&.
 .\}
 \fB\-\-skip\-column\-names\fR,
 \fB\-N\fR
-.sp
 Do not write column names in results\&.
 .RE
 .sp
@@ -1413,7 +1506,6 @@ Do not write column names in results\&.
 .\}
 \fB\-\-skip\-line\-numbers\fR,
 \fB\-L\fR
-.sp
 Do not write line numbers for errors\&. Useful when you want to compare result files that include error messages\&.
 .RE
 .sp
@@ -1427,7 +1519,6 @@ Do not write line numbers for errors\&. Useful when you want to compare result f
 .\}
 \fB\-\-socket=\fR\fB\fIpath\fR\fR,
 \fB\-S \fR\fB\fIpath\fR\fR
-.sp
 For connections to
 localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&.
 .sp
@@ -1447,7 +1538,6 @@ system variable\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-ssl*\fR
-.sp
 Options that begin with
 \fB\-\-ssl\fR
 specify whether to connect to the server using SSL and indicate where to find SSL keys and certificates\&. See
@@ -1464,7 +1554,6 @@ the section called \(lqCommand Options for Encrypted Connections\(rq\&.
 .\}
 \fB\-\-table\fR,
 \fB\-t\fR
-.sp
 Display output in table format\&. This is the default for interactive use, but can be used to produce table output in batch mode\&.
 .RE
 .sp
@@ -1477,7 +1566,6 @@ Display output in table format\&. This is the default for interactive use, but c
 .IP \(bu 2.3
 .\}
 \fB\-\-tee=\fR\fB\fIfile_name\fR\fR
-.sp
 Append a copy of output to the given file\&. This option works only in interactive mode\&.
 the section called \(lqMYSQL CLIENT COMMANDS\(rq, discusses tee files further\&.
 .RE
@@ -1492,7 +1580,6 @@ the section called \(lqMYSQL CLIENT COMMANDS\(rq, discusses tee files further\&.
 .\}
 \fB\-\-unbuffered\fR,
 \fB\-n\fR
-.sp
 Flush the buffer after each query\&.
 .RE
 .sp
@@ -1506,7 +1593,6 @@ Flush the buffer after each query\&.
 .\}
 \fB\-\-user=\fR\fB\fIuser_name\fR\fR,
 \fB\-u \fR\fB\fIuser_name\fR\fR
-.sp
 The user name of the MySQL account to use for connecting to the server\&.
 .RE
 .sp
@@ -1520,7 +1606,6 @@ The user name of the MySQL account to use for connecting to the server\&.
 .\}
 \fB\-\-verbose\fR,
 \fB\-v\fR
-.sp
 Verbose mode\&. Produce more output about what the program does\&. This option can be given multiple times to produce more and more output\&. (For example,
 \fB\-v \-v \-v\fR
 produces table output format even in batch mode\&.)
@@ -1536,7 +1621,6 @@ produces table output format even in batch mode\&.)
 .\}
 \fB\-\-version\fR,
 \fB\-V\fR
-.sp
 Display version information and exit\&.
 .RE
 .sp
@@ -1550,7 +1634,6 @@ Display version information and exit\&.
 .\}
 \fB\-\-vertical\fR,
 \fB\-E\fR
-.sp
 Print query output rows vertically (one line per column value)\&. Without this option, you can specify vertical output for individual statements by terminating them with
 \eG\&.
 .RE
@@ -1565,7 +1648,6 @@ Print query output rows vertically (one line per column value)\&. Without this o
 .\}
 \fB\-\-wait\fR,
 \fB\-w\fR
-.sp
 If the connection cannot be established, wait and retry instead of aborting\&.
 .RE
 .sp
@@ -1579,7 +1661,6 @@ If the connection cannot be established, wait and retry instead of aborting\&.
 .\}
 \fB\-\-xml\fR,
 \fB\-X\fR
-.sp
 Produce XML output\&.
 .sp
 .if n \{\
@@ -1653,7 +1734,7 @@ mysql> \fBhelp\fR
 List of all MySQL commands:
 Note that all text commands must be first on line and end with \*(Aq;\*(Aq
 ?         (\e?) Synonym for `help\*(Aq\&.
-clear     (\ec) Clear command\&.
+clear     (\ec) Clear the current input statement\&.
 connect   (\er) Reconnect to the server\&. Optional arguments are db and host\&.
 delimiter (\ed) Set statement delimiter\&.
 edit      (\ee) Edit command with $EDITOR\&.
@@ -1771,8 +1852,8 @@ Clear the current input\&. Use this if you change your mind about executing the
 .sp -1
 .IP \(bu 2.3
 .\}
-connect [\fIdb_name\fR \fIhost_name\fR]],
-\er [\fIdb_name\fR \fIhost_name\fR]]
+connect [\fIdb_name\fR [\fIhost_name\fR]],
+\er [\fIdb_name\fR [\fIhost_name\fR]]
 .sp
 Reconnect to the server\&. The optional database name and host name arguments may be given to specify the default database or the host where the server is running\&. If omitted, the current values are used\&.
 .RE
@@ -1798,7 +1879,7 @@ command line\&. Quoting can be done with either single quote (\*(Aq), double quo
 .sp
 \fBmysql\fR
 interprets instances of the delimiter string as a statement delimiter anywhere it occurs, except within quoted strings\&. Be careful about defining a delimiter that might occur within other words\&. For example, if you define the delimiter as
-X, you will be unable to use the word
+X, you cannot use the word
 INDEX
 in statements\&.
 \fBmysql\fR
@@ -1813,7 +1894,7 @@ is set to something other than the default of
 ;, instances of that character are sent to the server without interpretation\&. However, the server itself still interprets
 ;
 as a statement delimiter and processes statements accordingly\&. This behavior on the server side comes into play for multiple\-statement execution (see
-Section\ \&23.8.16, \(lqC API Multiple Statement Execution Support\(rq), and for parsing the body of stored procedures and functions, triggers, and events (see
+\m[blue]\fBC API Multiple Statement Execution Support\fR\m[]\&\s-2\u[2]\d\s+2), and for parsing the body of stored procedures and functions, triggers, and events (see
 Section\ \&20.1, \(lqDefining Stored Programs\(rq)\&.
 .RE
 .sp
@@ -2051,7 +2132,7 @@ option\&.)
 source \fIfile_name\fR,
 \e\&. \fIfile_name\fR
 .sp
-Read the named file and executes the statements contained therein\&. On Windows, you can specify path name separators as
+Read the named file and executes the statements contained therein\&. On Windows, specify path name separators as
 /
 or
 \e\e\&.
@@ -2669,7 +2750,8 @@ How Logging Occurs
 .\}
 Controlling the History File
 .RE
-How Logging Occurs.PP
+How Logging Occurs
+.PP
 Statement logging occurs as follows:
 .sp
 .RS 4
@@ -2823,7 +2905,8 @@ shell> \fBmysql \-\-histignore="*UPDATE*:*DELETE*"\fR
 .RE
 .\}
 .sp
-Controlling the History File.PP
+Controlling the History File
+.PP
 The
 \&.mysql_history
 file should be protected with a restrictive access mode because sensitive information might be written to it, such as the text of SQL statements that contain passwords\&. See
@@ -2889,7 +2972,7 @@ command,
 uses it as a search string to access server\-side help from the contents of the MySQL Reference Manual\&. The proper operation of this command requires that the help tables in the
 mysql
 database be initialized with help topic information (see
-Section\ \&5.1.13, \(lqServer-Side Help Support\(rq)\&.
+Section\ \&5.1.14, \(lqServer-Side Help Support\(rq)\&.
 .PP
 If there is no match for the search string, the search fails:
 .sp
@@ -3183,7 +3266,8 @@ Disabling mysql Auto-Reconnect
 .\}
 mysql Client Parser Versus Server Parser
 .RE
-Input\-Line Editing.PP
+Input\-Line Editing
+.PP
 \fBmysql\fR
 supports input\-line editing, which enables you to modify the current input line in place or recall previous input lines\&. For example, the
 left\-arrow
@@ -3254,8 +3338,9 @@ bind
 at the end of
 \&.editrc\&.
 \fBmysql\fR
-will show the bindings when it starts\&.
-Unicode Support on Windows.PP
+then shows the bindings when it starts\&.
+Unicode Support on Windows
+.PP
 Windows provides APIs based on UTF\-16LE for reading from and writing to the console; the
 \fBmysql\fR
 client for Windows is able to use these APIs\&. The Windows installer creates an item in the MySQL menu named
@@ -3310,7 +3395,7 @@ the section called \(lqImpermissible Client Character Sets\(rq\&.
 .PP
 With those changes,
 \fBmysql\fR
-will use the Windows APIs to communicate with the console using UTF\-16LE, and communicate with the server using UTF\-8\&. (The menu item mentioned previously sets the font and character set as just described\&.)
+uses the Windows APIs to communicate with the console using UTF\-16LE, and communicates with the server using UTF\-8\&. (The menu item mentioned previously sets the font and character set as just described\&.)
 .PP
 To avoid those steps each time you run
 \fBmysql\fR, you can create a shortcut that invokes
@@ -3337,7 +3422,8 @@ default\-character\-set=utf8
 .RE
 .\}
 .sp
-Displaying Query Results Vertically.PP
+Displaying Query Results Vertically
+.PP
 Some query results are much more readable when displayed vertically, instead of in the usual horizontal table format\&. Queries can be displayed vertically by terminating the query with \eG instead of a semicolon\&. For example, longer text values that include newlines often are much easier to read with vertical output:
 .sp
 .if n \{\
@@ -3349,17 +3435,17 @@ mysql> \fBSELECT * FROM mails WHERE LENGTH(txt) < 300 LIMIT 300,1\eG\fR
   msg_nro: 3068
      date: 2000\-03\-01 23:29:50
 time_zone: +0200
-mail_from: Monty
-    reply: monty@no\&.spam\&.com
-  mail_to: "Thimble Smith" 
+mail_from: Jones
+    reply: jones@example\&.com
+  mail_to: "John Smith" 
       sbj: UTF\-8
-      txt: >>>>> "Thimble" == Thimble Smith writes:
-Thimble> Hi\&.  I think this is a good idea\&.  Is anyone familiar
-Thimble> with UTF\-8 or Unicode? Otherwise, I\*(Aqll put this on my
-Thimble> TODO list and see what happens\&.
+      txt: >>>>> "John" == John Smith writes:
+John> Hi\&.  I think this is a good idea\&.  Is anyone familiar
+John> with UTF\-8 or Unicode? Otherwise, I\*(Aqll put this on my
+John> TODO list and see what happens\&.
 Yes, please do that\&.
 Regards,
-Monty
+Jones
      file: inbox\-jani\-1
      hash: 190402944
 1 row in set (0\&.09 sec)
@@ -3368,7 +3454,8 @@ Monty
 .RE
 .\}
 .sp
-Using Safe\-Updates Mode (\-\-safe\-updates).PP
+Using Safe\-Updates Mode (\-\-safe\-updates)
+.PP
 For beginners, a useful startup option is
 \fB\-\-safe\-updates\fR
 (or
@@ -3501,8 +3588,9 @@ Section\ \&8.3.1, \(lqHow MySQL Uses Indexes\(rq)\&. Suppose that an indexed str
 c1
 is compared to a numeric value using
 WHERE c1 = 2222\&. For such comparisons, the string value is converted to a number and the operands are compared numerically (see
-Section\ \&12.2, \(lqType Conversion in Expression Evaluation\(rq), preventing use of the index\&. If safe\-updates mode is enabled, an error occurs\&.
-Disabling mysql Auto\-Reconnect.PP
+Section\ \&12.3, \(lqType Conversion in Expression Evaluation\(rq), preventing use of the index\&. If safe\-updates mode is enabled, an error occurs\&.
+Disabling mysql Auto\-Reconnect
+.PP
 If the
 \fBmysql\fR
 client loses its connection to the server while sending a statement, it immediately and automatically tries to reconnect once to the server and send the statement again\&. However, even if
@@ -3544,8 +3632,9 @@ client with the
 option\&.
 .PP
 For more information about auto\-reconnect and its effect on state information when a reconnection occurs, see
-Section\ \&23.8.20, \(lqC API Automatic Reconnection Control\(rq\&.
-mysql Client Parser Versus Server Parser.PP
+\m[blue]\fBC API Automatic Reconnection Control\fR\m[]\&\s-2\u[3]\d\s+2\&.
+mysql Client Parser Versus Server Parser
+.PP
 The
 \fBmysql\fR
 client uses a parser on the client side that is not a duplicate of the complete parser used by the
@@ -3614,7 +3703,7 @@ command)\&.
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
@@ -3622,6 +3711,22 @@ This documentation is distributed in the hope that it will be useful, but WITHOU
 .PP
 You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or see http://www.gnu.org/licenses/.
 .sp
+.SH "NOTES"
+.IP " 1." 4
+C API Data Structures
+.RS 4
+\%https://dev.mysql.com/doc/c-api/5.6/en/c-api-data-structures.html
+.RE
+.IP " 2." 4
+C API Multiple Statement Execution Support
+.RS 4
+\%https://dev.mysql.com/doc/c-api/5.6/en/c-api-multiple-queries.html
+.RE
+.IP " 3." 4
+C API Automatic Reconnection Control
+.RS 4
+\%https://dev.mysql.com/doc/c-api/5.6/en/c-api-auto-reconnect.html
+.RE
 .SH "SEE ALSO"
 For more information, please refer to the MySQL Reference Manual,
 which may already be installed locally and which is also available
diff --git a/mysql-wsrep-5.6/man/mysql.server.1 b/mysql-wsrep-5.6/man/mysql.server.1
index 7cfc8fdc..8aa69875 100644
--- a/mysql-wsrep-5.6/man/mysql.server.1
+++ b/mysql-wsrep-5.6/man/mysql.server.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql.server\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQL\&.SERVER\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQL\&.SERVER\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -282,10 +282,10 @@ T}:T{
 Type
 T}
 .T&
-l l l
-l l l
-l l l
-l l l.
+lB l l
+lB l l
+lB l l
+lB l l.
 T{
 basedir
 T}:T{
@@ -326,7 +326,6 @@ T}
 .IP \(bu 2.3
 .\}
 \fBbasedir=\fR\fB\fIdir_name\fR\fR
-.sp
 The path to the MySQL installation directory\&.
 .RE
 .sp
@@ -339,7 +338,6 @@ The path to the MySQL installation directory\&.
 .IP \(bu 2.3
 .\}
 \fBdatadir=\fR\fB\fIdir_name\fR\fR
-.sp
 The path to the MySQL data directory\&.
 .RE
 .sp
@@ -352,7 +350,6 @@ The path to the MySQL data directory\&.
 .IP \(bu 2.3
 .\}
 \fBpid\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 The path name of the file in which the server should write its process ID\&. The server creates the file in the data directory unless an absolute path name is given to specify a different directory\&.
 .sp
 If this option is not given,
@@ -390,7 +387,6 @@ groups\&.
 .IP \(bu 2.3
 .\}
 \fBservice\-startup\-timeout=\fR\fB\fIseconds\fR\fR
-.sp
 How long in seconds to wait for confirmation of server startup\&. If the server does not start within this time,
 \fBmysql\&.server\fR
 exits with an error\&. The default value is 900\&. A value of 0 means not to wait at all for startup\&. Negative values mean to wait forever (no timeout)\&.
@@ -398,7 +394,7 @@ exits with an error\&. The default value is 900\&. A value of 0 means not to wai
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysql_config.1 b/mysql-wsrep-5.6/man/mysql_config.1
index 5b06ba90..6d910526 100644
--- a/mysql-wsrep-5.6/man/mysql_config.1
+++ b/mysql-wsrep-5.6/man/mysql_config.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_config\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_CONFIG\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQL_CONFIG\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -49,7 +49,6 @@ supports the following options\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-cflags\fR
-.sp
 C Compiler flags to find include files and critical compiler flags and defines used when compiling the
 libmysqlclient
 library\&. The options returned are tied to the specific compiler that was used when the library was created and might clash with the settings for your own compiler\&. Use
@@ -66,7 +65,6 @@ for more portable options that contain only include paths\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-cxxflags\fR
-.sp
 Like
 \fB\-\-cflags\fR, but for C++ compiler flags\&. This option was added in MySQL 5\&.6\&.4\&.
 .RE
@@ -80,7 +78,6 @@ Like
 .IP \(bu 2.3
 .\}
 \fB\-\-include\fR
-.sp
 Compiler options to find MySQL include files\&.
 .RE
 .sp
@@ -95,7 +92,6 @@ Compiler options to find MySQL include files\&.
 \fB\-\-libmysqld\-libs\fR,
 \fB\-\-embedded\-libs\fR,
 \fB\-\-embedded\fR
-.sp
 Libraries and options required to link with
 libmysqld, the MySQL embedded server\&.
 .RE
@@ -109,7 +105,6 @@ libmysqld, the MySQL embedded server\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-libs\fR
-.sp
 Libraries and options required to link with the MySQL client library\&.
 .RE
 .sp
@@ -122,7 +117,6 @@ Libraries and options required to link with the MySQL client library\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-libs_r\fR
-.sp
 Libraries and options required to link with the thread\-safe MySQL client library\&. In MySQL 5\&.6, all client libraries are thread\-safe, so this option need not be used\&. The
 \fB\-\-libs\fR
 option can be used in all cases\&.
@@ -137,7 +131,6 @@ option can be used in all cases\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-plugindir\fR
-.sp
 The default plugin directory path name, defined when configuring MySQL\&.
 .RE
 .sp
@@ -150,7 +143,6 @@ The default plugin directory path name, defined when configuring MySQL\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-port\fR
-.sp
 The default TCP/IP port number, defined when configuring MySQL\&.
 .RE
 .sp
@@ -163,7 +155,6 @@ The default TCP/IP port number, defined when configuring MySQL\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-socket\fR
-.sp
 The default Unix socket file, defined when configuring MySQL\&.
 .RE
 .sp
@@ -176,7 +167,6 @@ The default Unix socket file, defined when configuring MySQL\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-variable=\fR\fB\fIvar_name\fR\fR
-.sp
 Display the value of the named configuration variable\&. Permitted
 \fIvar_name\fR
 values are
@@ -197,7 +187,6 @@ plugindir
 .IP \(bu 2.3
 .\}
 \fB\-\-version\fR
-.sp
 Version number for the MySQL distribution\&.
 .RE
 .PP
@@ -253,7 +242,7 @@ gcc \-o progname progname\&.o `mysql_config \-\-libs`
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysql_config_editor.1 b/mysql-wsrep-5.6/man/mysql_config_editor.1
index a618df61..a397a506 100644
--- a/mysql-wsrep-5.6/man/mysql_config_editor.1
+++ b/mysql-wsrep-5.6/man/mysql_config_editor.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_config_editor\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_CONFIG_EDITOR\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQL_CONFIG_EDITOR\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -200,7 +200,7 @@ prevents passwords from appearing in
 as cleartext and provides a measure of security by preventing inadvertent password exposure\&. For example, if you display a regular unobfuscated
 my\&.cnf
 option file on the screen, any passwords it contains are visible for anyone to see\&. With
-\&.mylogin\&.cnf, that is not true\&. But the obfuscation used will not deter a determined attacker and you should not consider it unbreakable\&. A user who can gain system administration privileges on your machine to access your files could unobfuscate the
+\&.mylogin\&.cnf, that is not true\&. But the obfuscation used does not deter a determined attacker and you should not consider it unbreakable\&. A user who can gain system administration privileges on your machine to access your files could unobfuscate the
 \&.mylogin\&.cnf
 file with some effort\&.
 .PP
@@ -495,7 +495,8 @@ shell> \fBmysql \-\-login\-path=remote \-\-host=remote2\&.example\&.com\fR
 .RE
 .\}
 .sp
-mysql_config_editor General Options.PP
+mysql_config_editor General Options
+.PP
 \fBmysql_config_editor\fR
 supports the following general options, which may be used preceding any command named on the command line\&. For descriptions of command\-specific options, see
 mysql_config_editor Commands and Command-Specific Options\&.
@@ -510,7 +511,6 @@ mysql_config_editor Commands and Command-Specific Options\&.
 .\}
 \fB\-\-help\fR,
 \fB\-?\fR
-.sp
 Display a general help message and exit\&.
 .sp
 To see a command\-specific help message, invoke
@@ -541,12 +541,16 @@ shell> \fBmysql_config_editor \fR\fB\fIcommand\fR\fR\fB \-\-help\fR
 .\}
 \fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR,
 \fB\-# \fR\fB\fIdebug_options\fR\fR
-.sp
 Write a debugging log\&. A typical
 \fIdebug_options\fR
 string is
 d:t:o,\fIfile_name\fR\&. The default is
 d:t:o,/tmp/mysql_config_editor\&.trace\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -559,7 +563,6 @@ d:t:o,/tmp/mysql_config_editor\&.trace\&.
 .\}
 \fB\-\-verbose\fR,
 \fB\-v\fR
-.sp
 Verbose mode\&. Print more information about what the program does\&. This option may be helpful in diagnosing problems if an operation does not have the effect you expect\&.
 .RE
 .sp
@@ -573,10 +576,10 @@ Verbose mode\&. Print more information about what the program does\&. This optio
 .\}
 \fB\-\-version\fR,
 \fB\-V\fR
-.sp
 Display version information and exit\&.
 .RE
-mysql_config_editor Commands and Command\-Specific Options.PP
+mysql_config_editor Commands and Command\-Specific Options
+.PP
 This section describes the permitted
 \fBmysql_config_editor\fR
 commands, and, for each one, the command\-specific options permitted following the command name on the command line\&.
@@ -1001,7 +1004,7 @@ displays the prompt, type the password and press Enter\&. To prevent other users
 \fBmysql_config_editor\fR
 does not echo it\&.
 .sp
-To specify an empty password, press Enter at the password prompt\&. The resulting login path written to the login path file will include a line like this:
+To specify an empty password, press Enter at the password prompt\&. The resulting login path written to the login path file includes a line like this:
 .sp
 .if n \{\
 .RS 4
@@ -1075,7 +1078,7 @@ to disable it\&.
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysql_convert_table_format.1 b/mysql-wsrep-5.6/man/mysql_convert_table_format.1
index 4fbaeb14..0e4c491a 100644
--- a/mysql-wsrep-5.6/man/mysql_convert_table_format.1
+++ b/mysql-wsrep-5.6/man/mysql_convert_table_format.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_convert_table_format\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_CONVERT_TABLE_FORMAT\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQL_CONVERT_TABLE_FORMAT\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -91,7 +91,6 @@ supports the options described in the following list\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-help\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -104,7 +103,6 @@ Display a help message and exit\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-force\fR
-.sp
 Continue even if errors occur\&.
 .RE
 .sp
@@ -117,7 +115,6 @@ Continue even if errors occur\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-host=\fR\fB\fIhost_name\fR\fR
-.sp
 Connect to the MySQL server on the given host\&.
 .RE
 .sp
@@ -130,7 +127,6 @@ Connect to the MySQL server on the given host\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-password=\fR\fB\fIpassword\fR\fR
-.sp
 The password to use when connecting to the server\&. The password value is not optional for this option, unlike for other MySQL programs\&.
 .sp
 Specifying a password on the command line should be considered insecure\&. To avoid giving the password on the command line, use an option file\&. See
@@ -146,7 +142,6 @@ Section\ \&6.1.2.1, \(lqEnd-User Guidelines for Password Security\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-port=\fR\fB\fIport_num\fR\fR
-.sp
 The TCP/IP port number to use for the connection\&.
 .RE
 .sp
@@ -159,7 +154,6 @@ The TCP/IP port number to use for the connection\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-socket=\fR\fB\fIpath\fR\fR
-.sp
 For connections to
 localhost, the Unix socket file to use\&.
 .RE
@@ -173,7 +167,6 @@ localhost, the Unix socket file to use\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-type=\fR\fB\fIengine_name\fR\fR
-.sp
 Specify the storage engine that the tables should be converted to use\&. The default is
 MyISAM
 if this option is not given\&.
@@ -188,7 +181,6 @@ if this option is not given\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-user=\fR\fB\fIuser_name\fR\fR
-.sp
 The MySQL user name to use when connecting to the server\&.
 .RE
 .sp
@@ -201,7 +193,6 @@ The MySQL user name to use when connecting to the server\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-verbose\fR
-.sp
 Verbose mode\&. Print more information about what the program does\&.
 .RE
 .sp
@@ -214,13 +205,12 @@ Verbose mode\&. Print more information about what the program does\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-version\fR
-.sp
 Display version information and exit\&.
 .RE
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysql_find_rows.1 b/mysql-wsrep-5.6/man/mysql_find_rows.1
index a6c94ee3..523a6775 100644
--- a/mysql-wsrep-5.6/man/mysql_find_rows.1
+++ b/mysql-wsrep-5.6/man/mysql_find_rows.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_find_rows\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_FIND_ROWS\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQL_FIND_ROWS\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -103,7 +103,6 @@ supports the following options:
 .\}
 \fB\-\-help\fR,
 \fB\-\-Information\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -116,7 +115,6 @@ Display a help message and exit\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-regexp=\fR\fB\fIpattern\fR\fR
-.sp
 Display queries that match the pattern\&.
 .RE
 .sp
@@ -129,7 +127,6 @@ Display queries that match the pattern\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-rows=\fR\fB\fIN\fR\fR
-.sp
 Quit after displaying
 \fIN\fR
 queries\&.
@@ -144,7 +141,6 @@ queries\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-skip\-use\-db\fR
-.sp
 Do not include
 USE \fIdb_name\fR
 statements in the output\&.
@@ -159,13 +155,12 @@ statements in the output\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-start_row=\fR\fB\fIN\fR\fR
-.sp
 Start output from this row\&.
 .RE
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysql_fix_extensions.1 b/mysql-wsrep-5.6/man/mysql_fix_extensions.1
index 14e6c75f..f8f51130 100644
--- a/mysql-wsrep-5.6/man/mysql_fix_extensions.1
+++ b/mysql-wsrep-5.6/man/mysql_fix_extensions.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_fix_extensions\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_FIX_EXTENSIONS\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQL_FIX_EXTENSIONS\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -85,7 +85,7 @@ shell> \fBmysql_fix_extensions \fR\fB\fIdata_dir\fR\fR
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysql_install_db.1 b/mysql-wsrep-5.6/man/mysql_install_db.1
index 1f0cf636..211b6b55 100644
--- a/mysql-wsrep-5.6/man/mysql_install_db.1
+++ b/mysql-wsrep-5.6/man/mysql_install_db.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_install_db\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_INSTALL_DB\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQL_INSTALL_DB\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -81,14 +81,14 @@ shell> \fBmysql_install_db [\fR\fB\fIoptions\fR\fR\fB]\fR
 Because the MySQL server,
 \fBmysqld\fR, must access the data directory when it runs later, you should either run
 \fBmysql_install_db\fR
-from the same system account that will be used for running
+from the same system account that is used for running
 \fBmysqld\fR, or run it as
 root
 and specify the
 \fB\-\-user\fR
 option to indicate the user name that
 \fBmysqld\fR
-will run as\&. It might be necessary to specify other options such as
+runs as\&. It might be necessary to specify other options such as
 \fB\-\-basedir\fR
 or
 \fB\-\-datadir\fR
@@ -192,7 +192,6 @@ Section\ \&4.2.2.2, \(lqUsing Option Files\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-help\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -205,7 +204,6 @@ Display a help message and exit\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-basedir=\fR\fB\fIdir_name\fR\fR
-.sp
 The path to the MySQL installation directory\&.
 .RE
 .sp
@@ -218,7 +216,6 @@ The path to the MySQL installation directory\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-builddir=\fR\fB\fIdir_name\fR\fR
-.sp
 For use with
 \fB\-\-srcdir\fR
 and out\-of\-source builds\&. Set this to the location of the directory where the built files reside\&.
@@ -233,7 +230,6 @@ and out\-of\-source builds\&. Set this to the location of the directory where th
 .IP \(bu 2.3
 .\}
 \fB\-\-cross\-bootstrap\fR
-.sp
 For internal use\&. This option is used for building system tables on one host intended for another\&.
 .RE
 .sp
@@ -246,7 +242,6 @@ For internal use\&. This option is used for building system tables on one host i
 .IP \(bu 2.3
 .\}
 \fB\-\-datadir=\fR\fB\fIdir_name\fR\fR
-.sp
 The path to the MySQL data directory\&. Beginning with MySQL 5\&.6\&.8,
 \fBmysql_install_db\fR
 is more strict about the option value\&. Only the last component of the path name is created if it does not exist; the parent directory must already exist or an error occurs\&.
@@ -261,7 +256,6 @@ is more strict about the option value\&. Only the last component of the path nam
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-extra\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Read this option file after the global option file but (on Unix) before the user option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -279,7 +273,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Use only the given option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -297,10 +290,9 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-force\fR
-.sp
 Cause
 \fBmysql_install_db\fR
-to run even if DNS does not work\&. Grant table entries normally created using host names will use IP addresses instead\&.
+to run even if DNS does not work\&. Grant table entries normally created using host names use IP addresses instead\&.
 .RE
 .sp
 .RS 4
@@ -312,7 +304,6 @@ to run even if DNS does not work\&. Grant table entries normally created using h
 .IP \(bu 2.3
 .\}
 \fB\-\-keep\-my\-cnf\fR
-.sp
 Tell
 \fBmysql_install_db\fR
 to preserve any existing
@@ -331,7 +322,6 @@ file\&. This option was added in MySQL 5\&.6\&.20\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-ldata=\fR\fB\fIdir_name\fR\fR
-.sp
 A synonym for
 \fB\-\-datadir\fR\&.
 .RE
@@ -345,7 +335,6 @@ A synonym for
 .IP \(bu 2.3
 .\}
 \fB\-\-no\-defaults\fR
-.sp
 Do not read any option files\&. If program startup fails due to reading unknown options from an option file,
 \fB\-\-no\-defaults\fR
 can be used to prevent them from being read\&.
@@ -363,7 +352,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-random\-passwords\fR
-.sp
 On Unix platforms, this option provides for more secure MySQL installation\&. Invoking
 \fBmysql_install_db\fR
 with
@@ -476,7 +464,6 @@ option manually to make your MySQL installation more secure\&. This is recommend
 .IP \(bu 2.3
 .\}
 \fB\-\-rpm\fR
-.sp
 For internal use\&. This option is used during the MySQL installation process for install operations performed using RPM packages\&.
 .RE
 .sp
@@ -489,7 +476,6 @@ For internal use\&. This option is used during the MySQL installation process fo
 .IP \(bu 2.3
 .\}
 \fB\-\-skip\-name\-resolve\fR
-.sp
 Use IP addresses rather than host names when creating grant table entries\&. This option can be useful if your DNS does not work\&.
 .RE
 .sp
@@ -502,7 +488,6 @@ Use IP addresses rather than host names when creating grant table entries\&. Thi
 .IP \(bu 2.3
 .\}
 \fB\-\-srcdir=\fR\fB\fIdir_name\fR\fR
-.sp
 For internal use\&. This option specifies the directory under which
 \fBmysql_install_db\fR
 looks for support files such as the error message file and the file for populating the help tables\&.
@@ -517,15 +502,14 @@ looks for support files such as the error message file and the file for populati
 .IP \(bu 2.3
 .\}
 \fB\-\-user=\fR\fB\fIuser_name\fR\fR
-.sp
 The system (login) user name to use for running
 \fBmysqld\fR\&. Files and directories created by
 \fBmysqld\fR
-will be owned by this user\&. You must be the system
+are owned by this user\&. You must be the system
 root
 user to use this option\&. By default,
 \fBmysqld\fR
-runs using your current login name and files and directories that it creates will be owned by you\&.
+runs using your current login name and files and directories that it creates are owned by you\&.
 .RE
 .sp
 .RS 4
@@ -537,7 +521,6 @@ runs using your current login name and files and directories that it creates wil
 .IP \(bu 2.3
 .\}
 \fB\-\-verbose\fR
-.sp
 Verbose mode\&. Print more information about what the program does\&.
 .RE
 .sp
@@ -550,13 +533,12 @@ Verbose mode\&. Print more information about what the program does\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-windows\fR
-.sp
 For internal use\&. This option is used for creating Windows distributions\&.
 .RE
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysql_plugin.1 b/mysql-wsrep-5.6/man/mysql_plugin.1
index 46e643bf..d479db90 100644
--- a/mysql-wsrep-5.6/man/mysql_plugin.1
+++ b/mysql-wsrep-5.6/man/mysql_plugin.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_plugin\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_PLUGIN\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQL_PLUGIN\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -175,7 +175,6 @@ Section\ \&4.2.2.2, \(lqUsing Option Files\(rq\&.
 .\}
 \fB\-\-help\fR,
 \fB\-?\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -189,7 +188,6 @@ Display a help message and exit\&.
 .\}
 \fB\-\-basedir=\fR\fB\fIdir_name\fR\fR,
 \fB\-b \fR\fB\fIdir_name\fR\fR
-.sp
 The server base directory\&.
 .RE
 .sp
@@ -203,7 +201,6 @@ The server base directory\&.
 .\}
 \fB\-\-datadir=\fR\fB\fIdir_name\fR\fR,
 \fB\-d \fR\fB\fIdir_name\fR\fR
-.sp
 The server data directory\&.
 .RE
 .sp
@@ -217,7 +214,6 @@ The server data directory\&.
 .\}
 \fB\-\-my\-print\-defaults=\fR\fB\fIfile_name\fR\fR,
 \fB\-b \fR\fB\fIfile_name\fR\fR
-.sp
 The path to the
 \fBmy_print_defaults\fR
 program\&.
@@ -233,7 +229,6 @@ program\&.
 .\}
 \fB\-\-mysqld=\fR\fB\fIfile_name\fR\fR,
 \fB\-b \fR\fB\fIfile_name\fR\fR
-.sp
 The path to the
 \fBmysqld\fR
 server\&.
@@ -249,7 +244,6 @@ server\&.
 .\}
 \fB\-\-no\-defaults\fR,
 \fB\-p\fR
-.sp
 Do not read values from the configuration file\&. This option enables an administrator to skip reading defaults from the configuration file\&.
 .sp
 With
@@ -267,7 +261,6 @@ With
 .\}
 \fB\-\-plugin\-dir=\fR\fB\fIdir_name\fR\fR,
 \fB\-p \fR\fB\fIdir_name\fR\fR
-.sp
 The server plugin directory\&.
 .RE
 .sp
@@ -281,7 +274,6 @@ The server plugin directory\&.
 .\}
 \fB\-\-plugin\-ini=\fR\fB\fIfile_name\fR\fR,
 \fB\-i \fR\fB\fIfile_name\fR\fR
-.sp
 The
 \fBmysql_plugin\fR
 configuration file\&. Relative path names are interpreted relative to the current directory\&. If this option is not given, the default is
@@ -303,7 +295,6 @@ argument on the command line\&.
 .\}
 \fB\-\-print\-defaults\fR,
 \fB\-P\fR
-.sp
 Display the default values from the configuration file\&. This option causes
 \fBmysql_plugin\fR
 to print the defaults for
@@ -327,7 +318,6 @@ With
 .\}
 \fB\-\-verbose\fR,
 \fB\-v\fR
-.sp
 Verbose mode\&. Print more information about what the program does\&. This option can be used multiple times to increase the amount of information\&.
 .RE
 .sp
@@ -341,13 +331,12 @@ Verbose mode\&. Print more information about what the program does\&. This optio
 .\}
 \fB\-\-version\fR,
 \fB\-V\fR
-.sp
 Display version information and exit\&.
 .RE
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysql_secure_installation.1 b/mysql-wsrep-5.6/man/mysql_secure_installation.1
index ee5fdecb..d148ea45 100644
--- a/mysql-wsrep-5.6/man/mysql_secure_installation.1
+++ b/mysql-wsrep-5.6/man/mysql_secure_installation.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_secure_installation\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_SECURE_INSTALLATION\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQL_SECURE_INSTALLATION\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -109,7 +109,7 @@ When executed, the script prompts you to determine which actions to perform\&.
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysql_setpermission.1 b/mysql-wsrep-5.6/man/mysql_setpermission.1
index 0f18d775..b8b12da6 100644
--- a/mysql-wsrep-5.6/man/mysql_setpermission.1
+++ b/mysql-wsrep-5.6/man/mysql_setpermission.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_setpermission\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_SETPERMISSION\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQL_SETPERMISSION\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -100,7 +100,6 @@ supports the following options:
 .IP \(bu 2.3
 .\}
 \fB\-\-help\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -113,7 +112,6 @@ Display a help message and exit\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-host=\fR\fB\fIhost_name\fR\fR
-.sp
 Connect to the MySQL server on the given host\&.
 .RE
 .sp
@@ -126,7 +124,6 @@ Connect to the MySQL server on the given host\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-password=\fR\fB\fIpassword\fR\fR
-.sp
 The password to use when connecting to the server\&. The password value is not optional for this option, unlike for other MySQL programs\&.
 .sp
 Specifying a password on the command line should be considered insecure\&. To avoid giving the password on the command line, use an option file\&. See
@@ -142,7 +139,6 @@ Section\ \&6.1.2.1, \(lqEnd-User Guidelines for Password Security\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-port=\fR\fB\fIport_num\fR\fR
-.sp
 The TCP/IP port number to use for the connection\&.
 .RE
 .sp
@@ -155,7 +151,6 @@ The TCP/IP port number to use for the connection\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-socket=\fR\fB\fIpath\fR\fR
-.sp
 For connections to
 localhost, the Unix socket file to use\&.
 .RE
@@ -169,13 +164,12 @@ localhost, the Unix socket file to use\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-user=\fR\fB\fIuser_name\fR\fR
-.sp
 The MySQL user name to use when connecting to the server\&.
 .RE
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysql_tzinfo_to_sql.1 b/mysql-wsrep-5.6/man/mysql_tzinfo_to_sql.1
index c4ff4ace..66794e28 100644
--- a/mysql-wsrep-5.6/man/mysql_tzinfo_to_sql.1
+++ b/mysql-wsrep-5.6/man/mysql_tzinfo_to_sql.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_tzinfo_to_sql\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_TZINFO_TO_SQL\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQL_TZINFO_TO_SQL\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -40,11 +40,11 @@ program loads the time zone tables in the
 mysql
 database\&. It is used on systems that have a
 \fIzoneinfo\fR
-database (the set of files describing time zones)\&. Examples of such systems are Linux, FreeBSD, Solaris, and OS X\&. One likely location for these files is the
+database (the set of files describing time zones)\&. Examples of such systems are Linux, FreeBSD, Solaris, and macOS\&. One likely location for these files is the
 /usr/share/zoneinfo
 directory (/usr/share/lib/zoneinfo
 on Solaris)\&. If your system does not have a zoneinfo database, you can use the downloadable package described in
-Section\ \&5.1.12, \(lqMySQL Server Time Zone Support\(rq\&.
+Section\ \&5.1.13, \(lqMySQL Server Time Zone Support\(rq\&.
 .PP
 \fBmysql_tzinfo_to_sql\fR
 can be invoked several ways:
@@ -120,7 +120,7 @@ After running
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysql_upgrade.1 b/mysql-wsrep-5.6/man/mysql_upgrade.1
index cc8f7317..6569bdf1 100644
--- a/mysql-wsrep-5.6/man/mysql_upgrade.1
+++ b/mysql-wsrep-5.6/man/mysql_upgrade.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_upgrade\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_UPGRADE\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQL_UPGRADE\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -205,7 +205,7 @@ root
 user\&. If the
 root
 password is expired when you run
-\fBmysql_upgrade\fR, you will see a message that your password is expired and that
+\fBmysql_upgrade\fR, you should see a message that your password is expired and that
 \fBmysql_upgrade\fR
 failed as a result\&. To correct this, reset the
 root
@@ -297,7 +297,7 @@ FOR UPGRADE
 option of the
 CHECK TABLE
 statement in
-Section\ \&13.7.2.2, \(lqCHECK TABLE Syntax\(rq\&.
+Section\ \&13.7.2.2, \(lqCHECK TABLE Statement\(rq\&.
 .RE
 .sp
 .RS 4
@@ -330,8 +330,8 @@ option\&.
 .PP
 \fBmysql_upgrade\fR
 does not upgrade the contents of the time zone tables or help tables\&. For upgrade instructions, see
-Section\ \&5.1.12, \(lqMySQL Server Time Zone Support\(rq, and
-Section\ \&5.1.13, \(lqServer-Side Help Support\(rq\&.
+Section\ \&5.1.13, \(lqMySQL Server Time Zone Support\(rq, and
+Section\ \&5.1.14, \(lqServer-Side Help Support\(rq\&.
 .PP
 \fBmysql_upgrade\fR
 supports the following options, which can be specified on the command line or in the
@@ -351,7 +351,6 @@ Section\ \&4.2.2.2, \(lqUsing Option Files\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-help\fR
-.sp
 Display a short help message and exit\&.
 .RE
 .sp
@@ -364,7 +363,6 @@ Display a short help message and exit\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-basedir=\fR\fB\fIdir_name\fR\fR
-.sp
 The path to the MySQL installation directory\&. This option is accepted for backward compatibility but ignored\&. It is removed in MySQL 5\&.7\&.
 .RE
 .sp
@@ -377,9 +375,8 @@ The path to the MySQL installation directory\&. This option is accepted for back
 .IP \(bu 2.3
 .\}
 \fB\-\-character\-sets\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The directory where character sets are installed\&. See
-Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
+Section\ \&10.15, \(lqCharacter Set Configuration\(rq\&.
 .RE
 .sp
 .RS 4
@@ -391,9 +388,8 @@ Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-compress\fR
-.sp
 Compress all information sent between the client and the server if possible\&. See
-Section\ \&4.2.5, \(lqConnection Compression Control\(rq\&.
+Section\ \&4.2.6, \(lqConnection Compression Control\(rq\&.
 .RE
 .sp
 .RS 4
@@ -405,7 +401,6 @@ Section\ \&4.2.5, \(lqConnection Compression Control\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-datadir=\fR\fB\fIdir_name\fR\fR
-.sp
 The path to the data directory\&. This option is accepted for backward compatibility but ignored\&. It is removed in MySQL 5\&.7\&.
 .RE
 .sp
@@ -419,7 +414,6 @@ The path to the data directory\&. This option is accepted for backward compatibi
 .\}
 \fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR,
 \fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR
-.sp
 Write a debugging log\&. A typical
 \fIdebug_options\fR
 string is
@@ -436,7 +430,6 @@ d:t:O,/tmp/mysql_upgrade\&.trace\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-debug\-check\fR
-.sp
 Print some debugging information when the program exits\&.
 .RE
 .sp
@@ -450,7 +443,6 @@ Print some debugging information when the program exits\&.
 .\}
 \fB\-\-debug\-info\fR,
 \fB\-T\fR
-.sp
 Print debugging information and memory and CPU usage statistics when the program exits\&.
 .RE
 .sp
@@ -463,7 +455,6 @@ Print debugging information and memory and CPU usage statistics when the program
 .IP \(bu 2.3
 .\}
 \fB\-\-default\-auth=\fR\fB\fIplugin\fR\fR
-.sp
 A hint about which client\-side authentication plugin to use\&. See
 Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .RE
@@ -477,11 +468,10 @@ Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-default\-character\-set=\fR\fB\fIcharset_name\fR\fR
-.sp
 Use
 \fIcharset_name\fR
 as the default character set\&. See
-Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
+Section\ \&10.15, \(lqCharacter Set Configuration\(rq\&.
 .RE
 .sp
 .RS 4
@@ -493,7 +483,6 @@ Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-extra\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Read this option file after the global option file but (on Unix) before the user option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -511,7 +500,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Use only the given option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -529,7 +517,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-group\-suffix=\fR\fB\fIstr\fR\fR
-.sp
 Read not only the usual option groups, but also groups with the usual names and a suffix of
 \fIstr\fR\&. For example,
 \fBmysql_upgrade\fR
@@ -560,7 +547,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-force\fR
-.sp
 Ignore the
 mysql_upgrade_info
 file and force execution even if
@@ -578,7 +564,6 @@ has already been executed for the current version of MySQL\&.
 .\}
 \fB\-\-host=\fR\fB\fIhost_name\fR\fR,
 \fB\-h \fR\fB\fIhost_name\fR\fR
-.sp
 Connect to the MySQL server on the given host\&.
 .RE
 .sp
@@ -591,7 +576,6 @@ Connect to the MySQL server on the given host\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-login\-path=\fR\fB\fIname\fR\fR
-.sp
 Read options from the named login path in the
 \&.mylogin\&.cnf
 login path file\&. A
@@ -614,7 +598,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-no\-defaults\fR
-.sp
 Do not read any option files\&. If program startup fails due to reading unknown options from an option file,
 \fB\-\-no\-defaults\fR
 can be used to prevent them from being read\&.
@@ -643,7 +626,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR,
 \fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR
-.sp
 The password of the MySQL account used for connecting to the server\&. The password value is optional\&. If not given,
 \fBmysql_upgrade\fR
 prompts for one\&. If given, there must be
@@ -674,7 +656,6 @@ option\&.
 .\}
 \fB\-\-pipe\fR,
 \fB\-W\fR
-.sp
 On Windows, connect to the server using a named pipe\&. This option applies only if the server was started with the
 named_pipe
 system variable enabled to support named\-pipe connections\&. In addition, the user making the connection must be a member of the Windows group specified by the
@@ -691,7 +672,6 @@ system variable\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-plugin\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The directory in which to look for plugins\&. Specify this option if the
 \fB\-\-default\-auth\fR
 option is used to specify an authentication plugin but
@@ -710,7 +690,6 @@ Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .\}
 \fB\-\-port=\fR\fB\fIport_num\fR\fR,
 \fB\-P \fR\fB\fIport_num\fR\fR
-.sp
 For TCP/IP connections, the port number to use\&.
 .RE
 .sp
@@ -723,7 +702,6 @@ For TCP/IP connections, the port number to use\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-print\-defaults\fR
-.sp
 Print the program name and all options that it gets from option files\&.
 .sp
 For additional information about this and other option\-file options, see
@@ -739,9 +717,8 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR
-.sp
-The connection protocol to use for connecting to the server\&. It is useful when the other connection parameters normally result in use of a protocol other than the one you want\&. For details on the permissible values, see
-Section\ \&4.2.4, \(lqConnecting to the MySQL Server Using Command Options\(rq\&.
+The transport protocol to use for connecting to the server\&. It is useful when the other connection parameters normally result in use of a protocol other than the one you want\&. For details on the permissible values, see
+Section\ \&4.2.5, \(lqConnection Transport Protocols\(rq\&.
 .RE
 .sp
 .RS 4
@@ -753,8 +730,7 @@ Section\ \&4.2.4, \(lqConnecting to the MySQL Server Using Command Options\(rq\&
 .IP \(bu 2.3
 .\}
 \fB\-\-shared\-memory\-base\-name=\fR\fB\fIname\fR\fR
-.sp
-On Windows, the shared\-memory name to use, for connections made using shared memory to a local server\&. The default value is
+On Windows, the shared\-memory name to use for connections made using shared memory to a local server\&. The default value is
 MYSQL\&. The shared\-memory name is case\-sensitive\&.
 .sp
 This option applies only if the server was started with the
@@ -772,7 +748,6 @@ system variable enabled to support shared\-memory connections\&.
 .\}
 \fB\-\-socket=\fR\fB\fIpath\fR\fR,
 \fB\-S \fR\fB\fIpath\fR\fR
-.sp
 For connections to
 localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&.
 .sp
@@ -792,7 +767,6 @@ system variable\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-ssl*\fR
-.sp
 Options that begin with
 \fB\-\-ssl\fR
 specify whether to connect to the server using SSL and indicate where to find SSL keys and certificates\&. See
@@ -809,7 +783,6 @@ the section called \(lqCommand Options for Encrypted Connections\(rq\&.
 .\}
 \fB\-\-tmpdir=\fR\fB\fIdir_name\fR\fR,
 \fB\-t \fR\fB\fIdir_name\fR\fR
-.sp
 The path name of the directory to use for creating temporary files\&.
 .RE
 .sp
@@ -823,7 +796,6 @@ The path name of the directory to use for creating temporary files\&.
 .\}
 \fB\-\-upgrade\-system\-tables\fR,
 \fB\-s\fR
-.sp
 Upgrade only the system tables in the
 mysql
 schema, do not upgrade user schemas\&.
@@ -839,7 +811,6 @@ schema, do not upgrade user schemas\&.
 .\}
 \fB\-\-user=\fR\fB\fIuser_name\fR\fR,
 \fB\-u \fR\fB\fIuser_name\fR\fR
-.sp
 The user name of the MySQL account to use for connecting to the server\&. The default user name is
 root\&.
 .RE
@@ -853,7 +824,6 @@ root\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-verbose\fR
-.sp
 Verbose mode\&. Print more information about what the program does\&.
 .RE
 .sp
@@ -867,7 +837,6 @@ Verbose mode\&. Print more information about what the program does\&.
 .\}
 \fB\-\-version\-check\fR,
 \fB\-k\fR
-.sp
 Check the version of the server to which
 \fBmysql_upgrade\fR
 is connecting to verify that it is the same as the version for which
@@ -887,7 +856,6 @@ exits\&. This option is enabled by default; to disable the check, use
 .IP \(bu 2.3
 .\}
 \fB\-\-write\-binlog\fR
-.sp
 Cause binary logging to be enabled while
 \fBmysql_upgrade\fR
 runs\&. In MySQL 5\&.6\&.6 and earlier, this was the default behavior\&. (To disable binary logging during the upgrade, it was necessary to use the inverse of this option, by starting the program with
@@ -905,7 +873,7 @@ When the server is running with global transaction identifiers (GTIDs) enabled (
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysql_waitpid.1 b/mysql-wsrep-5.6/man/mysql_waitpid.1
index e5d06fd6..f4b605a2 100644
--- a/mysql-wsrep-5.6/man/mysql_waitpid.1
+++ b/mysql-wsrep-5.6/man/mysql_waitpid.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_waitpid\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_WAITPID\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQL_WAITPID\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -90,7 +90,6 @@ supports the following options:
 \fB\-\-help\fR,
 \fB\-?\fR,
 \fB\-I\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -104,7 +103,6 @@ Display a help message and exit\&.
 .\}
 \fB\-\-verbose\fR,
 \fB\-v\fR
-.sp
 Verbose mode\&. Display a warning if signal 0 could not be used and signal 1 is used instead\&.
 .RE
 .sp
@@ -118,13 +116,12 @@ Verbose mode\&. Display a warning if signal 0 could not be used and signal 1 is
 .\}
 \fB\-\-version\fR,
 \fB\-V\fR
-.sp
 Display version information and exit\&.
 .RE
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysql_zap.1 b/mysql-wsrep-5.6/man/mysql_zap.1
index e498e599..0c1bf3d6 100644
--- a/mysql-wsrep-5.6/man/mysql_zap.1
+++ b/mysql-wsrep-5.6/man/mysql_zap.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_zap\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_ZAP\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQL_ZAP\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -126,7 +126,7 @@ Test mode\&. Display information about each process but do not kill it\&.
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysqlaccess.1 b/mysql-wsrep-5.6/man/mysqlaccess.1
index e0ca9b8b..5936dd91 100644
--- a/mysql-wsrep-5.6/man/mysqlaccess.1
+++ b/mysql-wsrep-5.6/man/mysqlaccess.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqlaccess\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQLACCESS\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQLACCESS\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -127,7 +127,6 @@ supports the options shown in the following table\&.
 .\}
 \fB\-\-help\fR,
 \fB\-?\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -141,7 +140,6 @@ Display a help message and exit\&.
 .\}
 \fB\-\-brief\fR,
 \fB\-b\fR
-.sp
 Generate reports in single\-line tabular format\&.
 .RE
 .sp
@@ -154,7 +152,6 @@ Generate reports in single\-line tabular format\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-commit\fR
-.sp
 Copy the new access privileges from the temporary tables to the original grant tables\&. The grant tables must be flushed for the new privileges to take effect\&. (For example, execute a
 \fBmysqladmin reload\fR
 command\&.)
@@ -169,7 +166,6 @@ command\&.)
 .IP \(bu 2.3
 .\}
 \fB\-\-copy\fR
-.sp
 Reload the temporary grant tables from original ones\&.
 .RE
 .sp
@@ -183,7 +179,6 @@ Reload the temporary grant tables from original ones\&.
 .\}
 \fB\-\-db=\fR\fB\fIdb_name\fR\fR,
 \fB\-d \fR\fB\fIdb_name\fR\fR
-.sp
 Specify the database name\&.
 .RE
 .sp
@@ -196,10 +191,14 @@ Specify the database name\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-debug=\fR\fB\fIN\fR\fR
-.sp
 Specify the debug level\&.
 \fIN\fR
 can be an integer from 0 to 3\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -212,7 +211,6 @@ can be an integer from 0 to 3\&.
 .\}
 \fB\-\-host=\fR\fB\fIhost_name\fR\fR,
 \fB\-h \fR\fB\fIhost_name\fR\fR
-.sp
 The host name to use in the access privileges\&.
 .RE
 .sp
@@ -225,7 +223,6 @@ The host name to use in the access privileges\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-howto\fR
-.sp
 Display some examples that show how to use
 \fBmysqlaccess\fR\&.
 .RE
@@ -239,7 +236,6 @@ Display some examples that show how to use
 .IP \(bu 2.3
 .\}
 \fB\-\-old_server\fR
-.sp
 Assume that the server is an old MySQL server (before MySQL 3\&.21) that does not yet know how to handle full
 WHERE
 clauses\&.
@@ -255,7 +251,6 @@ clauses\&.
 .\}
 \fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR,
 \fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR
-.sp
 The password to use when connecting to the server\&. If you omit the
 \fIpassword\fR
 value following the
@@ -279,7 +274,6 @@ Section\ \&6.1.2.1, \(lqEnd-User Guidelines for Password Security\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-plan\fR
-.sp
 Display suggestions and ideas for future releases\&.
 .RE
 .sp
@@ -292,7 +286,6 @@ Display suggestions and ideas for future releases\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-preview\fR
-.sp
 Show the privilege differences after making changes to the temporary grant tables\&.
 .RE
 .sp
@@ -305,7 +298,6 @@ Show the privilege differences after making changes to the temporary grant table
 .IP \(bu 2.3
 .\}
 \fB\-\-relnotes\fR
-.sp
 Display the release notes\&.
 .RE
 .sp
@@ -319,7 +311,6 @@ Display the release notes\&.
 .\}
 \fB\-\-rhost=\fR\fB\fIhost_name\fR\fR,
 \fB\-H \fR\fB\fIhost_name\fR\fR
-.sp
 Connect to the MySQL server on the given host\&.
 .RE
 .sp
@@ -332,7 +323,6 @@ Connect to the MySQL server on the given host\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-rollback\fR
-.sp
 Undo the most recent changes to the temporary grant tables\&.
 .RE
 .sp
@@ -346,7 +336,6 @@ Undo the most recent changes to the temporary grant tables\&.
 .\}
 \fB\-\-spassword[=\fR\fB\fIpassword\fR\fR\fB]\fR,
 \fB\-P[\fR\fB\fIpassword\fR\fR\fB]\fR
-.sp
 The password to use when connecting to the server as the superuser\&. If you omit the
 \fIpassword\fR
 value following the
@@ -371,7 +360,6 @@ Section\ \&6.1.2.1, \(lqEnd-User Guidelines for Password Security\(rq\&.
 .\}
 \fB\-\-superuser=\fR\fB\fIuser_name\fR\fR,
 \fB\-U \fR\fB\fIuser_name\fR\fR
-.sp
 Specify the user name for connecting as the superuser\&.
 .RE
 .sp
@@ -385,7 +373,6 @@ Specify the user name for connecting as the superuser\&.
 .\}
 \fB\-\-table\fR,
 \fB\-t\fR
-.sp
 Generate reports in table format\&.
 .RE
 .sp
@@ -399,7 +386,6 @@ Generate reports in table format\&.
 .\}
 \fB\-\-user=\fR\fB\fIuser_name\fR\fR,
 \fB\-u \fR\fB\fIuser_name\fR\fR
-.sp
 The user name to use in the access privileges\&.
 .RE
 .sp
@@ -413,7 +399,6 @@ The user name to use in the access privileges\&.
 .\}
 \fB\-\-version\fR,
 \fB\-v\fR
-.sp
 Display version information and exit\&.
 .RE
 .PP
@@ -439,12 +424,12 @@ Change the path to reflect the location where
 \fBmysql\fR
 actually is stored on your system\&. If you do not do this, a
 Broken pipe
-error will occur when you run
+error occurs when you run
 \fBmysqlaccess\fR\&.
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysqladmin.1 b/mysql-wsrep-5.6/man/mysqladmin.1
index a5ac2c6f..491a7423 100644
--- a/mysql-wsrep-5.6/man/mysqladmin.1
+++ b/mysql-wsrep-5.6/man/mysqladmin.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqladmin\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQLADMIN\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQLADMIN\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -28,7 +28,7 @@
 .\" * MAIN CONTENT STARTS HERE *
 .\" -----------------------------------------------------------------
 .SH "NAME"
-mysqladmin \- client for administering a MySQL server
+mysqladmin \- a MySQL server administration program
 .SH "SYNOPSIS"
 .HP \w'\fBmysqladmin\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIcommand\fR\fR\fB\ [\fR\fB\fIcommand\-options\fR\fR\fB]\ [\fR\fB\fIcommand\fR\fR\fB\ [\fR\fB\fIcommand\-options\fR\fR\fB]]\ \&.\&.\&.\fR\ 'u
 \fBmysqladmin [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIcommand\fR\fR\fB [\fR\fB\fIcommand\-options\fR\fR\fB] [\fR\fB\fIcommand\fR\fR\fB [\fR\fB\fIcommand\-options\fR\fR\fB]] \&.\&.\&.\fR
@@ -125,7 +125,7 @@ Display the server status variables and their values\&.
 flush\-hosts
 .sp
 Flush all information in the host cache\&. See
-Section\ \&8.12.5.2, \(lqDNS Lookup Optimization and the Host Cache\(rq\&.
+Section\ \&5.1.11.2, \(lqDNS Lookups and the Host Cache\(rq\&.
 .RE
 .sp
 .RS 4
@@ -243,7 +243,7 @@ for the account that you use with
 \fBmysqladmin\fR
 for connecting to the server\&. Thus, the next time you invoke
 \fBmysqladmin\fR
-(or any other client program) using the same account, you will need to specify the new password\&.
+(or any other client program) using the same account, you must specify the new password\&.
 .if n \{\
 .sp
 .\}
@@ -302,7 +302,7 @@ command line\&. Otherwise, the next argument is taken as the password\&.
 .br
 Do not use this command used if the server was started with the
 \fB\-\-skip\-grant\-tables\fR
-option\&. No password change will be applied\&. This is true even if you precede the
+option\&. No password change is applied\&. This is true even if you precede the
 password
 command with
 flush\-privileges
@@ -347,7 +347,7 @@ statement\&. If the
 \fB\-\-verbose\fR
 option is given, the output is like that of
 SHOW FULL PROCESSLIST\&. (See
-Section\ \&13.7.5.30, \(lqSHOW PROCESSLIST Syntax\(rq\&.)
+Section\ \&13.7.5.30, \(lqSHOW PROCESSLIST Statement\(rq\&.)
 .RE
 .sp
 .RS 4
@@ -399,7 +399,7 @@ Stop the server\&.
 .\}
 start\-slave
 .sp
-Start replication on a slave server\&.
+Start replication on a replica server\&.
 .RE
 .sp
 .RS 4
@@ -425,7 +425,7 @@ Display a short server status message\&.
 .\}
 stop\-slave
 .sp
-Stop replication on a slave server\&.
+Stop replication on a replica server\&.
 .RE
 .sp
 .RS 4
@@ -464,7 +464,7 @@ shell> \fBmysqladmin proc stat\fR
 +\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
 | Id | User  | Host      | db | Command | Time | State | Info             |
 +\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
-| 51 | monty | localhost |    | Query   | 0    |       | show processlist |
+| 51 | jones | localhost |    | Query   | 0    |       | show processlist |
 +\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
 Uptime: 1473624  Threads: 1  Questions: 39487
 Slow queries: 0  Opens: 541  Flush tables: 1
@@ -600,7 +600,6 @@ Section\ \&4.2.2.2, \(lqUsing Option Files\(rq\&.
 .\}
 \fB\-\-help\fR,
 \fB\-?\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -613,7 +612,6 @@ Display a help message and exit\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-bind\-address=\fR\fB\fIip_address\fR\fR
-.sp
 On a computer having multiple network interfaces, use this option to select which interface to use for connecting to the MySQL server\&.
 .RE
 .sp
@@ -626,9 +624,8 @@ On a computer having multiple network interfaces, use this option to select whic
 .IP \(bu 2.3
 .\}
 \fB\-\-character\-sets\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The directory where character sets are installed\&. See
-Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
+Section\ \&10.15, \(lqCharacter Set Configuration\(rq\&.
 .RE
 .sp
 .RS 4
@@ -641,9 +638,20 @@ Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
 .\}
 \fB\-\-compress\fR,
 \fB\-C\fR
-.sp
 Compress all information sent between the client and the server if possible\&. See
-Section\ \&4.2.5, \(lqConnection Compression Control\(rq\&.
+Section\ \&4.2.6, \(lqConnection Compression Control\(rq\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fB\-\-connect\-timeout=\fR\fB\fIvalue\fR\fR
+The maximum number of seconds before connection timeout\&. The default value is 43200 (12 hours)\&.
 .RE
 .sp
 .RS 4
@@ -656,7 +664,6 @@ Section\ \&4.2.5, \(lqConnection Compression Control\(rq\&.
 .\}
 \fB\-\-count=\fR\fB\fIN\fR\fR,
 \fB\-c \fR\fB\fIN\fR\fR
-.sp
 The number of iterations to make for repeated command execution if the
 \fB\-\-sleep\fR
 option is given\&.
@@ -672,12 +679,16 @@ option is given\&.
 .\}
 \fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR,
 \fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR
-.sp
 Write a debugging log\&. A typical
 \fIdebug_options\fR
 string is
 d:t:o,\fIfile_name\fR\&. The default is
 d:t:o,/tmp/mysqladmin\&.trace\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -689,8 +700,12 @@ d:t:o,/tmp/mysqladmin\&.trace\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-debug\-check\fR
-.sp
 Print some debugging information when the program exits\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -702,8 +717,12 @@ Print some debugging information when the program exits\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-debug\-info\fR
-.sp
 Print debugging information and memory and CPU usage statistics when the program exits\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -715,7 +734,6 @@ Print debugging information and memory and CPU usage statistics when the program
 .IP \(bu 2.3
 .\}
 \fB\-\-default\-auth=\fR\fB\fIplugin\fR\fR
-.sp
 A hint about which client\-side authentication plugin to use\&. See
 Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .RE
@@ -729,11 +747,10 @@ Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-default\-character\-set=\fR\fB\fIcharset_name\fR\fR
-.sp
 Use
 \fIcharset_name\fR
 as the default character set\&. See
-Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
+Section\ \&10.15, \(lqCharacter Set Configuration\(rq\&.
 .RE
 .sp
 .RS 4
@@ -745,7 +762,6 @@ Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-extra\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Read this option file after the global option file but (on Unix) before the user option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -763,7 +779,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Use only the given option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -785,7 +800,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-group\-suffix=\fR\fB\fIstr\fR\fR
-.sp
 Read not only the usual option groups, but also groups with the usual names and a suffix of
 \fIstr\fR\&. For example,
 \fBmysqladmin\fR
@@ -816,7 +830,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-enable\-cleartext\-plugin\fR
-.sp
 Enable the
 mysql_clear_password
 cleartext authentication plugin\&. (See
@@ -833,7 +846,6 @@ Section\ \&6.4.1.5, \(lqClient-Side Cleartext Pluggable Authentication\(rq\&.)
 .\}
 \fB\-\-force\fR,
 \fB\-f\fR
-.sp
 Do not ask for confirmation for the
 drop \fIdb_name\fR
 command\&. With multiple commands, continue even if an error occurs\&.
@@ -849,7 +861,6 @@ command\&. With multiple commands, continue even if an error occurs\&.
 .\}
 \fB\-\-host=\fR\fB\fIhost_name\fR\fR,
 \fB\-h \fR\fB\fIhost_name\fR\fR
-.sp
 Connect to the MySQL server on the given host\&.
 .RE
 .sp
@@ -862,7 +873,6 @@ Connect to the MySQL server on the given host\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-login\-path=\fR\fB\fIname\fR\fR
-.sp
 Read options from the named login path in the
 \&.mylogin\&.cnf
 login path file\&. A
@@ -886,7 +896,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-no\-beep\fR,
 \fB\-b\fR
-.sp
 Suppress the warning beep that is emitted by default for errors such as a failure to connect to the server\&.
 .RE
 .sp
@@ -899,7 +908,6 @@ Suppress the warning beep that is emitted by default for errors such as a failur
 .IP \(bu 2.3
 .\}
 \fB\-\-no\-defaults\fR
-.sp
 Do not read any option files\&. If program startup fails due to reading unknown options from an option file,
 \fB\-\-no\-defaults\fR
 can be used to prevent them from being read\&.
@@ -928,7 +936,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR,
 \fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR
-.sp
 The password of the MySQL account used for connecting to the server\&. The password value is optional\&. If not given,
 \fBmysqladmin\fR
 prompts for one\&. If given, there must be
@@ -959,7 +966,6 @@ option\&.
 .\}
 \fB\-\-pipe\fR,
 \fB\-W\fR
-.sp
 On Windows, connect to the server using a named pipe\&. This option applies only if the server was started with the
 named_pipe
 system variable enabled to support named\-pipe connections\&. In addition, the user making the connection must be a member of the Windows group specified by the
@@ -976,7 +982,6 @@ system variable\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-plugin\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The directory in which to look for plugins\&. Specify this option if the
 \fB\-\-default\-auth\fR
 option is used to specify an authentication plugin but
@@ -995,7 +1000,6 @@ Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .\}
 \fB\-\-port=\fR\fB\fIport_num\fR\fR,
 \fB\-P \fR\fB\fIport_num\fR\fR
-.sp
 For TCP/IP connections, the port number to use\&.
 .RE
 .sp
@@ -1008,7 +1012,6 @@ For TCP/IP connections, the port number to use\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-print\-defaults\fR
-.sp
 Print the program name and all options that it gets from option files\&.
 .sp
 For additional information about this and other option\-file options, see
@@ -1024,9 +1027,8 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR
-.sp
-The connection protocol to use for connecting to the server\&. It is useful when the other connection parameters normally result in use of a protocol other than the one you want\&. For details on the permissible values, see
-Section\ \&4.2.4, \(lqConnecting to the MySQL Server Using Command Options\(rq\&.
+The transport protocol to use for connecting to the server\&. It is useful when the other connection parameters normally result in use of a protocol other than the one you want\&. For details on the permissible values, see
+Section\ \&4.2.5, \(lqConnection Transport Protocols\(rq\&.
 .RE
 .sp
 .RS 4
@@ -1039,7 +1041,6 @@ Section\ \&4.2.4, \(lqConnecting to the MySQL Server Using Command Options\(rq\&
 .\}
 \fB\-\-relative\fR,
 \fB\-r\fR
-.sp
 Show the difference between the current and previous values when used with the
 \fB\-\-sleep\fR
 option\&. This option works only with the
@@ -1056,7 +1057,6 @@ command\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-secure\-auth\fR
-.sp
 Do not send passwords to the server in old (pre\-4\&.1) format\&. This prevents connections except for servers that use the newer password format\&. This option is enabled by default; use
 \fB\-\-skip\-secure\-auth\fR
 to disable it\&. This option was added in MySQL 5\&.6\&.17\&.
@@ -1072,7 +1072,7 @@ to disable it\&. This option was added in MySQL 5\&.6\&.17\&.
 \fBNote\fR
 .ps -1
 .br
-Passwords that use the pre\-4\&.1 hashing method are less secure than passwords that use the native password hashing method and should be avoided\&. Pre\-4\&.1 passwords are deprecated and support for them will be removed in a future MySQL release\&. For account upgrade instructions, see
+Passwords that use the pre\-4\&.1 hashing method are less secure than passwords that use the native password hashing method and should be avoided\&. Pre\-4\&.1 passwords are deprecated; expect support for them to be removed in a future MySQL release\&. For account upgrade instructions, see
 Section\ \&6.4.1.3, \(lqMigrating Away from Pre-4.1 Password Hashing and the mysql_old_password Plugin\(rq\&.
 .sp .5v
 .RE
@@ -1088,7 +1088,7 @@ Section\ \&6.4.1.3, \(lqMigrating Away from Pre-4.1 Password Hashing and the mys
 \fBNote\fR
 .ps -1
 .br
-This option is deprecated and will be removed in a future release\&. As of MySQL 5\&.7\&.5, it is always enabled and attempting to disable it produces an error\&.
+This option is deprecated; expect it to be removed in a future release\&. As of MySQL 5\&.7\&.5, it is always enabled and attempting to disable it produces an error\&.
 .sp .5v
 .RE
 .RE
@@ -1102,8 +1102,7 @@ This option is deprecated and will be removed in a future release\&. As of MySQL
 .IP \(bu 2.3
 .\}
 \fB\-\-shared\-memory\-base\-name=\fR\fB\fIname\fR\fR
-.sp
-On Windows, the shared\-memory name to use, for connections made using shared memory to a local server\&. The default value is
+On Windows, the shared\-memory name to use for connections made using shared memory to a local server\&. The default value is
 MYSQL\&. The shared\-memory name is case\-sensitive\&.
 .sp
 This option applies only if the server was started with the
@@ -1119,9 +1118,20 @@ system variable enabled to support shared\-memory connections\&.
 .sp -1
 .IP \(bu 2.3
 .\}
+\fB\-\-shutdown\-timeout=\fR\fB\fIvalue\fR\fR
+The maximum number of seconds to wait for server shutdown\&. The default value is 3600 (1 hour)\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
 \fB\-\-silent\fR,
 \fB\-s\fR
-.sp
 Exit silently if a connection to the server cannot be established\&.
 .RE
 .sp
@@ -1135,7 +1145,6 @@ Exit silently if a connection to the server cannot be established\&.
 .\}
 \fB\-\-sleep=\fR\fB\fIdelay\fR\fR,
 \fB\-i \fR\fB\fIdelay\fR\fR
-.sp
 Execute commands repeatedly, sleeping for
 \fIdelay\fR
 seconds in between\&. The
@@ -1157,7 +1166,6 @@ executes commands indefinitely until interrupted\&.
 .\}
 \fB\-\-socket=\fR\fB\fIpath\fR\fR,
 \fB\-S \fR\fB\fIpath\fR\fR
-.sp
 For connections to
 localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&.
 .sp
@@ -1177,7 +1185,6 @@ system variable\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-ssl*\fR
-.sp
 Options that begin with
 \fB\-\-ssl\fR
 specify whether to connect to the server using SSL and indicate where to find SSL keys and certificates\&. See
@@ -1194,7 +1201,6 @@ the section called \(lqCommand Options for Encrypted Connections\(rq\&.
 .\}
 \fB\-\-user=\fR\fB\fIuser_name\fR\fR,
 \fB\-u \fR\fB\fIuser_name\fR\fR
-.sp
 The user name of the MySQL account to use for connecting to the server\&.
 .RE
 .sp
@@ -1208,7 +1214,6 @@ The user name of the MySQL account to use for connecting to the server\&.
 .\}
 \fB\-\-verbose\fR,
 \fB\-v\fR
-.sp
 Verbose mode\&. Print more information about what the program does\&.
 .RE
 .sp
@@ -1222,7 +1227,6 @@ Verbose mode\&. Print more information about what the program does\&.
 .\}
 \fB\-\-version\fR,
 \fB\-V\fR
-.sp
 Display version information and exit\&.
 .RE
 .sp
@@ -1236,7 +1240,6 @@ Display version information and exit\&.
 .\}
 \fB\-\-vertical\fR,
 \fB\-E\fR
-.sp
 Print output vertically\&. This is similar to
 \fB\-\-relative\fR, but prints output vertically\&.
 .RE
@@ -1251,44 +1254,14 @@ Print output vertically\&. This is similar to
 .\}
 \fB\-\-wait[=\fR\fB\fIcount\fR\fR\fB]\fR,
 \fB\-w[\fR\fB\fIcount\fR\fR\fB]\fR
-.sp
 If the connection cannot be established, wait and retry instead of aborting\&. If a
 \fIcount\fR
 value is given, it indicates the number of times to retry\&. The default is one time\&.
 .RE
-.PP
-You can also set the following variables by using
-\fB\-\-\fR\fB\fIvar_name\fR\fR\fB=\fR\fB\fIvalue\fR\fR\&.
-.sp
-.RS 4
-.ie n \{\
-\h'-04'\(bu\h'+03'\c
-.\}
-.el \{\
-.sp -1
-.IP \(bu 2.3
-.\}
-connect_timeout
-.sp
-The maximum number of seconds before connection timeout\&. The default value is 43200 (12 hours)\&.
-.RE
-.sp
-.RS 4
-.ie n \{\
-\h'-04'\(bu\h'+03'\c
-.\}
-.el \{\
-.sp -1
-.IP \(bu 2.3
-.\}
-shutdown_timeout
-.sp
-The maximum number of seconds to wait for server shutdown\&. The default value is 3600 (1 hour)\&.
-.RE
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysqlbinlog.1 b/mysql-wsrep-5.6/man/mysqlbinlog.1
index d8f016a1..414677fc 100644
--- a/mysql-wsrep-5.6/man/mysqlbinlog.1
+++ b/mysql-wsrep-5.6/man/mysqlbinlog.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqlbinlog\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQLBINLOG\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQLBINLOG\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -40,9 +40,9 @@ that describe modifications to database contents\&. The server writes these file
 \fBmysqlbinlog\fR
 utility\&. You can also use
 \fBmysqlbinlog\fR
-to display the contents of relay log files written by a slave server in a replication setup because relay logs have the same format as binary logs\&. The binary log and relay log are discussed further in
+to display the contents of relay log files written by a replica server in a replication setup because relay logs have the same format as binary logs\&. The binary log and relay log are discussed further in
 Section\ \&5.4.4, \(lqThe Binary Log\(rq, and
-Section\ \&17.2.2, \(lqReplication Relay and Status Logs\(rq\&.
+Section\ \&17.2.2, \(lqRelay Log and Replication Metadata Repositories\(rq\&.
 .PP
 Invoke
 \fBmysqlbinlog\fR
@@ -93,7 +93,7 @@ In the first line, the number following
 at
 indicates the file offset, or starting position, of the event in the binary log file\&.
 .PP
-The second line starts with a date and time indicating when the statement started on the server where the event originated\&. For replication, this timestamp is propagated to slave servers\&.
+The second line starts with a date and time indicating when the statement started on the server where the event originated\&. For replication, this timestamp is propagated to replica servers\&.
 server id
 is the
 server_id
@@ -103,7 +103,7 @@ indicates where the next event starts (that is, it is the end position of the cu
 thread_id
 indicates which thread executed the event\&.
 exec_time
-is the time spent executing the event, on a master server\&. On a slave, it is the difference of the end execution time on the slave minus the beginning execution time on the master\&. The difference serves as an indicator of how much replication lags behind the master\&.
+is the time spent executing the event, on a source server\&. On a replica, it is the difference of the end execution time on the replica minus the beginning execution time on the source\&. The difference serves as an indicator of how much replication lags behind the source\&.
 error_code
 indicates the result from executing the event\&. Zero means that no error occurred\&.
 .if n \{\
@@ -126,7 +126,7 @@ When using event groups, the file offsets of events may be grouped together and
 The output from
 \fBmysqlbinlog\fR
 can be re\-executed (for example, by using it as input to
-\fBmysql\fR) to redo the statements in the log\&. This is useful for recovery operations after a server crash\&. For other usage examples, see the discussion later in this section and in
+\fBmysql\fR) to redo the statements in the log\&. This is useful for recovery operations after an unexpected server exit\&. For other usage examples, see the discussion later in this section and in
 Section\ \&7.5, \(lqPoint-in-Time (Incremental) Recovery Using the Binary Log\(rq\&.
 .PP
 Normally, you use
@@ -173,7 +173,6 @@ Section\ \&4.2.2.2, \(lqUsing Option Files\(rq\&.
 .\}
 \fB\-\-help\fR,
 \fB\-?\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -186,7 +185,6 @@ Display a help message and exit\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-base64\-output=\fR\fB\fIvalue\fR\fR
-.sp
 This option determines when events should be displayed encoded as base\-64 strings using
 BINLOG
 statements\&. The option has these permissible values (not case\-sensitive):
@@ -285,7 +283,6 @@ the section called \(lqMYSQLBINLOG ROW EVENT DISPLAY\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-bind\-address=\fR\fB\fIip_address\fR\fR
-.sp
 On a computer having multiple network interfaces, use this option to select which interface to use for connecting to the MySQL server\&.
 .RE
 .sp
@@ -300,40 +297,33 @@ On a computer having multiple network interfaces, use this option to select whic
 \fB\-\-binlog\-row\-event\-max\-size=\fR\fB\fIN\fR\fR
 .TS
 allbox tab(:);
-lB lB.
-T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l
-l l
-l l.
+lB l
+lB l
+lB l
+lB l
+lB l.
 T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --binlog-row-event-max-size=#
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Numeric
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 4294967040
 T}
 T{
-\fBMinimum Value\fR
+Minimum Value
 T}:T{
 256
 T}
 T{
-\fBMaximum Value\fR
+Maximum Value
 T}:T{
 18446744073709547520
 T}
@@ -351,9 +341,8 @@ Specify the maximum size of a row\-based binary log event, in bytes\&. Rows are
 .IP \(bu 2.3
 .\}
 \fB\-\-character\-sets\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The directory where character sets are installed\&. See
-Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
+Section\ \&10.15, \(lqCharacter Set Configuration\(rq\&.
 .RE
 .sp
 .RS 4
@@ -365,7 +354,6 @@ Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-connection\-server\-id=\fR\fB\fIserver_id\fR\fR
-.sp
 This option is used to test a MySQL server for support of the
 BINLOG_DUMP_NON_BLOCK
 connection flag, which was inadvertently removed in MySQL 5\&.6\&.5, and restored in MySQL 5\&.6\&.20 (Bug #18000079, Bug #71178)\&. It is not required for normal operation\&.
@@ -389,7 +377,6 @@ This option was added in MySQL 5\&.6\&.20\&.
 .\}
 \fB\-\-database=\fR\fB\fIdb_name\fR\fR,
 \fB\-d \fR\fB\fIdb_name\fR\fR
-.sp
 This option causes
 \fBmysqlbinlog\fR
 to output entries from the binary log (local log only) that occur while
@@ -535,12 +522,16 @@ USE\&. (In particular, no cross\-database updates should be used\&.)
 .\}
 \fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR,
 \fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR
-.sp
 Write a debugging log\&. A typical
 \fIdebug_options\fR
 string is
 d:t:o,\fIfile_name\fR\&. The default is
 d:t:o,/tmp/mysqlbinlog\&.trace\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -552,8 +543,12 @@ d:t:o,/tmp/mysqlbinlog\&.trace\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-debug\-check\fR
-.sp
 Print some debugging information when the program exits\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -565,8 +560,12 @@ Print some debugging information when the program exits\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-debug\-info\fR
-.sp
 Print debugging information and memory and CPU usage statistics when the program exits\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -578,7 +577,6 @@ Print debugging information and memory and CPU usage statistics when the program
 .IP \(bu 2.3
 .\}
 \fB\-\-default\-auth=\fR\fB\fIplugin\fR\fR
-.sp
 A hint about which client\-side authentication plugin to use\&. See
 Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .RE
@@ -592,7 +590,6 @@ Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-extra\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Read this option file after the global option file but (on Unix) before the user option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -610,7 +607,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Use only the given option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -632,7 +628,6 @@ Exception: Even with
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-group\-suffix=\fR\fB\fIstr\fR\fR
-.sp
 Read not only the usual option groups, but also groups with the usual names and a suffix of
 \fIstr\fR\&. For example,
 \fBmysqlbinlog\fR
@@ -664,10 +659,9 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-disable\-log\-bin\fR,
 \fB\-D\fR
-.sp
 Disable binary logging\&. This is useful for avoiding an endless loop if you use the
 \fB\-\-to\-last\-log\fR
-option and are sending the output to the same MySQL server\&. This option also is useful when restoring after a crash to avoid duplication of the statements you have logged\&.
+option and are sending the output to the same MySQL server\&. This option also is useful when restoring after an unexpected exit to avoid duplication of the statements you have logged\&.
 .sp
 This option causes
 \fBmysqlbinlog\fR
@@ -688,7 +682,6 @@ Section\ \&5.1.8.1, \(lqSystem Variable Privileges\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-exclude\-gtids=\fR\fB\fIgtid_set\fR\fR
-.sp
 Do not display any of the groups listed in the
 \fIgtid_set\fR\&.
 .RE
@@ -703,7 +696,6 @@ Do not display any of the groups listed in the
 .\}
 \fB\-\-force\-if\-open\fR,
 \fB\-F\fR
-.sp
 Read binary log files even if they are open or were not closed properly\&.
 .RE
 .sp
@@ -717,7 +709,6 @@ Read binary log files even if they are open or were not closed properly\&.
 .\}
 \fB\-\-force\-read\fR,
 \fB\-f\fR
-.sp
 With this option, if
 \fBmysqlbinlog\fR
 reads a binary log event that it does not recognize, it prints a warning, ignores the event, and continues\&. Without this option,
@@ -735,7 +726,6 @@ stops if it reads such an event\&.
 .\}
 \fB\-\-hexdump\fR,
 \fB\-H\fR
-.sp
 Display a hex dump of the log in comments, as described in
 the section called \(lqMYSQLBINLOG HEX DUMP FORMAT\(rq\&. The hex output can be helpful for replication debugging\&.
 .RE
@@ -750,7 +740,6 @@ the section called \(lqMYSQLBINLOG HEX DUMP FORMAT\(rq\&. The hex output can be
 .\}
 \fB\-\-host=\fR\fB\fIhost_name\fR\fR,
 \fB\-h \fR\fB\fIhost_name\fR\fR
-.sp
 Get the binary log from the MySQL server on the given host\&.
 .RE
 .sp
@@ -763,7 +752,6 @@ Get the binary log from the MySQL server on the given host\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-include\-gtids=\fR\fB\fIgtid_set\fR\fR
-.sp
 Display only the groups listed in the
 \fIgtid_set\fR\&.
 .RE
@@ -778,10 +766,19 @@ Display only the groups listed in the
 .\}
 \fB\-\-local\-load=\fR\fB\fIdir_name\fR\fR,
 \fB\-l \fR\fB\fIdir_name\fR\fR
-.sp
-Prepare local temporary files for
+For data loading operations corresponding to
 LOAD DATA
-in the specified directory\&.
+statements,
+\fBmysqlbinlog\fR
+extracts the files from the binary log events, writes them as temporary ffiles to the local file system, and writes
+LOAD DATA LOCAL
+statements to cause the files to be loaded\&. By default,
+\fBmysqlbinlog\fR
+writes these temporary files to an operating system\-specific directory\&. The
+\fB\-\-local\-load\fR
+option can be used to explicitly specify the directory where
+\fBmysqlbinlog\fR
+should prepare local temporary files\&.
 .if n \{\
 .sp
 .\}
@@ -810,7 +807,6 @@ or any other MySQL program\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-login\-path=\fR\fB\fIname\fR\fR
-.sp
 Read options from the named login path in the
 \&.mylogin\&.cnf
 login path file\&. A
@@ -833,7 +829,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-no\-defaults\fR
-.sp
 Do not read any option files\&. If program startup fails due to reading unknown options from an option file,
 \fB\-\-no\-defaults\fR
 can be used to prevent them from being read\&.
@@ -862,7 +857,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-offset=\fR\fB\fIN\fR\fR,
 \fB\-o \fR\fB\fIN\fR\fR
-.sp
 Skip the first
 \fIN\fR
 entries in the log\&.
@@ -890,7 +884,6 @@ Specify the number of open file descriptors to reserve\&.
 .\}
 \fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR,
 \fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR
-.sp
 The password of the MySQL account used for connecting to the server\&. The password value is optional\&. If not given,
 \fBmysqlbinlog\fR
 prompts for one\&. If given, there must be
@@ -920,7 +913,6 @@ option\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-plugin\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The directory in which to look for plugins\&. Specify this option if the
 \fB\-\-default\-auth\fR
 option is used to specify an authentication plugin but
@@ -939,7 +931,6 @@ Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .\}
 \fB\-\-port=\fR\fB\fIport_num\fR\fR,
 \fB\-P \fR\fB\fIport_num\fR\fR
-.sp
 The TCP/IP port number to use for connecting to a remote server\&.
 .RE
 .sp
@@ -952,7 +943,6 @@ The TCP/IP port number to use for connecting to a remote server\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-print\-defaults\fR
-.sp
 Print the program name and all options that it gets from option files\&.
 .sp
 For additional information about this and other option\-file options, see
@@ -968,9 +958,8 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR
-.sp
-The connection protocol to use for connecting to the server\&. It is useful when the other connection parameters normally result in use of a protocol other than the one you want\&. For details on the permissible values, see
-Section\ \&4.2.4, \(lqConnecting to the MySQL Server Using Command Options\(rq\&.
+The transport protocol to use for connecting to the server\&. It is useful when the other connection parameters normally result in use of a protocol other than the one you want\&. For details on the permissible values, see
+Section\ \&4.2.5, \(lqConnection Transport Protocols\(rq\&.
 .RE
 .sp
 .RS 4
@@ -982,7 +971,6 @@ Section\ \&4.2.4, \(lqConnecting to the MySQL Server Using Command Options\(rq\&
 .IP \(bu 2.3
 .\}
 \fB\-\-raw\fR
-.sp
 By default,
 \fBmysqlbinlog\fR
 reads binary log files and writes events in text format\&. The
@@ -1016,7 +1004,6 @@ the section called \(lqUSING MYSQLBINLOG TO BACK UP BINARY LOG FILES\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-read\-from\-remote\-master=\fR\fB\fItype\fR\fR
-.sp
 Read binary logs from a MySQL server with the
 COM_BINLOG_DUMP
 or
@@ -1027,7 +1014,7 @@ or
 BINLOG\-DUMP\-GTIDS, respectively\&. If
 \fB\-\-read\-from\-remote\-master=BINLOG\-DUMP\-GTIDS\fR
 is combined with
-\fB\-\-exclude\-gtids\fR, transactions can be filtered out on the master, avoiding unnecessary network traffic\&.
+\fB\-\-exclude\-gtids\fR, transactions can be filtered out on the source, avoiding unnecessary network traffic\&.
 .sp
 The connection parameter options are used with this option or the
 \fB\-\-read\-from\-remote\-server\fR
@@ -1054,7 +1041,6 @@ privilege is required to use this option\&.
 .\}
 \fB\-\-read\-from\-remote\-server\fR,
 \fB\-R\fR
-.sp
 Read the binary log from a MySQL server rather than reading a local log file\&. This option requires that the remote server be running\&. It works only for binary log files on the remote server, not relay log files\&.
 .sp
 The connection parameter options are used with this option or the
@@ -1085,7 +1071,6 @@ This option is like
 .\}
 \fB\-\-result\-file=\fR\fB\fIname\fR\fR,
 \fB\-r \fR\fB\fIname\fR\fR
-.sp
 Without the
 \fB\-\-raw\fR
 option, this option indicates the file to which
@@ -1107,7 +1092,6 @@ option value is treated as a prefix that modifies output file names\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-secure\-auth\fR
-.sp
 Do not send passwords to the server in old (pre\-4\&.1) format\&. This prevents connections except for servers that use the newer password format\&. This option is enabled by default; use
 \fB\-\-skip\-secure\-auth\fR
 to disable it\&. This option was added in MySQL 5\&.6\&.17\&.
@@ -1123,7 +1107,7 @@ to disable it\&. This option was added in MySQL 5\&.6\&.17\&.
 \fBNote\fR
 .ps -1
 .br
-Passwords that use the pre\-4\&.1 hashing method are less secure than passwords that use the native password hashing method and should be avoided\&. Pre\-4\&.1 passwords are deprecated and support for them will be removed in a future MySQL release\&. For account upgrade instructions, see
+Passwords that use the pre\-4\&.1 hashing method are less secure than passwords that use the native password hashing method and should be avoided\&. Pre\-4\&.1 passwords are deprecated; expect support for them to be removed in a future MySQL release\&. For account upgrade instructions, see
 Section\ \&6.4.1.3, \(lqMigrating Away from Pre-4.1 Password Hashing and the mysql_old_password Plugin\(rq\&.
 .sp .5v
 .RE
@@ -1139,7 +1123,7 @@ Section\ \&6.4.1.3, \(lqMigrating Away from Pre-4.1 Password Hashing and the mys
 \fBNote\fR
 .ps -1
 .br
-This option is deprecated and will be removed in a future release\&. As of MySQL 5\&.7\&.5, it is always enabled and attempting to disable it produces an error\&.
+This option is deprecated; expect it to be removed in a future release\&. As of MySQL 5\&.7\&.5, it is always enabled and attempting to disable it produces an error\&.
 .sp .5v
 .RE
 .RE
@@ -1153,7 +1137,6 @@ This option is deprecated and will be removed in a future release\&. As of MySQL
 .IP \(bu 2.3
 .\}
 \fB\-\-server\-id=\fR\fB\fIid\fR\fR
-.sp
 Display only those events created by the server having the given server ID\&.
 .RE
 .sp
@@ -1166,7 +1149,6 @@ Display only those events created by the server having the given server ID\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-server\-id\-bits=\fR\fB\fIN\fR\fR
-.sp
 Use only the first
 \fIN\fR
 bits of the
@@ -1193,7 +1175,6 @@ supplied with the NDB Cluster distribution, or built from the NDB Cluster source
 .IP \(bu 2.3
 .\}
 \fB\-\-set\-charset=\fR\fB\fIcharset_name\fR\fR
-.sp
 Add a
 SET NAMES \fIcharset_name\fR
 statement to the output to specify the character set to be used for processing log files\&.
@@ -1208,8 +1189,7 @@ statement to the output to specify the character set to be used for processing l
 .IP \(bu 2.3
 .\}
 \fB\-\-shared\-memory\-base\-name=\fR\fB\fIname\fR\fR
-.sp
-On Windows, the shared\-memory name to use, for connections made using shared memory to a local server\&. The default value is
+On Windows, the shared\-memory name to use for connections made using shared memory to a local server\&. The default value is
 MYSQL\&. The shared\-memory name is case\-sensitive\&.
 .sp
 This option applies only if the server was started with the
@@ -1227,7 +1207,6 @@ system variable enabled to support shared\-memory connections\&.
 .\}
 \fB\-\-short\-form\fR,
 \fB\-s\fR
-.sp
 Display only the statements contained in the log, without any extra information or row\-based events\&. This is for testing only, and should not be used in production systems\&.
 .RE
 .sp
@@ -1240,7 +1219,6 @@ Display only the statements contained in the log, without any extra information
 .IP \(bu 2.3
 .\}
 \fB\-\-skip\-gtids[=(true|false)]\fR
-.sp
 Do not display any GTIDs in the output\&. This is needed when writing to a dump file from one or more binary logs containing GTIDs, as shown in this example:
 .sp
 .if n \{\
@@ -1268,7 +1246,6 @@ The use of this option is otherwise not normally recommended in production\&.
 .\}
 \fB\-\-socket=\fR\fB\fIpath\fR\fR,
 \fB\-S \fR\fB\fIpath\fR\fR
-.sp
 For connections to
 localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&.
 .sp
@@ -1288,7 +1265,6 @@ system variable\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-ssl*\fR
-.sp
 Options that begin with
 \fB\-\-ssl\fR
 specify whether to connect to the server using SSL and indicate where to find SSL keys and certificates\&. See
@@ -1304,7 +1280,6 @@ the section called \(lqCommand Options for Encrypted Connections\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-start\-datetime=\fR\fB\fIdatetime\fR\fR
-.sp
 Start reading the binary log at the first event having a timestamp equal to or later than the
 \fIdatetime\fR
 argument\&. The
@@ -1340,7 +1315,6 @@ Section\ \&7.3, \(lqExample Backup and Recovery Strategy\(rq\&.
 .\}
 \fB\-\-start\-position=\fR\fB\fIN\fR\fR,
 \fB\-j \fR\fB\fIN\fR\fR
-.sp
 Start reading the binary log at the first event having a position equal to or greater than
 \fIN\fR\&. This option applies to the first log file named on the command line\&.
 .sp
@@ -1357,7 +1331,6 @@ Section\ \&7.3, \(lqExample Backup and Recovery Strategy\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-stop\-datetime=\fR\fB\fIdatetime\fR\fR
-.sp
 Stop reading the binary log at the first event having a timestamp equal to or later than the
 \fIdatetime\fR
 argument\&. This option is useful for point\-in\-time recovery\&. See the description of the
@@ -1379,7 +1352,6 @@ Section\ \&7.3, \(lqExample Backup and Recovery Strategy\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-stop\-never\fR
-.sp
 This option is used with
 \fB\-\-read\-from\-remote\-server\fR\&. It tells
 \fBmysqlbinlog\fR
@@ -1407,13 +1379,12 @@ to maintain a continuous text display of log events as the server generates them
 .IP \(bu 2.3
 .\}
 \fB\-\-stop\-never\-slave\-server\-id=\fR\fB\fIid\fR\fR
-.sp
 With
 \fB\-\-stop\-never\fR,
 \fBmysqlbinlog\fR
 reports a server ID of 65535 when it connects to the server\&.
 \fB\-\-stop\-never\-slave\-server\-id\fR
-explicitly specifies the server ID to report\&. It can be used to avoid a conflict with the ID of a slave server or another
+explicitly specifies the server ID to report\&. It can be used to avoid a conflict with the ID of a replica server or another
 \fBmysqlbinlog\fR
 process\&. See
 the section called \(lqSPECIFYING THE MYSQLBINLOG SERVER ID\(rq\&.
@@ -1428,7 +1399,6 @@ the section called \(lqSPECIFYING THE MYSQLBINLOG SERVER ID\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-stop\-position=\fR\fB\fIN\fR\fR
-.sp
 Stop reading the binary log at the first event having a position equal to or greater than
 \fIN\fR\&. This option applies to the last log file named on the command line\&.
 .sp
@@ -1446,7 +1416,6 @@ Section\ \&7.3, \(lqExample Backup and Recovery Strategy\(rq\&.
 .\}
 \fB\-\-to\-last\-log\fR,
 \fB\-t\fR
-.sp
 Do not stop at the end of the requested binary log from a MySQL server, but rather continue printing until the end of the last binary log\&. If you send the output to the same MySQL server, this may lead to an endless loop\&. This option requires
 \fB\-\-read\-from\-remote\-server\fR\&.
 .RE
@@ -1461,7 +1430,6 @@ Do not stop at the end of the requested binary log from a MySQL server, but rath
 .\}
 \fB\-\-user=\fR\fB\fIuser_name\fR\fR,
 \fB\-u \fR\fB\fIuser_name\fR\fR
-.sp
 The user name of the MySQL account to use when connecting to a remote server\&.
 .RE
 .sp
@@ -1475,7 +1443,6 @@ The user name of the MySQL account to use when connecting to a remote server\&.
 .\}
 \fB\-\-verbose\fR,
 \fB\-v\fR
-.sp
 Reconstruct row events and display them as commented SQL statements\&. If this option is given twice (by passing in either "\-vv" or "\-\-verbose \-\-verbose"), the output includes comments to indicate column data types and some metadata, and row query log events if so configured\&.
 .sp
 For examples that show the effect of
@@ -1496,7 +1463,6 @@ the section called \(lqMYSQLBINLOG ROW EVENT DISPLAY\(rq\&.
 .\}
 \fB\-\-verify\-binlog\-checksum\fR,
 \fB\-c\fR
-.sp
 Verify checksums in binary log files\&.
 .RE
 .sp
@@ -1510,7 +1476,6 @@ Verify checksums in binary log files\&.
 .\}
 \fB\-\-version\fR,
 \fB\-V\fR
-.sp
 Display version information and exit\&.
 .sp
 Prior to MySQL 5\&.6\&.11, the
@@ -1522,7 +1487,7 @@ You can pipe the output of
 \fBmysqlbinlog\fR
 into the
 \fBmysql\fR
-client to execute the events contained in the binary log\&. This technique is used to recover from a crash when you have an old backup (see
+client to execute the events contained in the binary log\&. This technique is used to recover from an unexpected exit when you have an old backup (see
 Section\ \&7.5, \(lqPoint-in-Time (Incremental) Recovery Using the Binary Log\(rq)\&. For example:
 .sp
 .if n \{\
@@ -1659,7 +1624,7 @@ statements (that is, it adds
 LOCAL), both the client and the server that you use to process the statements must be configured with the
 LOCAL
 capability enabled\&. See
-Section\ \&6.1.6, \(lqSecurity Issues with LOAD DATA LOCAL\(rq\&.
+Section\ \&6.1.6, \(lqSecurity Considerations for LOAD DATA LOCAL\(rq\&.
 .if n \{\
 .sp
 .\}
@@ -1773,7 +1738,7 @@ Type: The event type code\&.
 .sp -1
 .IP \(bu 2.3
 .\}
-Master ID: The server ID of the master that created the event\&.
+Master ID: The server ID of the source that created the event\&.
 .RE
 .sp
 .RS 4
@@ -1795,7 +1760,7 @@ Size: The size in bytes of the event\&.
 .sp -1
 .IP \(bu 2.3
 .\}
-Master Pos: The position of the next event in the original master log file\&.
+Master Pos: The position of the next event in the original source log file\&.
 .RE
 .sp
 .RS 4
@@ -1889,7 +1854,7 @@ with the
 \fB\-\-verbose\fR
 or
 \fB\-v\fR
-option\&. The output will contain lines beginning with
+option\&. The output contains lines beginning with
 ###:
 .sp
 .if n \{\
@@ -1946,7 +1911,7 @@ Specify
 \fB\-\-verbose\fR
 or
 \fB\-v\fR
-twice to also display data types and some metadata for each column\&. The output will contain an additional comment following each column change:
+twice to also display data types and some metadata for each column\&. The output contains an additional comment following each column change:
 .sp
 .if n \{\
 .RS 4
@@ -2134,7 +2099,7 @@ for variable\-length strings\&.
 .\}
 For multibyte character sets, the maximum number of bytes per character is not present in the binary log, so the length for string types is displayed in bytes rather than in characters\&. For example,
 STRING(4)
-will be used as the data type for values from either of these column types:
+is used as the data type for values from either of these column types:
 .sp
 .if n \{\
 .RS 4
@@ -2258,7 +2223,8 @@ Example: mysqldump + mysqlbinlog for Backup and Restore
 .\}
 mysqlbinlog Backup Restrictions
 .RE
-mysqlbinlog Backup Capabilities.PP
+mysqlbinlog Backup Capabilities
+.PP
 \fBmysqlbinlog\fR
 can read binary log files and write new files containing the same content\(emthat is, in binary format rather than text format\&. This capability enables you to easily back up a binary log in its original format\&.
 \fBmysqlbinlog\fR
@@ -2268,9 +2234,10 @@ runs until the connection ends (for example, when the server exits) or
 \fBmysqlbinlog\fR
 is forcibly terminated\&. When the connection ends,
 \fBmysqlbinlog\fR
-does not wait and retry the connection, unlike a slave replication server\&. To continue a live backup after the server has been restarted, you must also restart
+does not wait and retry the connection, unlike a replica server\&. To continue a live backup after the server has been restarted, you must also restart
 \fBmysqlbinlog\fR\&.
-mysqlbinlog Backup Options.PP
+mysqlbinlog Backup Options
+.PP
 Binary log backup requires that you invoke
 \fBmysqlbinlog\fR
 with two options at minimum:
@@ -2288,7 +2255,7 @@ The
 (or
 \fB\-R\fR) option tells
 \fBmysqlbinlog\fR
-to connect to a server and request its binary log\&. (This is similar to a slave replication server connecting to its master server\&.)
+to connect to a server and request its binary log\&. (This is similar to a replica server connecting to its source server\&.)
 .RE
 .sp
 .RS 4
@@ -2340,7 +2307,7 @@ Several other options are useful in conjunction with
 \fBmysqlbinlog\fR
 reports to the server when
 \fB\-\-stop\-never\fR
-is used\&. The default is 65535\&. This can be used to avoid a conflict with the ID of a slave server or another
+is used\&. The default is 65535\&. This can be used to avoid a conflict with the ID of a replica server or another
 \fBmysqlbinlog\fR
 process\&. See
 the section called \(lqSPECIFYING THE MYSQLBINLOG SERVER ID\(rq\&.
@@ -2356,7 +2323,8 @@ the section called \(lqSPECIFYING THE MYSQLBINLOG SERVER ID\(rq\&.
 .\}
 \fB\-\-result\-file\fR: A prefix for output file names, as described later\&.
 .RE
-Static and Live Backups.PP
+Static and Live Backups
+.PP
 To back up a server\*(Aqs binary log files with
 \fBmysqlbinlog\fR, you must specify file names that actually exist on the server\&. If you do not know the names, connect to the server and use the
 SHOW BINARY LOGS
@@ -2416,7 +2384,7 @@ binlog\&.000133
 before
 \fBmysqlbinlog\fR
 reaches the end of
-binlog\&.000132, the first command will not read it, but the second command will\&.
+binlog\&.000132, the first command does not read it, but the second command does\&.
 .RE
 .sp
 .RS 4
@@ -2449,7 +2417,8 @@ With
 \fB\-\-to\-last\-log\fR
 to read to the last log file because that option is implied\&.
 .RE
-Output File Naming.PP
+Output File Naming
+.PP
 Without
 \fB\-\-raw\fR,
 \fBmysqlbinlog\fR
@@ -2507,7 +2476,8 @@ T}:T{
 T}
 .TE
 .sp 1
-Example: mysqldump + mysqlbinlog for Backup and Restore.PP
+Example: mysqldump + mysqlbinlog for Backup and Restore
+.PP
 The following example describes a simple scenario that shows how to use
 \fBmysqldump\fR
 and
@@ -2556,7 +2526,7 @@ Execute the
 \fBmysqldump\fR
 command periodically to create newer snapshots as desired\&.
 .PP
-If data loss occurs (for example, if the server crashes), use the most recent dump file to restore the data:
+If data loss occurs (for example, if the server unexpectedly exits), use the most recent dump file to restore the data:
 .sp
 .if n \{\
 .RS 4
@@ -2597,7 +2567,8 @@ mysqlbinlog \-\-start\-position=27284 binlog\&.001002 binlog\&.001003 binlog\&.0
 You might find it easier to copy the backup files (dump file and binary log files) to the server host to make it easier to perform the restore operation, or if MySQL does not allow remote
 root
 access\&.
-mysqlbinlog Backup Restrictions.PP
+mysqlbinlog Backup Restrictions
+.PP
 Binary log backups with
 \fBmysqlbinlog\fR
 are subject to these restrictions:
@@ -2638,7 +2609,7 @@ sees the most recent events, flush the binary log on the server that you are bac
 .sp -1
 .IP \(bu 2.3
 .\}
-The delay for a backup is similar to the delay for a replication slave\&.
+The delay for a backup is similar to the delay for a replica\&.
 .RE
 .SH "SPECIFYING THE MYSQLBINLOG SERVER ID"
 .PP
@@ -2723,7 +2694,7 @@ specifies a nonzero server ID\&.
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysqlbug.1 b/mysql-wsrep-5.6/man/mysqlbug.1
index f8b97abd..d2de9342 100644
--- a/mysql-wsrep-5.6/man/mysqlbug.1
+++ b/mysql-wsrep-5.6/man/mysqlbug.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqlbug\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQLBUG\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQLBUG\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -41,7 +41,7 @@ The normal way to report bugs is to visit
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysqlcheck.1 b/mysql-wsrep-5.6/man/mysqlcheck.1
index 834b80af..f3c929b7 100644
--- a/mysql-wsrep-5.6/man/mysqlcheck.1
+++ b/mysql-wsrep-5.6/man/mysqlcheck.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqlcheck\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQLCHECK\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQLCHECK\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -41,7 +41,7 @@ client performs table maintenance: It checks, repairs, optimizes, or analyzes ta
 Each table is locked and therefore unavailable to other sessions while it is being processed, although for check operations, the table is locked with a
 READ
 lock only (see
-Section\ \&13.3.5, \(lqLOCK TABLES and UNLOCK TABLES Syntax\(rq, for more information about
+Section\ \&13.3.5, \(lqLOCK TABLES and UNLOCK TABLES Statements\(rq, for more information about
 READ
 and
 WRITE
@@ -102,7 +102,7 @@ If
 \fBmysqlcheck\fR
 is unable to repair a table, see
 Section\ \&2.11.10, \(lqRebuilding or Repairing Tables or Indexes\(rq
-for manual table repair strategies\&. This will be the case, for example, for
+for manual table repair strategies\&. This is the case, for example, for
 InnoDB
 tables, which can be checked with
 CHECK TABLE, but not repaired with
@@ -208,7 +208,6 @@ Section\ \&4.2.2.2, \(lqUsing Option Files\(rq\&.
 .\}
 \fB\-\-help\fR,
 \fB\-?\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -222,7 +221,6 @@ Display a help message and exit\&.
 .\}
 \fB\-\-all\-databases\fR,
 \fB\-A\fR
-.sp
 Check all tables in all databases\&. This is the same as using the
 \fB\-\-databases\fR
 option and naming all the databases on the command line, except that the
@@ -244,7 +242,6 @@ option\&.
 .\}
 \fB\-\-all\-in\-1\fR,
 \fB\-1\fR
-.sp
 Instead of issuing a statement for each table, execute a single statement for each database that names all the tables from that database to be processed\&.
 .RE
 .sp
@@ -258,7 +255,6 @@ Instead of issuing a statement for each table, execute a single statement for ea
 .\}
 \fB\-\-analyze\fR,
 \fB\-a\fR
-.sp
 Analyze the tables\&.
 .RE
 .sp
@@ -271,7 +267,6 @@ Analyze the tables\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-auto\-repair\fR
-.sp
 If a checked table is corrupted, automatically fix it\&. Any necessary repairs are done after all tables have been checked\&.
 .RE
 .sp
@@ -284,7 +279,6 @@ If a checked table is corrupted, automatically fix it\&. Any necessary repairs a
 .IP \(bu 2.3
 .\}
 \fB\-\-bind\-address=\fR\fB\fIip_address\fR\fR
-.sp
 On a computer having multiple network interfaces, use this option to select which interface to use for connecting to the MySQL server\&.
 .RE
 .sp
@@ -297,9 +291,8 @@ On a computer having multiple network interfaces, use this option to select whic
 .IP \(bu 2.3
 .\}
 \fB\-\-character\-sets\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The directory where character sets are installed\&. See
-Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
+Section\ \&10.15, \(lqCharacter Set Configuration\(rq\&.
 .RE
 .sp
 .RS 4
@@ -312,7 +305,6 @@ Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
 .\}
 \fB\-\-check\fR,
 \fB\-c\fR
-.sp
 Check the tables for errors\&. This is the default operation\&.
 .RE
 .sp
@@ -326,7 +318,6 @@ Check the tables for errors\&. This is the default operation\&.
 .\}
 \fB\-\-check\-only\-changed\fR,
 \fB\-C\fR
-.sp
 Check only tables that have changed since the last check or that have not been closed properly\&.
 .RE
 .sp
@@ -340,7 +331,6 @@ Check only tables that have changed since the last check or that have not been c
 .\}
 \fB\-\-check\-upgrade\fR,
 \fB\-g\fR
-.sp
 Invoke
 CHECK TABLE
 with the
@@ -361,9 +351,8 @@ options\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-compress\fR
-.sp
 Compress all information sent between the client and the server if possible\&. See
-Section\ \&4.2.5, \(lqConnection Compression Control\(rq\&.
+Section\ \&4.2.6, \(lqConnection Compression Control\(rq\&.
 .RE
 .sp
 .RS 4
@@ -376,7 +365,6 @@ Section\ \&4.2.5, \(lqConnection Compression Control\(rq\&.
 .\}
 \fB\-\-databases\fR,
 \fB\-B\fR
-.sp
 Process all tables in the named databases\&. Normally,
 \fBmysqlcheck\fR
 treats the first name argument on the command line as a database name and any following names as table names\&. With this option, it treats all name arguments as database names\&.
@@ -392,12 +380,16 @@ treats the first name argument on the command line as a database name and any fo
 .\}
 \fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR,
 \fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR
-.sp
 Write a debugging log\&. A typical
 \fIdebug_options\fR
 string is
 d:t:o,\fIfile_name\fR\&. The default is
 d:t:o\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -409,8 +401,12 @@ d:t:o\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-debug\-check\fR
-.sp
 Print some debugging information when the program exits\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -422,8 +418,12 @@ Print some debugging information when the program exits\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-debug\-info\fR
-.sp
 Print debugging information and memory and CPU usage statistics when the program exits\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -435,11 +435,10 @@ Print debugging information and memory and CPU usage statistics when the program
 .IP \(bu 2.3
 .\}
 \fB\-\-default\-character\-set=\fR\fB\fIcharset_name\fR\fR
-.sp
 Use
 \fIcharset_name\fR
 as the default character set\&. See
-Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
+Section\ \&10.15, \(lqCharacter Set Configuration\(rq\&.
 .RE
 .sp
 .RS 4
@@ -451,7 +450,6 @@ Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-extra\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Read this option file after the global option file but (on Unix) before the user option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -469,7 +467,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Use only the given option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -491,7 +488,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-group\-suffix=\fR\fB\fIstr\fR\fR
-.sp
 Read not only the usual option groups, but also groups with the usual names and a suffix of
 \fIstr\fR\&. For example,
 \fBmysqlcheck\fR
@@ -523,7 +519,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-extended\fR,
 \fB\-e\fR
-.sp
 If you are using this option to check tables, it ensures that they are 100% consistent but takes a long time\&.
 .sp
 If you are using this option to repair tables, it runs an extended repair that may not only take a long time to execute, but may produce a lot of garbage rows also!
@@ -538,7 +533,6 @@ If you are using this option to repair tables, it runs an extended repair that m
 .IP \(bu 2.3
 .\}
 \fB\-\-default\-auth=\fR\fB\fIplugin\fR\fR
-.sp
 A hint about which client\-side authentication plugin to use\&. See
 Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .RE
@@ -552,7 +546,6 @@ Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-enable\-cleartext\-plugin\fR
-.sp
 Enable the
 mysql_clear_password
 cleartext authentication plugin\&. (See
@@ -571,7 +564,6 @@ This option was added in MySQL 5\&.6\&.28\&.
 .\}
 \fB\-\-fast\fR,
 \fB\-F\fR
-.sp
 Check only tables that have not been closed properly\&.
 .RE
 .sp
@@ -584,7 +576,6 @@ Check only tables that have not been closed properly\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-fix\-db\-names\fR
-.sp
 Convert database names to 5\&.1 format\&. Only database names that contain special characters are affected\&.
 .RE
 .sp
@@ -597,7 +588,6 @@ Convert database names to 5\&.1 format\&. Only database names that contain speci
 .IP \(bu 2.3
 .\}
 \fB\-\-fix\-table\-names\fR
-.sp
 Convert table names to 5\&.1 format\&. Only table names that contain special characters are affected\&. This option also applies to views\&.
 .RE
 .sp
@@ -611,7 +601,6 @@ Convert table names to 5\&.1 format\&. Only table names that contain special cha
 .\}
 \fB\-\-force\fR,
 \fB\-f\fR
-.sp
 Continue even if an SQL error occurs\&.
 .RE
 .sp
@@ -625,7 +614,6 @@ Continue even if an SQL error occurs\&.
 .\}
 \fB\-\-host=\fR\fB\fIhost_name\fR\fR,
 \fB\-h \fR\fB\fIhost_name\fR\fR
-.sp
 Connect to the MySQL server on the given host\&.
 .RE
 .sp
@@ -638,7 +626,6 @@ Connect to the MySQL server on the given host\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-login\-path=\fR\fB\fIname\fR\fR
-.sp
 Read options from the named login path in the
 \&.mylogin\&.cnf
 login path file\&. A
@@ -662,7 +649,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-medium\-check\fR,
 \fB\-m\fR
-.sp
 Do a check that is faster than an
 \fB\-\-extended\fR
 operation\&. This finds only 99\&.99% of all errors, which should be good enough in most cases\&.
@@ -677,7 +663,6 @@ operation\&. This finds only 99\&.99% of all errors, which should be good enough
 .IP \(bu 2.3
 .\}
 \fB\-\-no\-defaults\fR
-.sp
 Do not read any option files\&. If program startup fails due to reading unknown options from an option file,
 \fB\-\-no\-defaults\fR
 can be used to prevent them from being read\&.
@@ -706,7 +691,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-optimize\fR,
 \fB\-o\fR
-.sp
 Optimize the tables\&.
 .RE
 .sp
@@ -720,7 +704,6 @@ Optimize the tables\&.
 .\}
 \fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR,
 \fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR
-.sp
 The password of the MySQL account used for connecting to the server\&. The password value is optional\&. If not given,
 \fBmysqlcheck\fR
 prompts for one\&. If given, there must be
@@ -751,7 +734,6 @@ option\&.
 .\}
 \fB\-\-pipe\fR,
 \fB\-W\fR
-.sp
 On Windows, connect to the server using a named pipe\&. This option applies only if the server was started with the
 named_pipe
 system variable enabled to support named\-pipe connections\&. In addition, the user making the connection must be a member of the Windows group specified by the
@@ -768,7 +750,6 @@ system variable\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-plugin\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The directory in which to look for plugins\&. Specify this option if the
 \fB\-\-default\-auth\fR
 option is used to specify an authentication plugin but
@@ -787,7 +768,6 @@ Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .\}
 \fB\-\-port=\fR\fB\fIport_num\fR\fR,
 \fB\-P \fR\fB\fIport_num\fR\fR
-.sp
 For TCP/IP connections, the port number to use\&.
 .RE
 .sp
@@ -800,7 +780,6 @@ For TCP/IP connections, the port number to use\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-print\-defaults\fR
-.sp
 Print the program name and all options that it gets from option files\&.
 .sp
 For additional information about this and other option\-file options, see
@@ -816,9 +795,8 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR
-.sp
-The connection protocol to use for connecting to the server\&. It is useful when the other connection parameters normally result in use of a protocol other than the one you want\&. For details on the permissible values, see
-Section\ \&4.2.4, \(lqConnecting to the MySQL Server Using Command Options\(rq\&.
+The transport protocol to use for connecting to the server\&. It is useful when the other connection parameters normally result in use of a protocol other than the one you want\&. For details on the permissible values, see
+Section\ \&4.2.5, \(lqConnection Transport Protocols\(rq\&.
 .RE
 .sp
 .RS 4
@@ -831,7 +809,6 @@ Section\ \&4.2.4, \(lqConnecting to the MySQL Server Using Command Options\(rq\&
 .\}
 \fB\-\-quick\fR,
 \fB\-q\fR
-.sp
 If you are using this option to check tables, it prevents the check from scanning the rows to check for incorrect links\&. This is the fastest check method\&.
 .sp
 If you are using this option to repair tables, it tries to repair only the index tree\&. This is the fastest repair method\&.
@@ -847,7 +824,6 @@ If you are using this option to repair tables, it tries to repair only the index
 .\}
 \fB\-\-repair\fR,
 \fB\-r\fR
-.sp
 Perform a repair that can fix almost anything except unique keys that are not unique\&.
 .RE
 .sp
@@ -860,7 +836,6 @@ Perform a repair that can fix almost anything except unique keys that are not un
 .IP \(bu 2.3
 .\}
 \fB\-\-secure\-auth\fR
-.sp
 Do not send passwords to the server in old (pre\-4\&.1) format\&. This prevents connections except for servers that use the newer password format\&. This option is enabled by default; use
 \fB\-\-skip\-secure\-auth\fR
 to disable it\&. This option was added in MySQL 5\&.6\&.17\&.
@@ -876,7 +851,7 @@ to disable it\&. This option was added in MySQL 5\&.6\&.17\&.
 \fBNote\fR
 .ps -1
 .br
-Passwords that use the pre\-4\&.1 hashing method are less secure than passwords that use the native password hashing method and should be avoided\&. Pre\-4\&.1 passwords are deprecated and support for them will be removed in a future MySQL release\&. For account upgrade instructions, see
+Passwords that use the pre\-4\&.1 hashing method are less secure than passwords that use the native password hashing method and should be avoided\&. Pre\-4\&.1 passwords are deprecated; expect support for them to be removed in a future MySQL release\&. For account upgrade instructions, see
 Section\ \&6.4.1.3, \(lqMigrating Away from Pre-4.1 Password Hashing and the mysql_old_password Plugin\(rq\&.
 .sp .5v
 .RE
@@ -892,7 +867,7 @@ Section\ \&6.4.1.3, \(lqMigrating Away from Pre-4.1 Password Hashing and the mys
 \fBNote\fR
 .ps -1
 .br
-This option is deprecated and will be removed in a future release\&. As of MySQL 5\&.7\&.5, it is always enabled and attempting to disable it produces an error\&.
+This option is deprecated; expect support for it to be removed in a future release\&. As of MySQL 5\&.7\&.5, it is always enabled and attempting to disable it produces an error\&.
 .sp .5v
 .RE
 .RE
@@ -906,8 +881,7 @@ This option is deprecated and will be removed in a future release\&. As of MySQL
 .IP \(bu 2.3
 .\}
 \fB\-\-shared\-memory\-base\-name=\fR\fB\fIname\fR\fR
-.sp
-On Windows, the shared\-memory name to use, for connections made using shared memory to a local server\&. The default value is
+On Windows, the shared\-memory name to use for connections made using shared memory to a local server\&. The default value is
 MYSQL\&. The shared\-memory name is case\-sensitive\&.
 .sp
 This option applies only if the server was started with the
@@ -925,7 +899,6 @@ system variable enabled to support shared\-memory connections\&.
 .\}
 \fB\-\-silent\fR,
 \fB\-s\fR
-.sp
 Silent mode\&. Print only error messages\&.
 .RE
 .sp
@@ -938,7 +911,6 @@ Silent mode\&. Print only error messages\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-skip\-database=\fR\fB\fIdb_name\fR\fR
-.sp
 Do not include the named database (case\-sensitive) in the operations performed by
 \fBmysqlcheck\fR\&. This option was added in MySQL 5\&.6\&.11\&.
 .RE
@@ -953,7 +925,6 @@ Do not include the named database (case\-sensitive) in the operations performed
 .\}
 \fB\-\-socket=\fR\fB\fIpath\fR\fR,
 \fB\-S \fR\fB\fIpath\fR\fR
-.sp
 For connections to
 localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&.
 .sp
@@ -973,7 +944,6 @@ system variable\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-ssl*\fR
-.sp
 Options that begin with
 \fB\-\-ssl\fR
 specify whether to connect to the server using SSL and indicate where to find SSL keys and certificates\&. See
@@ -989,7 +959,6 @@ the section called \(lqCommand Options for Encrypted Connections\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-tables\fR
-.sp
 Override the
 \fB\-\-databases\fR
 or
@@ -1006,7 +975,6 @@ option\&. All name arguments following the option are regarded as table names\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-use\-frm\fR
-.sp
 For repair operations on
 MyISAM
 tables, get the table structure from the
@@ -1026,7 +994,6 @@ header is corrupted\&.
 .\}
 \fB\-\-user=\fR\fB\fIuser_name\fR\fR,
 \fB\-u \fR\fB\fIuser_name\fR\fR
-.sp
 The user name of the MySQL account to use for connecting to the server\&.
 .RE
 .sp
@@ -1040,7 +1007,6 @@ The user name of the MySQL account to use for connecting to the server\&.
 .\}
 \fB\-\-verbose\fR,
 \fB\-v\fR
-.sp
 Verbose mode\&. Print information about the various stages of program operation\&.
 .RE
 .sp
@@ -1054,7 +1020,6 @@ Verbose mode\&. Print information about the various stages of program operation\
 .\}
 \fB\-\-version\fR,
 \fB\-V\fR
-.sp
 Display version information and exit\&.
 .RE
 .sp
@@ -1067,7 +1032,6 @@ Display version information and exit\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-write\-binlog\fR
-.sp
 This option is enabled by default, so that
 ANALYZE TABLE,
 OPTIMIZE TABLE, and
@@ -1080,12 +1044,12 @@ to cause
 NO_WRITE_TO_BINLOG
 to be added to the statements so that they are not logged\&. Use the
 \fB\-\-skip\-write\-binlog\fR
-when these statements should not be sent to replication slaves or run when using the binary logs for recovery from backup\&.
+when these statements should not be sent to replicas or run when using the binary logs for recovery from backup\&.
 .RE
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysqld.8 b/mysql-wsrep-5.6/man/mysqld.8
index aa69af90..0cb23ec8 100644
--- a/mysql-wsrep-5.6/man/mysqld.8
+++ b/mysql-wsrep-5.6/man/mysqld.8
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqld\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQLD\FR" "8" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQLD\FR" "8" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -34,7 +34,7 @@ mysqld \- the MySQL server
 \fBmysqld [\fR\fB\fIoptions\fR\fR\fB]\fR
 .SH "DESCRIPTION"
 .PP
-\fBmysqld\fR, also known as MySQL Server, is the main program that does most of the work in a MySQL installation\&. MySQL Server manages access to the MySQL data directory that contains databases and tables\&. The data directory is also the default location for other information such as log files and status files\&.
+\fBmysqld\fR, also known as MySQL Server, is a single multithreaded program that does most of the work in a MySQL installation\&. It does not spawn additional processes\&. MySQL Server manages access to the MySQL data directory that contains databases and tables\&. The data directory is also the default location for other information such as log files and status files\&.
 .if n \{\
 .sp
 .\}
@@ -52,7 +52,7 @@ Some installation packages contain a debugging version of the server named
 \fBmysqld\-debug\fR\&. Invoke this version instead of
 \fBmysqld\fR
 for debugging support, memory allocation checking, and trace file support (see
-Section\ \&24.5.1.2, \(lqCreating Trace Files\(rq)\&.
+Section\ \&5.8.1.2, \(lqCreating Trace Files\(rq)\&.
 .sp .5v
 .RE
 .PP
@@ -80,7 +80,7 @@ Chapter\ \&2, Installing and Upgrading MySQL\&.
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysqld_multi.1 b/mysql-wsrep-5.6/man/mysqld_multi.1
index 6502546a..50f7c21a 100644
--- a/mysql-wsrep-5.6/man/mysqld_multi.1
+++ b/mysql-wsrep-5.6/man/mysqld_multi.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqld_multi\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQLD_MULTI\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQLD_MULTI\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -213,7 +213,7 @@ option to use a different configuration file for that instance, in which case th
 [mysqld]
 or
 [mysqld_safe]
-groups from that file will be used for that instance\&.
+groups from that file are used for that instance\&.
 .PP
 \fBmysqld_multi\fR
 supports the following options\&.
@@ -227,7 +227,6 @@ supports the following options\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-help\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -240,7 +239,6 @@ Display a help message and exit\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-example\fR
-.sp
 Display a sample option file\&.
 .RE
 .sp
@@ -253,7 +251,6 @@ Display a sample option file\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-log=\fR\fB\fIfile_name\fR\fR
-.sp
 Specify the name of the log file\&. If the file exists, log output is appended to it\&.
 .RE
 .sp
@@ -266,7 +263,6 @@ Specify the name of the log file\&. If the file exists, log output is appended t
 .IP \(bu 2.3
 .\}
 \fB\-\-mysqladmin=\fR\fB\fIprog_name\fR\fR
-.sp
 The
 \fBmysqladmin\fR
 binary to be used to stop servers\&.
@@ -281,7 +277,6 @@ binary to be used to stop servers\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-mysqld=\fR\fB\fIprog_name\fR\fR
-.sp
 The
 \fBmysqld\fR
 binary to be used\&. You can specify
@@ -321,7 +316,6 @@ ledir  = /opt/local/mysql/libexec
 .IP \(bu 2.3
 .\}
 \fB\-\-no\-log\fR
-.sp
 Print log information to
 stdout
 rather than to the log file\&. By default, output goes to the log file\&.
@@ -336,7 +330,6 @@ rather than to the log file\&. By default, output goes to the log file\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-password=\fR\fB\fIpassword\fR\fR
-.sp
 The password of the MySQL account to use when invoking
 \fBmysqladmin\fR\&. The password value is not optional for this option, unlike for other MySQL programs\&.
 .RE
@@ -350,7 +343,6 @@ The password of the MySQL account to use when invoking
 .IP \(bu 2.3
 .\}
 \fB\-\-silent\fR
-.sp
 Silent mode; disable warnings\&.
 .RE
 .sp
@@ -363,7 +355,6 @@ Silent mode; disable warnings\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-tcp\-ip\fR
-.sp
 Connect to each MySQL server through the TCP/IP port instead of the Unix socket file\&. (If a socket file is missing, the server might still be running, but accessible only through the TCP/IP port\&.) By default, connections are made using the Unix socket file\&. This option affects
 stop
 and
@@ -380,7 +371,6 @@ operations\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-user=\fR\fB\fIuser_name\fR\fR
-.sp
 The user name of the MySQL account to use when invoking
 \fBmysqladmin\fR\&.
 .RE
@@ -394,7 +384,6 @@ The user name of the MySQL account to use when invoking
 .IP \(bu 2.3
 .\}
 \fB\-\-verbose\fR
-.sp
 Be more verbose\&.
 .RE
 .sp
@@ -407,7 +396,6 @@ Be more verbose\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-version\fR
-.sp
 Display version information and exit\&.
 .RE
 .PP
@@ -627,7 +615,7 @@ Section\ \&4.2.2.2, \(lqUsing Option Files\(rq\&.
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysqld_safe.1 b/mysql-wsrep-5.6/man/mysqld_safe.1
index 82e3bcc6..d0ef37fd 100644
--- a/mysql-wsrep-5.6/man/mysqld_safe.1
+++ b/mysql-wsrep-5.6/man/mysqld_safe.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqld_safe\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQLD_SAFE\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQLD_SAFE\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -78,7 +78,7 @@ sections in option files\&. For example, if you specify a
 [mysqld]
 section like this,
 \fBmysqld_safe\fR
-will find and use the
+finds and uses the
 \fB\-\-log\-error\fR
 option:
 .sp
@@ -113,7 +113,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-help\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -126,7 +125,6 @@ Display a help message and exit\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-basedir=\fR\fB\fIdir_name\fR\fR
-.sp
 The path to the MySQL installation directory\&.
 .RE
 .sp
@@ -139,7 +137,6 @@ The path to the MySQL installation directory\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-core\-file\-size=\fR\fB\fIsize\fR\fR
-.sp
 The size of the core file that
 \fBmysqld\fR
 should be able to create\&. The option value is passed to
@@ -155,7 +152,6 @@ should be able to create\&. The option value is passed to
 .IP \(bu 2.3
 .\}
 \fB\-\-datadir=\fR\fB\fIdir_name\fR\fR
-.sp
 The path to the data directory\&.
 .RE
 .sp
@@ -168,8 +164,7 @@ The path to the data directory\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-extra\-file=\fR\fB\fIfile_name\fR\fR
-.sp
-Read this option file in addition to the usual option files\&. If the file does not exist or is otherwise inaccessible, the server will exit with an error\&.
+Read this option file in addition to the usual option files\&. If the file does not exist or is otherwise inaccessible, the server exits with an error\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&. This must be the first option on the command line if it is used\&.
 .sp
@@ -186,8 +181,7 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR
-.sp
-Use only the given option file\&. If the file does not exist or is otherwise inaccessible, the server will exit with an error\&.
+Use only the given option file\&. If the file does not exist or is otherwise inaccessible, the server exits with an error\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&. This must be the first option on the command line if it is used\&.
 .sp
@@ -204,7 +198,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-ledir=\fR\fB\fIdir_name\fR\fR
-.sp
 If
 \fBmysqld_safe\fR
 cannot find the server, use this option to indicate the path name to the directory where the server is located\&.
@@ -221,7 +214,6 @@ As of MySQL 5\&.6\&.35, this option is accepted only on the command line, not in
 .IP \(bu 2.3
 .\}
 \fB\-\-log\-error=\fR\fB\fIfile_name\fR\fR
-.sp
 Write the error log to the given file\&. See
 Section\ \&5.4.2, \(lqThe Error Log\(rq\&.
 .RE
@@ -243,7 +235,7 @@ library\&. As of MySQL 5\&.6\&.33, the option value must be one of the directori
 /usr/lib/i386\-linux\-gnu, or
 /usr/lib/x86_64\-linux\-gnu\&. Prior to MySQL 5\&.6\&.33, any library can be used by specifying its path name, but there is a shortcut form to enable use of the
 tcmalloc
-library that is shipped with binary MySQL distributions for Linux in MySQL 5\&.6\&. It is possible that the shortcut form will not work under certain configurations, in which case you should specify a path name instead\&.
+library that is shipped with binary MySQL distributions for Linux in MySQL 5\&.6\&. It is possible that the shortcut form may not work under certain configurations, in which case you should specify a path name instead\&.
 .if n \{\
 .sp
 .\}
@@ -291,7 +283,7 @@ tcmalloc\&.
 .sp -1
 .IP \(bu 2.3
 .\}
-If the option is given as
+Prior to MySQL 5\&.6\&.49, if the option is given as
 \fB\-\-malloc\-lib=tcmalloc\fR,
 \fBmysqld_safe\fR
 looks for a
@@ -312,6 +304,12 @@ tcmalloc
 is not found,
 \fBmysqld_safe\fR
 aborts with an error\&.
+.sp
+As of MySQL 5\&.6\&.49,
+tcmalloc
+is not a permitted value for the
+\fB\-\-malloc\-lib\fR
+option\&.
 .RE
 .sp
 .RS 4
@@ -389,7 +387,6 @@ malloc\-lib=/opt/lib/libtcmalloc_minimal\&.so
 .IP \(bu 2.3
 .\}
 \fB\-\-mysqld=\fR\fB\fIprog_name\fR\fR
-.sp
 The name of the server program (in the
 ledir
 directory) that you want to start\&. This option is needed if you use the MySQL binary distribution but have the data directory outside of the binary distribution\&. If
@@ -410,7 +407,6 @@ As of MySQL 5\&.6\&.33, this option is accepted only on the command line, not in
 .IP \(bu 2.3
 .\}
 \fB\-\-mysqld\-version=\fR\fB\fIsuffix\fR\fR
-.sp
 This option is similar to the
 \fB\-\-mysqld\fR
 option, but you specify only the suffix for the server program name\&. The base name is assumed to be
@@ -443,7 +439,6 @@ As of MySQL 5\&.6\&.33, this option is accepted only on the command line, not in
 .IP \(bu 2.3
 .\}
 \fB\-\-nice=\fR\fB\fIpriority\fR\fR
-.sp
 Use the
 nice
 program to set the server\*(Aqs scheduling priority to the given value\&.
@@ -458,7 +453,6 @@ program to set the server\*(Aqs scheduling priority to the given value\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-no\-defaults\fR
-.sp
 Do not read any option files\&. If program startup fails due to reading unknown options from an option file,
 \fB\-\-no\-defaults\fR
 can be used to prevent them from being read\&. This must be the first option on the command line if it is used\&.
@@ -476,7 +470,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-open\-files\-limit=\fR\fB\fIcount\fR\fR
-.sp
 The number of files that
 \fBmysqld\fR
 should be able to open\&. The option value is passed to
@@ -511,7 +504,6 @@ for this to function properly\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-pid\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 The path name that
 \fBmysqld\fR
 should use for its process ID file\&.
@@ -526,7 +518,6 @@ should use for its process ID file\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-plugin\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The path name of the plugin directory\&.
 .RE
 .sp
@@ -539,7 +530,6 @@ The path name of the plugin directory\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-port=\fR\fB\fIport_num\fR\fR
-.sp
 The port number that the server should use when listening for TCP/IP connections\&. The port number must be 1024 or higher unless the server is started by the
 root
 operating system user\&.
@@ -554,7 +544,6 @@ operating system user\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-skip\-kill\-mysqld\fR
-.sp
 Do not try to kill stray
 \fBmysqld\fR
 processes at startup\&. This option works only on Linux\&.
@@ -569,7 +558,6 @@ processes at startup\&. This option works only on Linux\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-socket=\fR\fB\fIpath\fR\fR
-.sp
 The Unix socket file that the server should use when listening for local connections\&.
 .RE
 .sp
@@ -583,7 +571,6 @@ The Unix socket file that the server should use when listening for local connect
 .\}
 \fB\-\-syslog\fR,
 \fB\-\-skip\-syslog\fR
-.sp
 \fB\-\-syslog\fR
 causes error messages to be sent to
 syslog
@@ -617,7 +604,6 @@ is also given\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-syslog\-tag=\fR\fB\fItag\fR\fR
-.sp
 For logging to
 syslog, messages from
 \fBmysqld_safe\fR
@@ -642,7 +628,6 @@ mysqld\-\fItag\fR\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-timezone=\fR\fB\fItimezone\fR\fR
-.sp
 Set the
 TZ
 time zone environment variable to the given option value\&. Consult your operating system documentation for legal time zone specification formats\&.
@@ -657,7 +642,6 @@ time zone environment variable to the given option value\&. Consult your operati
 .IP \(bu 2.3
 .\}
 \fB\-\-user={\fR\fB\fIuser_name\fR\fR\fB|\fR\fB\fIuser_id\fR\fR\fB}\fR
-.sp
 Run the
 \fBmysqld\fR
 server as the user having the name
@@ -673,7 +657,7 @@ with the
 \fB\-\-defaults\-file\fR
 or
 \fB\-\-defaults\-extra\-file\fR
-option to name an option file, the option must be the first one given on the command line or the option file will not be used\&. For example, this command will not use the named option file:
+option to name an option file, the option must be the first one given on the command line or the option file is not used\&. For example, this command does not use the named option file:
 .sp
 .if n \{\
 .RS 4
@@ -700,7 +684,7 @@ mysql> \fBmysqld_safe \-\-defaults\-file=\fR\fB\fIfile_name\fR\fR\fB \-\-port=\f
 The
 \fBmysqld_safe\fR
 script is written so that it normally can start a server that was installed from either a source or a binary distribution of MySQL, even though these types of distributions typically install the server in slightly different locations\&. (See
-Section\ \&2.1.4, \(lqInstallation Layouts\(rq\&.)
+Section\ \&2.1.5, \(lqInstallation Layouts\(rq\&.)
 \fBmysqld_safe\fR
 expects one of the following conditions to be true:
 .sp
@@ -854,7 +838,7 @@ stderr\&.
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysqldump.1 b/mysql-wsrep-5.6/man/mysqldump.1
index 08255468..09a15a64 100644
--- a/mysql-wsrep-5.6/man/mysqldump.1
+++ b/mysql-wsrep-5.6/man/mysqldump.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqldump\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQLDUMP\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQLDUMP\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -235,10 +235,14 @@ privilege for dumped tables,
 SHOW VIEW
 for dumped views,
 TRIGGER
-for dumped triggers, and
+for dumped triggers,
 LOCK TABLES
 if the
 \fB\-\-single\-transaction\fR
+option is not used, and (as of MySQL 5\&.6\&.49)
+PROCESS
+if the
+\-\-no\-tablespaces
 option is not used\&. Certain options might require other privileges as noted in the option descriptions\&.
 .PP
 To reload a dump file, you must have the privileges required to execute the statements that it contains, such as the appropriate
@@ -277,7 +281,7 @@ shell> \fBmysqldump [options] > dump\&.sql\fR
 .\}
 .PP
 However, UTF\-16 is not permitted as a connection character set (see
-the section called \(lqImpermissible Client Character Sets\(rq), so the dump file will not load correctly\&. To work around this issue, use the
+the section called \(lqImpermissible Client Character Sets\(rq), so the dump file cannot be loaded correctly\&. To work around this issue, use the
 \fB\-\-result\-file\fR
 option, which creates the output in ASCII format:
 .sp
@@ -292,7 +296,8 @@ shell> \fBmysqldump [options] \-\-result\-file=dump\&.sql\fR
 .\}
 .sp .5v
 .RE
-Performance and Scalability Considerations.PP
+Performance and Scalability Considerations
+.PP
 mysqldump
 advantages include the convenience and flexibility of viewing or even editing the output before restoring\&. You can clone databases for development and DBA work, or produce slight variations of an existing database for testing\&. It is not intended as a fast or scalable solution for backing up substantial amounts of data\&. With large data sizes, even if the backup step takes a reasonable time, restoring the data can be very slow because replaying the SQL statements involves disk I/O for insertion, index creation, and so on\&.
 .PP
@@ -321,7 +326,7 @@ InnoDB
 backups with minimal disruption; it can also back up tables from
 MyISAM
 and other storage engines; and it provides a number of convenient options to accommodate different backup scenarios\&. See
-Section\ \&25.2, \(lqMySQL Enterprise Backup Overview\(rq\&.
+Section\ \&24.2, \(lqMySQL Enterprise Backup Overview\(rq\&.
 .RE
 .sp
 .RS 4
@@ -366,7 +371,8 @@ option\&.
 For additional information about
 \fBmysqldump\fR, see
 Section\ \&7.4, \(lqUsing mysqldump for Backups\(rq\&.
-Invocation Syntax.PP
+Invocation Syntax
+.PP
 There are in general three ways to use
 \fBmysqldump\fR\(emin order to dump a set of one or more tables, a set of one or more complete databases, or an entire MySQL server\(emas shown here:
 .sp
@@ -393,7 +399,8 @@ To see a list of the options your version of
 \fBmysqldump\fR
 supports, issue the command
 \fBmysqldump \-\-help\fR\&.
-Option Syntax \- Alphabetical Summary.PP
+Option Syntax \- Alphabetical Summary
+.PP
 \fBmysqldump\fR
 supports the following options, which can be specified on the command line or in the
 [mysqldump]
@@ -401,7 +408,8 @@ and
 [client]
 groups of an option file\&. For information about option files used by MySQL programs, see
 Section\ \&4.2.2.2, \(lqUsing Option Files\(rq\&.
-Connection Options.PP
+Connection Options
+.PP
 The
 \fBmysqldump\fR
 command logs into a MySQL server to extract information\&. The following options specify how to connect to the MySQL server, either on the same machine or a remote system\&.
@@ -415,7 +423,6 @@ command logs into a MySQL server to extract information\&. The following options
 .IP \(bu 2.3
 .\}
 \fB\-\-bind\-address=\fR\fB\fIip_address\fR\fR
-.sp
 On a computer having multiple network interfaces, use this option to select which interface to use for connecting to the MySQL server\&.
 .RE
 .sp
@@ -429,9 +436,8 @@ On a computer having multiple network interfaces, use this option to select whic
 .\}
 \fB\-\-compress\fR,
 \fB\-C\fR
-.sp
 Compress all information sent between the client and the server if possible\&. See
-Section\ \&4.2.5, \(lqConnection Compression Control\(rq\&.
+Section\ \&4.2.6, \(lqConnection Compression Control\(rq\&.
 .RE
 .sp
 .RS 4
@@ -443,7 +449,6 @@ Section\ \&4.2.5, \(lqConnection Compression Control\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-default\-auth=\fR\fB\fIplugin\fR\fR
-.sp
 A hint about which client\-side authentication plugin to use\&. See
 Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .RE
@@ -457,7 +462,6 @@ Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-enable\-cleartext\-plugin\fR
-.sp
 Enable the
 mysql_clear_password
 cleartext authentication plugin\&. (See
@@ -476,7 +480,6 @@ This option was added in MySQL 5\&.6\&.28\&.
 .\}
 \fB\-\-host=\fR\fB\fIhost_name\fR\fR,
 \fB\-h \fR\fB\fIhost_name\fR\fR
-.sp
 Dump data from the MySQL server on the given host\&. The default host is
 localhost\&.
 .RE
@@ -490,7 +493,6 @@ localhost\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-login\-path=\fR\fB\fIname\fR\fR
-.sp
 Read options from the named login path in the
 \&.mylogin\&.cnf
 login path file\&. A
@@ -514,7 +516,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR,
 \fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR
-.sp
 The password of the MySQL account used for connecting to the server\&. The password value is optional\&. If not given,
 \fBmysqldump\fR
 prompts for one\&. If given, there must be
@@ -545,7 +546,6 @@ option\&.
 .\}
 \fB\-\-pipe\fR,
 \fB\-W\fR
-.sp
 On Windows, connect to the server using a named pipe\&. This option applies only if the server was started with the
 named_pipe
 system variable enabled to support named\-pipe connections\&. In addition, the user making the connection must be a member of the Windows group specified by the
@@ -562,7 +562,6 @@ system variable\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-plugin\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The directory in which to look for plugins\&. Specify this option if the
 \fB\-\-default\-auth\fR
 option is used to specify an authentication plugin but
@@ -581,7 +580,6 @@ Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .\}
 \fB\-\-port=\fR\fB\fIport_num\fR\fR,
 \fB\-P \fR\fB\fIport_num\fR\fR
-.sp
 For TCP/IP connections, the port number to use\&.
 .RE
 .sp
@@ -594,9 +592,8 @@ For TCP/IP connections, the port number to use\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR
-.sp
-The connection protocol to use for connecting to the server\&. It is useful when the other connection parameters normally result in use of a protocol other than the one you want\&. For details on the permissible values, see
-Section\ \&4.2.4, \(lqConnecting to the MySQL Server Using Command Options\(rq\&.
+The transport protocol to use for connecting to the server\&. It is useful when the other connection parameters normally result in use of a protocol other than the one you want\&. For details on the permissible values, see
+Section\ \&4.2.5, \(lqConnection Transport Protocols\(rq\&.
 .RE
 .sp
 .RS 4
@@ -608,7 +605,6 @@ Section\ \&4.2.4, \(lqConnecting to the MySQL Server Using Command Options\(rq\&
 .IP \(bu 2.3
 .\}
 \fB\-\-secure\-auth\fR
-.sp
 Do not send passwords to the server in old (pre\-4\&.1) format\&. This prevents connections except for servers that use the newer password format\&. This option is enabled by default; use
 \fB\-\-skip\-secure\-auth\fR
 to disable it\&. This option was added in MySQL 5\&.6\&.17\&.
@@ -624,7 +620,7 @@ to disable it\&. This option was added in MySQL 5\&.6\&.17\&.
 \fBNote\fR
 .ps -1
 .br
-Passwords that use the pre\-4\&.1 hashing method are less secure than passwords that use the native password hashing method and should be avoided\&. Pre\-4\&.1 passwords are deprecated and support for them will be removed in a future MySQL release\&. For account upgrade instructions, see
+Passwords that use the pre\-4\&.1 hashing method are less secure than passwords that use the native password hashing method and should be avoided\&. Pre\-4\&.1 passwords are deprecated; expect support for them to be removed in a future MySQL release\&. For account upgrade instructions, see
 Section\ \&6.4.1.3, \(lqMigrating Away from Pre-4.1 Password Hashing and the mysql_old_password Plugin\(rq\&.
 .sp .5v
 .RE
@@ -640,7 +636,7 @@ Section\ \&6.4.1.3, \(lqMigrating Away from Pre-4.1 Password Hashing and the mys
 \fBNote\fR
 .ps -1
 .br
-This option is deprecated and will be removed in a future release\&. As of MySQL 5\&.7\&.5, it is always enabled and attempting to disable it produces an error\&.
+This option is deprecated; expect it to be removed in a future release\&. As of MySQL 5\&.7\&.5, it is always enabled and attempting to disable it produces an error\&.
 .sp .5v
 .RE
 .RE
@@ -655,7 +651,6 @@ This option is deprecated and will be removed in a future release\&. As of MySQL
 .\}
 \fB\-\-socket=\fR\fB\fIpath\fR\fR,
 \fB\-S \fR\fB\fIpath\fR\fR
-.sp
 For connections to
 localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&.
 .sp
@@ -675,7 +670,6 @@ system variable\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-ssl*\fR
-.sp
 Options that begin with
 \fB\-\-ssl\fR
 specify whether to connect to the server using SSL and indicate where to find SSL keys and certificates\&. See
@@ -692,10 +686,10 @@ the section called \(lqCommand Options for Encrypted Connections\(rq\&.
 .\}
 \fB\-\-user=\fR\fB\fIuser_name\fR\fR,
 \fB\-u \fR\fB\fIuser_name\fR\fR
-.sp
 The user name of the MySQL account to use for connecting to the server\&.
 .RE
-Option\-File Options.PP
+Option\-File Options
+.PP
 These options are used to control which option files to read\&.
 .sp
 .RS 4
@@ -707,7 +701,6 @@ These options are used to control which option files to read\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-extra\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Read this option file after the global option file but (on Unix) before the user option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -725,7 +718,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Use only the given option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -747,7 +739,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-group\-suffix=\fR\fB\fIstr\fR\fR
-.sp
 Read not only the usual option groups, but also groups with the usual names and a suffix of
 \fIstr\fR\&. For example,
 \fBmysqldump\fR
@@ -778,7 +769,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-no\-defaults\fR
-.sp
 Do not read any option files\&. If program startup fails due to reading unknown options from an option file,
 \fB\-\-no\-defaults\fR
 can be used to prevent them from being read\&.
@@ -806,13 +796,13 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-print\-defaults\fR
-.sp
 Print the program name and all options that it gets from option files\&.
 .sp
 For additional information about this and other option\-file options, see
 Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&.
 .RE
-DDL Options.PP
+DDL Options
+.PP
 Usage scenarios for
 \fBmysqldump\fR
 include setting up an entire new MySQL instance (including database tables), and replacing data inside an existing instance with existing databases and tables\&. The following options let you specify which things to tear down and set up when restoring a dump, by encoding various DDL statements within the dump file\&.
@@ -826,7 +816,6 @@ include setting up an entire new MySQL instance (including database tables), and
 .IP \(bu 2.3
 .\}
 \fB\-\-add\-drop\-database\fR
-.sp
 Write a
 DROP DATABASE
 statement before each
@@ -849,7 +838,6 @@ statements are written unless one of those options is specified\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-add\-drop\-table\fR
-.sp
 Write a
 DROP TABLE
 statement before each
@@ -866,7 +854,6 @@ statement\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-add\-drop\-trigger\fR
-.sp
 Write a
 DROP TRIGGER
 statement before each
@@ -884,7 +871,6 @@ statement\&.
 .\}
 \fB\-\-all\-tablespaces\fR,
 \fB\-Y\fR
-.sp
 Adds to a table dump all SQL statements needed to create any tablespaces used by an
 NDB
 table\&. This information is not otherwise included in the output from
@@ -901,7 +887,6 @@ table\&. This information is not otherwise included in the output from
 .\}
 \fB\-\-no\-create\-db\fR,
 \fB\-n\fR
-.sp
 Suppress the
 CREATE DATABASE
 statements that are otherwise included in the output if the
@@ -921,7 +906,6 @@ option is given\&.
 .\}
 \fB\-\-no\-create\-info\fR,
 \fB\-t\fR
-.sp
 Do not write
 CREATE TABLE
 statements that create each dumped table\&.
@@ -958,7 +942,6 @@ option for this purpose\&.
 .\}
 \fB\-\-no\-tablespaces\fR,
 \fB\-y\fR
-.sp
 This option suppresses all
 CREATE LOGFILE GROUP
 and
@@ -976,14 +959,14 @@ statements in the output of
 .IP \(bu 2.3
 .\}
 \fB\-\-replace\fR
-.sp
 Write
 REPLACE
 statements rather than
 INSERT
 statements\&.
 .RE
-Debug Options.PP
+Debug Options
+.PP
 The following options print debugging information, encode debugging information in the dump file, or let the dump operation proceed regardless of potential problems\&.
 .sp
 .RS 4
@@ -995,7 +978,6 @@ The following options print debugging information, encode debugging information
 .IP \(bu 2.3
 .\}
 \fB\-\-allow\-keywords\fR
-.sp
 Permit creation of column names that are keywords\&. This works by prefixing each column name with the table name\&.
 .RE
 .sp
@@ -1009,7 +991,6 @@ Permit creation of column names that are keywords\&. This works by prefixing eac
 .\}
 \fB\-\-comments\fR,
 \fB\-i\fR
-.sp
 Write additional information in the dump file such as program version, server version, and host\&. This option is enabled by default\&. To suppress this additional information, use
 \fB\-\-skip\-comments\fR\&.
 .RE
@@ -1024,12 +1005,16 @@ Write additional information in the dump file such as program version, server ve
 .\}
 \fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR,
 \fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR
-.sp
 Write a debugging log\&. A typical
 \fIdebug_options\fR
 string is
 d:t:o,\fIfile_name\fR\&. The default value is
 d:t:o,/tmp/mysqldump\&.trace\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -1041,8 +1026,12 @@ d:t:o,/tmp/mysqldump\&.trace\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-debug\-check\fR
-.sp
 Print some debugging information when the program exits\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -1054,8 +1043,12 @@ Print some debugging information when the program exits\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-debug\-info\fR
-.sp
 Print debugging information and memory and CPU usage statistics when the program exits\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -1067,7 +1060,6 @@ Print debugging information and memory and CPU usage statistics when the program
 .IP \(bu 2.3
 .\}
 \fB\-\-dump\-date\fR
-.sp
 If the
 \fB\-\-comments\fR
 option is given,
@@ -1105,7 +1097,6 @@ suppresses date printing\&.
 .\}
 \fB\-\-force\fR,
 \fB\-f\fR
-.sp
 Continue even if an SQL error occurs during a table dump\&.
 .sp
 One use for this option is to cause
@@ -1128,7 +1119,6 @@ prints the error message, but it also writes an SQL comment containing the view
 .IP \(bu 2.3
 .\}
 \fB\-\-log\-error=\fR\fB\fIfile_name\fR\fR
-.sp
 Log warnings and errors by appending them to the named file\&. The default is to do no logging\&.
 .RE
 .sp
@@ -1141,7 +1131,6 @@ Log warnings and errors by appending them to the named file\&. The default is to
 .IP \(bu 2.3
 .\}
 \fB\-\-skip\-comments\fR
-.sp
 See the description for the
 \fB\-\-comments\fR
 option\&.
@@ -1157,10 +1146,10 @@ option\&.
 .\}
 \fB\-\-verbose\fR,
 \fB\-v\fR
-.sp
 Verbose mode\&. Print more information about what the program does\&.
 .RE
-Help Options.PP
+Help Options
+.PP
 The following options display information about the
 \fBmysqldump\fR
 command itself\&.
@@ -1175,7 +1164,6 @@ command itself\&.
 .\}
 \fB\-\-help\fR,
 \fB\-?\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -1189,10 +1177,10 @@ Display a help message and exit\&.
 .\}
 \fB\-\-version\fR,
 \fB\-V\fR
-.sp
 Display version information and exit\&.
 .RE
-Internationalization Options.PP
+Internationalization Options
+.PP
 The following options change how the
 \fBmysqldump\fR
 command represents character data with national language settings\&.
@@ -1206,9 +1194,8 @@ command represents character data with national language settings\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-character\-sets\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The directory where character sets are installed\&. See
-Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
+Section\ \&10.15, \(lqCharacter Set Configuration\(rq\&.
 .RE
 .sp
 .RS 4
@@ -1220,11 +1207,10 @@ Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-default\-character\-set=\fR\fB\fIcharset_name\fR\fR
-.sp
 Use
 \fIcharset_name\fR
 as the default character set\&. See
-Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&. If no character set is specified,
+Section\ \&10.15, \(lqCharacter Set Configuration\(rq\&. If no character set is specified,
 \fBmysqldump\fR
 uses
 utf8\&.
@@ -1240,7 +1226,6 @@ utf8\&.
 .\}
 \fB\-\-no\-set\-names\fR,
 \fB\-N\fR
-.sp
 Turns off the
 \fB\-\-set\-charset\fR
 setting, the same as specifying
@@ -1256,7 +1241,6 @@ setting, the same as specifying
 .IP \(bu 2.3
 .\}
 \fB\-\-set\-charset\fR
-.sp
 Write
 SET NAMES \fIdefault_character_set\fR
 to the output\&. This option is enabled by default\&. To suppress the
@@ -1264,10 +1248,11 @@ SET NAMES
 statement, use
 \fB\-\-skip\-set\-charset\fR\&.
 .RE
-Replication Options.PP
+Replication Options
+.PP
 The
 \fBmysqldump\fR
-command is frequently used to create an empty instance, or an instance including data, on a slave server in a replication configuration\&. The following options apply to dumping and restoring data on replication master and slave servers\&.
+command is frequently used to create an empty instance, or an instance including data, on a replica server in a replication configuration\&. The following options apply to dumping and restoring data on replication source and replica servers\&.
 .sp
 .RS 4
 .ie n \{\
@@ -1278,8 +1263,7 @@ command is frequently used to create an empty instance, or an instance including
 .IP \(bu 2.3
 .\}
 \fB\-\-apply\-slave\-statements\fR
-.sp
-For a slave dump produced with the
+For a replica dump produced with the
 \fB\-\-dump\-slave\fR
 option, add a
 STOP SLAVE
@@ -1299,10 +1283,11 @@ statement at the end of the output\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-delete\-master\-logs\fR
-.sp
-On a master replication server, delete the binary logs by sending a
+On a source replication server, delete the binary logs by sending a
 PURGE BINARY LOGS
-statement to the server after performing the dump operation\&. This option automatically enables
+statement to the server after performing the dump operation\&. This option requires the
+RELOAD
+privilege as well as privileges sufficient to execute that statement\&. This option automatically enables
 \fB\-\-master\-data\fR\&.
 .RE
 .sp
@@ -1315,17 +1300,16 @@ statement to the server after performing the dump operation\&. This option autom
 .IP \(bu 2.3
 .\}
 \fB\-\-dump\-slave[=\fR\fB\fIvalue\fR\fR\fB]\fR
-.sp
 This option is similar to
 \fB\-\-master\-data\fR
-except that it is used to dump a replication slave server to produce a dump file that can be used to set up another server as a slave that has the same master as the dumped server\&. It causes the dump output to include a
+except that it is used to dump a replica server to produce a dump file that can be used to set up another server as a replica that has the same source as the dumped server\&. It causes the dump output to include a
 CHANGE MASTER TO
-statement that indicates the binary log coordinates (file name and position) of the dumped slave\*(Aqs master\&. These are the master server coordinates from which the slave should start replicating\&.
+statement that indicates the binary log coordinates (file name and position) of the dumped replica\*(Aqs source\&. These are the source server coordinates from which the replica should start replicating\&.
 .sp
 \fB\-\-dump\-slave\fR
-causes the coordinates from the master to be used rather than those of the dumped server, as is done by the
+causes the coordinates from the source to be used rather than those of the dumped server, as is done by the
 \fB\-\-master\-data\fR
-option\&. In addition, specfiying this option causes the
+option\&. In addition, specifiying this option causes the
 \fB\-\-master\-data\fR
 option to be overridden, if used, and effectively ignored\&.
 .sp
@@ -1339,7 +1323,12 @@ in terms of enabling or disabling other options and in how locking is handled\&.
 .sp
 This option causes
 \fBmysqldump\fR
-to stop the slave SQL thread before the dump and restart it again after\&.
+to stop the replica SQL thread before the dump and restart it again after\&.
+.sp
+\fB\-\-dump\-slave\fR
+sends a
+SHOW SLAVE STATUS
+statement to the server to obtain information, so it requires privileges sufficient to execute that statement\&.
 .sp
 In conjunction with
 \fB\-\-dump\-slave\fR, the
@@ -1358,16 +1347,15 @@ options can also be used\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-include\-master\-host\-port\fR
-.sp
 For the
 CHANGE MASTER TO
-statement in a slave dump produced with the
+statement in a replica dump produced with the
 \fB\-\-dump\-slave\fR
 option, add
 MASTER_HOST
 and
 MASTER_PORT
-options for the host name and TCP/IP port number of the slave\*(Aqs master\&.
+options for the host name and TCP/IP port number of the replica\*(Aqs source\&.
 .RE
 .sp
 .RS 4
@@ -1379,16 +1367,18 @@ options for the host name and TCP/IP port number of the slave\*(Aqs master\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-master\-data[=\fR\fB\fIvalue\fR\fR\fB]\fR
-.sp
-Use this option to dump a master replication server to produce a dump file that can be used to set up another server as a slave of the master\&. It causes the dump output to include a
+Use this option to dump a source replication server to produce a dump file that can be used to set up another server as a replica of the source\&. It causes the dump output to include a
 CHANGE MASTER TO
-statement that indicates the binary log coordinates (file name and position) of the dumped server\&. These are the master server coordinates from which the slave should start replicating after you load the dump file into the slave\&.
+statement that indicates the binary log coordinates (file name and position) of the dumped server\&. These are the source server coordinates from which the replica should start replicating after you load the dump file into the replica\&.
 .sp
 If the option value is 2, the
 CHANGE MASTER TO
 statement is written as an SQL comment, and thus is informative only; it has no effect when the dump file is reloaded\&. If the option value is 1, the statement is not written as a comment and takes effect when the dump file is reloaded\&. If no option value is specified, the default value is 1\&.
 .sp
-This option requires the
+\fB\-\-master\-data\fR
+sends a
+SHOW MASTER STATUS
+statement to the server to obtain information, so it requires privileges sufficient to execute that statement\&. This option also requires the
 RELOAD
 privilege and the binary log must be enabled\&.
 .sp
@@ -1401,7 +1391,7 @@ option automatically turns off
 also is specified, in which case, a global read lock is acquired only for a short time at the beginning of the dump (see the description for
 \fB\-\-single\-transaction\fR)\&. In all cases, any action on logs happens at the exact moment of the dump\&.
 .sp
-It is also possible to set up a slave by dumping an existing slave of the master, using the
+It is also possible to set up a replica by dumping an existing replica of the source, using the
 \fB\-\-dump\-slave\fR
 option, which overrides
 \fB\-\-master\-data\fR
@@ -1417,7 +1407,6 @@ and causes it to be ignored if both options are used\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-set\-gtid\-purged=\fR\fB\fIvalue\fR\fR
-.sp
 This option enables control over global transaction ID (GTID) information written to the dump file, by indicating whether to add a
 SET @@GLOBAL\&.gtid_purged
 statement to the output\&. This option may also cause a statement to be written to the output that disables binary logging while the dump file is being reloaded\&.
@@ -1519,7 +1508,8 @@ issues DML instructions for the system tables which use the non\-transactional M
 .sp .5v
 .RE
 .RE
-Format Options.PP
+Format Options
+.PP
 The following options specify how to represent the entire dump file or certain kinds of data in the dump file\&. They also control whether certain optional information is written to the dump file\&.
 .sp
 .RS 4
@@ -1531,7 +1521,6 @@ The following options specify how to represent the entire dump file or certain k
 .IP \(bu 2.3
 .\}
 \fB\-\-compact\fR
-.sp
 Produce more compact output\&. This option enables the
 \fB\-\-skip\-add\-drop\-table\fR,
 \fB\-\-skip\-add\-locks\fR,
@@ -1550,7 +1539,6 @@ options\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-compatible=\fR\fB\fIname\fR\fR
-.sp
 Produce output that is more compatible with other database systems or with older MySQL servers\&. The value of
 \fIname\fR
 can be
@@ -1582,7 +1570,6 @@ does not map data types to Oracle types or use Oracle comment syntax\&.
 .\}
 \fB\-\-complete\-insert\fR,
 \fB\-c\fR
-.sp
 Use complete
 INSERT
 statements that include column names\&.
@@ -1597,7 +1584,6 @@ statements that include column names\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-create\-options\fR
-.sp
 Include all MySQL\-specific table options in the
 CREATE TABLE
 statements\&.
@@ -1615,14 +1601,13 @@ statements\&.
 \fB\-\-fields\-enclosed\-by=\&.\&.\&.\fR,
 \fB\-\-fields\-optionally\-enclosed\-by=\&.\&.\&.\fR,
 \fB\-\-fields\-escaped\-by=\&.\&.\&.\fR
-.sp
 These options are used with the
 \fB\-\-tab\fR
 option and have the same meaning as the corresponding
 FIELDS
 clauses for
 LOAD DATA\&. See
-Section\ \&13.2.6, \(lqLOAD DATA Syntax\(rq\&.
+Section\ \&13.2.6, \(lqLOAD DATA Statement\(rq\&.
 .RE
 .sp
 .RS 4
@@ -1634,16 +1619,16 @@ Section\ \&13.2.6, \(lqLOAD DATA Syntax\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-hex\-blob\fR
-.sp
 Dump binary columns using hexadecimal notation (for example,
 \*(Aqabc\*(Aq
 becomes
 0x616263)\&. The affected data types are
 BINARY,
-VARBINARY, the
+VARBINARY,
 BLOB
-types, and
-BIT\&.
+types,
+BIT, all spatial data types, and other non\-binary data types when used with the
+binary character set\&.
 .RE
 .sp
 .RS 4
@@ -1655,14 +1640,13 @@ BIT\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-lines\-terminated\-by=\&.\&.\&.\fR
-.sp
 This option is used with the
 \fB\-\-tab\fR
 option and has the same meaning as the corresponding
 LINES
 clause for
 LOAD DATA\&. See
-Section\ \&13.2.6, \(lqLOAD DATA Syntax\(rq\&.
+Section\ \&13.2.6, \(lqLOAD DATA Statement\(rq\&.
 .RE
 .sp
 .RS 4
@@ -1675,7 +1659,6 @@ Section\ \&13.2.6, \(lqLOAD DATA Syntax\(rq\&.
 .\}
 \fB\-\-quote\-names\fR,
 \fB\-Q\fR
-.sp
 Quote identifiers (such as database, table, and column names) within
 `
 characters\&. If the
@@ -1699,7 +1682,6 @@ that may enable
 .\}
 \fB\-\-result\-file=\fR\fB\fIfile_name\fR\fR,
 \fB\-r \fR\fB\fIfile_name\fR\fR
-.sp
 Direct output to the named file\&. The result file is created and its previous contents overwritten, even if an error occurs while generating the dump\&.
 .sp
 This option should be used on Windows to prevent newline
@@ -1719,7 +1701,6 @@ carriage return/newline sequences\&.
 .\}
 \fB\-\-tab=\fR\fB\fIdir_name\fR\fR,
 \fB\-T \fR\fB\fIdir_name\fR\fR
-.sp
 Produce tab\-separated text\-format data files\&. For each dumped table,
 \fBmysqldump\fR
 creates a
@@ -1778,7 +1759,6 @@ option\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-tz\-utc\fR
-.sp
 This option enables
 TIMESTAMP
 columns to be dumped and reloaded between servers in different time zones\&.
@@ -1805,7 +1785,6 @@ is enabled by default\&. To disable it, use
 .\}
 \fB\-\-xml\fR,
 \fB\-X\fR
-.sp
 Write dump output as well\-formed XML\&.
 .sp
 \fBNULL\fR\fB, \fR\fB\*(AqNULL\*(Aq\fR\fB, and Empty Values\fR: For a column named
@@ -1903,7 +1882,8 @@ Collation="latin1_swedish_ci" Create_options="" Comment="" />
 .RE
 .\}
 .RE
-Filtering Options.PP
+Filtering Options
+.PP
 The following options control which kinds of schema objects are written to the dump file: by category, such as triggers or events; by name, for example, choosing which databases and tables to dump; or even filtering rows from the table data using a
 WHERE
 clause\&.
@@ -1918,7 +1898,6 @@ clause\&.
 .\}
 \fB\-\-all\-databases\fR,
 \fB\-A\fR
-.sp
 Dump all tables in all databases\&. This is the same as using the
 \fB\-\-databases\fR
 option and naming all the databases on the command line\&.
@@ -1934,7 +1913,6 @@ option and naming all the databases on the command line\&.
 .\}
 \fB\-\-databases\fR,
 \fB\-B\fR
-.sp
 Dump several databases\&. Normally,
 \fBmysqldump\fR
 treats the first name argument on the command line as a database name and following names as table names\&. With this option, it treats all name arguments as database names\&.
@@ -1964,7 +1942,6 @@ option\&.)
 .\}
 \fB\-\-events\fR,
 \fB\-E\fR
-.sp
 Include Event Scheduler events for the dumped databases in the output\&. This option requires the
 EVENT
 privileges for those databases\&.
@@ -1992,7 +1969,6 @@ database\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-ignore\-table=\fR\fB\fIdb_name\&.tbl_name\fR\fR
-.sp
 Do not dump the given table, which must be specified using both the database and table names\&. To ignore multiple tables, use this option multiple times\&. This option also can be used to ignore views\&.
 .RE
 .sp
@@ -2006,7 +1982,6 @@ Do not dump the given table, which must be specified using both the database and
 .\}
 \fB\-\-no\-data\fR,
 \fB\-d\fR
-.sp
 Do not write any table row information (that is, do not dump table contents)\&. This is useful if you want to dump only the
 CREATE TABLE
 statement for the table (for example, to create an empty copy of the table by loading the dump file)\&.
@@ -2022,7 +1997,6 @@ statement for the table (for example, to create an empty copy of the table by lo
 .\}
 \fB\-\-routines\fR,
 \fB\-R\fR
-.sp
 Include stored routines (procedures and functions) for the dumped databases in the output\&. This option requires the
 SELECT
 privilege for the
@@ -2054,7 +2028,6 @@ database\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-tables\fR
-.sp
 Override the
 \fB\-\-databases\fR
 or
@@ -2073,7 +2046,6 @@ regards all name arguments following the option as table names\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-triggers\fR
-.sp
 Include triggers for each dumped table in the output\&. This option is enabled by default; disable it with
 \fB\-\-skip\-triggers\fR\&.
 .sp
@@ -2092,7 +2064,6 @@ privilege for the table\&.
 .\}
 \fB\-\-where=\*(Aq\fR\fB\fIwhere_condition\fR\fR\fB\*(Aq\fR,
 \fB\-w \*(Aq\fR\fB\fIwhere_condition\fR\fR\fB\*(Aq\fR
-.sp
 Dump only rows selected by the given
 WHERE
 condition\&. Quotes around the condition are mandatory if it contains spaces or other characters that are special to your command interpreter\&.
@@ -2111,7 +2082,8 @@ Examples:
 .RE
 .\}
 .RE
-Performance Options.PP
+Performance Options
+.PP
 The following options are the most relevant for the performance particularly of the restore operations\&. For large data sets, restore operation (processing the
 INSERT
 statements in the dump file) is the most time\-consuming part\&. When it is urgent to restore data quickly, plan and test the performance of this stage in advance\&. For restore times measured in hours, you might prefer an alternative backup and restore solution, such as
@@ -2134,7 +2106,6 @@ transactional options, primarily for the dump operation\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-delayed\-insert\fR
-.sp
 For those nontransactional tables that support the
 INSERT DELAYED
 syntax, use that statement rather than regular
@@ -2143,7 +2114,7 @@ statements\&.
 .sp
 As of MySQL 5\&.6\&.6,
 DELAYED
-inserts are deprecated, so this option will be removed in a future release\&.
+inserts are deprecated; expect this option to be removed in a future release\&.
 .RE
 .sp
 .RS 4
@@ -2156,7 +2127,6 @@ inserts are deprecated, so this option will be removed in a future release\&.
 .\}
 \fB\-\-disable\-keys\fR,
 \fB\-K\fR
-.sp
 For each table, surround the
 INSERT
 statements with
@@ -2178,7 +2148,6 @@ tables\&.
 .\}
 \fB\-\-extended\-insert\fR,
 \fB\-e\fR
-.sp
 Write
 INSERT
 statements using multiple\-row syntax that includes several
@@ -2195,7 +2164,6 @@ lists\&. This results in a smaller dump file and speeds up inserts when the file
 .IP \(bu 2.3
 .\}
 \fB\-\-insert\-ignore\fR
-.sp
 Write
 INSERT IGNORE
 statements rather than
@@ -2248,7 +2216,6 @@ system variable has a value at least this large\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-opt\fR
-.sp
 This option, enabled by default, is shorthand for the combination of
 \fB\-\-add\-drop\-table\fR
 \fB\-\-add\-locks\fR
@@ -2279,7 +2246,6 @@ for information about selectively enabling or disabling a subset of the options
 .\}
 \fB\-\-quick\fR,
 \fB\-q\fR
-.sp
 This option is useful for dumping large tables\&. It forces
 \fBmysqldump\fR
 to retrieve rows for a table from the server a row at a time rather than retrieving the entire row set and buffering it in memory before writing it out\&.
@@ -2294,12 +2260,12 @@ to retrieve rows for a table from the server a row at a time rather than retriev
 .IP \(bu 2.3
 .\}
 \fB\-\-skip\-opt\fR
-.sp
 See the description for the
 \fB\-\-opt\fR
 option\&.
 .RE
-Transactional Options.PP
+Transactional Options
+.PP
 The following options trade off the performance of the dump operation, against the reliability and consistency of the exported data\&.
 .sp
 .RS 4
@@ -2311,7 +2277,6 @@ The following options trade off the performance of the dump operation, against t
 .IP \(bu 2.3
 .\}
 \fB\-\-add\-locks\fR
-.sp
 Surround each table dump with
 LOCK TABLES
 and
@@ -2330,7 +2295,6 @@ Section\ \&8.2.4.1, \(lqOptimizing INSERT Statements\(rq\&.
 .\}
 \fB\-\-flush\-logs\fR,
 \fB\-F\fR
-.sp
 Flush the MySQL server log files before starting the dump\&. This option requires the
 RELOAD
 privilege\&. If you use this option in combination with the
@@ -2357,7 +2321,6 @@ together with
 .IP \(bu 2.3
 .\}
 \fB\-\-flush\-privileges\fR
-.sp
 Add a
 FLUSH PRIVILEGES
 statement to the dump output after dumping the
@@ -2367,6 +2330,10 @@ mysql
 database and any other database that depends on the data in the
 mysql
 database for proper restoration\&.
+.sp
+Because the dump file contains a
+FLUSH PRIVILEGES
+statement, reloading the file requires privileges sufficient to execute that statement\&.
 .RE
 .sp
 .RS 4
@@ -2379,7 +2346,6 @@ database for proper restoration\&.
 .\}
 \fB\-\-lock\-all\-tables\fR,
 \fB\-x\fR
-.sp
 Lock all tables across all databases\&. This is achieved by acquiring a global read lock for the duration of the whole dump\&. This option automatically turns off
 \fB\-\-single\-transaction\fR
 and
@@ -2396,7 +2362,6 @@ and
 .\}
 \fB\-\-lock\-tables\fR,
 \fB\-l\fR
-.sp
 For each dumped database, lock all tables to be dumped before dumping them\&. The tables are locked with
 READ LOCAL
 to permit concurrent inserts in the case of
@@ -2428,7 +2393,6 @@ at the end of the option list\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-no\-autocommit\fR
-.sp
 Enclose the
 INSERT
 statements for each dumped table within
@@ -2447,7 +2411,6 @@ statements\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-order\-by\-primary\fR
-.sp
 Dump each table\*(Aqs rows sorted by its primary key, or by its first unique index, if such an index exists\&. This is useful when dumping a
 MyISAM
 table to be loaded into an
@@ -2464,8 +2427,7 @@ table, but makes the dump operation take considerably longer\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-shared\-memory\-base\-name=\fR\fB\fIname\fR\fR
-.sp
-On Windows, the shared\-memory name to use, for connections made using shared memory to a local server\&. The default value is
+On Windows, the shared\-memory name to use for connections made using shared memory to a local server\&. The default value is
 MYSQL\&. The shared\-memory name is case\-sensitive\&.
 .sp
 This option applies only if the server was started with the
@@ -2482,7 +2444,6 @@ system variable enabled to support shared\-memory connections\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-single\-transaction\fR
-.sp
 This option sets the transaction isolation mode to
 REPEATABLE READ
 and sends a
@@ -2568,7 +2529,8 @@ When you selectively enable or disable the effect of a group option, order is im
 would not have the intended effect; it is the same as
 \fB\-\-skip\-opt\fR
 by itself\&.
-Examples.PP
+Examples
+.PP
 To make a backup of an entire database:
 .sp
 .if n \{\
@@ -2743,7 +2705,8 @@ for all features except index disabling and table locking, use
 \fB\-\-disable\-keys\fR
 \fB\-\-lock\-tables\fR\&.
 .RE
-Restrictions.PP
+Restrictions
+.PP
 \fBmysqldump\fR
 does not dump the
 INFORMATION_SCHEMA
@@ -2761,12 +2724,12 @@ ndbinfo
 information database\&.
 .PP
 If you encounter problems backing up views due to insufficient privileges, see
-Section\ \&C.5, \(lqRestrictions on Views\(rq
+Section\ \&20.9, \(lqRestrictions on Views\(rq
 for a workaround\&.
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysqldumpslow.1 b/mysql-wsrep-5.6/man/mysqldumpslow.1
index df980a5c..a44c2e44 100644
--- a/mysql-wsrep-5.6/man/mysqldumpslow.1
+++ b/mysql-wsrep-5.6/man/mysqldumpslow.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqldumpslow\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQLDUMPSLOW\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQLDUMPSLOW\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -98,7 +98,6 @@ supports the following options\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-help\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -128,8 +127,12 @@ and strings to
 .\}
 \fB\-\-debug\fR,
 \fB\-d\fR
-.sp
 Run in debug mode\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -310,13 +313,12 @@ queries in the output\&.
 .\}
 \fB\-\-verbose\fR,
 \fB\-v\fR
-.sp
 Verbose mode\&. Print more information about what the program does\&.
 .RE
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysqlhotcopy.1 b/mysql-wsrep-5.6/man/mysqlhotcopy.1
index aca3f953..b01b29d4 100644
--- a/mysql-wsrep-5.6/man/mysqlhotcopy.1
+++ b/mysql-wsrep-5.6/man/mysqlhotcopy.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqlhotcopy\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQLHOTCOPY\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQLHOTCOPY\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -137,7 +137,6 @@ Section\ \&4.2.2.2, \(lqUsing Option Files\(rq\&.
 .\}
 \fB\-\-help\fR,
 \fB\-?\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -150,7 +149,6 @@ Display a help message and exit\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-addtodest\fR
-.sp
 Do not rename target directory (if it exists); merely add files to it\&.
 .RE
 .sp
@@ -163,7 +161,6 @@ Do not rename target directory (if it exists); merely add files to it\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-allowold\fR
-.sp
 Do not abort if a target exists; rename it by adding an
 _old
 suffix\&.
@@ -178,7 +175,6 @@ suffix\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-checkpoint=\fR\fB\fIdb_name\fR\fR\fB\&.\fR\fB\fItbl_name\fR\fR
-.sp
 Insert checkpoint entries into the specified database
 \fIdb_name\fR
 and table
@@ -194,7 +190,6 @@ and table
 .IP \(bu 2.3
 .\}
 \fB\-\-chroot=\fR\fB\fIdir_name\fR\fR
-.sp
 Base directory of the
 \fBchroot\fR
 jail in which
@@ -216,8 +211,12 @@ option given to
 .IP \(bu 2.3
 .\}
 \fB\-\-debug\fR
-.sp
 Enable debug output\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -230,7 +229,6 @@ Enable debug output\&.
 .\}
 \fB\-\-dryrun\fR,
 \fB\-n\fR
-.sp
 Report actions without performing them\&.
 .RE
 .sp
@@ -243,7 +241,6 @@ Report actions without performing them\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-flushlog\fR
-.sp
 Flush logs after all tables are locked\&.
 .RE
 .sp
@@ -257,7 +254,6 @@ Flush logs after all tables are locked\&.
 .\}
 \fB\-\-host=\fR\fB\fIhost_name\fR\fR,
 \fB\-h \fR\fB\fIhost_name\fR\fR
-.sp
 The host name of the local host to use for making a TCP/IP connection to the local server\&. By default, the connection is made to
 localhost
 using a Unix socket file\&.
@@ -272,7 +268,6 @@ using a Unix socket file\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-keepold\fR
-.sp
 Do not delete previous (renamed) target when done\&.
 .RE
 .sp
@@ -285,7 +280,6 @@ Do not delete previous (renamed) target when done\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-method=\fR\fB\fIcommand\fR\fR
-.sp
 The method for copying files (cp
 or
 scp)\&. The default is
@@ -301,7 +295,6 @@ cp\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-noindices\fR
-.sp
 Do not include full index files for
 MyISAM
 tables in the backup\&. This makes the backup smaller and faster\&. The indexes for reloaded tables can be reconstructed later with
@@ -318,7 +311,6 @@ tables in the backup\&. This makes the backup smaller and faster\&. The indexes
 .\}
 \fB\-\-password=\fR\fB\fIpassword\fR\fR,
 \fB\-p\fR\fB\fIpassword\fR\fR
-.sp
 The password to use when connecting to the server\&. The password value is not optional for this option, unlike for other MySQL programs\&.
 .sp
 Specifying a password on the command line should be considered insecure\&. To avoid giving the password on the command line, use an option file\&. See
@@ -335,7 +327,6 @@ Section\ \&6.1.2.1, \(lqEnd-User Guidelines for Password Security\(rq\&.
 .\}
 \fB\-\-port=\fR\fB\fIport_num\fR\fR,
 \fB\-P \fR\fB\fIport_num\fR\fR
-.sp
 The TCP/IP port number to use when connecting to the local server\&.
 .RE
 .sp
@@ -348,7 +339,6 @@ The TCP/IP port number to use when connecting to the local server\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-old_server\fR
-.sp
 In MySQL 5\&.6,
 \fBmysqlhotcopy\fR
 uses
@@ -368,7 +358,6 @@ option if the server is older than 5\&.5\&.3, which is when that statement was i
 .\}
 \fB\-\-quiet\fR,
 \fB\-q\fR
-.sp
 Be silent except for errors\&.
 .RE
 .sp
@@ -381,8 +370,7 @@ Be silent except for errors\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-record_log_pos=\fR\fB\fIdb_name\fR\fR\fB\&.\fR\fB\fItbl_name\fR\fR
-.sp
-Record master and slave status in the specified database
+Record source and replica status in the specified database
 \fIdb_name\fR
 and table
 \fItbl_name\fR\&.
@@ -397,7 +385,6 @@ and table
 .IP \(bu 2.3
 .\}
 \fB\-\-regexp=\fR\fB\fIexpr\fR\fR
-.sp
 Copy all databases with names that match the given regular expression\&.
 .RE
 .sp
@@ -410,7 +397,6 @@ Copy all databases with names that match the given regular expression\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-resetmaster\fR
-.sp
 Reset the binary log after locking all the tables\&.
 .RE
 .sp
@@ -423,8 +409,7 @@ Reset the binary log after locking all the tables\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-resetslave\fR
-.sp
-Reset the master info repository file or table after locking all the tables\&.
+Reset the source info repository file or table after locking all the tables\&.
 .RE
 .sp
 .RS 4
@@ -437,7 +422,6 @@ Reset the master info repository file or table after locking all the tables\&.
 .\}
 \fB\-\-socket=\fR\fB\fIpath\fR\fR,
 \fB\-S \fR\fB\fIpath\fR\fR
-.sp
 The Unix socket file to use for connections to
 localhost\&.
 .RE
@@ -451,7 +435,6 @@ localhost\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-suffix=\fR\fB\fIstr\fR\fR
-.sp
 The suffix to use for names of copied databases\&.
 .RE
 .sp
@@ -464,7 +447,6 @@ The suffix to use for names of copied databases\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-tmpdir=\fR\fB\fIdir_name\fR\fR
-.sp
 The temporary directory\&. The default is
 /tmp\&.
 .RE
@@ -479,7 +461,6 @@ The temporary directory\&. The default is
 .\}
 \fB\-\-user=\fR\fB\fIuser_name\fR\fR,
 \fB\-u \fR\fB\fIuser_name\fR\fR
-.sp
 The MySQL user name to use when connecting to the server\&.
 .RE
 .PP
@@ -505,7 +486,7 @@ shell> \fBperldoc mysqlhotcopy\fR
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysqlimport.1 b/mysql-wsrep-5.6/man/mysqlimport.1
index 6fe393a2..c1eb4935 100644
--- a/mysql-wsrep-5.6/man/mysqlimport.1
+++ b/mysql-wsrep-5.6/man/mysqlimport.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqlimport\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQLIMPORT\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQLIMPORT\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -43,7 +43,7 @@ SQL statement\&. Most options to
 correspond directly to clauses of
 LOAD DATA
 syntax\&. See
-Section\ \&13.2.6, \(lqLOAD DATA Syntax\(rq\&.
+Section\ \&13.2.6, \(lqLOAD DATA Statement\(rq\&.
 .PP
 Invoke
 \fBmysqlimport\fR
@@ -86,7 +86,6 @@ Section\ \&4.2.2.2, \(lqUsing Option Files\(rq\&.
 .\}
 \fB\-\-help\fR,
 \fB\-?\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -99,7 +98,6 @@ Display a help message and exit\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-bind\-address=\fR\fB\fIip_address\fR\fR
-.sp
 On a computer having multiple network interfaces, use this option to select which interface to use for connecting to the MySQL server\&.
 .RE
 .sp
@@ -112,9 +110,8 @@ On a computer having multiple network interfaces, use this option to select whic
 .IP \(bu 2.3
 .\}
 \fB\-\-character\-sets\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The directory where character sets are installed\&. See
-Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
+Section\ \&10.15, \(lqCharacter Set Configuration\(rq\&.
 .RE
 .sp
 .RS 4
@@ -127,7 +124,6 @@ Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
 .\}
 \fB\-\-columns=\fR\fB\fIcolumn_list\fR\fR,
 \fB\-c \fR\fB\fIcolumn_list\fR\fR
-.sp
 This option takes a list of comma\-separated column names as its value\&. The order of the column names indicates how to match data file columns with table columns\&.
 .RE
 .sp
@@ -141,9 +137,8 @@ This option takes a list of comma\-separated column names as its value\&. The or
 .\}
 \fB\-\-compress\fR,
 \fB\-C\fR
-.sp
 Compress all information sent between the client and the server if possible\&. See
-Section\ \&4.2.5, \(lqConnection Compression Control\(rq\&.
+Section\ \&4.2.6, \(lqConnection Compression Control\(rq\&.
 .RE
 .sp
 .RS 4
@@ -156,12 +151,16 @@ Section\ \&4.2.5, \(lqConnection Compression Control\(rq\&.
 .\}
 \fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR,
 \fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR
-.sp
 Write a debugging log\&. A typical
 \fIdebug_options\fR
 string is
 d:t:o,\fIfile_name\fR\&. The default is
 d:t:o\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -173,8 +172,12 @@ d:t:o\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-debug\-check\fR
-.sp
 Print some debugging information when the program exits\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -186,8 +189,12 @@ Print some debugging information when the program exits\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-debug\-info\fR
-.sp
 Print debugging information and memory and CPU usage statistics when the program exits\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -199,11 +206,10 @@ Print debugging information and memory and CPU usage statistics when the program
 .IP \(bu 2.3
 .\}
 \fB\-\-default\-character\-set=\fR\fB\fIcharset_name\fR\fR
-.sp
 Use
 \fIcharset_name\fR
 as the default character set\&. See
-Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
+Section\ \&10.15, \(lqCharacter Set Configuration\(rq\&.
 .RE
 .sp
 .RS 4
@@ -215,7 +221,6 @@ Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-default\-auth=\fR\fB\fIplugin\fR\fR
-.sp
 A hint about which client\-side authentication plugin to use\&. See
 Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .RE
@@ -229,7 +234,6 @@ Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-extra\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Read this option file after the global option file but (on Unix) before the user option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -247,7 +251,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Use only the given option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -269,7 +272,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-group\-suffix=\fR\fB\fIstr\fR\fR
-.sp
 Read not only the usual option groups, but also groups with the usual names and a suffix of
 \fIstr\fR\&. For example,
 \fBmysqlimport\fR
@@ -301,7 +303,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-delete\fR,
 \fB\-D\fR
-.sp
 Empty the table before importing the text file\&.
 .RE
 .sp
@@ -314,7 +315,6 @@ Empty the table before importing the text file\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-enable\-cleartext\-plugin\fR
-.sp
 Enable the
 mysql_clear_password
 cleartext authentication plugin\&. (See
@@ -335,10 +335,9 @@ This option was added in MySQL 5\&.6\&.28\&.
 \fB\-\-fields\-enclosed\-by=\&.\&.\&.\fR,
 \fB\-\-fields\-optionally\-enclosed\-by=\&.\&.\&.\fR,
 \fB\-\-fields\-escaped\-by=\&.\&.\&.\fR
-.sp
 These options have the same meaning as the corresponding clauses for
 LOAD DATA\&. See
-Section\ \&13.2.6, \(lqLOAD DATA Syntax\(rq\&.
+Section\ \&13.2.6, \(lqLOAD DATA Statement\(rq\&.
 .RE
 .sp
 .RS 4
@@ -351,7 +350,6 @@ Section\ \&13.2.6, \(lqLOAD DATA Syntax\(rq\&.
 .\}
 \fB\-\-force\fR,
 \fB\-f\fR
-.sp
 Ignore errors\&. For example, if a table for a text file does not exist, continue processing any remaining files\&. Without
 \fB\-\-force\fR,
 \fBmysqlimport\fR
@@ -368,7 +366,6 @@ exits if a table does not exist\&.
 .\}
 \fB\-\-host=\fR\fB\fIhost_name\fR\fR,
 \fB\-h \fR\fB\fIhost_name\fR\fR
-.sp
 Import data to the MySQL server on the given host\&. The default host is
 localhost\&.
 .RE
@@ -383,7 +380,6 @@ localhost\&.
 .\}
 \fB\-\-ignore\fR,
 \fB\-i\fR
-.sp
 See the description for the
 \fB\-\-replace\fR
 option\&.
@@ -398,7 +394,6 @@ option\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-ignore\-lines=\fR\fB\fIN\fR\fR
-.sp
 Ignore the first
 \fIN\fR
 lines of the data file\&.
@@ -413,11 +408,10 @@ lines of the data file\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-lines\-terminated\-by=\&.\&.\&.\fR
-.sp
 This option has the same meaning as the corresponding clause for
 LOAD DATA\&. For example, to import Windows files that have lines terminated with carriage return/linefeed pairs, use
 \fB\-\-lines\-terminated\-by="\er\en"\fR\&. (You might have to double the backslashes, depending on the escaping conventions of your command interpreter\&.) See
-Section\ \&13.2.6, \(lqLOAD DATA Syntax\(rq\&.
+Section\ \&13.2.6, \(lqLOAD DATA Statement\(rq\&.
 .RE
 .sp
 .RS 4
@@ -430,11 +424,16 @@ Section\ \&13.2.6, \(lqLOAD DATA Syntax\(rq\&.
 .\}
 \fB\-\-local\fR,
 \fB\-L\fR
-.sp
 By default, files are read by the server on the server host\&. With this option,
 \fBmysqlimport\fR
-reads input files locally on the client host\&. Enabling local data loading also requires that the server permits it; see
-Section\ \&6.1.6, \(lqSecurity Issues with LOAD DATA LOCAL\(rq
+reads input files locally on the client host\&.
+.sp
+Successful use of
+LOCAL
+load operations within
+\fBmysqlimport\fR
+also requires that the server permits local loading; see
+Section\ \&6.1.6, \(lqSecurity Considerations for LOAD DATA LOCAL\(rq
 .RE
 .sp
 .RS 4
@@ -447,7 +446,6 @@ Section\ \&6.1.6, \(lqSecurity Issues with LOAD DATA LOCAL\(rq
 .\}
 \fB\-\-lock\-tables\fR,
 \fB\-l\fR
-.sp
 Lock
 \fIall\fR
 tables for writing before processing any text files\&. This ensures that all tables are synchronized on the server\&.
@@ -462,7 +460,6 @@ tables for writing before processing any text files\&. This ensures that all tab
 .IP \(bu 2.3
 .\}
 \fB\-\-login\-path=\fR\fB\fIname\fR\fR
-.sp
 Read options from the named login path in the
 \&.mylogin\&.cnf
 login path file\&. A
@@ -485,7 +482,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-low\-priority\fR
-.sp
 Use
 LOW_PRIORITY
 when loading the table\&. This affects only storage engines that use only table\-level locking (such as
@@ -503,7 +499,6 @@ MERGE)\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-no\-defaults\fR
-.sp
 Do not read any option files\&. If program startup fails due to reading unknown options from an option file,
 \fB\-\-no\-defaults\fR
 can be used to prevent them from being read\&.
@@ -532,7 +527,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR,
 \fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR
-.sp
 The password of the MySQL account used for connecting to the server\&. The password value is optional\&. If not given,
 \fBmysqlimport\fR
 prompts for one\&. If given, there must be
@@ -563,7 +557,6 @@ option\&.
 .\}
 \fB\-\-pipe\fR,
 \fB\-W\fR
-.sp
 On Windows, connect to the server using a named pipe\&. This option applies only if the server was started with the
 named_pipe
 system variable enabled to support named\-pipe connections\&. In addition, the user making the connection must be a member of the Windows group specified by the
@@ -580,7 +573,6 @@ system variable\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-plugin\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The directory in which to look for plugins\&. Specify this option if the
 \fB\-\-default\-auth\fR
 option is used to specify an authentication plugin but
@@ -599,7 +591,6 @@ Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .\}
 \fB\-\-port=\fR\fB\fIport_num\fR\fR,
 \fB\-P \fR\fB\fIport_num\fR\fR
-.sp
 For TCP/IP connections, the port number to use\&.
 .RE
 .sp
@@ -612,7 +603,6 @@ For TCP/IP connections, the port number to use\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-print\-defaults\fR
-.sp
 Print the program name and all options that it gets from option files\&.
 .sp
 For additional information about this and other option\-file options, see
@@ -628,9 +618,8 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR
-.sp
-The connection protocol to use for connecting to the server\&. It is useful when the other connection parameters normally result in use of a protocol other than the one you want\&. For details on the permissible values, see
-Section\ \&4.2.4, \(lqConnecting to the MySQL Server Using Command Options\(rq\&.
+The transport protocol to use for connecting to the server\&. It is useful when the other connection parameters normally result in use of a protocol other than the one you want\&. For details on the permissible values, see
+Section\ \&4.2.5, \(lqConnection Transport Protocols\(rq\&.
 .RE
 .sp
 .RS 4
@@ -643,7 +632,6 @@ Section\ \&4.2.4, \(lqConnecting to the MySQL Server Using Command Options\(rq\&
 .\}
 \fB\-\-replace\fR,
 \fB\-r\fR
-.sp
 The
 \fB\-\-replace\fR
 and
@@ -662,7 +650,6 @@ options control handling of input rows that duplicate existing rows on unique ke
 .IP \(bu 2.3
 .\}
 \fB\-\-secure\-auth\fR
-.sp
 Do not send passwords to the server in old (pre\-4\&.1) format\&. This prevents connections except for servers that use the newer password format\&. This option is enabled by default; use
 \fB\-\-skip\-secure\-auth\fR
 to disable it\&. This option was added in MySQL 5\&.6\&.17\&.
@@ -678,7 +665,7 @@ to disable it\&. This option was added in MySQL 5\&.6\&.17\&.
 \fBNote\fR
 .ps -1
 .br
-Passwords that use the pre\-4\&.1 hashing method are less secure than passwords that use the native password hashing method and should be avoided\&. Pre\-4\&.1 passwords are deprecated and support for them will be removed in a future MySQL release\&. For account upgrade instructions, see
+Passwords that use the pre\-4\&.1 hashing method are less secure than passwords that use the native password hashing method and should be avoided\&. Pre\-4\&.1 passwords are deprecated; expect support for them to be removed in a future MySQL release\&. For account upgrade instructions, see
 Section\ \&6.4.1.3, \(lqMigrating Away from Pre-4.1 Password Hashing and the mysql_old_password Plugin\(rq\&.
 .sp .5v
 .RE
@@ -694,7 +681,7 @@ Section\ \&6.4.1.3, \(lqMigrating Away from Pre-4.1 Password Hashing and the mys
 \fBNote\fR
 .ps -1
 .br
-This option is deprecated and will be removed in a future release\&. As of MySQL 5\&.7\&.5, it is always enabled and attempting to disable it produces an error\&.
+This option is deprecated; expect it to be removed in a future release\&. As of MySQL 5\&.7\&.5, it is always enabled and attempting to disable it produces an error\&.
 .sp .5v
 .RE
 .RE
@@ -708,8 +695,7 @@ This option is deprecated and will be removed in a future release\&. As of MySQL
 .IP \(bu 2.3
 .\}
 \fB\-\-shared\-memory\-base\-name=\fR\fB\fIname\fR\fR
-.sp
-On Windows, the shared\-memory name to use, for connections made using shared memory to a local server\&. The default value is
+On Windows, the shared\-memory name to use for connections made using shared memory to a local server\&. The default value is
 MYSQL\&. The shared\-memory name is case\-sensitive\&.
 .sp
 This option applies only if the server was started with the
@@ -727,7 +713,6 @@ system variable enabled to support shared\-memory connections\&.
 .\}
 \fB\-\-silent\fR,
 \fB\-s\fR
-.sp
 Silent mode\&. Produce output only when errors occur\&.
 .RE
 .sp
@@ -741,7 +726,6 @@ Silent mode\&. Produce output only when errors occur\&.
 .\}
 \fB\-\-socket=\fR\fB\fIpath\fR\fR,
 \fB\-S \fR\fB\fIpath\fR\fR
-.sp
 For connections to
 localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&.
 .sp
@@ -761,7 +745,6 @@ system variable\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-ssl*\fR
-.sp
 Options that begin with
 \fB\-\-ssl\fR
 specify whether to connect to the server using SSL and indicate where to find SSL keys and certificates\&. See
@@ -778,7 +761,6 @@ the section called \(lqCommand Options for Encrypted Connections\(rq\&.
 .\}
 \fB\-\-user=\fR\fB\fIuser_name\fR\fR,
 \fB\-u \fR\fB\fIuser_name\fR\fR
-.sp
 The user name of the MySQL account to use for connecting to the server\&.
 .RE
 .sp
@@ -791,7 +773,6 @@ The user name of the MySQL account to use for connecting to the server\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-use\-threads=\fR\fB\fIN\fR\fR
-.sp
 Load files in parallel using
 \fIN\fR
 threads\&.
@@ -807,7 +788,6 @@ threads\&.
 .\}
 \fB\-\-verbose\fR,
 \fB\-v\fR
-.sp
 Verbose mode\&. Print more information about what the program does\&.
 .RE
 .sp
@@ -821,7 +801,6 @@ Verbose mode\&. Print more information about what the program does\&.
 .\}
 \fB\-\-version\fR,
 \fB\-V\fR
-.sp
 Display version information and exit\&.
 .RE
 .PP
@@ -861,7 +840,7 @@ shell> \fBmysql \-e \*(AqSELECT * FROM imptest\*(Aq test\fR
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysqlshow.1 b/mysql-wsrep-5.6/man/mysqlshow.1
index 07fb5ed7..c54cdeb6 100644
--- a/mysql-wsrep-5.6/man/mysqlshow.1
+++ b/mysql-wsrep-5.6/man/mysqlshow.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqlshow\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQLSHOW\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQLSHOW\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -42,7 +42,7 @@ client can be used to quickly see which databases exist, their tables, or a tabl
 provides a command\-line interface to several SQL
 SHOW
 statements\&. See
-Section\ \&13.7.5, \(lqSHOW Syntax\(rq\&. The same information can be obtained by using those statements directly\&. For example, you can issue them from the
+Section\ \&13.7.5, \(lqSHOW Statements\(rq\&. The same information can be obtained by using those statements directly\&. For example, you can issue them from the
 \fBmysql\fR
 client program\&.
 .PP
@@ -132,7 +132,6 @@ Section\ \&4.2.2.2, \(lqUsing Option Files\(rq\&.
 .\}
 \fB\-\-help\fR,
 \fB\-?\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -145,7 +144,6 @@ Display a help message and exit\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-bind\-address=\fR\fB\fIip_address\fR\fR
-.sp
 On a computer having multiple network interfaces, use this option to select which interface to use for connecting to the MySQL server\&.
 .RE
 .sp
@@ -158,9 +156,8 @@ On a computer having multiple network interfaces, use this option to select whic
 .IP \(bu 2.3
 .\}
 \fB\-\-character\-sets\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The directory where character sets are installed\&. See
-Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
+Section\ \&10.15, \(lqCharacter Set Configuration\(rq\&.
 .RE
 .sp
 .RS 4
@@ -173,9 +170,8 @@ Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
 .\}
 \fB\-\-compress\fR,
 \fB\-C\fR
-.sp
 Compress all information sent between the client and the server if possible\&. See
-Section\ \&4.2.5, \(lqConnection Compression Control\(rq\&.
+Section\ \&4.2.6, \(lqConnection Compression Control\(rq\&.
 .RE
 .sp
 .RS 4
@@ -187,7 +183,6 @@ Section\ \&4.2.5, \(lqConnection Compression Control\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-count\fR
-.sp
 Show the number of rows per table\&. This can be slow for non\-MyISAM
 tables\&.
 .RE
@@ -202,12 +197,16 @@ tables\&.
 .\}
 \fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR,
 \fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR
-.sp
 Write a debugging log\&. A typical
 \fIdebug_options\fR
 string is
 d:t:o,\fIfile_name\fR\&. The default is
 d:t:o\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -219,8 +218,12 @@ d:t:o\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-debug\-check\fR
-.sp
 Print some debugging information when the program exits\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -232,8 +235,12 @@ Print some debugging information when the program exits\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-debug\-info\fR
-.sp
 Print debugging information and memory and CPU usage statistics when the program exits\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -245,11 +252,10 @@ Print debugging information and memory and CPU usage statistics when the program
 .IP \(bu 2.3
 .\}
 \fB\-\-default\-character\-set=\fR\fB\fIcharset_name\fR\fR
-.sp
 Use
 \fIcharset_name\fR
 as the default character set\&. See
-Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
+Section\ \&10.15, \(lqCharacter Set Configuration\(rq\&.
 .RE
 .sp
 .RS 4
@@ -261,7 +267,6 @@ Section\ \&10.14, \(lqCharacter Set Configuration\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-default\-auth=\fR\fB\fIplugin\fR\fR
-.sp
 A hint about which client\-side authentication plugin to use\&. See
 Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .RE
@@ -275,7 +280,6 @@ Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-extra\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Read this option file after the global option file but (on Unix) before the user option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -293,7 +297,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Use only the given option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -315,7 +318,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-group\-suffix=\fR\fB\fIstr\fR\fR
-.sp
 Read not only the usual option groups, but also groups with the usual names and a suffix of
 \fIstr\fR\&. For example,
 \fBmysqlshow\fR
@@ -346,7 +348,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-enable\-cleartext\-plugin\fR
-.sp
 Enable the
 mysql_clear_password
 cleartext authentication plugin\&. (See
@@ -365,7 +366,6 @@ This option was added in MySQL 5\&.6\&.28\&.
 .\}
 \fB\-\-host=\fR\fB\fIhost_name\fR\fR,
 \fB\-h \fR\fB\fIhost_name\fR\fR
-.sp
 Connect to the MySQL server on the given host\&.
 .RE
 .sp
@@ -379,7 +379,6 @@ Connect to the MySQL server on the given host\&.
 .\}
 \fB\-\-keys\fR,
 \fB\-k\fR
-.sp
 Show table indexes\&.
 .RE
 .sp
@@ -392,7 +391,6 @@ Show table indexes\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-login\-path=\fR\fB\fIname\fR\fR
-.sp
 Read options from the named login path in the
 \&.mylogin\&.cnf
 login path file\&. A
@@ -415,7 +413,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-no\-defaults\fR
-.sp
 Do not read any option files\&. If program startup fails due to reading unknown options from an option file,
 \fB\-\-no\-defaults\fR
 can be used to prevent them from being read\&.
@@ -444,7 +441,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR,
 \fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR
-.sp
 The password of the MySQL account used for connecting to the server\&. The password value is optional\&. If not given,
 \fBmysqlshow\fR
 prompts for one\&. If given, there must be
@@ -475,7 +471,6 @@ option\&.
 .\}
 \fB\-\-pipe\fR,
 \fB\-W\fR
-.sp
 On Windows, connect to the server using a named pipe\&. This option applies only if the server was started with the
 named_pipe
 system variable enabled to support named\-pipe connections\&. In addition, the user making the connection must be a member of the Windows group specified by the
@@ -492,7 +487,6 @@ system variable\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-plugin\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The directory in which to look for plugins\&. Specify this option if the
 \fB\-\-default\-auth\fR
 option is used to specify an authentication plugin but
@@ -511,7 +505,6 @@ Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .\}
 \fB\-\-port=\fR\fB\fIport_num\fR\fR,
 \fB\-P \fR\fB\fIport_num\fR\fR
-.sp
 For TCP/IP connections, the port number to use\&.
 .RE
 .sp
@@ -524,7 +517,6 @@ For TCP/IP connections, the port number to use\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-print\-defaults\fR
-.sp
 Print the program name and all options that it gets from option files\&.
 .sp
 For additional information about this and other option\-file options, see
@@ -540,9 +532,8 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR
-.sp
-The connection protocol to use for connecting to the server\&. It is useful when the other connection parameters normally result in use of a protocol other than the one you want\&. For details on the permissible values, see
-Section\ \&4.2.4, \(lqConnecting to the MySQL Server Using Command Options\(rq\&.
+The transport protocol to use for connecting to the server\&. It is useful when the other connection parameters normally result in use of a protocol other than the one you want\&. For details on the permissible values, see
+Section\ \&4.2.5, \(lqConnection Transport Protocols\(rq\&.
 .RE
 .sp
 .RS 4
@@ -554,7 +545,6 @@ Section\ \&4.2.4, \(lqConnecting to the MySQL Server Using Command Options\(rq\&
 .IP \(bu 2.3
 .\}
 \fB\-\-secure\-auth\fR
-.sp
 Do not send passwords to the server in old (pre\-4\&.1) format\&. This prevents connections except for servers that use the newer password format\&. This option is enabled by default; use
 \fB\-\-skip\-secure\-auth\fR
 to disable it\&. This option was added in MySQL 5\&.6\&.17\&.
@@ -570,7 +560,7 @@ to disable it\&. This option was added in MySQL 5\&.6\&.17\&.
 \fBNote\fR
 .ps -1
 .br
-Passwords that use the pre\-4\&.1 hashing method are less secure than passwords that use the native password hashing method and should be avoided\&. Pre\-4\&.1 passwords are deprecated and support for them will be removed in a future MySQL release\&. For account upgrade instructions, see
+Passwords that use the pre\-4\&.1 hashing method are less secure than passwords that use the native password hashing method and should be avoided\&. Pre\-4\&.1 passwords are deprecated; expect support for them to be removed in a future MySQL release\&. For account upgrade instructions, see
 Section\ \&6.4.1.3, \(lqMigrating Away from Pre-4.1 Password Hashing and the mysql_old_password Plugin\(rq\&.
 .sp .5v
 .RE
@@ -586,7 +576,7 @@ Section\ \&6.4.1.3, \(lqMigrating Away from Pre-4.1 Password Hashing and the mys
 \fBNote\fR
 .ps -1
 .br
-This option is deprecated and will be removed in a future release\&. As of MySQL 5\&.7\&.5, it is always enabled and attempting to disable it produces an error\&.
+This option is deprecated; expect it to be removed in a future release\&. As of MySQL 5\&.7\&.5, it is always enabled and attempting to disable it produces an error\&.
 .sp .5v
 .RE
 .RE
@@ -600,8 +590,7 @@ This option is deprecated and will be removed in a future release\&. As of MySQL
 .IP \(bu 2.3
 .\}
 \fB\-\-shared\-memory\-base\-name=\fR\fB\fIname\fR\fR
-.sp
-On Windows, the shared\-memory name to use, for connections made using shared memory to a local server\&. The default value is
+On Windows, the shared\-memory name to use for connections made using shared memory to a local server\&. The default value is
 MYSQL\&. The shared\-memory name is case\-sensitive\&.
 .sp
 This option applies only if the server was started with the
@@ -619,7 +608,6 @@ system variable enabled to support shared\-memory connections\&.
 .\}
 \fB\-\-show\-table\-type\fR,
 \fB\-t\fR
-.sp
 Show a column indicating the table type, as in
 SHOW FULL TABLES\&. The type is
 BASE TABLE
@@ -637,7 +625,6 @@ VIEW\&.
 .\}
 \fB\-\-socket=\fR\fB\fIpath\fR\fR,
 \fB\-S \fR\fB\fIpath\fR\fR
-.sp
 For connections to
 localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&.
 .sp
@@ -657,7 +644,6 @@ system variable\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-ssl*\fR
-.sp
 Options that begin with
 \fB\-\-ssl\fR
 specify whether to connect to the server using SSL and indicate where to find SSL keys and certificates\&. See
@@ -674,7 +660,6 @@ the section called \(lqCommand Options for Encrypted Connections\(rq\&.
 .\}
 \fB\-\-status\fR,
 \fB\-i\fR
-.sp
 Display extra information about each table\&.
 .RE
 .sp
@@ -688,7 +673,6 @@ Display extra information about each table\&.
 .\}
 \fB\-\-user=\fR\fB\fIuser_name\fR\fR,
 \fB\-u \fR\fB\fIuser_name\fR\fR
-.sp
 The user name of the MySQL account to use for connecting to the server\&.
 .RE
 .sp
@@ -702,7 +686,6 @@ The user name of the MySQL account to use for connecting to the server\&.
 .\}
 \fB\-\-verbose\fR,
 \fB\-v\fR
-.sp
 Verbose mode\&. Print more information about what the program does\&. This option can be used multiple times to increase the amount of information\&.
 .RE
 .sp
@@ -716,13 +699,12 @@ Verbose mode\&. Print more information about what the program does\&. This optio
 .\}
 \fB\-\-version\fR,
 \fB\-V\fR
-.sp
 Display version information and exit\&.
 .RE
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/mysqlslap.1 b/mysql-wsrep-5.6/man/mysqlslap.1
index f77551e3..eb3986f9 100644
--- a/mysql-wsrep-5.6/man/mysqlslap.1
+++ b/mysql-wsrep-5.6/man/mysqlslap.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqlslap\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBMYSQLSLAP\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBMYSQLSLAP\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -28,7 +28,7 @@
 .\" * MAIN CONTENT STARTS HERE *
 .\" -----------------------------------------------------------------
 .SH "NAME"
-mysqlslap \- load emulation client
+mysqlslap \- a load emulation client
 .SH "SYNOPSIS"
 .HP \w'\fBmysqlslap\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u
 \fBmysqlslap [\fR\fB\fIoptions\fR\fR\fB]\fR
@@ -140,7 +140,7 @@ file has multiple table creation statements delimited by
 and multiple insert statements delimited by
 \*(Aq;\*(Aq\&. The
 \fB\-\-query\fR
-file will have multiple queries delimited by
+file has multiple queries delimited by
 \*(Aq;\*(Aq\&. Run all the load statements, then run all the queries in the query file with five clients (five times each):
 .sp
 .if n \{\
@@ -173,7 +173,6 @@ Section\ \&4.2.2.2, \(lqUsing Option Files\(rq\&.
 .\}
 \fB\-\-help\fR,
 \fB\-?\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -187,7 +186,6 @@ Display a help message and exit\&.
 .\}
 \fB\-\-auto\-generate\-sql\fR,
 \fB\-a\fR
-.sp
 Generate SQL statements automatically when they are not supplied in files or using command options\&.
 .RE
 .sp
@@ -200,7 +198,6 @@ Generate SQL statements automatically when they are not supplied in files or usi
 .IP \(bu 2.3
 .\}
 \fB\-\-auto\-generate\-sql\-add\-autoincrement\fR
-.sp
 Add an
 AUTO_INCREMENT
 column to automatically generated tables\&.
@@ -215,7 +212,6 @@ column to automatically generated tables\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-auto\-generate\-sql\-execute\-number=\fR\fB\fIN\fR\fR
-.sp
 Specify how many queries to generate automatically\&.
 .RE
 .sp
@@ -228,7 +224,6 @@ Specify how many queries to generate automatically\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-auto\-generate\-sql\-guid\-primary\fR
-.sp
 Add a GUID\-based primary key to automatically generated tables\&.
 .RE
 .sp
@@ -241,7 +236,6 @@ Add a GUID\-based primary key to automatically generated tables\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-auto\-generate\-sql\-load\-type=\fR\fB\fItype\fR\fR
-.sp
 Specify the test load type\&. The permissible values are
 read
 (scan tables),
@@ -265,7 +259,6 @@ mixed\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-auto\-generate\-sql\-secondary\-indexes=\fR\fB\fIN\fR\fR
-.sp
 Specify how many secondary indexes to add to automatically generated tables\&. By default, none are added\&.
 .RE
 .sp
@@ -278,7 +271,6 @@ Specify how many secondary indexes to add to automatically generated tables\&. B
 .IP \(bu 2.3
 .\}
 \fB\-\-auto\-generate\-sql\-unique\-query\-number=\fR\fB\fIN\fR\fR
-.sp
 How many different queries to generate for automatic tests\&. For example, if you run a
 key
 test that performs 1000 selects, you can use this option with a value of 1000 to run 1000 unique queries, or with a value of 50 to perform 50 different selects\&. The default is 10\&.
@@ -293,7 +285,6 @@ test that performs 1000 selects, you can use this option with a value of 1000 to
 .IP \(bu 2.3
 .\}
 \fB\-\-auto\-generate\-sql\-unique\-write\-number=\fR\fB\fIN\fR\fR
-.sp
 How many different queries to generate for
 \fB\-\-auto\-generate\-sql\-write\-number\fR\&. The default is 10\&.
 .RE
@@ -307,7 +298,6 @@ How many different queries to generate for
 .IP \(bu 2.3
 .\}
 \fB\-\-auto\-generate\-sql\-write\-number=\fR\fB\fIN\fR\fR
-.sp
 How many row inserts to perform\&. The default is 100\&.
 .RE
 .sp
@@ -320,7 +310,6 @@ How many row inserts to perform\&. The default is 100\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-commit=\fR\fB\fIN\fR\fR
-.sp
 How many statements to execute before committing\&. The default is 0 (no commits are done)\&.
 .RE
 .sp
@@ -334,9 +323,8 @@ How many statements to execute before committing\&. The default is 0 (no commits
 .\}
 \fB\-\-compress\fR,
 \fB\-C\fR
-.sp
 Compress all information sent between the client and the server if possible\&. See
-Section\ \&4.2.5, \(lqConnection Compression Control\(rq\&.
+Section\ \&4.2.6, \(lqConnection Compression Control\(rq\&.
 .RE
 .sp
 .RS 4
@@ -349,7 +337,6 @@ Section\ \&4.2.5, \(lqConnection Compression Control\(rq\&.
 .\}
 \fB\-\-concurrency=\fR\fB\fIN\fR\fR,
 \fB\-c \fR\fB\fIN\fR\fR
-.sp
 The number of parallel clients to simulate\&.
 .RE
 .sp
@@ -362,7 +349,6 @@ The number of parallel clients to simulate\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-create=\fR\fB\fIvalue\fR\fR
-.sp
 The file or string containing the statement to use for creating the table\&.
 .RE
 .sp
@@ -375,7 +361,6 @@ The file or string containing the statement to use for creating the table\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-create\-schema=\fR\fB\fIvalue\fR\fR
-.sp
 The schema in which to run the tests\&.
 .if n \{\
 .sp
@@ -409,7 +394,6 @@ option as well\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-csv[=\fR\fB\fIfile_name\fR\fR\fB]\fR
-.sp
 Generate output in comma\-separated values format\&. The output goes to the named file, or to the standard output if no file is given\&.
 .RE
 .sp
@@ -423,12 +407,16 @@ Generate output in comma\-separated values format\&. The output goes to the name
 .\}
 \fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR,
 \fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR
-.sp
 Write a debugging log\&. A typical
 \fIdebug_options\fR
 string is
 d:t:o,\fIfile_name\fR\&. The default is
 d:t:o,/tmp/mysqlslap\&.trace\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -440,8 +428,12 @@ d:t:o,/tmp/mysqlslap\&.trace\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-debug\-check\fR
-.sp
 Print some debugging information when the program exits\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -454,8 +446,12 @@ Print some debugging information when the program exits\&.
 .\}
 \fB\-\-debug\-info\fR,
 \fB\-T\fR
-.sp
 Print debugging information and memory and CPU usage statistics when the program exits\&.
+.sp
+This option is available only if MySQL was built using
+\fBWITH_DEBUG\fR\&. MySQL release binaries provided by Oracle are
+\fInot\fR
+built using this option\&.
 .RE
 .sp
 .RS 4
@@ -467,7 +463,6 @@ Print debugging information and memory and CPU usage statistics when the program
 .IP \(bu 2.3
 .\}
 \fB\-\-default\-auth=\fR\fB\fIplugin\fR\fR
-.sp
 A hint about which client\-side authentication plugin to use\&. See
 Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .RE
@@ -481,7 +476,6 @@ Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-extra\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Read this option file after the global option file but (on Unix) before the user option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -499,7 +493,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR
-.sp
 Use only the given option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&.
 \fIfile_name\fR
 is interpreted relative to the current directory if given as a relative path name rather than a full path name\&.
@@ -521,7 +514,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-defaults\-group\-suffix=\fR\fB\fIstr\fR\fR
-.sp
 Read not only the usual option groups, but also groups with the usual names and a suffix of
 \fIstr\fR\&. For example,
 \fBmysqlslap\fR
@@ -553,7 +545,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-delimiter=\fR\fB\fIstr\fR\fR,
 \fB\-F \fR\fB\fIstr\fR\fR
-.sp
 The delimiter to use in SQL statements supplied in files or using command options\&.
 .RE
 .sp
@@ -566,7 +557,6 @@ The delimiter to use in SQL statements supplied in files or using command option
 .IP \(bu 2.3
 .\}
 \fB\-\-detach=\fR\fB\fIN\fR\fR
-.sp
 Detach (close and reopen) each connection after each
 \fIN\fR
 statements\&. The default is 0 (connections are not detached)\&.
@@ -581,7 +571,6 @@ statements\&. The default is 0 (connections are not detached)\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-enable\-cleartext\-plugin\fR
-.sp
 Enable the
 mysql_clear_password
 cleartext authentication plugin\&. (See
@@ -598,7 +587,6 @@ Section\ \&6.4.1.5, \(lqClient-Side Cleartext Pluggable Authentication\(rq\&.)
 .\}
 \fB\-\-engine=\fR\fB\fIengine_name\fR\fR,
 \fB\-e \fR\fB\fIengine_name\fR\fR
-.sp
 The storage engine to use for creating tables\&.
 .RE
 .sp
@@ -612,7 +600,6 @@ The storage engine to use for creating tables\&.
 .\}
 \fB\-\-host=\fR\fB\fIhost_name\fR\fR,
 \fB\-h \fR\fB\fIhost_name\fR\fR
-.sp
 Connect to the MySQL server on the given host\&.
 .RE
 .sp
@@ -626,7 +613,6 @@ Connect to the MySQL server on the given host\&.
 .\}
 \fB\-\-iterations=\fR\fB\fIN\fR\fR,
 \fB\-i \fR\fB\fIN\fR\fR
-.sp
 The number of times to run the tests\&.
 .RE
 .sp
@@ -639,7 +625,6 @@ The number of times to run the tests\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-login\-path=\fR\fB\fIname\fR\fR
-.sp
 Read options from the named login path in the
 \&.mylogin\&.cnf
 login path file\&. A
@@ -662,7 +647,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-no\-drop\fR
-.sp
 Prevent
 \fBmysqlslap\fR
 from dropping any schema it creates during the test run\&.
@@ -677,7 +661,6 @@ from dropping any schema it creates during the test run\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-no\-defaults\fR
-.sp
 Do not read any option files\&. If program startup fails due to reading unknown options from an option file,
 \fB\-\-no\-defaults\fR
 can be used to prevent them from being read\&.
@@ -706,7 +689,6 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .\}
 \fB\-\-number\-char\-cols=\fR\fB\fIN\fR\fR,
 \fB\-x \fR\fB\fIN\fR\fR
-.sp
 The number of
 VARCHAR
 columns to use if
@@ -724,7 +706,6 @@ is specified\&.
 .\}
 \fB\-\-number\-int\-cols=\fR\fB\fIN\fR\fR,
 \fB\-y \fR\fB\fIN\fR\fR
-.sp
 The number of
 INT
 columns to use if
@@ -741,7 +722,6 @@ is specified\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-number\-of\-queries=\fR\fB\fIN\fR\fR
-.sp
 Limit each client to approximately this many queries\&. Query counting takes into account the statement delimiter\&. For example, if you invoke
 \fBmysqlslap\fR
 as follows, the
@@ -769,7 +749,6 @@ shell> \fBmysqlslap \-\-delimiter=";" \-\-number\-of\-queries=10\fR
 .IP \(bu 2.3
 .\}
 \fB\-\-only\-print\fR
-.sp
 Do not connect to databases\&.
 \fBmysqlslap\fR
 only prints what it would have done\&.
@@ -785,7 +764,6 @@ only prints what it would have done\&.
 .\}
 \fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR,
 \fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR
-.sp
 The password of the MySQL account used for connecting to the server\&. The password value is optional\&. If not given,
 \fBmysqlslap\fR
 prompts for one\&. If given, there must be
@@ -816,7 +794,6 @@ option\&.
 .\}
 \fB\-\-pipe\fR,
 \fB\-W\fR
-.sp
 On Windows, connect to the server using a named pipe\&. This option applies only if the server was started with the
 named_pipe
 system variable enabled to support named\-pipe connections\&. In addition, the user making the connection must be a member of the Windows group specified by the
@@ -833,7 +810,6 @@ system variable\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-plugin\-dir=\fR\fB\fIdir_name\fR\fR
-.sp
 The directory in which to look for plugins\&. Specify this option if the
 \fB\-\-default\-auth\fR
 option is used to specify an authentication plugin but
@@ -852,7 +828,6 @@ Section\ \&6.2.11, \(lqPluggable Authentication\(rq\&.
 .\}
 \fB\-\-port=\fR\fB\fIport_num\fR\fR,
 \fB\-P \fR\fB\fIport_num\fR\fR
-.sp
 For TCP/IP connections, the port number to use\&.
 .RE
 .sp
@@ -865,7 +840,6 @@ For TCP/IP connections, the port number to use\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-post\-query=\fR\fB\fIvalue\fR\fR
-.sp
 The file or string containing the statement to execute after the tests have completed\&. This execution is not counted for timing purposes\&.
 .RE
 .sp
@@ -878,7 +852,6 @@ The file or string containing the statement to execute after the tests have comp
 .IP \(bu 2.3
 .\}
 \fB\-\-post\-system=\fR\fB\fIstr\fR\fR
-.sp
 The string to execute using
 system()
 after the tests have completed\&. This execution is not counted for timing purposes\&.
@@ -893,7 +866,6 @@ after the tests have completed\&. This execution is not counted for timing purpo
 .IP \(bu 2.3
 .\}
 \fB\-\-pre\-query=\fR\fB\fIvalue\fR\fR
-.sp
 The file or string containing the statement to execute before running the tests\&. This execution is not counted for timing purposes\&.
 .RE
 .sp
@@ -906,7 +878,6 @@ The file or string containing the statement to execute before running the tests\
 .IP \(bu 2.3
 .\}
 \fB\-\-pre\-system=\fR\fB\fIstr\fR\fR
-.sp
 The string to execute using
 system()
 before running the tests\&. This execution is not counted for timing purposes\&.
@@ -921,7 +892,6 @@ before running the tests\&. This execution is not counted for timing purposes\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-print\-defaults\fR
-.sp
 Print the program name and all options that it gets from option files\&.
 .sp
 For additional information about this and other option\-file options, see
@@ -937,9 +907,8 @@ Section\ \&4.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(r
 .IP \(bu 2.3
 .\}
 \fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR
-.sp
-The connection protocol to use for connecting to the server\&. It is useful when the other connection parameters normally result in use of a protocol other than the one you want\&. For details on the permissible values, see
-Section\ \&4.2.4, \(lqConnecting to the MySQL Server Using Command Options\(rq\&.
+The transport protocol to use for connecting to the server\&. It is useful when the other connection parameters normally result in use of a protocol other than the one you want\&. For details on the permissible values, see
+Section\ \&4.2.5, \(lqConnection Transport Protocols\(rq\&.
 .RE
 .sp
 .RS 4
@@ -952,7 +921,6 @@ Section\ \&4.2.4, \(lqConnecting to the MySQL Server Using Command Options\(rq\&
 .\}
 \fB\-\-query=\fR\fB\fIvalue\fR\fR,
 \fB\-q \fR\fB\fIvalue\fR\fR
-.sp
 The file or string containing the
 SELECT
 statement to use for retrieving data\&.
@@ -967,7 +935,6 @@ statement to use for retrieving data\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-secure\-auth\fR
-.sp
 Do not send passwords to the server in old (pre\-4\&.1) format\&. This prevents connections except for servers that use the newer password format\&. This option is enabled by default; use
 \fB\-\-skip\-secure\-auth\fR
 to disable it\&. This option was added in MySQL 5\&.6\&.17\&.
@@ -983,7 +950,7 @@ to disable it\&. This option was added in MySQL 5\&.6\&.17\&.
 \fBNote\fR
 .ps -1
 .br
-Passwords that use the pre\-4\&.1 hashing method are less secure than passwords that use the native password hashing method and should be avoided\&. Pre\-4\&.1 passwords are deprecated and support for them will be removed in a future MySQL release\&. For account upgrade instructions, see
+Passwords that use the pre\-4\&.1 hashing method are less secure than passwords that use the native password hashing method and should be avoided\&. Pre\-4\&.1 passwords are deprecated; expect support for them to be removed in a future MySQL release\&. For account upgrade instructions, see
 Section\ \&6.4.1.3, \(lqMigrating Away from Pre-4.1 Password Hashing and the mysql_old_password Plugin\(rq\&.
 .sp .5v
 .RE
@@ -999,7 +966,7 @@ Section\ \&6.4.1.3, \(lqMigrating Away from Pre-4.1 Password Hashing and the mys
 \fBNote\fR
 .ps -1
 .br
-This option is deprecated and will be removed in a future release\&. As of MySQL 5\&.7\&.5, it is always enabled and attempting to disable it produces an error\&.
+This option is deprecated; expect it to be removed in a future release\&. As of MySQL 5\&.7\&.5, it is always enabled and attempting to disable it produces an error\&.
 .sp .5v
 .RE
 .RE
@@ -1013,8 +980,7 @@ This option is deprecated and will be removed in a future release\&. As of MySQL
 .IP \(bu 2.3
 .\}
 \fB\-\-shared\-memory\-base\-name=\fR\fB\fIname\fR\fR
-.sp
-On Windows, the shared\-memory name to use, for connections made using shared memory to a local server\&. The default value is
+On Windows, the shared\-memory name to use for connections made using shared memory to a local server\&. The default value is
 MYSQL\&. The shared\-memory name is case\-sensitive\&.
 .sp
 This option applies only if the server was started with the
@@ -1032,7 +998,6 @@ system variable enabled to support shared\-memory connections\&.
 .\}
 \fB\-\-silent\fR,
 \fB\-s\fR
-.sp
 Silent mode\&. No output\&.
 .RE
 .sp
@@ -1046,7 +1011,6 @@ Silent mode\&. No output\&.
 .\}
 \fB\-\-socket=\fR\fB\fIpath\fR\fR,
 \fB\-S \fR\fB\fIpath\fR\fR
-.sp
 For connections to
 localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&.
 .sp
@@ -1066,7 +1030,6 @@ system variable\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-ssl*\fR
-.sp
 Options that begin with
 \fB\-\-ssl\fR
 specify whether to connect to the server using SSL and indicate where to find SSL keys and certificates\&. See
@@ -1083,7 +1046,6 @@ the section called \(lqCommand Options for Encrypted Connections\(rq\&.
 .\}
 \fB\-\-user=\fR\fB\fIuser_name\fR\fR,
 \fB\-u \fR\fB\fIuser_name\fR\fR
-.sp
 The user name of the MySQL account to use for connecting to the server\&.
 .RE
 .sp
@@ -1097,7 +1059,6 @@ The user name of the MySQL account to use for connecting to the server\&.
 .\}
 \fB\-\-verbose\fR,
 \fB\-v\fR
-.sp
 Verbose mode\&. Print more information about what the program does\&. This option can be used multiple times to increase the amount of information\&.
 .RE
 .sp
@@ -1111,13 +1072,12 @@ Verbose mode\&. Print more information about what the program does\&. This optio
 .\}
 \fB\-\-version\fR,
 \fB\-V\fR
-.sp
 Display version information and exit\&.
 .RE
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/ndb_mgmd.8 b/mysql-wsrep-5.6/man/ndb_mgmd.8
index bb9e1eb0..0d724738 100644
--- a/mysql-wsrep-5.6/man/ndb_mgmd.8
+++ b/mysql-wsrep-5.6/man/ndb_mgmd.8
@@ -2,12 +2,12 @@
 .\"     Title: \fBndb_mgmd\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBNDB_MGMD\FR" "8" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBNDB_MGMD\FR" "8" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -45,7 +45,7 @@ Options Common to NDB Cluster Programs(1)\&.
 .nr an-no-space-flag 1
 .nr an-break-flag 1
 .br
-.B Table\ \&18.305.\ \&Command\-line options for the ndb_mgmd program
+.B Table\ \&18.20.\ \&Command\-line options for the ndb_mgmd program
 .TS
 allbox tab(:);
 lB lB lB.
@@ -57,23 +57,23 @@ T}:T{
 Added, Deprecated, or Removed
 T}
 .T&
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l.
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l.
 T{
 .PP
 \fB \fR\fB--bind-address=host\fR\fB \fR
@@ -81,43 +81,39 @@ T}:T{
 Local bind address
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
 \fB \fR\fB--config-cache[=TRUE|FALSE]\fR\fB \fR
 T}:T{
-Enable the management server configuration cache; TRUE by default.
+Enable management server configuration cache; true by default
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
-\fB--config-file=file\fR
-(>=),
+\fB--config-file=file\fR,
 .PP
-\fB-f\fR
-(>=)
+\fB \fR\fB-f\fR\fB \fR
 T}:T{
-Specify the cluster configuration file; in NDB-6.4.0 and later, needs
-              --reload or --initial to override configuration cache if
-              present
+Specify cluster configuration file; also specify --reload or --initial
+              to override configuration cache if present
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
 \fB--configdir=directory\fR,
 .PP
-\fB--config-dir=directory\fR
-(>=7.0.8)
+\fB \fR\fB--config-dir=directory\fR\fB \fR
 T}:T{
-Specify the cluster management server's configuration cache directory
+Specify cluster management server configuration cache directory
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
@@ -128,27 +124,27 @@ T}:T{
 Run ndb_mgmd in daemon mode (default)
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
 \fB \fR\fB--initial\fR\fB \fR
 T}:T{
-Causes the management server reload its configuration data from the
-              configuration file, bypassing the configuration cache
+Causes management server to reload configuration data from configuration
+              file, bypassing configuration cache
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
 \fB \fR\fB--install[=name]\fR\fB \fR
 T}:T{
-Used to install the management server process as a Windows service. Does
-              not apply on non-Windows platforms.
+Used to install management server process as Windows service; does not
+              apply on other platforms
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
@@ -158,35 +154,34 @@ Run ndb_mgmd in interactive mode (not officially supported in
               production; for testing purposes only)
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
 \fB \fR\fB--log-name=name\fR\fB \fR
 T}:T{
-A name to use when writing messages applying to this node in the cluster
-              log.
+Name to use when writing cluster log messages applying to this node
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
 \fB \fR\fB--mycnf\fR\fB \fR
 T}:T{
-Read cluster configuration data from the my.cnf file
+Read cluster configuration data from my.cnf file
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
 \fB \fR\fB--no-nodeid-checks\fR\fB \fR
 T}:T{
-Do not provide any node id checks
+Do not provide any node ID checks
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
@@ -195,17 +190,17 @@ T}:T{
 Do not run ndb_mgmd as a daemon
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
 \fB \fR\fB--nowait-nodes=list\fR\fB \fR
 T}:T{
-Do not wait for these management nodes when starting this management
-              server. Also requires --ndb-nodeid to be used.
+Do not wait for management nodes specified when starting this management
+              server; requires --ndb-nodeid option
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
@@ -216,29 +211,28 @@ T}:T{
 Print full configuration and exit
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
 \fB \fR\fB--reload\fR\fB \fR
 T}:T{
-Causes the management server to compare the configuration file with its
+Causes management server to compare configuration file with
               configuration cache
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
 \fB \fR\fB--remove[=name]\fR\fB \fR
 T}:T{
-Used to remove a management server process that was previously installed
-              as a Windows service, optionally specifying the name of
-              the service to be removed. Does not apply on non-Windows
-              platforms.
+Used to remove management server process that was previously installed
+              as Windows service, optionally specifying name of service
+              to be removed; does not apply on other platforms
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
@@ -246,10 +240,10 @@ T{
 .PP
 \fB \fR\fB-v\fR\fB \fR
 T}:T{
-Write additional information to the log.
+Write additional information to log
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 .TE
 .sp 1
@@ -265,28 +259,21 @@ T}
 \fB\-\-bind\-address=\fR\fB\fIhost\fR\fR
 .TS
 allbox tab(:);
-lB lB.
+lB l
+lB l
+lB l.
 T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
-T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --bind-address=host
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 String
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 [none]
 T}
@@ -306,28 +293,21 @@ Causes the management server to bind to a specific network interface (host name
 \fB\-\-config\-cache\fR
 .TS
 allbox tab(:);
-lB lB.
+lB l
+lB l
+lB l.
 T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
-T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --config-cache[=TRUE|FALSE]
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Boolean
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 TRUE
 T}
@@ -461,28 +441,21 @@ is used\&. (Bug #13428853)
 \fB\-f \fR\fB\fIfilename\fR\fR
 .TS
 allbox tab(:);
-lB lB.
-T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
+lB l
+lB l
+lB l.
 T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --config-file=file
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 File name
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 [none]
 T}
@@ -522,18 +495,11 @@ caused removal of the configuration cache even if the file was not found\&. This
 \fB\-\-configdir=\fR\fB\fIdir_name\fR\fR
 .TS
 allbox tab(:);
-lB lB.
+lB l
+lB l
+lB l.
 T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
-T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 .PP
 --configdir=directory
@@ -541,12 +507,12 @@ T}:T{
 --config-dir=directory
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 File name
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 $INSTALLDIR/mysql-cluster
 T}
@@ -569,28 +535,21 @@ is an alias for this option\&.
 \fB\-d\fR
 .TS
 allbox tab(:);
-lB lB.
+lB l
+lB l
+lB l.
 T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
-T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --daemon
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Boolean
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 TRUE
 T}
@@ -616,28 +575,21 @@ on Windows platforms\&.
 \fB\-\-initial\fR
 .TS
 allbox tab(:);
-lB lB.
+lB l
+lB l
+lB l.
 T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
-T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --initial
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Boolean
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 FALSE
 T}
@@ -681,34 +633,27 @@ option caused removal of the configuration cache even if the file was not found\
 \fB\-\-install[=\fR\fB\fIname\fR\fR\fB]\fR
 .TS
 allbox tab(:);
-lB lB.
+lB l
+lB l
+lB l
+lB l.
 T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l
-l l.
-T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --install[=name]
 T}
 T{
-\fBPlatform Specific\fR
+Platform Specific
 T}:T{
 Windows
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 String
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 ndb_mgmd
 T}
@@ -750,28 +695,21 @@ option has no effect on non\-Windows platforms\&.
 \fB\-\-interactive\fR
 .TS
 allbox tab(:);
-lB lB.
-T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
+lB l
+lB l
+lB l.
 T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --interactive
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Boolean
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 FALSE
 T}
@@ -795,28 +733,21 @@ client session is started as soon as the management server is running\&. This op
 \fB\-\-log\-name=\fR\fB\fIname\fR\fR
 .TS
 allbox tab(:);
-lB lB.
+lB l
+lB l
+lB l.
 T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
-T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --log-name=name
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 String
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 MgmtSrvr
 T}
@@ -836,28 +767,21 @@ Provides a name to be used for this node in the cluster log\&.
 \fB\-\-mycnf\fR
 .TS
 allbox tab(:);
-lB lB.
-T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
+lB l
+lB l
+lB l.
 T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --mycnf
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Boolean
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 FALSE
 T}
@@ -879,28 +803,21 @@ file\&.
 \fB\-\-no\-nodeid\-checks\fR
 .TS
 allbox tab(:);
-lB lB.
-T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
+lB l
+lB l
+lB l.
 T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --no-nodeid-checks
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Boolean
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 FALSE
 T}
@@ -920,28 +837,21 @@ Do not perform any checks of node IDs\&.
 \fB\-\-nodaemon\fR
 .TS
 allbox tab(:);
-lB lB.
+lB l
+lB l
+lB l.
 T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
-T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --nodaemon
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Boolean
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 FALSE
 T}
@@ -967,39 +877,33 @@ on Windows is to run in the foreground, making this option unnecessary on Window
 \fB\-\-nowait\-nodes\fR
 .TS
 allbox tab(:);
-lB lB.
-T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l
-l l
-l l.
+lB l
+lB l
+lB l
+lB l
+lB l.
 T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --nowait-nodes=list
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Numeric
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
+[none]
 T}
 T{
-\fBMinimum Value\fR
+Minimum Value
 T}:T{
 1
 T}
 T{
-\fBMaximum Value\fR
+Maximum Value
 T}:T{
 255
 T}
@@ -1127,28 +1031,21 @@ management server, its configuration must match that of the management server th
 \fB\-P\fR
 .TS
 allbox tab(:);
-lB lB.
-T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
+lB l
+lB l
+lB l.
 T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --print-full-config
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Boolean
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 FALSE
 T}
@@ -1172,28 +1069,21 @@ process prints information about the cluster setup including an extensive list o
 \fB\-\-reload\fR
 .TS
 allbox tab(:);
-lB lB.
-T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
+lB l
+lB l
+lB l.
 T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --reload
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Boolean
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 FALSE
 T}
@@ -1233,34 +1123,27 @@ Section\ \&18.5.5, \(lqPerforming a Rolling Restart of an NDB Cluster\(rq, for a
 \fB\-\-remove{=name]\fR
 .TS
 allbox tab(:);
-lB lB.
+lB l
+lB l
+lB l
+lB l.
 T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l
-l l.
-T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --remove[=name]
 T}
 T{
-\fBPlatform Specific\fR
+Platform Specific
 T}:T{
 Windows
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 String
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 ndb_mgmd
 T}
@@ -1281,28 +1164,21 @@ Remove a management server process that has been installed as a Windows service,
 \fB\-v\fR
 .TS
 allbox tab(:);
-lB lB.
-T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
+lB l
+lB l
+lB l.
 T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --verbose
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Boolean
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 FALSE
 T}
@@ -1392,7 +1268,7 @@ is the process ID file used when running the management server as a daemon\&.
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/ndbd.8 b/mysql-wsrep-5.6/man/ndbd.8
index f4205060..3c499f1b 100644
--- a/mysql-wsrep-5.6/man/ndbd.8
+++ b/mysql-wsrep-5.6/man/ndbd.8
@@ -2,12 +2,12 @@
 .\"     Title: \fBndbd\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBNDBD\FR" "8" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBNDBD\FR" "8" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -50,7 +50,7 @@ Options Common to NDB Cluster Programs(1)\&.
 .nr an-no-space-flag 1
 .nr an-break-flag 1
 .br
-.B Table\ \&18.303.\ \&Command\-line options for the ndbd program
+.B Table\ \&18.18.\ \&Command\-line options for the ndbd program
 .TS
 allbox tab(:);
 lB lB lB.
@@ -62,32 +62,32 @@ T}:T{
 Added, Deprecated, or Removed
 T}
 .T&
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l
-l l l.
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l
+lB l l.
 T{
 .PP
---bind-address=name
+\fB \fR\fB--bind-address=name\fR\fB \fR
 T}:T{
 Local bind address
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
---connect-delay=#
+\fB \fR\fB--connect-delay=#\fR\fB \fR
 T}:T{
 Time to wait between attempts to contact a management server, in
               seconds; 0 means do not wait between attempts
@@ -97,17 +97,17 @@ DEPRECATED: NDB 7.4.9
 T}
 T{
 .PP
---connect-retries=#
+\fB \fR\fB--connect-retries=#\fR\fB \fR
 T}:T{
 Set the number of times to retry a connection before giving up; 0 means
               1 attempt only (and no retries)
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
---connect-retry-delay=#
+\fB \fR\fB--connect-retry-delay=#\fR\fB \fR
 T}:T{
 Time to wait between attempts to contact a management server, in
               seconds; 0 means do not wait between attempts
@@ -117,106 +117,105 @@ ADDED: NDB 7.4.9
 T}
 T{
 .PP
---daemon,
+\fB--daemon\fR,
 .PP
--d
+\fB \fR\fB-d\fR\fB \fR
 T}:T{
 Start ndbd as daemon (default); override with --nodaemon
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
---foreground
+\fB \fR\fB--foreground\fR\fB \fR
 T}:T{
 Run ndbd in foreground, provided for debugging purposes (implies
               --nodaemon)
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
---initial
+\fB \fR\fB--initial\fR\fB \fR
 T}:T{
-Perform initial start of ndbd, including cleaning the file system.
-              Consult the documentation before using this option
+Perform initial start of ndbd, including file system cleanup; consult
+              documentation before using this option
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
---initial-start
+\fB \fR\fB--initial-start\fR\fB \fR
 T}:T{
 Perform partial initial start (requires --nowait-nodes)
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
---install[=name]
+\fB \fR\fB--install[=name]\fR\fB \fR
 T}:T{
-Used to install the data node process as a Windows service. Does not
-              apply on non-Windows platforms.
+Used to install data node process as Windows service; does not apply on
+              other platforms
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
---nostart,
-.PP
--n
+\fB \fR\fB--nodaemon\fR\fB \fR
 T}:T{
-Don't start ndbd immediately; ndbd waits for command to start from
-              ndb_mgmd
+Do not start ndbd as daemon; provided for testing purposes
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
---nodaemon
+\fB--nostart\fR,
+.PP
+\fB \fR\fB-n\fR\fB \fR
 T}:T{
-Do not start ndbd as daemon; provided for testing purposes
+Do not start ndbd immediately; ndbd waits for command to start from
+              ndb_mgm
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
---nowait-nodes=list
+\fB \fR\fB--nowait-nodes=list\fR\fB \fR
 T}:T{
 Do not wait for these data nodes to start (takes comma-separated list of
-              node IDs). Also requires --ndb-nodeid to be used.
+              node IDs); requires --ndb-nodeid
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
---remove[=name]
+\fB \fR\fB--remove[=name]\fR\fB \fR
 T}:T{
-Used to remove a data node process that was previously installed as a
-              Windows service. Does not apply on non-Windows platforms.
+Used to remove data node process that was previously installed as
+              Windows service; does not apply on other platforms
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 T{
 .PP
---verbose,
+\fB--verbose\fR,
 .PP
--v
+\fB \fR\fB-v\fR\fB \fR
 T}:T{
-Causes the data log to write extra debugging information to the node
-              log.
+Write extra debugging information to node log
 T}:T{
 .PP
-All MySQL 5.6 based releases
+(Supported in all MySQL 5.6 based releases)
 T}
 .TE
 .sp 1
@@ -252,28 +251,21 @@ wherever the latter occurs in this section\&.
 \fB\-\-bind\-address\fR
 .TS
 allbox tab(:);
-lB lB.
-T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
+lB l
+lB l
+lB l.
 T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --bind-address=name
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 String
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 T}
 .TE
@@ -294,46 +286,39 @@ to bind to a specific network interface (host name or IP address)\&. This option
 \fB\-\-connect\-delay=\fR\fB\fI#\fR\fR
 .TS
 allbox tab(:);
-lB lB.
+lB l
+lB l
+lB l
+lB l
+lB l
+lB l.
 T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l
-l l
-l l
-l l.
-T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --connect-delay=#
 T}
 T{
-\fBDeprecated\fR
+Deprecated
 T}:T{
 5.6.28-ndb-7.4.9
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Numeric
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 5
 T}
 T{
-\fBMinimum Value\fR
+Minimum Value
 T}:T{
 0
 T}
 T{
-\fBMaximum Value\fR
+Maximum Value
 T}:T{
 3600
 T}
@@ -359,40 +344,33 @@ instead\&.
 \fB\-\-connect\-retries=\fR\fB\fI#\fR\fR
 .TS
 allbox tab(:);
-lB lB.
+lB l
+lB l
+lB l
+lB l
+lB l.
 T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l
-l l
-l l.
-T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --connect-retries=#
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Numeric
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 12
 T}
 T{
-\fBMinimum Value\fR
+Minimum Value
 T}:T{
 0
 T}
 T{
-\fBMaximum Value\fR
+Maximum Value
 T}:T{
 65535
 T}
@@ -415,46 +393,39 @@ option in MySQL NDB 7\&.4\&.9 and later (previously, this was
 \fB\-\-connect\-retry\-delay=\fR\fB\fI#\fR\fR
 .TS
 allbox tab(:);
-lB lB.
-T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l
-l l
-l l
-l l.
+lB l
+lB l
+lB l
+lB l
+lB l
+lB l.
 T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --connect-retry-delay=#
 T}
 T{
-\fBIntroduced\fR
+Introduced
 T}:T{
 5.6.28-ndb-7.4.9
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Numeric
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 5
 T}
 T{
-\fBMinimum Value\fR
+Minimum Value
 T}:T{
 0
 T}
 T{
-\fBMaximum Value\fR
+Maximum Value
 T}:T{
 4294967295
 T}
@@ -481,28 +452,21 @@ option, which is now deprecated and subject to removal in a future release of ND
 \fB\-d\fR
 .TS
 allbox tab(:);
-lB lB.
-T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
+lB l
+lB l
+lB l.
 T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --daemon
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Boolean
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 TRUE
 T}
@@ -534,28 +498,21 @@ on Windows platforms\&.
 \fB\-\-foreground\fR
 .TS
 allbox tab(:);
-lB lB.
-T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
+lB l
+lB l
+lB l.
 T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --foreground
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Boolean
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 FALSE
 T}
@@ -587,28 +544,21 @@ on Windows platforms\&.
 \fB\-\-initial\fR
 .TS
 allbox tab(:);
-lB lB.
-T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
+lB l
+lB l
+lB l.
 T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --initial
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Boolean
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 FALSE
 T}
@@ -730,7 +680,7 @@ Backup files that have already been created by the affected node
 .IP \(bu 2.3
 .\}
 NDB Cluster Disk Data files (see
-Section\ \&18.5.12, \(lqNDB Cluster Disk Data Tables\(rq)\&.
+Section\ \&18.5.10, \(lqNDB Cluster Disk Data Tables\(rq)\&.
 .RE
 .sp
 This option also has no effect on recovery of data by a data node that is just starting (or restarting) from data nodes that are already running\&. This recovery of data occurs automatically, and requires no user intervention in an NDB Cluster that is running normally\&.
@@ -752,28 +702,21 @@ necessary to do so\&.
 \fB\-\-initial\-start\fR
 .TS
 allbox tab(:);
-lB lB.
+lB l
+lB l
+lB l.
 T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
-T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --initial-start
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Boolean
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 FALSE
 T}
@@ -830,34 +773,27 @@ option for
 \fB\-\-install[=\fR\fB\fIname\fR\fR\fB]\fR
 .TS
 allbox tab(:);
-lB lB.
-T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l
-l l.
+lB l
+lB l
+lB l
+lB l.
 T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --install[=name]
 T}
 T{
-\fBPlatform Specific\fR
+Platform Specific
 T}:T{
 Windows
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 String
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 ndbd
 T}
@@ -903,28 +839,21 @@ option has no effect on non\-Windows platforms\&.
 \fB\-\-nodaemon\fR
 .TS
 allbox tab(:);
-lB lB.
+lB l
+lB l
+lB l.
 T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
-T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --nodaemon
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Boolean
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 FALSE
 T}
@@ -957,28 +886,21 @@ on Windows is to run in the foreground, making this option unnecessary on Window
 \fB\-n\fR
 .TS
 allbox tab(:);
-lB lB.
+lB l
+lB l
+lB l.
 T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
-T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --nostart
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 Boolean
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 FALSE
 T}
@@ -991,7 +913,7 @@ not to start automatically\&. When this option is used,
 connects to the management server, obtains configuration data from it, and initializes communication objects\&. However, it does not actually start the execution engine until specifically requested to do so by the management server\&. This can be accomplished by issuing the proper
 START
 command in the management client (see
-Section\ \&18.5.2, \(lqCommands in the NDB Cluster Management Client\(rq)\&.
+Section\ \&18.5.1, \(lqCommands in the NDB Cluster Management Client\(rq)\&.
 .RE
 .sp
 .RS 4
@@ -1005,33 +927,26 @@ Section\ \&18.5.2, \(lqCommands in the NDB Cluster Management Client\(rq)\&.
 \fB\-\-nowait\-nodes=\fR\fB\fInode_id_1\fR\fR\fB[, \fR\fB\fInode_id_2\fR\fR\fB[, \&.\&.\&.]]\fR
 .TS
 allbox tab(:);
-lB lB.
+lB l
+lB l
+lB l.
 T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l.
-T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --nowait-nodes=list
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 String
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 T}
 .TE
 .sp 1
-This option takes a list of data nodes which for which the cluster will not wait for before starting\&.
+This option takes a list of data nodes which for which the cluster does not wait for before starting\&.
 .sp
 This can be used to start the cluster in a partitioned state\&. For example, to start the cluster with only half of the data nodes (nodes 2, 3, 4, and 5) running in a 4\-node cluster, you can start each
 \fBndbd\fR
@@ -1045,7 +960,7 @@ milliseconds for nodes 3 and 5 to connect as it would otherwise\&.
 If you wanted to start up the same cluster as in the previous example without one
 \fBndbd\fR
 (say, for example, that the host machine for node 3 has suffered a hardware failure) then start nodes 2, 4, and 5 with
-\fB\-\-nowait\-nodes=3\fR\&. Then the cluster will start as soon as nodes 2, 4, and 5 connect and will not wait for node 3 to start\&.
+\fB\-\-nowait\-nodes=3\fR\&. Then the cluster starts as soon as nodes 2, 4, and 5 connect and does not wait for node 3 to start\&.
 .RE
 .sp
 .RS 4
@@ -1059,34 +974,27 @@ If you wanted to start up the same cluster as in the previous example without on
 \fB\-\-remove[=\fR\fB\fIname\fR\fR\fB]\fR
 .TS
 allbox tab(:);
-lB lB.
-T{
-Property
-T}:T{
-Value
-T}
-.T&
-l l
-l l
-l l
-l l.
+lB l
+lB l
+lB l
+lB l.
 T{
-\fBCommand-Line Format\fR
+Command-Line Format
 T}:T{
 --remove[=name]
 T}
 T{
-\fBPlatform Specific\fR
+Platform Specific
 T}:T{
 Windows
 T}
 T{
-\fBType\fR
+Type
 T}:T{
 String
 T}
 T{
-\fBDefault Value\fR
+Default Value
 T}:T{
 ndbd
 T}
@@ -1112,7 +1020,6 @@ option has no effect on non\-Windows platforms\&.
 .\}
 \fB\-\-verbose\fR,
 \fB\-v\fR
-.sp
 Causes extra debug output to be written to the node log\&.
 .RE
 .PP
@@ -1199,7 +1106,7 @@ file (see below)\&. Error log entries are thus overwritten in a cyclical and not
 ndb_\fInode_id\fR_trace\&.log\&.\fItrace_id\fR
 is a trace file describing exactly what happened just before the error occurred\&. This information is useful for analysis by the NDB Cluster development team\&.
 .sp
-It is possible to configure the number of these trace files that will be created before old files are overwritten\&.
+It is possible to configure the number of these trace files that are created before old files are overwritten\&.
 \fItrace_id\fR
 is a number which is incremented for each successive trace file\&.
 .RE
@@ -1310,7 +1217,7 @@ Section\ \&18.1.7, \(lqKnown Limitations of NDB Cluster\(rq\&.
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/ndbmtd.8 b/mysql-wsrep-5.6/man/ndbmtd.8
index bad2145d..1459196f 100644
--- a/mysql-wsrep-5.6/man/ndbmtd.8
+++ b/mysql-wsrep-5.6/man/ndbmtd.8
@@ -2,12 +2,12 @@
 .\"     Title: \fBndbmtd\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBNDBMTD\FR" "8" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBNDBMTD\FR" "8" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -193,7 +193,7 @@ concurrently on different data nodes in the same NDB Cluster\&. However, such co
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/perror.1 b/mysql-wsrep-5.6/man/perror.1
index e5a75057..aae50a86 100644
--- a/mysql-wsrep-5.6/man/perror.1
+++ b/mysql-wsrep-5.6/man/perror.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBperror\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBPERROR\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBPERROR\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -127,7 +127,6 @@ supports the following options\&.
 \fB\-\-info\fR,
 \fB\-I\fR,
 \fB\-?\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -140,7 +139,6 @@ Display a help message and exit\&.
 .IP \(bu 2.3
 .\}
 \fB\-\-ndb\fR
-.sp
 Print the error message for an NDB Cluster error code\&.
 .RE
 .sp
@@ -154,7 +152,6 @@ Print the error message for an NDB Cluster error code\&.
 .\}
 \fB\-\-silent\fR,
 \fB\-s\fR
-.sp
 Silent mode\&. Print only the error message\&.
 .RE
 .sp
@@ -168,7 +165,6 @@ Silent mode\&. Print only the error message\&.
 .\}
 \fB\-\-verbose\fR,
 \fB\-v\fR
-.sp
 Verbose mode\&. Print error code and message\&. This is the default behavior\&.
 .RE
 .sp
@@ -182,13 +178,12 @@ Verbose mode\&. Print error code and message\&. This is the default behavior\&.
 .\}
 \fB\-\-version\fR,
 \fB\-V\fR
-.sp
 Display version information and exit\&.
 .RE
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/replace.1 b/mysql-wsrep-5.6/man/replace.1
index 5f0500fc..cc54dd7d 100644
--- a/mysql-wsrep-5.6/man/replace.1
+++ b/mysql-wsrep-5.6/man/replace.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBreplace\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBREPLACE\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBREPLACE\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -167,7 +167,7 @@ Display version information and exit\&.
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/resolve_stack_dump.1 b/mysql-wsrep-5.6/man/resolve_stack_dump.1
index 60e64cee..08509512 100644
--- a/mysql-wsrep-5.6/man/resolve_stack_dump.1
+++ b/mysql-wsrep-5.6/man/resolve_stack_dump.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBresolve_stack_dump\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBRESOLVE_STACK_DUMP\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBRESOLVE_STACK_DUMP\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -69,7 +69,6 @@ supports the following options\&.
 .\}
 \fB\-\-help\fR,
 \fB\-h\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -83,7 +82,6 @@ Display a help message and exit\&.
 .\}
 \fB\-\-numeric\-dump\-file=\fR\fB\fIfile_name\fR\fR,
 \fB\-n \fR\fB\fIfile_name\fR\fR
-.sp
 Read the stack trace from the given file\&.
 .RE
 .sp
@@ -97,7 +95,6 @@ Read the stack trace from the given file\&.
 .\}
 \fB\-\-symbols\-file=\fR\fB\fIfile_name\fR\fR,
 \fB\-s \fR\fB\fIfile_name\fR\fR
-.sp
 Use the given symbols file\&.
 .RE
 .sp
@@ -111,16 +108,15 @@ Use the given symbols file\&.
 .\}
 \fB\-\-version\fR,
 \fB\-V\fR
-.sp
 Display version information and exit\&.
 .RE
 .PP
 For more information, see
-Section\ \&24.5.1.5, \(lqUsing a Stack Trace\(rq\&.
+Section\ \&5.8.1.5, \(lqUsing a Stack Trace\(rq\&.
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/man/resolveip.1 b/mysql-wsrep-5.6/man/resolveip.1
index fe2b7a79..c0bbe2e1 100644
--- a/mysql-wsrep-5.6/man/resolveip.1
+++ b/mysql-wsrep-5.6/man/resolveip.1
@@ -2,12 +2,12 @@
 .\"     Title: \fBresolveip\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 
-.\"      Date: 06/08/2019
+.\"      Date: 01/04/2021
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.6
 .\"  Language: English
 .\"
-.TH "\FBRESOLVEIP\FR" "1" "06/08/2019" "MySQL 5\&.6" "MySQL Database System"
+.TH "\FBRESOLVEIP\FR" "1" "01/04/2021" "MySQL 5\&.6" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -67,7 +67,6 @@ supports the following options\&.
 \fB\-\-info\fR,
 \fB\-?\fR,
 \fB\-I\fR
-.sp
 Display a help message and exit\&.
 .RE
 .sp
@@ -81,7 +80,6 @@ Display a help message and exit\&.
 .\}
 \fB\-\-silent\fR,
 \fB\-s\fR
-.sp
 Silent mode\&. Produce less output\&.
 .RE
 .sp
@@ -95,13 +93,12 @@ Silent mode\&. Produce less output\&.
 .\}
 \fB\-\-version\fR,
 \fB\-V\fR
-.sp
 Display version information and exit\&.
 .RE
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2021, Oracle and/or its affiliates.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff --git a/mysql-wsrep-5.6/mysql-test/CMakeLists.txt b/mysql-wsrep-5.6/mysql-test/CMakeLists.txt
index 9e677b80..d9d8970e 100644
--- a/mysql-wsrep-5.6/mysql-test/CMakeLists.txt
+++ b/mysql-wsrep-5.6/mysql-test/CMakeLists.txt
@@ -1,14 +1,21 @@
 # Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
diff --git a/mysql-wsrep-5.6/mysql-test/extra/binlog_tests/drop_temp_table.test b/mysql-wsrep-5.6/mysql-test/extra/binlog_tests/drop_temp_table.test
index b53b4129..559ad1e2 100644
--- a/mysql-wsrep-5.6/mysql-test/extra/binlog_tests/drop_temp_table.test
+++ b/mysql-wsrep-5.6/mysql-test/extra/binlog_tests/drop_temp_table.test
@@ -132,7 +132,7 @@ DELETE d1, d2 FROM t1 AS d1, t1 AS d2 WHERE d1.a<>d2.a;
 DROP TABLE t1;
 
 --echo # DELETE query fails with table re-open error without patch.
---exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug28642318.sql
+--exec $MYSQL -e "SET SQL_LOG_BIN=0; SOURCE $MYSQLTEST_VARDIR/tmp/bug28642318.sql;"
 
 --echo # Clean up.
 --connection con1
@@ -160,7 +160,7 @@ DROP TABLE t1;
 --exec $MYSQL_BINLOG --force-if-open $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/bug28642318.sql
 
 --echo # DROP table query fails with unknown table error without patch.
---exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug28642318.sql
+--exec $MYSQL -e "SET SQL_LOG_BIN=0; SOURCE $MYSQLTEST_VARDIR/tmp/bug28642318.sql;"
 
 --echo # Clean up
 --connection default
diff --git a/mysql-wsrep-5.6/mysql-test/include/allowed_ciphers.inc b/mysql-wsrep-5.6/mysql-test/include/allowed_ciphers.inc
new file mode 100644
index 00000000..a41c22d9
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/include/allowed_ciphers.inc
@@ -0,0 +1,10 @@
+
+# List of allowed ciphers which will be
+# replaced with "SSL_CIPHER" in the result files.
+# DHE-XXX ciphers are for OpenSSL 1.0.X while
+# ECDHE-XXX for OpenSSL 1.1.X
+# Usage: --replace_regex $ALLOWED_CIPHERS_REGEX
+#
+
+LET $ALLOWED_CIPHERS_REGEX =
+/DHE-RSA-AES128-GCM-SHA256|ECDHE-RSA-AES128-GCM-SHA256|DHE-RSA-AES256-SHA|ECDHE-RSA-AES256-SHA|DHE-RSA-AES256-GCM-SHA384|ECDHE-RSA-AES256-GCM-SHA384/SSL_CIPHER/;
diff --git a/mysql-wsrep-5.6/mysql-test/include/assert_binlog_events.inc b/mysql-wsrep-5.6/mysql-test/include/assert_binlog_events.inc
new file mode 100644
index 00000000..080a2b34
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/include/assert_binlog_events.inc
@@ -0,0 +1,329 @@
+# ==== Purpose ====
+#
+# Assert that the binary log contains a specific sequence of event types.
+#
+# ==== Usage ====
+#
+# --let $event_sequence= SEQUENCE_OF_EVENTS
+# [--let $event_separator= CHAR]
+# [--let $invert= 1]
+# [--let $limit= [OFFSET,] ROW_COUNT]
+# [--let $binlog_file= FILE]
+# [--let $binlog_position= POSITION]
+# [--let $relay_log= 1]
+# [--let $include_header_events= 1]
+# [--let $wait_for_binlog_events= 1]
+# [--let $slave_timeout= 1]
+# [--let $rpl_debug= 1]
+# [--let $keep_temp_files= 1]
+# [--let $dont_print_pattern= 1]
+# --source include/assert_binlog_events.inc
+#
+# Parameters:
+#
+#   $event_sequence
+#     This is a (perl) regular expression that will be matched with a
+#     sequence of event specifications. Here is an example:
+#
+#       Query/BEGIN # Query/INSERT.* # Query # (Query/COMMIT|Xid)
+#
+#         Match a sequence of a BEGIN event, followed by an
+#         Query_log_event where the query begins with INSERT, followed
+#         by any query, followed by either a Query_log_event with the
+#         query equal to COMMIT, or a Xid_log_event.
+#
+#     A single event is specified using either just the 'Type' field
+#     of SHOW BINLOG EVENTS, or using both the 'Type' and the 'Info'
+#     fields:
+#
+#       Query
+#         Match any query_log_event
+#       Query/BEGIN
+#         Match any query_log_event where the query is equal to BEGIN.
+#       Query/INSERT.*
+#         Match any query_log_event where the query begins with INSERT.
+#
+#     A sequence of events is specified by separating multiple event
+#     specifications with a # character:
+#
+#       Query/BEGIN # Query/INSERT.* # Query/COMMIT
+#
+#     Regular expressions can span multiple events:
+#
+#       Query/BEGIN # (Query/INSERT.*){1,2} # Query/COMMIT
+#         Allow either one or two INSERT statements
+#
+#     The '.' wildcard does *not* match the special characters # or /.
+#     So the following is safe in the sense that the .* cannot
+#     'swallow' multiple events:
+#
+#       Query/INSERT.*
+#
+#     The pattern must match from the beginning until the end. To
+#     allow arbitrary events after the pattern, append '(#.*)*' to the
+#     pattern.
+#
+#     The following shortcuts are available as syntactic sugar:
+#
+#       !Q(STATEMENT) -> Query/(use .*; )?STATEMENT
+#       !Begin -> !Q(BEGIN)
+#       !Commit -> !Q(COMMIT)
+#       !Insert -> (!Q(INSERT.*) | Table_map # Write_rows)
+#       !Update -> (!Q(UPDATE.*) | Table_map # Update_rows)
+#       !Delete -> (!Q(DELETE.*) | Table_map # Delete_rows)
+#       !Single_DML -> (!Insert | !Update | !Delete)
+#       !Multi_DML -> multiple DML statements, each possibly touching multiple tables
+#       !DML_transaction -> Begin # Multi_DML # Commit
+#       !DDL -> !Q(neither BEGIN or COMMIT)
+#       !Gtid_transaction -> Gtid # (DML_transaction | DDL)
+#       !Empty_gtid_transaction -> Gtid # Begin # Commit
+#
+#     Whitespace around / and # is ignored.
+#
+#   $event_separator
+#     Use $event_separator instead of # to delimit events. This must
+#     only be one character long and should not be used elsewhere in
+#     the pattern.
+#
+#   $invert
+#     By default, this script asserts that SHOW BINLOG EVENTS matches
+#     the specification. If $invert is set, this scripts instead asserts
+#     that SHOW BINLOG EVENTS does *not* match the specification.
+#
+#   $limit
+#     Pass this as the LIMIT clause of SHOW BINLOG EVENTS.
+#
+#   $binlog_position
+#     Pass this as the FROM clause of SHOW BINLOG EVENTS.
+#     Note that you can use include/save_binlog_position.inc to read
+#     both $binlog_file and $binlog_position.
+#
+#   $binlog_file
+#     Pass this as the IN clause of SHOW BINLOG EVENTS.
+#     Note that you can use include/save_binlog_position.inc to read
+#     both $binlog_file and $binlog_position.
+#
+#   $relay_log
+#     Use SHOW RELAYLOG EVENTS instead of SHOW BINLOG EVENTS
+#
+#   $include_header_events
+#     By default, Format_desc, Rotate, and Previous_gtids events are
+#     ignore.  If this parameter is enabled, the events are included
+#     in the match.
+#
+#   $wait_for_binlog_events
+#     If this is true, the script retries until the binlog contains
+#     the expected events. The timeout is given by $slave_timeout.
+#
+#   $slave_timeout
+#     Default timeout used if $wait_for_binlog_events is enabled.
+#     The default timeout is 300 seconds. You can change the timeout by
+#     setting $slave_timeout. The unit for time is seconds.
+#
+#   $rpl_debug
+#     Print lots of debug info.
+#
+#   $keep_temp_files
+#     Keep the two temporary files that this script uses. This is for
+#     debugging only and should not be used in a checked-in version of
+#     a test.
+#
+#   $dont_print_pattern
+#     By default, the pattern is printed to the result log. If this
+#     variable is set, the pattern is not printed.
+
+if ($dont_print_pattern)
+{
+  --let $include_filename= assert_binlog_events.inc
+}
+if (!$dont_print_pattern)
+{
+  --let $include_filename= assert_binlog_events.inc [$event_sequence]
+}
+--source include/begin_include_file.inc
+
+if (!$event_sequence)
+{
+  --die ERROR IN TEST: specify $event_sequence before sourcing assert_binlog_events.inc. To assert that nothing was generated, set $event_sequence= ()
+}
+
+# Execute statement, write result to file.
+if (!$relay_log)
+{
+  --let $statement= SHOW BINLOG EVENTS
+}
+if ($relay_log)
+{
+  --let $statement= SHOW RELAYLOG EVENTS
+}
+if ($binlog_file)
+{
+  --let $statement= $statement IN '$binlog_file'
+}
+if ($binlog_position)
+{
+  --let $statement= $statement FROM $binlog_position
+}
+if ($limit != "")
+{
+  --let $statement= $statement LIMIT $limit
+}
+
+if ($wait_for_binlog_events)
+{
+  --let $_abe_counter= 0
+  --let $_abe_timeout= $slave_timeout
+  # Wait 300 seconds for binlog events
+  if (!$_abe_timeout)
+  {
+    --let $_abe_timeout= 300
+  }
+}
+
+--let $_abe_verdict=
+while ($_abe_verdict != 'ok')
+{
+  --let $output_file= GENERATE
+  --source include/write_result_to_file.inc
+
+  if ($rpl_debug)
+  {
+    --echo Wrote output to $output_file
+  }
+
+  # Set environment variables used in perl.
+  --let _ABE_FILE= $output_file
+  --let _ABE_EVENT_SEQUENCE= $event_sequence
+  --let _ABE_INVERT= $invert
+  --let _ABE_DEBUG= $rpl_debug
+  --let _ABE_EVENT_SEPARATOR= $event_separator
+  --let _ABE_INCLUDE_HEADER_EVENTS= $include_header_events
+
+  ############################################################################
+  perl;
+  my $event_sequence = $ENV{'_ABE_EVENT_SEQUENCE'};
+  my $file = $ENV{'_ABE_FILE'};
+  my $invert = $ENV{'_ABE_INVERT'};
+  my $debug = $ENV{'_ABE_DEBUG'};
+  my $include_header_events = $ENV{'_ABE_INCLUDE_HEADER_EVENTS'};
+  my $event_separator= $ENV{'_ABE_EVENT_SEPARATOR'};
+  if ($event_separator == '')
+  {
+    $event_separator = '#';
+  }
+
+  $event_sequence =~ s/$event_separator/\n/g;
+
+  # Ignore whitespace at beginning, end, and around separators.
+  $event_sequence =~ s{^\s*}{};
+  $event_sequence =~ s{\s*$}{};
+  $event_sequence =~ s{\s*\n\s*}{\n}g;
+  $event_sequence =~ s{\s*/\s*}{/}g;
+
+  # Expand syntactic sugar definitions.
+  $event_sequence =~ s{!Gtid_transaction}{Gtid\n(!DDL|!DML_transaction)}g;
+  $event_sequence =~ s{!Empty_gtid_transaction}{Gtid\n!Begin\n!Commit}g;
+  $event_sequence =~ s{!DML_transaction}{!Begin\n!Multi_DML\n!Commit}g;
+  $event_sequence =~ s{!DDL}{Query/(?!BEGIN|COMMIT).*}g;
+  $event_sequence =~ s{!Single_DML}{(?:Query|Table_map\n(?:Write|Update|Delete)_rows)}g;
+  $event_sequence =~ s{!Multi_DML}{(?:Query|(?:Table_map\n)+(?:(?:Write|Update|Delete)_rows))(?:\nTable_map|\n(?:Write|Update|Delete)_rows|\nQuery)*}g;
+  $event_sequence =~ s{!Begin}{Query/BEGIN}g;
+  $event_sequence =~ s{!Commit}{(?:Query/COMMIT|Xid/COMMIT.*)}g;
+  $event_sequence =~ s{!Insert}{(?:!Q(INSERT.*)|Table_map\nWrite_rows)}g;
+  $event_sequence =~ s{!Update}{(?:!Q(UPDATE.*)|Table_map\nUpdate_rows)}g;
+  $event_sequence =~ s{!Delete}{(?:!Q(DELETE.*)|Table_map\nDelete_rows)}g;
+  $event_sequence =~ s{!Q\(([^\n]+)\)}{Query/(?:use.*; )?$1}g;
+
+  # Allow matching 'Type' without 'Info'
+  # (e.g., 'Query' instead of 'Query/xyz').
+  $event_sequence =~ s{\n}{(?:/[^\n]*)?\n}g;
+
+  # Allow 'Type' without 'Info' at the end. Require match until the
+  # end. Allow missing \n at the end.
+  $event_sequence .= "(?:/[^\n]*)?\n?" . '$';
+
+  # Require match from the beginning.
+  $event_sequence = '^' . $event_sequence;
+
+  if ($debug)
+  {
+    print "Regex: $event_sequence\n";
+  }
+
+  # Read and filter file.
+  my $result= '';
+  open FILE, "< $file" or die "Error $? opening $file: $!";
+  my $line_number= 1;
+  while ()
+  {
+    if ($line_number > 1)
+    {
+      # Six tab-separated fields; pick number 3 and number 6.
+      s{^[^\t]+\t[^\t]+\t([^\t]+)\t[^\t]+\t[^\t]+\t([^\t]*)$}{$1/$2}
+        or die "Unexpected line format in output line $line_number: $_";
+      if ($include_header_events or
+          ($1 ne 'Format_desc' && $1 ne 'Rotate' && $1 ne 'Previous_gtids'))
+      {
+        chomp;
+        $result .= $_;
+        $result .= "\n";
+      }
+    }
+    $line_number++;
+  }
+  close FILE or die "Error $? closing $file: $!";
+
+  if ($debug)
+  {
+    print "Formatted output: $result\n";
+  }
+
+  # Check if there is a match
+  my $matches = eval("\$result =~ m{$event_sequence}");
+  my $is_ok = ($matches == !$invert);
+
+  # Write 'ok', or write some debug info.
+  open FILE, "> $file.verdict" or die "Error $? opening $file.verdict: $!";
+  print FILE ($is_ok ? 'ok' :
+              "Regex:\n$event_sequence\nFile contents:\n$result")
+    or die "Error $? writing to $file.verdict: $!";
+  close FILE or die "Error $? writing to $file.verdict: $!";
+  EOF
+  ############################################################################
+
+  --let $_abe_verdict= `SELECT LOAD_FILE('$output_file.verdict')`
+  if ($_abe_verdict != 'ok')
+  {
+    --let $_abe_fail= 1
+    if ($wait_for_binlog_events)
+    {
+      --sleep 1
+      --inc $_abe_counter
+      if ($_abe_counter < $_abe_timeout)
+      {
+        --let $_abe_fail= 0
+      }
+    }
+    if ($_abe_fail)
+    {
+      --source include/show_rpl_debug_info.inc
+      --echo event_sequence=$event_sequence
+      --echo $_abe_verdict
+      --echo statement=$statement
+      --echo invert=$invert
+      --echo include_header_events=$include_header_events
+      --echo event_separator=$_ABE_EVENT_SEPARATOR
+      --die Binlog contents did not match expected pattern.
+    }
+  }
+
+  if (!$keep_temp_files)
+  {
+    --remove_file $output_file
+    --remove_file $output_file.verdict
+  }
+  --let $output_file=
+}
+
+--let $include_filename= assert_binlog_events.inc
+--source include/end_include_file.inc
diff --git a/mysql-wsrep-5.6/mysql-test/include/audit_log_events.inc b/mysql-wsrep-5.6/mysql-test/include/audit_log_events.inc
new file mode 100644
index 00000000..ec5794fd
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/include/audit_log_events.inc
@@ -0,0 +1,97 @@
+# produce some events for audit log
+
+CREATE TABLE t1 (c1 INT, c2 CHAR(20));
+--error ER_TABLE_EXISTS_ERROR
+CREATE TABLE t1
+             (c1 INT,
+              c2 CHAR(20));
+INSERT INTO t1 VALUES (1,'a'),(2,'b'),(3,'c');
+-- if ($test_control_chars) {
+INSERT INTO `t1` VALUES (4,NULL);
+# can't add the zero ascii character, as that's a syntax error in MySQL
+INSERT INTO `t1` VALUES (6,'');
+INSERT INTO `t1` VALUES (7,'');
+INSERT INTO `t1` VALUES (8,'');
+INSERT INTO `t1` VALUES (9,'');
+INSERT INTO `t1` VALUES (10,'');
+INSERT INTO `t1` VALUES (11,'');
+INSERT INTO `t1` VALUES (12,'');
+INSERT INTO `t1` VALUES (13,'');
+INSERT INTO `t1` VALUES (14,'	');
+INSERT INTO `t1` VALUES (15,'
+');
+INSERT INTO `t1` VALUES (16,'');
+INSERT INTO `t1` VALUES (17,'');
+INSERT INTO `t1` VALUES (18,'
');
+INSERT INTO `t1` VALUES (19,'');
+INSERT INTO `t1` VALUES (20,'');
+INSERT INTO `t1` VALUES (21,'');
+INSERT INTO `t1` VALUES (22,'');
+INSERT INTO `t1` VALUES (23,'');
+INSERT INTO `t1` VALUES (24,'');
+INSERT INTO `t1` VALUES (25,'');
+INSERT INTO `t1` VALUES (26,'');
+INSERT INTO `t1` VALUES (27,'');
+INSERT INTO `t1` VALUES (28,'');
+INSERT INTO `t1` VALUES (29,'');
+INSERT INTO `t1` VALUES (30,'');
+INSERT INTO `t1` VALUES (31,'');
+INSERT INTO `t1` VALUES (32,'');
+INSERT INTO `t1` VALUES (33,'');
+INSERT INTO `t1` VALUES (34,'');
+INSERT INTO `t1` VALUES (35,'');
+INSERT INTO `t1` VALUES (36,'');
+-- }
+SELECT * FROM t1;
+--error ER_NO_SUCH_TABLE
+SELECT * FROM t2;
+DROP TABLE t1;
+
+PREPARE stmt1 FROM 'SELECT 1';
+EXECUTE stmt1;
+SHOW STATUS LIKE 'audit_log%';
+
+DEALLOCATE PREPARE stmt1;
+
+show variables like 'audit_log%';
+--source include/count_sessions.inc
+connect (con1,localhost,root,,mysql);
+connection default;
+disconnect con1;
+--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
+--error ER_ACCESS_DENIED_ERROR
+connect (con1,localhost,no_such_user,,mysql);
+connection default;
+create table t1 (id int);
+create table t2 (id int);
+insert into t1 values (1), (2);
+# query is longer than 4k
+insert into t2 values (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2);
+select * from t1;
+alter table t1 rename renamed_t1;
+--error ER_NO_SUCH_TABLE
+select * from t_doesnt_exist;
+--error 1064
+syntax_error_query;
+drop table renamed_t1, t2;
+show variables like 'audit_log%';
+create database sa_db;
+connect (con1,localhost,root,,test);
+connection con1;
+create table t1 (id2 int);
+insert into t1 values (1), (2);
+select * from t1;
+drop table t1;
+use sa_db;
+create table sa_t1(id int);
+insert into sa_t1 values (1), (2);
+drop table sa_t1;
+drop database sa_db;
+connection default;
+create user 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
+drop user 'jeffrey'@'localhost';
+select '&;&&&""""<><<>>>>';
+let $str=`SELECT x'2009080c0a0d2f225c5c'`;
+eval select '$str';
+disconnect con1;
+--source include/wait_until_count_sessions.inc
diff --git a/mysql-wsrep-5.6/mysql-test/include/check_ftwrl_incompatible.inc b/mysql-wsrep-5.6/mysql-test/include/check_ftwrl_incompatible.inc
index 4787a69e..55745866 100644
--- a/mysql-wsrep-5.6/mysql-test/include/check_ftwrl_incompatible.inc
+++ b/mysql-wsrep-5.6/mysql-test/include/check_ftwrl_incompatible.inc
@@ -6,6 +6,8 @@
 #   $con_aux1      Name of the 1st aux connection to be used by this script.
 #   $con_aux2      Name of the 2nd aux connection to be used by this script.
 #   $statement     The statement to be checked.
+#   $waitfor       Wait for this statement in process-list. If empty,
+#                  use $statement. Reset at end of include.
 #   $cleanup_stmt1 The 1st statement to be run in order to revert effects
 #                  of statement to be checked.
 #   $cleanup_stmt2 The 2nd statement to be run in order to revert effects
@@ -66,14 +68,26 @@ connection $con_aux1;
 
 --enable_result_log
 --enable_query_log
+if (!$waitfor)
+{
+let $wait_condition=
+  select count(*) = 1 from information_schema.processlist
+  where (state = "Waiting for global read lock" or
+         state = "Waiting for commit lock") and
+         info = "$statement";
+}
+if ($waitfor)
+{
 let $wait_condition=
   select count(*) = 1 from information_schema.processlist
   where (state = "Waiting for global read lock" or
          state = "Waiting for commit lock") and
-        info = "$statement";
+         info = "$waitfor";
+}
 --source include/wait_condition.inc
 --disable_result_log
 --disable_query_log
+let $waitfor=;
 
 if ($success)
 {
diff --git a/mysql-wsrep-5.6/mysql-test/include/default_my.cnf b/mysql-wsrep-5.6/mysql-test/include/default_my.cnf
index d1d906d7..b6f105fb 100644
--- a/mysql-wsrep-5.6/mysql-test/include/default_my.cnf
+++ b/mysql-wsrep-5.6/mysql-test/include/default_my.cnf
@@ -2,13 +2,20 @@
 # Use is subject to license terms
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/include/default_mysqld.cnf b/mysql-wsrep-5.6/mysql-test/include/default_mysqld.cnf
index 1c98245b..0cdcbe62 100644
--- a/mysql-wsrep-5.6/mysql-test/include/default_mysqld.cnf
+++ b/mysql-wsrep-5.6/mysql-test/include/default_mysqld.cnf
@@ -1,13 +1,20 @@
 # Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/include/default_mysqld_autosize.cnf b/mysql-wsrep-5.6/mysql-test/include/default_mysqld_autosize.cnf
index 93a45266..a1b7c845 100644
--- a/mysql-wsrep-5.6/mysql-test/include/default_mysqld_autosize.cnf
+++ b/mysql-wsrep-5.6/mysql-test/include/default_mysqld_autosize.cnf
@@ -1,13 +1,20 @@
 # Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/include/escape_sql.inc b/mysql-wsrep-5.6/mysql-test/include/escape_sql.inc
new file mode 100644
index 00000000..e827ea5a
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/include/escape_sql.inc
@@ -0,0 +1,60 @@
+# ==== Purpose ====
+#
+# Escape occurences of " or ' in a string, in order to be used inside
+# an SQL statement.
+#
+# ==== Usage ====
+#
+# --let $escape_string= String
+# [--let $enclosing_char= "|' (default is ")]
+# --source include/escape_sql.inc
+# --echo $escape_string
+#
+# Parameters:
+#   $escape_string
+#     String to search for occurences of the $enclosing_char and
+#     escape them according to SQL syntax. It is also the output
+#     parameter.
+
+#   $enclosing_char
+#     The character that will be used to enclose $escape_string when
+#     included in an SQL statement.
+#
+
+if (!$escape_string)
+{
+  --die Error: set $escape_string before sourcing escape_sql.inc
+}
+
+if ($escape_string != '')
+{
+  --let $_enclosing_char= "
+  if ($enclosing_char)
+  {
+    --let $_enclosing_char= $enclosing_char
+  }
+
+
+  --let $_output_filename= `SELECT UUID()`
+  --let $_output_filename= $MYSQLTEST_VARDIR/tmp/$_output_filename
+  --let full_output_filename= $_output_filename
+  --let to_replace= $escape_string
+  --let used_quote= $_enclosing_char
+
+  perl;
+    my $out= $ENV{'full_output_filename'};
+    my $to_replace= $ENV{'to_replace'};
+    my $quote= $ENV{'used_quote'};
+
+    $to_replace =~ s/$quote/$quote$quote/g;
+
+    open(FILE, ">", $out) or die "Error $? opening $output_filename: $!";
+    print FILE $to_replace or die "Error $? writing to $output_filename: $!";
+    close FILE or die "Error $? closing $output_filename: $!";
+    chmod 0777, $out;
+  EOF
+
+  --let $escape_string= `SELECT LOAD_FILE('$_output_filename')`
+}
+# Cleanup
+--remove_file $_output_filename
diff --git a/mysql-wsrep-5.6/mysql-test/include/have_example_plugin.inc b/mysql-wsrep-5.6/mysql-test/include/have_example_plugin.inc
index 88f4e212..6fe3c844 100644
--- a/mysql-wsrep-5.6/mysql-test/include/have_example_plugin.inc
+++ b/mysql-wsrep-5.6/mysql-test/include/have_example_plugin.inc
@@ -9,13 +9,13 @@ if (`SELECT @@have_dynamic_loading != 'YES'`) {
 # Check if the variable EXAMPLE_PLUGIN is set
 #
 if (!$EXAMPLE_PLUGIN) {
-  --skip Example plugin requires the environment variable \$EXAMPLE_PLUGIN to be set (normally done by mtr)
+  --skip Could not find library for example plugin, see the file plugin.defs
 }
 
 #
 # Check if --plugin-dir was setup for exampledb
 #
 if (`SELECT CONCAT('--plugin-dir=', REPLACE(@@plugin_dir, '\\\\', '/')) != '$EXAMPLE_PLUGIN_OPT/'`) {
-  --skip Example plugin requires that --plugin-dir is set to the example plugin dir (either the .opt file does not contain \$EXAMPLE_PLUGIN_OPT or another plugin is in use)
+  --skip Example plugin requires that --plugin-dir is set to the example plugin dir
 }
 enable_query_log;
diff --git a/mysql-wsrep-5.6/mysql-test/include/have_openssl.inc b/mysql-wsrep-5.6/mysql-test/include/have_openssl.inc
index e240d935..23b93dca 100644
--- a/mysql-wsrep-5.6/mysql-test/include/have_openssl.inc
+++ b/mysql-wsrep-5.6/mysql-test/include/have_openssl.inc
@@ -2,3 +2,4 @@
 disable_query_log;
 show variables like "have_openssl";
 enable_query_log;
+--source include/allowed_ciphers.inc
diff --git a/mysql-wsrep-5.6/mysql-test/include/have_perfschema.inc b/mysql-wsrep-5.6/mysql-test/include/have_perfschema.inc
index ce52b17f..5b83e104 100644
--- a/mysql-wsrep-5.6/mysql-test/include/have_perfschema.inc
+++ b/mysql-wsrep-5.6/mysql-test/include/have_perfschema.inc
@@ -2,13 +2,20 @@
 # Use is subject to license terms
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/include/have_ssl.inc b/mysql-wsrep-5.6/mysql-test/include/have_ssl.inc
index 6f2d5587..c0e80691 100644
--- a/mysql-wsrep-5.6/mysql-test/include/have_ssl.inc
+++ b/mysql-wsrep-5.6/mysql-test/include/have_ssl.inc
@@ -2,3 +2,4 @@
 disable_query_log;
 show variables like 'have_ssl';
 enable_query_log;
+--source include/allowed_ciphers.inc
diff --git a/mysql-wsrep-5.6/mysql-test/include/have_ssl_communication.inc b/mysql-wsrep-5.6/mysql-test/include/have_ssl_communication.inc
index 6f2d5587..c0e80691 100644
--- a/mysql-wsrep-5.6/mysql-test/include/have_ssl_communication.inc
+++ b/mysql-wsrep-5.6/mysql-test/include/have_ssl_communication.inc
@@ -2,3 +2,4 @@
 disable_query_log;
 show variables like 'have_ssl';
 enable_query_log;
+--source include/allowed_ciphers.inc
diff --git a/mysql-wsrep-5.6/mysql-test/include/mtr_check.sql b/mysql-wsrep-5.6/mysql-test/include/mtr_check.sql
index ff179c48..8ac9afdd 100644
--- a/mysql-wsrep-5.6/mysql-test/include/mtr_check.sql
+++ b/mysql-wsrep-5.6/mysql-test/include/mtr_check.sql
@@ -1,13 +1,20 @@
 -- Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
 --
 -- This program is free software; you can redistribute it and/or modify
--- it under the terms of the GNU General Public License as published by
--- the Free Software Foundation; version 2 of the License.
+-- it under the terms of the GNU General Public License, version 2.0,
+-- as published by the Free Software Foundation.
+--
+-- This program is also distributed with certain software (including
+-- but not limited to OpenSSL) that is licensed under separate terms,
+-- as designated in a particular file or component or in included license
+-- documentation.  The authors of MySQL hereby grant you an additional
+-- permission to link the program and your derivative works with the
+-- separately licensed software that they have included with MySQL.
 --
 -- This program is distributed in the hope that it will be useful,
 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--- GNU General Public License for more details.
+-- GNU General Public License, version 2.0, for more details.
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
diff --git a/mysql-wsrep-5.6/mysql-test/include/mtr_warnings.sql b/mysql-wsrep-5.6/mysql-test/include/mtr_warnings.sql
index fb75c71c..ab4fe458 100644
--- a/mysql-wsrep-5.6/mysql-test/include/mtr_warnings.sql
+++ b/mysql-wsrep-5.6/mysql-test/include/mtr_warnings.sql
@@ -1,13 +1,20 @@
--- Copyright (c) 2008, 2019, Oracle and/or its affiliates. All rights reserved.
+-- Copyright (c) 2008, 2020, Oracle and/or its affiliates. All rights reserved.
 --
 -- This program is free software; you can redistribute it and/or modify
--- it under the terms of the GNU General Public License as published by
--- the Free Software Foundation; version 2 of the License.
+-- it under the terms of the GNU General Public License, version 2.0,
+-- as published by the Free Software Foundation.
+--
+-- This program is also distributed with certain software (including
+-- but not limited to OpenSSL) that is licensed under separate terms,
+-- as designated in a particular file or component or in included license
+-- documentation.  The authors of MySQL hereby grant you an additional
+-- permission to link the program and your derivative works with the
+-- separately licensed software that they have included with MySQL.
 --
 -- This program is distributed in the hope that it will be useful,
 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--- GNU General Public License for more details.
+-- GNU General Public License, version 2.0, for more details.
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
@@ -197,12 +204,24 @@ INSERT INTO global_suppressions VALUES
  ("==[0-9]*== Warning: set address range perms: large range"),
  /* valgrind-3.5.0 dumps this */
  ("==[0-9]*== Command: "),
+ /* Messages from valgrind tools */
+ ("==[0-9]*== Callgrind"),
+ ("==[0-9]*== For interactive control, run 'callgrind_control -h'"),
+ ("==[0-9]*== Events    :"),
+ ("==[0-9]*== Collected : [0-9]+"),
+ ("==[0-9]*== I   refs:      [0-9]+"),
+ ("==[0-9]*== Massif"),
+ ("==[0-9]*== Helgrind"),
 
  /* valgrind warnings: invalid file descriptor -1 in syscall
     write()/read(). Bug #50414 */
  ("==[0-9]*== Warning: invalid file descriptor -1 in syscall write()"),
  ("==[0-9]*== Warning: invalid file descriptor -1 in syscall read()"),
 
+ /* Suppress warnings caused by foreign clients, see Bug#31893901 */
+
+ ("IP address .* could not be resolved.*"),
+
  /*
    Transient network failures that cause warnings on reconnect.
    BUG#47743 and BUG#47983.
diff --git a/mysql-wsrep-5.6/mysql-test/include/mysql_have_debug.inc b/mysql-wsrep-5.6/mysql-test/include/mysql_have_debug.inc
new file mode 100644
index 00000000..165bc393
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/include/mysql_have_debug.inc
@@ -0,0 +1,33 @@
+#######################################################
+# checks if mysql is debug compiled.
+# This "cannot" be done simply by using have_debug.inc
+######################################################
+
+--disable_query_log
+--let $temp_out_help_file=$MYSQL_TMP_DIR/mysql_help.tmp
+--exec $MYSQL --help>$temp_out_help_file
+let log_tmp=$temp_out_help_file;
+--let $temp_inc=$MYSQL_TMP_DIR/temp.inc
+let inc_tmp=$temp_inc;
+
+--perl
+use strict;
+my $tmp_file= $ENV{'log_tmp'} or die "log_tmp not set";
+open(FILE, "$tmp_file") or die("Unable to open $tmp_file: $!\n");
+my $count = () = grep(/Output debug log/g,);
+close FILE;
+
+my $temp_inc= $ENV{'inc_tmp'} or die "temp_inc not set";
+open(FILE_INC,">", "$temp_inc") or die("can't open file \"$temp_inc\": $!");
+print FILE_INC '--let $is_debug= '.$count;
+close FILE_INC;
+EOF
+--source $temp_inc
+
+if (!$is_debug)
+{
+  --skip mysql needs to be debug compiled
+}
+--remove_file $temp_out_help_file
+--remove_file $temp_inc
+--enable_query_log
diff --git a/mysql-wsrep-5.6/mysql-test/include/not_sha256_rsa_auth.inc b/mysql-wsrep-5.6/mysql-test/include/not_sha256_rsa_auth.inc
deleted file mode 100644
index dfd9634b..00000000
--- a/mysql-wsrep-5.6/mysql-test/include/not_sha256_rsa_auth.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-# Only run this test if YaSSL is supported
-let $shavars= query_get_value("SELECT COUNT(*) as shavars FROM information_schema.session_variables WHERE variable_name = 'sha256_password_private_key_path'", shavars, 1);
-if ($shavars != 0){
-  skip Need YaSSL support;
-}
diff --git a/mysql-wsrep-5.6/mysql-test/include/plugin.defs b/mysql-wsrep-5.6/mysql-test/include/plugin.defs
index 7dc8ba29..9d6dc58a 100644
--- a/mysql-wsrep-5.6/mysql-test/include/plugin.defs
+++ b/mysql-wsrep-5.6/mysql-test/include/plugin.defs
@@ -41,6 +41,7 @@ ha_blackhole       storage/blackhole  BLACKHOLE_PLUGIN
 ha_federated       storage/federated  FEDERATED_PLUGIN
 mypluglib          plugin/fulltext    SIMPLE_PARSER
 adt_null           plugin/audit_null  AUDIT_NULL
+audit_log          plugin/audit_log   AUDIT_LOG             audit_log
 libdaemon_example  plugin/daemon_example DAEMONEXAMPLE
 libmemcached       plugin/innodb_memcached/daemon_memcached DAEMON_MEMCACHED daemon_memcached
 innodb_engine      plugin/innodb_memcached/innodb_memcache INNODB_ENGINE
diff --git a/mysql-wsrep-5.6/mysql-test/include/save_binlog_position.inc b/mysql-wsrep-5.6/mysql-test/include/save_binlog_position.inc
new file mode 100644
index 00000000..3192f30b
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/include/save_binlog_position.inc
@@ -0,0 +1,20 @@
+# ==== Purpose ====
+#
+# Save current filename and offset for the binary log in the mysqltest
+# variables $binlog_file and $binlog_position. The positions can be
+# used in any way you like. The variable names are deliberately chosen
+# so that this script can be used together with
+# include/assert_binlog_events.inc
+
+--let $include_filename= save_binlog_position.inc
+--source include/begin_include_file.inc
+
+--let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1)
+--let $binlog_position= query_get_value(SHOW MASTER STATUS, Position, 1)
+if ($rpl_debug)
+{
+  --echo saved binlog_file='$binlog_file' binlog_position='$binlog_position'
+}
+
+--let $include_filename= save_binlog_position.inc
+--source include/end_include_file.inc
diff --git a/mysql-wsrep-5.6/mysql-test/include/set_binlog_format_mixed.sql b/mysql-wsrep-5.6/mysql-test/include/set_binlog_format_mixed.sql
index 65c779ef..825af498 100644
--- a/mysql-wsrep-5.6/mysql-test/include/set_binlog_format_mixed.sql
+++ b/mysql-wsrep-5.6/mysql-test/include/set_binlog_format_mixed.sql
@@ -2,13 +2,20 @@
 # Use is subject to license terms.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software Foundation,
diff --git a/mysql-wsrep-5.6/mysql-test/include/set_binlog_format_row.sql b/mysql-wsrep-5.6/mysql-test/include/set_binlog_format_row.sql
index 0400ed48..8e599d48 100644
--- a/mysql-wsrep-5.6/mysql-test/include/set_binlog_format_row.sql
+++ b/mysql-wsrep-5.6/mysql-test/include/set_binlog_format_row.sql
@@ -2,13 +2,20 @@
 # Use is subject to license terms.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software Foundation,
diff --git a/mysql-wsrep-5.6/mysql-test/include/set_binlog_format_statement.sql b/mysql-wsrep-5.6/mysql-test/include/set_binlog_format_statement.sql
index b582230e..ccaad41a 100644
--- a/mysql-wsrep-5.6/mysql-test/include/set_binlog_format_statement.sql
+++ b/mysql-wsrep-5.6/mysql-test/include/set_binlog_format_statement.sql
@@ -2,13 +2,20 @@
 # Use is subject to license terms.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software Foundation,
diff --git a/mysql-wsrep-5.6/mysql-test/include/show_slave_status.inc b/mysql-wsrep-5.6/mysql-test/include/show_slave_status.inc
index 85acb008..6eb72d78 100644
--- a/mysql-wsrep-5.6/mysql-test/include/show_slave_status.inc
+++ b/mysql-wsrep-5.6/mysql-test/include/show_slave_status.inc
@@ -93,6 +93,15 @@ while ($_show_slave_status_items)
   --let $_show_slave_status_items= `SELECT LTRIM(SUBSTRING('$_show_slave_status_items', LENGTH('$_show_slave_status_name') + 2))`
 
   --let $_show_slave_status_value= query_get_value(SHOW SLAVE STATUS, $_show_slave_status_name, 1)
+
+  if ($_show_slave_status_value)
+  {
+      --let $escape_string= $_show_slave_status_value
+      --let $enclosing_char= "
+      --source include/escape_sql.inc
+      --let $_show_slave_status_value= $escape_string
+  }
+
   --let $_slave_field_result_replace= /[\\]/\// $slave_field_result_replace
   --replace_regex $_slave_field_result_replace
   --let $_show_slave_status_value= `SELECT REPLACE("$_show_slave_status_value", '$MYSQL_TEST_DIR', 'MYSQL_TEST_DIR')`
diff --git a/mysql-wsrep-5.6/mysql-test/include/wait_until_connected_again.inc b/mysql-wsrep-5.6/mysql-test/include/wait_until_connected_again.inc
index 1e93009d..19168309 100644
--- a/mysql-wsrep-5.6/mysql-test/include/wait_until_connected_again.inc
+++ b/mysql-wsrep-5.6/mysql-test/include/wait_until_connected_again.inc
@@ -3,7 +3,10 @@
 # server has been restored or timeout occurs
 --disable_result_log
 --disable_query_log
-let $counter= 500;
+# Wsrep change: The native $counter initial value was 500, but this
+# may not be enough for all tests which restart a node which joins
+# back with SST.
+let $counter= 1000;
 let $mysql_errno= 9999;
 while ($mysql_errno)
 {
diff --git a/mysql-wsrep-5.6/mysql-test/lib/My/Config.pm b/mysql-wsrep-5.6/mysql-test/lib/My/Config.pm
index 642ee0a3..aa0576ca 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/My/Config.pm
+++ b/mysql-wsrep-5.6/mysql-test/lib/My/Config.pm
@@ -3,14 +3,21 @@
 # Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/My/ConfigFactory.pm b/mysql-wsrep-5.6/mysql-test/lib/My/ConfigFactory.pm
index fbec1820..95544a58 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/My/ConfigFactory.pm
+++ b/mysql-wsrep-5.6/mysql-test/lib/My/ConfigFactory.pm
@@ -1,15 +1,21 @@
 # -*- cperl -*-
 # Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
 #
-# This program 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; version 2
-# of the License.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Library General Public License for more details.
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/lib/My/CoreDump.pm b/mysql-wsrep-5.6/mysql-test/lib/My/CoreDump.pm
index 779817c2..b3a33e6e 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/My/CoreDump.pm
+++ b/mysql-wsrep-5.6/mysql-test/lib/My/CoreDump.pm
@@ -2,13 +2,20 @@
 # Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/lib/My/File/Path.pm b/mysql-wsrep-5.6/mysql-test/lib/My/File/Path.pm
index 19abd95d..1db72e8f 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/My/File/Path.pm
+++ b/mysql-wsrep-5.6/mysql-test/lib/My/File/Path.pm
@@ -3,13 +3,20 @@
 # Use is subject to license terms.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/lib/My/Find.pm b/mysql-wsrep-5.6/mysql-test/lib/My/Find.pm
index 1f99c470..f58bb1f4 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/My/Find.pm
+++ b/mysql-wsrep-5.6/mysql-test/lib/My/Find.pm
@@ -2,13 +2,20 @@
 # Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/lib/My/Handles.pm b/mysql-wsrep-5.6/mysql-test/lib/My/Handles.pm
index d120eb7b..f2dfd887 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/My/Handles.pm
+++ b/mysql-wsrep-5.6/mysql-test/lib/My/Handles.pm
@@ -2,13 +2,20 @@
 # Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/lib/My/Memcache.pm b/mysql-wsrep-5.6/mysql-test/lib/My/Memcache.pm
index 5a3af3ad..62395ecc 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/My/Memcache.pm
+++ b/mysql-wsrep-5.6/mysql-test/lib/My/Memcache.pm
@@ -2,13 +2,20 @@
 # Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/lib/My/Options.pm b/mysql-wsrep-5.6/mysql-test/lib/My/Options.pm
index 55d1010a..d81d3407 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/My/Options.pm
+++ b/mysql-wsrep-5.6/mysql-test/lib/My/Options.pm
@@ -2,13 +2,20 @@
 # Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/lib/My/Platform.pm b/mysql-wsrep-5.6/mysql-test/lib/My/Platform.pm
index 483bf0bd..e478432f 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/My/Platform.pm
+++ b/mysql-wsrep-5.6/mysql-test/lib/My/Platform.pm
@@ -3,13 +3,20 @@
 # Use is subject to license terms.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess.pm b/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess.pm
index 4298672e..5817bba8 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess.pm
+++ b/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess.pm
@@ -1,15 +1,21 @@
 # -*- cperl -*-
 # Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
 #
-# This program 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; version 2
-# of the License.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Library General Public License for more details.
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/Base.pm b/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/Base.pm
index 0e8c191c..7badd921 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/Base.pm
+++ b/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/Base.pm
@@ -3,13 +3,20 @@
 # Use is subject to license terms.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/CMakeLists.txt b/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/CMakeLists.txt
index c75e09f5..fc5b4563 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/CMakeLists.txt
+++ b/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/CMakeLists.txt
@@ -1,14 +1,21 @@
 # Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/safe_kill_win.cc b/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/safe_kill_win.cc
index 2ac29c61..edba1f24 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/safe_kill_win.cc
+++ b/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/safe_kill_win.cc
@@ -1,13 +1,20 @@
 /* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/safe_process.cc b/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/safe_process.cc
index 6a040b08..5690d75b 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/safe_process.cc
+++ b/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/safe_process.cc
@@ -1,13 +1,20 @@
 /* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/safe_process_win.cc b/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/safe_process_win.cc
index 87a14481..32bb6f38 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/safe_process_win.cc
+++ b/mysql-wsrep-5.6/mysql-test/lib/My/SafeProcess/safe_process_win.cc
@@ -1,13 +1,20 @@
 /* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/lib/My/SysInfo.pm b/mysql-wsrep-5.6/mysql-test/lib/My/SysInfo.pm
index 51f7f326..bc97a98d 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/My/SysInfo.pm
+++ b/mysql-wsrep-5.6/mysql-test/lib/My/SysInfo.pm
@@ -2,13 +2,20 @@
 # Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/lib/My/Test.pm b/mysql-wsrep-5.6/mysql-test/lib/My/Test.pm
index 895afd21..a50eac78 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/My/Test.pm
+++ b/mysql-wsrep-5.6/mysql-test/lib/My/Test.pm
@@ -2,13 +2,20 @@
 # Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/lib/mtr_cases.pm b/mysql-wsrep-5.6/mysql-test/lib/mtr_cases.pm
index 1a6fc81e..38bc8c6e 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/mtr_cases.pm
+++ b/mysql-wsrep-5.6/mysql-test/lib/mtr_cases.pm
@@ -2,13 +2,20 @@
 # Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/lib/mtr_gcov.pl b/mysql-wsrep-5.6/mysql-test/lib/mtr_gcov.pl
index 6f9e744a..476455c2 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/mtr_gcov.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/mtr_gcov.pl
@@ -2,14 +2,21 @@
 # Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/mtr_gprof.pl b/mysql-wsrep-5.6/mysql-test/lib/mtr_gprof.pl
index 15aad17a..47c0fd57 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/mtr_gprof.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/mtr_gprof.pl
@@ -2,14 +2,21 @@
 # Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/mtr_io.pl b/mysql-wsrep-5.6/mysql-test/lib/mtr_io.pl
index 8c2803f0..f07444d5 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/mtr_io.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/mtr_io.pl
@@ -3,14 +3,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/mtr_match.pm b/mysql-wsrep-5.6/mysql-test/lib/mtr_match.pm
index 140885b6..73794c4a 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/mtr_match.pm
+++ b/mysql-wsrep-5.6/mysql-test/lib/mtr_match.pm
@@ -3,14 +3,21 @@
 # Use is subject to license terms
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/mtr_misc.pl b/mysql-wsrep-5.6/mysql-test/lib/mtr_misc.pl
index e50e8cc7..3ad8e4d5 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/mtr_misc.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/mtr_misc.pl
@@ -1,15 +1,21 @@
 # -*- cperl -*-
 # Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 #
-# This program 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; version 2
-# of the License.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Library General Public License for more details.
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/lib/mtr_process.pl b/mysql-wsrep-5.6/mysql-test/lib/mtr_process.pl
index 88e714f6..f67ffebe 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/mtr_process.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/mtr_process.pl
@@ -2,14 +2,21 @@
 # Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/mtr_report.pm b/mysql-wsrep-5.6/mysql-test/lib/mtr_report.pm
index af5b32ed..1f155081 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/mtr_report.pm
+++ b/mysql-wsrep-5.6/mysql-test/lib/mtr_report.pm
@@ -2,14 +2,21 @@
 # Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/mtr_report_junit.pm b/mysql-wsrep-5.6/mysql-test/lib/mtr_report_junit.pm
new file mode 100644
index 00000000..80e7e2e3
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/lib/mtr_report_junit.pm
@@ -0,0 +1,225 @@
+# -*- cperl -*-
+# Copyright (c) 2012 Twitter, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+# This is a library file used by the Perl version of mysql-test-run,
+# and is part of the translation of the Bourne shell script with the
+# same name.
+
+package mtr_report_junit;
+
+use strict;
+use warnings;
+use Sys::Hostname;
+use POSIX qw(strftime);
+use base qw(Exporter);
+
+our @EXPORT= qw(mtr_report_stats_junit mtr_junit_supported);
+
+#
+# Function: mtr_report_stats_junit
+#
+# Arg 1: $tests      Arrayref of completed tests
+# Arg 2: $filename   File to write XML output to
+# Arg 3: $package    Package to use when writing  blocks
+#
+# This function acts much like mtr_report_stats from the mtr_report.pm library,
+# except that instead of writing a summary of tests to STDOUT, it writes JUnit
+# style XML to $filename.  This is the only exported function from this library.
+#
+sub mtr_report_stats_junit {
+  my $tests    = shift;
+  my $filename = shift;
+  my $package  = shift;
+  my $testinfo;
+  my $doc;
+
+  eval "use XML::Simple";
+  return undef if $@;
+
+  foreach my $tinfo (@$tests) {
+    my $suite;
+
+    if ($tinfo->{name} =~ /^([^\.]+)\./) {
+      $suite = $1;
+    } else {
+      $suite = 'report';
+    }
+
+    $suite = "$package.$suite" if $package;
+
+    $testinfo->{$suite}{tot_tests}++;
+    $testinfo->{$suite}{tot_failed}++  if $tinfo->{failures};
+    $testinfo->{$suite}{tot_skipped}++ if $tinfo->{result} eq 'MTR_RES_SKIPPED';
+    $testinfo->{$suite}{tot_passed}++  if $tinfo->{result} eq 'MTR_RES_PASSED';
+    push (@{$testinfo->{$suite}{tests}}, $tinfo);
+  }
+
+  foreach my $suite (keys %$testinfo) {
+    my $suitetime = 0;
+    my @testcases;
+
+    foreach my $tinfo (@{$testinfo->{$suite}{tests}}) {
+      my $name = $tinfo->{shortname} ? $tinfo->{shortname} : $tinfo->{name};
+      $name .= '_' . $tinfo->{combination} if $tinfo->{combination};
+
+      my $testtime = $tinfo->{timer} ? $tinfo->{timer} / 1000 : 0;
+      $suitetime += $testtime;
+
+      my $testcase = gen_testcase ($name, $tinfo->{name}, $testtime);
+      if ($tinfo->{failures}) {
+        my $content = $tinfo->{logfile};
+        $content .= "\n" . $tinfo->{comment} if $tinfo->{comment};
+        my $failure = gen_failure ($tinfo->{result}, "Test failed", $content);
+        push @{$testcase->{failure}}, $failure;
+      }
+
+      if ($tinfo->{skip}) {
+        my $message = $tinfo->{comment} ? $tinfo->{comment} : 'unknown reason';
+        # Failures and skips have the same structure
+        my $skipped = gen_failure ($tinfo->{result}, $message, $message);
+        push @{$testcase->{skipped}}, $skipped;
+      }
+      push @testcases, $testcase;
+    }
+
+    my $tot_failed = $testinfo->{$suite}{tot_failed} ?
+      $testinfo->{$suite}{tot_failed} : 0;
+
+    my $tot_skipped = $testinfo->{$suite}{tot_skipped} ?
+      $testinfo->{$suite}{tot_skipped} : 0;
+
+    my $testsuite = gen_testsuite (
+      $suite,
+      $suitetime,
+      $tot_failed,
+      $tot_skipped,
+      $testinfo->{$suite}{tot_tests}
+    );
+    $testsuite->{package} = $package if $package;
+    push @{$testsuite->{testcase}}, @testcases;
+    push @{$doc->{testsuite}}, $testsuite;
+  }
+  my $xs = XML::Simple->new(NoEscape => 1);
+  $xs->XMLout ($doc, RootName => 'testsuites', OutputFile => $filename)
+}
+
+#
+# Function: mtr_junit_supported
+#
+# Returns true if XML output is supported (requires XML::Simple)
+#
+sub mtr_junit_supported {
+  eval "use XML::Simple";
+  return $@ ? 0 : 1;
+}
+
+#
+# Function gen_testsuite
+#
+# Arg 1: $name      Name of the testsuite
+# Arg 2: $time      Aggregate time (in seconds) of every test in the suite
+# Arg 3: $failures  Number of tests that failed in the suite
+# Arg 4: $skip      Number of tests that were skipped in the suite
+# ARg 5: $tests     Total number of tests in the suite
+#
+# This function populates and returns a hashref that represents a JUnit
+#  XML block.
+#
+sub gen_testsuite {
+  my $name     = shift;
+  my $time     = shift;
+  my $failures = shift;
+  my $skip     = shift;
+  my $tests    = shift;
+  my $hostname = hostname;
+
+  chomp $hostname;
+
+  return {
+    name         => $name,
+    hostname     => $hostname,
+    errors       => 0,
+    failures     => $failures,
+    skipped      => $skip,
+    tests        => $tests,
+    'time'       => sprintf("%.3f", $time),
+    testcase     => [],
+    timestamp    => strftime ("%Y-%m-%dT%H:%M:%S", localtime),
+    'system-out' => [],
+  };
+}
+
+#
+# Function: gen_testcase
+#
+# Arg 1: $name   Name of the test case (must be unique)
+# Arg 2: $class  Class of the test case
+# Arg 3: $time   Time (in seconds) the test case took to run
+#
+# This function populates and returns a hashref that represents a JUnit
+#  XML block.
+#
+sub gen_testcase {
+  my $name  = shift;
+  my $class = shift;
+  my $time  = shift;
+
+  return {
+    name    => $name,
+    classname   => $class,
+    'time'  => $time,
+    failure => [],
+    skipped => [],
+  };
+}
+
+#
+# Function: gen_failure
+#
+# Arg 1: $type     The type of the assert
+# Arg 2: $message  The message specified in the assert
+# Arg 3: $content  Usually the traceback
+#
+# This function populates and returns a hashref that represents a JUnit
+#  XML block.  It can also be used to generate a JUnit
+#  XML block which uses the same fields.
+#
+
+sub quotexml {
+    my $line = shift;
+    $line =~ s/&/&/g;
+    $line =~ s//>/g;
+    $line =~ s/\"/"/g;
+    return $line;
+}
+   
+
+sub gen_failure {
+  my $type    = shift;
+  my $message = shift;
+  my $content = shift;
+
+  # MySQL test output sometimes contains bell (^G) characters, which
+  # XML chokes on, even inside of CDATA blocks.
+  $content =~ s/\007//g;
+
+  return {
+    type    => $type,
+    message => quotexml($message),
+    content => sprintf ("", quotexml($content)),
+  };
+}
diff --git a/mysql-wsrep-5.6/mysql-test/lib/mtr_results.pm b/mysql-wsrep-5.6/mysql-test/lib/mtr_results.pm
index 92b03756..7efc2fc2 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/mtr_results.pm
+++ b/mysql-wsrep-5.6/mysql-test/lib/mtr_results.pm
@@ -2,13 +2,20 @@
 # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/lib/mtr_stress.pl b/mysql-wsrep-5.6/mysql-test/lib/mtr_stress.pl
index 6ab607e6..59486d25 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/mtr_stress.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/mtr_stress.pl
@@ -3,14 +3,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/mtr_unique.pm b/mysql-wsrep-5.6/mysql-test/lib/mtr_unique.pm
index 8d719786..4ba0c3a9 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/mtr_unique.pm
+++ b/mysql-wsrep-5.6/mysql-test/lib/mtr_unique.pm
@@ -3,14 +3,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/t/Base.t b/mysql-wsrep-5.6/mysql-test/lib/t/Base.t
index b540944f..bc367c8c 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/t/Base.t
+++ b/mysql-wsrep-5.6/mysql-test/lib/t/Base.t
@@ -4,14 +4,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/t/Find.t b/mysql-wsrep-5.6/mysql-test/lib/t/Find.t
index d609fd86..42c5b382 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/t/Find.t
+++ b/mysql-wsrep-5.6/mysql-test/lib/t/Find.t
@@ -4,14 +4,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/t/Options.t b/mysql-wsrep-5.6/mysql-test/lib/t/Options.t
index c832b885..60739da6 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/t/Options.t
+++ b/mysql-wsrep-5.6/mysql-test/lib/t/Options.t
@@ -3,14 +3,21 @@
 # Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/t/Platform.t b/mysql-wsrep-5.6/mysql-test/lib/t/Platform.t
index c78c22dd..813695b2 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/t/Platform.t
+++ b/mysql-wsrep-5.6/mysql-test/lib/t/Platform.t
@@ -4,14 +4,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/t/SafeProcess.t b/mysql-wsrep-5.6/mysql-test/lib/t/SafeProcess.t
index 0fab69b9..0965d16c 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/t/SafeProcess.t
+++ b/mysql-wsrep-5.6/mysql-test/lib/t/SafeProcess.t
@@ -4,14 +4,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/t/SafeProcessStress.pl b/mysql-wsrep-5.6/mysql-test/lib/t/SafeProcessStress.pl
index a5dbeecf..c74b328b 100755
--- a/mysql-wsrep-5.6/mysql-test/lib/t/SafeProcessStress.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/t/SafeProcessStress.pl
@@ -5,14 +5,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/t/copytree.t b/mysql-wsrep-5.6/mysql-test/lib/t/copytree.t
index cdb99b85..42b587d7 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/t/copytree.t
+++ b/mysql-wsrep-5.6/mysql-test/lib/t/copytree.t
@@ -5,14 +5,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/t/dummyd.pl b/mysql-wsrep-5.6/mysql-test/lib/t/dummyd.pl
index fae74735..12bde894 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/t/dummyd.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/t/dummyd.pl
@@ -5,14 +5,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/t/rmtree.t b/mysql-wsrep-5.6/mysql-test/lib/t/rmtree.t
index 8c9863a1..7265e20d 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/t/rmtree.t
+++ b/mysql-wsrep-5.6/mysql-test/lib/t/rmtree.t
@@ -5,14 +5,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/t/testMyConfig.t b/mysql-wsrep-5.6/mysql-test/lib/t/testMyConfig.t
index f79e8776..3893ddec 100755
--- a/mysql-wsrep-5.6/mysql-test/lib/t/testMyConfig.t
+++ b/mysql-wsrep-5.6/mysql-test/lib/t/testMyConfig.t
@@ -5,14 +5,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/t/testMyConfigFactory.t b/mysql-wsrep-5.6/mysql-test/lib/t/testMyConfigFactory.t
index 9f43bed3..ea96c2b5 100755
--- a/mysql-wsrep-5.6/mysql-test/lib/t/testMyConfigFactory.t
+++ b/mysql-wsrep-5.6/mysql-test/lib/t/testMyConfigFactory.t
@@ -5,14 +5,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/t/test_child.pl b/mysql-wsrep-5.6/mysql-test/lib/t/test_child.pl
index 38d9f906..9852e6d5 100755
--- a/mysql-wsrep-5.6/mysql-test/lib/t/test_child.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/t/test_child.pl
@@ -5,14 +5,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/v1/My/Config.pm b/mysql-wsrep-5.6/mysql-test/lib/v1/My/Config.pm
index cc4c34b2..f793f5aa 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/v1/My/Config.pm
+++ b/mysql-wsrep-5.6/mysql-test/lib/v1/My/Config.pm
@@ -4,14 +4,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_cases.pl b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_cases.pl
index baeab24f..7188eb5a 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_cases.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_cases.pl
@@ -3,14 +3,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_gcov.pl b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_gcov.pl
index 56942be7..d61dbb01 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_gcov.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_gcov.pl
@@ -3,14 +3,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_gprof.pl b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_gprof.pl
index 04c6eced..7c8ce206 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_gprof.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_gprof.pl
@@ -3,14 +3,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_im.pl b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_im.pl
index c34acc9c..86bdbbbb 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_im.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_im.pl
@@ -3,14 +3,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_io.pl b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_io.pl
index 5769240b..8f6f00f7 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_io.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_io.pl
@@ -2,14 +2,21 @@
 # Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_match.pl b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_match.pl
index 5cc74efb..11456e02 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_match.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_match.pl
@@ -3,14 +3,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_misc.pl b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_misc.pl
index 07b50e86..82e6bddb 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_misc.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_misc.pl
@@ -2,14 +2,21 @@
 # Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_process.pl b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_process.pl
index 333f8bcc..fa7e7319 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_process.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_process.pl
@@ -3,14 +3,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_report.pl b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_report.pl
index 50da8170..e89bd67b 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_report.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_report.pl
@@ -2,14 +2,21 @@
 # Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_stress.pl b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_stress.pl
index 7f92c417..560517fe 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_stress.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_stress.pl
@@ -3,14 +3,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_timer.pl b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_timer.pl
index 4fc68afa..b86a7fc1 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_timer.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_timer.pl
@@ -3,14 +3,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_unique.pl b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_unique.pl
index 4e4e720e..62002ade 100644
--- a/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_unique.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/v1/mtr_unique.pl
@@ -3,14 +3,21 @@
 # Use is subject to license terms.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/mysql-wsrep-5.6/mysql-test/lib/v1/mysql-test-run.pl b/mysql-wsrep-5.6/mysql-test/lib/v1/mysql-test-run.pl
index b615fa8f..914cc57a 100755
--- a/mysql-wsrep-5.6/mysql-test/lib/v1/mysql-test-run.pl
+++ b/mysql-wsrep-5.6/mysql-test/lib/v1/mysql-test-run.pl
@@ -4,14 +4,21 @@
 # Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/mysql-wsrep-5.6/mysql-test/mysql-stress-test.pl b/mysql-wsrep-5.6/mysql-test/mysql-stress-test.pl
index 0e3b52d7..b1c2ef84 100755
--- a/mysql-wsrep-5.6/mysql-test/mysql-stress-test.pl
+++ b/mysql-wsrep-5.6/mysql-test/mysql-stress-test.pl
@@ -2,15 +2,21 @@
 
 # Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
 #
-# This program 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; version 2
-# of the License.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Library General Public License for more details.
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/mysql-test-run.pl b/mysql-wsrep-5.6/mysql-test/mysql-test-run.pl
index 0bc369ad..6e0c7c08 100755
--- a/mysql-wsrep-5.6/mysql-test/mysql-test-run.pl
+++ b/mysql-wsrep-5.6/mysql-test/mysql-test-run.pl
@@ -4,13 +4,20 @@
 # Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
@@ -95,6 +102,7 @@ use My::SysInfo;
 use My::CoreDump;
 use mtr_cases;
 use mtr_report;
+use mtr_report_junit;
 use mtr_match;
 use mtr_unique;
 use mtr_results;
@@ -295,7 +303,6 @@ our $opt_user = "root";
 our $opt_valgrind= 0;
 my $opt_valgrind_mysqld= 0;
 my $opt_valgrind_mysqltest= 0;
-my @default_valgrind_args= ("--show-reachable=yes");
 my @valgrind_args;
 my $opt_valgrind_path;
 my $valgrind_reports= 0;
@@ -322,6 +329,9 @@ our $ndbcluster_enabled= 0;
 my $opt_include_ndbcluster= 0;
 my $opt_skip_ndbcluster= 0;
 
+our $opt_junit_output= undef;
+our $opt_junit_package= undef;
+
 my $exe_ndbd;
 my $exe_ndbmtd;
 my $exe_ndb_mgmd;
@@ -517,7 +527,7 @@ sub main {
     # Not all tests completed, failure
     mtr_report();
     mtr_report("Only ", int(@$completed), " of $num_tests completed.");
-    mtr_error("Not all tests completed");
+    report_stats("Not all tests completed", $completed);
   }
 
   mark_time_used('init');
@@ -557,7 +567,7 @@ sub main {
 
   print_total_times($opt_parallel) if $opt_report_times;
 
-  mtr_report_stats("Completed", $completed);
+  report_stats("Completed", $completed);
 
   remove_vardir_subs() if $opt_clean_vardir;
 
@@ -565,6 +575,17 @@ sub main {
 }
 
 
+sub report_stats($$;$) {
+  my ($prefix, $tests, $skip_error) = @_;
+
+  if ($opt_junit_output) {
+    mtr_report_stats_junit($tests, $opt_junit_output, $opt_junit_package);
+  }
+
+  mtr_report_stats($prefix, $tests, $skip_error);
+}
+
+
 sub run_test_server ($$$) {
   my ($server, $tests, $childs) = @_;
 
@@ -694,7 +715,7 @@ sub run_test_server ($$$) {
 	    elsif ($opt_max_test_fail > 0 and
 		   $num_failed_test >= $opt_max_test_fail) {
 	      push(@$completed, $result);
-	      mtr_report_stats("Too many failed", $completed, 1);
+	      report_stats("Too many failed", $completed, 1);
 	      mtr_report("Too many tests($num_failed_test) failed!",
 			 "Terminating...");
 	      return undef;
@@ -857,7 +878,7 @@ sub run_test_server ($$$) {
     # ----------------------------------------------------
     if ( has_expired($suite_timeout) )
     {
-      mtr_report_stats("Timeout", $completed, 1);
+      report_stats("Timeout", $completed, 1);
       mtr_report("Test suite timeout! Terminating...");
       return undef;
     }
@@ -1189,6 +1210,8 @@ sub command_line_setup {
 	     'unit-tests!'              => \$opt_ctest,
 	     'unit-tests-report!'	=> \$opt_ctest_report,
 	     'stress=s'                 => \$opt_stress,
+	     'junit-output=s'           => \$opt_junit_output,
+	     'junit-package=s'          => \$opt_junit_package,
 
              'help|h'                   => \$opt_usage,
 	     # list-options is internal, not listed in help
@@ -1201,6 +1224,12 @@ sub command_line_setup {
   usage("") if $opt_usage;
   list_options(\%options) if $opt_list_options;
 
+  # Make sure that XML::Simple support exists for JUnit output
+  if ($opt_junit_output and !mtr_junit_supported()) {
+    mtr_error("JUnit XML reporting is not supported.  The XML::Simple package",
+              "could not be loaded.");
+  }
+
   # --------------------------------------------------------------------------
   # Setup verbosity
   # --------------------------------------------------------------------------
@@ -1684,6 +1713,16 @@ sub command_line_setup {
 	    "for option --testsuite-timeout")
     if ($opt_suite_timeout <= 0);
 
+  # --------------------------------------------------------------------------
+  # Check trace protocol option
+  # --------------------------------------------------------------------------
+  if ( $opt_trace_protocol )
+  {
+    push(@opt_extra_mysqld_opt, "--optimizer_trace=enabled=on,one_line=off");
+    # Some queries yield big traces:
+    push(@opt_extra_mysqld_opt, "--optimizer-trace-max-mem-size=1000000");
+  }
+
   # --------------------------------------------------------------------------
   # Check valgrind arguments
   # --------------------------------------------------------------------------
@@ -1717,32 +1756,40 @@ sub command_line_setup {
     $opt_valgrind= 1;
     $opt_valgrind_mysqld= 1;
 
-    # Set special valgrind options unless options passed on command line
-    push(@valgrind_args, "--trace-children=yes")
-      unless @valgrind_args;
-  }
+    push(@valgrind_args, "--tool=callgrind", "--trace-children=yes");
 
-  if ( $opt_trace_protocol )
-  {
-    push(@opt_extra_mysqld_opt, "--optimizer_trace=enabled=on,one_line=off");
-    # some queries yield big traces:
-    push(@opt_extra_mysqld_opt, "--optimizer-trace-max-mem-size=1000000");
+    # Increase the timeouts when running with callgrind
+    $opt_testcase_timeout*= 10;
+    $opt_suite_timeout*= 6;
+    $opt_start_timeout*= 10;
+    $opt_debug_sync_timeout*= 10;
   }
 
-  if ( $opt_valgrind )
+  if ($opt_valgrind)
   {
-    # Set valgrind_options to default unless already defined
-    push(@valgrind_args, @default_valgrind_args)
-      unless @valgrind_args;
+    # Default to --tool=memcheck if no other tool has been explicitly
+    # specified. From >= 2.1.2, this option is needed
+    if (!@valgrind_args or !grep(/^--tool=/, @valgrind_args))
+    {
+      # Set default valgrind options for memcheck, can be overriden by user
+      unshift(@valgrind_args, ("--tool=memcheck", "--num-callers=16",
+                               "--show-reachable=yes"));
+    }
 
-    # Don't add --quiet; you will loose the summary reports.
+    # Add suppression file if not specified
+    if (!grep(/^--suppressions=/, @valgrind_args))
+    {
+      push(@valgrind_args,"--suppressions=${glob_mysql_test_dir}/valgrind.supp")
+           if -f "$glob_mysql_test_dir/valgrind.supp";
+    }
 
+    # Don't add --quiet; you will loose the summary reports.
     mtr_report("Running valgrind with options \"",
-	       join(" ", @valgrind_args), "\"");
-    
+               join(" ", @valgrind_args), "\"");
+
     # Turn off check testcases to save time
     mtr_report("Turning off --check-testcases to save time when valgrinding");
-    $opt_check_testcases = 0; 
+    $opt_check_testcases = 0;
   }
 
   if ($opt_debug_common)
@@ -5398,7 +5445,7 @@ sub mysqld_start ($$) {
 
   if ( $opt_valgrind_mysqld )
   {
-    valgrind_arguments($args, \$exe);
+    valgrind_arguments($args, \$exe, $mysqld->name());
   }
 
   mtr_add_arg($args, "--defaults-group-suffix=%s", $mysqld->after('mysqld'));
@@ -6445,19 +6492,23 @@ sub strace_server_arguments {
 sub valgrind_arguments {
   my $args= shift;
   my $exe=  shift;
+  my $report_prefix= shift;
 
-  if ( $opt_callgrind)
-  {
-    mtr_add_arg($args, "--tool=callgrind");
-    mtr_add_arg($args, "--base=$opt_vardir/log");
-  }
-  else
+  if (my @tool_list= grep(/^--tool=(memcheck|callgrind|massif)/, @valgrind_args))
   {
-    mtr_add_arg($args, "--tool=memcheck"); # From >= 2.1.2 needs this option
-    mtr_add_arg($args, "--leak-check=yes");
-    mtr_add_arg($args, "--num-callers=16");
-    mtr_add_arg($args, "--suppressions=%s/valgrind.supp", $glob_mysql_test_dir)
-      if -f "$glob_mysql_test_dir/valgrind.supp";
+    # Get the value of the last specified --tool=<> argument to valgrind
+    my ($tool_name)= $tool_list[-1] =~ /(memcheck|callgrind|massif)$/;
+    if ($tool_name=~ /memcheck/)
+    {
+      mtr_add_arg($args, "--leak-check=yes") ;
+    }
+    else
+    {
+      $$exe=~ /.*[\/](.*)$/;
+      my $report_prefix= defined $report_prefix ? $report_prefix : $1;
+      mtr_add_arg($args, "--$tool_name-out-file=$opt_vardir/log/".
+                         "$report_prefix"."_$tool_name.out.%%p");
+    }
   }
 
   # Add valgrind options, can be overriden by user
@@ -6869,6 +6920,8 @@ Misc options
   unit-tests-report     Include report of every test included in unit tests.
   stress=ARGS           Run stress test, providing options to
                         mysql-stress-test.pl. Options are separated by comma.
+  junit-output=FILE     Output JUnit test summary XML to FILE.
+  junit-package=NAME    Set the JUnit package name to NAME for this test run.
 
 Some options that control enabling a feature for normal test runs,
 can be turned off by prepending 'no' to the option, e.g. --notimer.
diff --git a/mysql-wsrep-5.6/mysql-test/purify.supp b/mysql-wsrep-5.6/mysql-test/purify.supp
index 0bb31d00..6c3b4781 100644
--- a/mysql-wsrep-5.6/mysql-test/purify.supp
+++ b/mysql-wsrep-5.6/mysql-test/purify.supp
@@ -1,15 +1,21 @@
 # Copyright (C) 2005, 2007 MySQL AB
 # Use is subject to license terms
 #
-# This program 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; version 2
-# of the License.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Library General Public License for more details.
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU Library General Public
 # License along with this library; if not, write to the Free
diff --git a/mysql-wsrep-5.6/mysql-test/r/audit_log_buffer_size_overflow.result b/mysql-wsrep-5.6/mysql-test/r/audit_log_buffer_size_overflow.result
new file mode 100644
index 00000000..c2501e8f
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/r/audit_log_buffer_size_overflow.result
@@ -0,0 +1,12 @@
+SHOW GLOBAL STATUS LIKE 'Audit_log_buffer_size_overflow';
+Variable_name	Value
+Audit_log_buffer_size_overflow	0
+SHOW GLOBAL STATUS LIKE 'Audit_log_buffer_size_overflow';
+Variable_name	Value
+Audit_log_buffer_size_overflow	1
+SHOW GLOBAL STATUS LIKE 'Audit_log_buffer_size_overflow';
+Variable_name	Value
+Audit_log_buffer_size_overflow	0
+SHOW GLOBAL STATUS LIKE 'Audit_log_buffer_size_overflow';
+Variable_name	Value
+Audit_log_buffer_size_overflow	1
diff --git a/mysql-wsrep-5.6/mysql-test/r/audit_log_charset.result b/mysql-wsrep-5.6/mysql-test/r/audit_log_charset.result
new file mode 100644
index 00000000..a6289465
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/r/audit_log_charset.result
@@ -0,0 +1,70 @@
+SET GLOBAL audit_log_flush=ON;
+set names tis620;
+SET NAMES utf8mb4;
+INSERT INTO t VALUES ('𦉘𦟌𦧲');
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\xA6\x89\x98\xF0\xA6...' for column 'txt' at row 1
+CREATE DATABASE 𦉘𦟌𦧲;
+Warnings:
+Warning	1300	Invalid utf8mb4 character string: '\xF0\xA6\x89\x98\xF0\xA6...'
+SHOW DATABASES;
+Database
+information_schema
+???
+ฐานข้อมูล
+mtr
+mysql
+performance_schema
+test
+use 𦉘𦟌𦧲;
+Warnings:
+Warning	1300	Invalid utf8mb4 character string: '\xF0\xA6\x89\x98\xF0\xA6...'
+use ฐานข้อมูล;
+SET NAMES utf8;
+SELECT * FROM t WHERE txt LIKE 'ขุนนาง%';
+txt
+ขุนนางใช่พ่อแม่ หินแง่ใช่ตายาย
+use test;
+SELECT * FROM ฐานข้อมูล.t LIMIT 1;
+txt
+ขุนนางใช่พ่อแม่ หินแง่ใช่ตายาย
+use ฐานข้อมูล;
+DROP DATABASE ฐานข้อมูล;
+DROP DATABASE `???`;
+use test;
+SET @@character_set_client=cp1256;
+CREATE t \217\355ݏ\355ݏ\355\335(\217\260\241\217\260\241\217\260\241 char) DEFAULT CHARSET=ujis engine=TokuDB;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 't \217\355ف?\355ف?\355\335(\217\260\241\217\260\241\217\260\241 char) DEFAULT ' at line 1
+set global audit_log_flush= ON;
+===================================================================
+"Query","","","set_option","",0,"SET GLOBAL audit_log_flush=ON","root[root] @ localhost []","localhost","","","test"
+"Query","","","set_option","",0,"set names tis620","root[root] @ localhost []","localhost","","","test"
+"Query","","","select","",0,"SELECT x'b0d2b9a2e9cdc1d9c5'","root[root] @ localhost []","localhost","","","test"
+"Query","","","select","",0,"SELECT x'a2d8b9b9d2a7e3aae8bee8cde1c1e820cbd4b9e1a7e8e3aae8b5d2c2d2c2'","root[root] @ localhost []","localhost","","","test"
+"Query","","","select","",0,"SELECT x'a1a7e0a1c7d5c2b9a1d3e0a1c7d5c2b9'","root[root] @ localhost []","localhost","","","test"
+"Query","","","select","",0,"SELECT REPEAT('กงเกวียนกำเกวียน   ', 400)","root[root] @ localhost []","localhost","","","test"
+"Query","","","select","",0,"SELECT 'ฐานข้อมูล'","root[root] @ localhost []","localhost","","","test"
+"Query","","","create_db","",0,"CREATE DATABASE `ฐานข้อมูล`","root[root] @ localhost []","localhost","","","test"
+"Query","","","change_db","",0,"use `ฐานข้อมูล`","root[root] @ localhost []","localhost","","","ฐานข้อมูล"
+"Query","","","create_table","",0,"CREATE TABLE t (txt TEXT) charset='utf8'","root[root] @ localhost []","localhost","","","ฐานข้อมูล"
+"Query","","","insert","",0,"INSERT INTO t VALUES ('ขุนนางใช่พ่อแม่ หินแง่ใช่ตายาย')","root[root] @ localhost []","localhost","","","ฐานข้อมูล"
+"Query","","","insert","",0,"INSERT INTO t VALUES ('กงเกวียนกำเกวียน')","root[root] @ localhost []","localhost","","","ฐานข้อมูล"
+"Query","","","insert","",0,"INSERT INTO t VALUES ('กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   กงเกวียนกำเกวียน   ')","root[root] @ localhost []","localhost","","","ฐานข้อมูล"
+"Query","","","insert","",0,"INSERT INTO t VALUES ('𦉘𦟌𦧲')","root[root] @ localhost []","localhost","","","ฐานข้อมูล"
+"Query","","","show_warnings","",0,"SHOW WARNINGS","root[root] @ localhost []","localhost","","","ฐานข้อมูล"
+"Query","","","create_db","",0,"CREATE DATABASE 𦉘𦟌𦧲","root[root] @ localhost []","localhost","","","ฐานข้อมูล"
+"Query","","","show_warnings","",0,"SHOW WARNINGS","root[root] @ localhost []","localhost","","","ฐานข้อมูล"
+"Query","","","show_databases","",0,"SHOW DATABASES","root[root] @ localhost []","localhost","","","ฐานข้อมูล"
+"Query","","","change_db","",0,"use 𦉘𦟌𦧲","root[root] @ localhost []","localhost","","","???"
+"Query","","","show_warnings","",0,"SHOW WARNINGS","root[root] @ localhost []","localhost","","","???"
+"Query","","","change_db","",0,"use ฐานข้อมูล","root[root] @ localhost []","localhost","","","ฐานข้อมูล"
+"Query","","","select","",0,"SELECT * FROM t WHERE txt LIKE 'ขุนนาง%'","root[root] @ localhost []","localhost","","","ฐานข้อมูล"
+"Query","","","change_db","",0,"use test","root[root] @ localhost []","localhost","","","test"
+"Query","","","select","",0,"SELECT * FROM ฐานข้อมูล.t LIMIT 1","root[root] @ localhost []","localhost","","","test"
+"Query","","","change_db","",0,"use ฐานข้อมูล","root[root] @ localhost []","localhost","","","ฐานข้อมูล"
+"Query","","","drop_db","",0,"DROP DATABASE ฐานข้อมูล","root[root] @ localhost []","localhost","","","ฐานข้อมูล"
+"Query","","","drop_db","",0,"DROP DATABASE `???`","root[root] @ localhost []","localhost","","","ฐานข้อมูล"
+"Query","","","change_db","",0,"use test","root[root] @ localhost []","localhost","","","test"
+"Query","","","set_option","",0,"SET @@character_set_client=cp1256","root[root] @ localhost []","localhost","","","test"
+"Query","","","error","",1064,"CREATE t \217\355ف?\355ف?\355\335(\217\260\241\217\260\241\217\260\241 char) DEFAULT CHARSET=ujis engine=TokuDB","root[root] @ localhost []","localhost","","","test"
+===================================================================
diff --git a/mysql-wsrep-5.6/mysql-test/r/audit_log_csv.result b/mysql-wsrep-5.6/mysql-test/r/audit_log_csv.result
new file mode 100644
index 00000000..a519f71b
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/r/audit_log_csv.result
@@ -0,0 +1,100 @@
+SET GLOBAL audit_log_flush=ON;
+SET GLOBAL audit_log_flush=ON;
+CREATE TABLE t1 (c1 INT, c2 CHAR(20));
+CREATE TABLE t1
+(c1 INT,
+c2 CHAR(20));
+ERROR 42S01: Table 't1' already exists
+INSERT INTO t1 VALUES (1,'a'),(2,'b'),(3,'c');
+SELECT * FROM t1;
+c1	c2
+1	a
+2	b
+3	c
+SELECT * FROM t2;
+ERROR 42S02: Table 'test.t2' doesn't exist
+DROP TABLE t1;
+PREPARE stmt1 FROM 'SELECT 1';
+EXECUTE stmt1;
+1
+1
+SHOW STATUS LIKE 'audit_log%';
+Variable_name	Value
+Audit_log_buffer_size_overflow	0
+DEALLOCATE PREPARE stmt1;
+show variables like 'audit_log%';
+Variable_name	Value
+audit_log_buffer_size	1048576
+audit_log_exclude_accounts	
+audit_log_exclude_commands	
+audit_log_file	test_audit.log
+audit_log_flush	OFF
+audit_log_format	CSV
+audit_log_handler	FILE
+audit_log_include_accounts	
+audit_log_include_commands	
+audit_log_policy	ALL
+audit_log_rotate_on_size	0
+audit_log_rotations	0
+audit_log_strategy	SEMISYNCHRONOUS
+audit_log_syslog_facility	LOG_USER
+audit_log_syslog_ident	percona-audit
+audit_log_syslog_priority	LOG_INFO
+connect(localhost,no_such_user,,mysql,MASTER_PORT,MASTER_SOCKET);
+ERROR 28000: Access denied for user 'no_such_user'@'localhost' (using password: NO)
+create table t1 (id int);
+create table t2 (id int);
+insert into t1 values (1), (2);
+insert into t2 values (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2);
+select * from t1;
+id
+1
+2
+alter table t1 rename renamed_t1;
+select * from t_doesnt_exist;
+ERROR 42S02: Table 'test.t_doesnt_exist' doesn't exist
+syntax_error_query;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'syntax_error_query' at line 1
+drop table renamed_t1, t2;
+show variables like 'audit_log%';
+Variable_name	Value
+audit_log_buffer_size	1048576
+audit_log_exclude_accounts	
+audit_log_exclude_commands	
+audit_log_file	test_audit.log
+audit_log_flush	OFF
+audit_log_format	CSV
+audit_log_handler	FILE
+audit_log_include_accounts	
+audit_log_include_commands	
+audit_log_policy	ALL
+audit_log_rotate_on_size	0
+audit_log_rotations	0
+audit_log_strategy	SEMISYNCHRONOUS
+audit_log_syslog_facility	LOG_USER
+audit_log_syslog_ident	percona-audit
+audit_log_syslog_priority	LOG_INFO
+create database sa_db;
+create table t1 (id2 int);
+insert into t1 values (1), (2);
+select * from t1;
+id2
+1
+2
+drop table t1;
+use sa_db;
+create table sa_t1(id int);
+insert into sa_t1 values (1), (2);
+drop table sa_t1;
+drop database sa_db;
+create user 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
+drop user 'jeffrey'@'localhost';
+select '&;&&&""""<><<>>>>';
+&;&&&""""<><<>>>>
+&;&&&""""<><<>>>>
+select ' 	
+
/"\\';
+/"\
+ 	
+
/"\
+set global audit_log_flush= ON;
diff --git a/mysql-wsrep-5.6/mysql-test/r/audit_log_default_db.result b/mysql-wsrep-5.6/mysql-test/r/audit_log_default_db.result
new file mode 100644
index 00000000..c3b446b1
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/r/audit_log_default_db.result
@@ -0,0 +1,85 @@
+set names utf8;
+CREATE USER 'user1'@'%' IDENTIFIED BY '111';
+CREATE USER 'user2'@'%' IDENTIFIED BY '111';
+CREATE DATABASE db1;
+CREATE DATABASE db2;
+CREATE DATABASE `ąžąžąžą`;
+CREATE TABLE db1.t (a VARCHAR(100));
+CREATE TABLE db2.t (a VARCHAR(100));
+CREATE TABLE ąžąžąžą.t (a VARCHAR(100)) charset=utf8;
+INSERT INTO db1.t VALUES ('db1');
+INSERT INTO db2.t VALUES ('db2');
+INSERT INTO ąžąžąžą.t VALUES ('ąžąžąžą');
+GRANT ALL PRIVILEGES ON db1.* TO 'user1'@'%';
+GRANT ALL PRIVILEGES ON db2.* TO 'user1'@'%';
+GRANT ALL PRIVILEGES ON db2.* TO 'user2'@'%';
+GRANT ALL PRIVILEGES ON ąžąžąžą.* TO 'user1'@'%';
+GRANT ALL PRIVILEGES ON ąžąžąžą.* TO 'user2'@'%';
+UNINSTALL PLUGIN audit_log;
+Warnings:
+Warning	1620	Plugin is busy and will be uninstalled on shutdown
+INSTALL PLUGIN audit_log SONAME 'audit_log.so';
+connect(localhost,user2,111,db1,MASTER_MYPORT,MASTER_MYSOCK);
+ERROR 42000: Access denied for user 'user2'@'%' to database 'db1'
+connect(localhost,user2,112,db2,MASTER_MYPORT,MASTER_MYSOCK);
+ERROR 28000: Access denied for user 'user2'@'localhost' (using password: YES)
+connect(localhost,user3,111,db2,MASTER_MYPORT,MASTER_MYSOCK);
+ERROR 28000: Access denied for user 'user3'@'localhost' (using password: YES)
+set names utf8;
+SELECT * FROM t;
+a
+db2
+use    	`db1`;
+ERROR 42000: Access denied for user 'user2'@'%' to database 'db1'
+SELECT * FROM t;
+a
+db2
+set names utf8;
+SELECT * FROM t;
+a
+db1
+use `db2`;
+SELECT * FROM t;
+a
+db2
+use ąžąžąžą;
+SELECT * FROM t;
+a
+ąžąžąžą
+a
+db1
+set global audit_log_flush= ON;
+===================================================================
+"Query","","","install_plugin","",0,"INSTALL PLUGIN audit_log SONAME 'audit_log.so'","root[root] @ localhost []","localhost","","",""
+"Quit","","","",0,"root","root","","","localhost","","test"
+"Connect","","","",1044,"user2","user2","","","localhost","",""
+"Quit","","","",0,"user2","user2","","","localhost","",""
+"Connect","","","",1045,"user2","user2","","","localhost","",""
+"Quit","","","",0,"user2","user2","","","localhost","",""
+"Connect","","","",1045,"user3","","","","localhost","",""
+"Quit","","","",0,"user3","","","","localhost","",""
+"Connect","","","",0,"user2","user2","","","localhost","","db2"
+"Query","","","set_option","",0,"set names utf8","user2[user2] @ localhost []","localhost","","","db2"
+"Query","","","select","",0,"SELECT * FROM t","user2[user2] @ localhost []","localhost","","","db2"
+"Query","","","change_db","",1044,"use    	`db1`","user2[user2] @ localhost []","localhost","","","db2"
+"Query","","","select","",0,"SELECT * FROM t","user2[user2] @ localhost []","localhost","","","db2"
+"Change user","","","",0,"user1","user1","","","localhost","","db1"
+"Query","","","set_option","",0,"set names utf8","user1[user1] @ localhost []","localhost","","","db1"
+"Query","","","select","",0,"SELECT * FROM t","user1[user1] @ localhost []","localhost","","","db1"
+"Query","","","change_db","",0,"use `db2`","user1[user1] @ localhost []","localhost","","","db2"
+"Query","","","select","",0,"SELECT * FROM t","user1[user1] @ localhost []","localhost","","","db2"
+"Query","","","change_db","",0,"use ąžąžąžą","user1[user1] @ localhost []","localhost","","","ąžąžąžą"
+"Query","","","select","",0,"SELECT * FROM t","user1[user1] @ localhost []","localhost","","","ąžąžąžą"
+"Quit","","","",0,"user1","user1","","","localhost","","ąžąžąžą"
+"Connect","","","",0,"user1","user1","","","localhost","","test"
+"Query","","","select","",0,"select @@version_comment limit 1","user1[user1] @ localhost []","localhost","","","test"
+"Query","","","select","",0,"SELECT DATABASE()","user1[user1] @ localhost []","localhost","","","test"
+"Init DB","","","error","",0,"","user1[user1] @ localhost []","localhost","","","db1"
+"Query","","","select","",0,"SELECT * FROM t","user1[user1] @ localhost []","localhost","","","db1"
+"Quit","","","",0,"user1","user1","","","localhost","","db1"
+===================================================================
+DROP DATABASE db1;
+DROP DATABASE db2;
+DROP DATABASE ąžąžąžą;
+DROP USER user1;
+DROP USER user2;
diff --git a/mysql-wsrep-5.6/mysql-test/r/audit_log_filter_commands.result b/mysql-wsrep-5.6/mysql-test/r/audit_log_filter_commands.result
new file mode 100644
index 00000000..5b88a1b2
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/r/audit_log_filter_commands.result
@@ -0,0 +1,208 @@
+SET GLOBAL audit_log_include_commands= 'create_table,create_procedure,create_trigger,insert';
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+@@audit_log_include_commands	@@audit_log_exclude_commands
+create_table,create_procedure,create_trigger,insert	NULL
+SET GLOBAL audit_log_exclude_commands= 'alter_db_upgrade,change_db,drop_table,drop_db';
+ERROR 42000: Variable 'audit_log_exclude_commands' can't be set to the value of 'alter_db_upgrade,change_db,drop_table,drop_db'
+SET GLOBAL audit_log_exclude_commands= NULL;
+ERROR 42000: Variable 'audit_log_exclude_commands' can't be set to the value of 'NULL'
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+@@audit_log_include_commands	@@audit_log_exclude_commands
+create_table,create_procedure,create_trigger,insert	NULL
+SET GLOBAL audit_log_include_commands= 'alter_db_upgrade,change_db,drop_table,drop_db';
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+@@audit_log_include_commands	@@audit_log_exclude_commands
+alter_db_upgrade,change_db,drop_table,drop_db	NULL
+SET GLOBAL audit_log_include_commands= '';
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+@@audit_log_include_commands	@@audit_log_exclude_commands
+	NULL
+SET GLOBAL audit_log_exclude_commands= 'insert,call_procedure,call_procedure,set_option,assign_to_keycache';
+ERROR 42000: Variable 'audit_log_exclude_commands' can't be set to the value of 'insert,call_procedure,call_procedure,set_option,assign_to_keycache'
+SET GLOBAL audit_log_include_commands= NULL;
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+@@audit_log_include_commands	@@audit_log_exclude_commands
+NULL	NULL
+SET GLOBAL audit_log_exclude_commands= "insert,call_procedure,call_procedure,set_option,assign_to_keycache";
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+@@audit_log_include_commands	@@audit_log_exclude_commands
+NULL	insert,call_procedure,call_procedure,set_option,assign_to_keycache
+SET GLOBAL audit_log_include_commands= 'change_db,drop_table@localhost';
+ERROR 42000: Variable 'audit_log_include_commands' can't be set to the value of 'change_db,drop_table@localhost'
+SET GLOBAL audit_log_include_commands= NULL;
+ERROR 42000: Variable 'audit_log_include_commands' can't be set to the value of 'NULL'
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+@@audit_log_include_commands	@@audit_log_exclude_commands
+NULL	insert,call_procedure,call_procedure,set_option,assign_to_keycache
+SET GLOBAL audit_log_exclude_commands= 'change_db,drop_table';
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+@@audit_log_include_commands	@@audit_log_exclude_commands
+NULL	change_db,drop_table
+SET GLOBAL audit_log_exclude_commands= '';
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+@@audit_log_include_commands	@@audit_log_exclude_commands
+NULL	
+SET GLOBAL audit_log_include_commands= 'change_db';
+ERROR 42000: Variable 'audit_log_include_commands' can't be set to the value of 'change_db'
+SET GLOBAL audit_log_exclude_commands= NULL;
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+@@audit_log_include_commands	@@audit_log_exclude_commands
+NULL	NULL
+SET GLOBAL audit_log_flush=ON;
+SET GLOBAL audit_log_flush=ON;
+SET GLOBAL audit_log_exclude_commands= NULL;
+SET GLOBAL audit_log_include_commands= NULL;
+CREATE DATABASE db1 DEFAULT CHARACTER SET latin1;
+USE db1;
+CREATE TABLE t1 (a INT, b INT, KEY(b)) engine=MyISAM;
+CREATE TABLE t2 (a INT, b INT, KEY(b)) engine=InnoDB;
+CREATE PROCEDURE p1()
+BEGIN
+INSERT INTO t1 (a, b) VALUES (1, 1);
+END//
+CREATE TRIGGER trigger1 BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t2 (a, b) VALUES (new.a, new.b);
+INSERT INTO t1 VALUES (5,5);
+CALL p1();
+SET GLOBAL keycache1.key_buffer_size=128*1024;
+CACHE INDEX t1 IN keycache1;
+Table	Op	Msg_type	Msg_text
+db1.t1	assign_to_keycache	status	OK
+ALTER DATABASE db1 DEFAULT CHARACTER SET utf8;
+ALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME;
+ERROR 42000: Unknown database '#mysql50#a-b-c'
+USE test;
+DROP TABLE db1.t1;
+DROP DATABASE db1;
+SET GLOBAL audit_log_include_commands= 'set_option,creaTE_DB,CHANGE_DB,CREATE_TABLE,CREATE_TABLE,CREATE_PROCEDURE,CREATE_TRIGger,insert,insert,insert,call_procedure,call_procedure,set_option,assign_to_keycache,alter_db,alter_db_upgrade,change_db,drop_table,drop_db';
+CREATE DATABASE db1 DEFAULT CHARACTER SET latin1;
+USE db1;
+CREATE TABLE t1 (a INT, b INT, KEY(b)) engine=MyISAM;
+CREATE TABLE t2 (a INT, b INT, KEY(b)) engine=InnoDB;
+CREATE PROCEDURE p1()
+BEGIN
+INSERT INTO t1 (a, b) VALUES (1, 1);
+END//
+CREATE TRIGGER trigger1 BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t2 (a, b) VALUES (new.a, new.b);
+INSERT INTO t1 VALUES (5,5);
+CALL p1();
+SET GLOBAL keycache1.key_buffer_size=128*1024;
+CACHE INDEX t1 IN keycache1;
+Table	Op	Msg_type	Msg_text
+db1.t1	assign_to_keycache	status	OK
+ALTER DATABASE db1 DEFAULT CHARACTER SET utf8;
+ALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME;
+ERROR 42000: Unknown database '#mysql50#a-b-c'
+USE test;
+DROP TABLE db1.t1;
+DROP DATABASE db1;
+SET GLOBAL audit_log_include_commands= 'set_option,creaTE_DB,CHANGE_DB,assign_to_keycache,alter_db,alter_db_upgrade';
+CREATE DATABASE db1 DEFAULT CHARACTER SET latin1;
+USE db1;
+CREATE TABLE t1 (a INT, b INT, KEY(b)) engine=MyISAM;
+CREATE TABLE t2 (a INT, b INT, KEY(b)) engine=InnoDB;
+CREATE PROCEDURE p1()
+BEGIN
+INSERT INTO t1 (a, b) VALUES (1, 1);
+END//
+CREATE TRIGGER trigger1 BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t2 (a, b) VALUES (new.a, new.b);
+INSERT INTO t1 VALUES (5,5);
+CALL p1();
+SET GLOBAL keycache1.key_buffer_size=128*1024;
+CACHE INDEX t1 IN keycache1;
+Table	Op	Msg_type	Msg_text
+db1.t1	assign_to_keycache	status	OK
+ALTER DATABASE db1 DEFAULT CHARACTER SET utf8;
+ALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME;
+ERROR 42000: Unknown database '#mysql50#a-b-c'
+USE test;
+DROP TABLE db1.t1;
+DROP DATABASE db1;
+SET GLOBAL audit_log_include_commands= NULL;
+SET GLOBAL audit_log_exclude_commands= 'set_option,create_db,change_db,create_table,create_table,create_prOCEDURE,CREATE_TRIGGER,INSERT,INSERT,INSERT,CALL_PROCEDURE,CALL_PROCEDUre,set_option,assign_to_keycache,alter_db,alter_db_upgrade,change_db,drop_table,drop_db';
+CREATE DATABASE db1 DEFAULT CHARACTER SET latin1;
+USE db1;
+CREATE TABLE t1 (a INT, b INT, KEY(b)) engine=MyISAM;
+CREATE TABLE t2 (a INT, b INT, KEY(b)) engine=InnoDB;
+CREATE PROCEDURE p1()
+BEGIN
+INSERT INTO t1 (a, b) VALUES (1, 1);
+END//
+CREATE TRIGGER trigger1 BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t2 (a, b) VALUES (new.a, new.b);
+INSERT INTO t1 VALUES (5,5);
+CALL p1();
+SET GLOBAL keycache1.key_buffer_size=128*1024;
+CACHE INDEX t1 IN keycache1;
+Table	Op	Msg_type	Msg_text
+db1.t1	assign_to_keycache	status	OK
+ALTER DATABASE db1 DEFAULT CHARACTER SET utf8;
+ALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME;
+ERROR 42000: Unknown database '#mysql50#a-b-c'
+USE test;
+DROP TABLE db1.t1;
+DROP DATABASE db1;
+SET GLOBAL audit_log_exclude_commands= NULL;
+SET GLOBAL audit_log_include_commands= NULL;
+set global audit_log_flush= ON;
+===================================================================
+"Query","","","set_option","",0,"SET GLOBAL audit_log_flush=ON","root[root] @ localhost []","localhost","","","test"
+"Query","","","set_option","",0,"SET GLOBAL audit_log_exclude_commands= NULL","root[root] @ localhost []","localhost","","","test"
+"Query","","","set_option","",0,"SET GLOBAL audit_log_include_commands= NULL","root[root] @ localhost []","localhost","","","test"
+"Ping","","","error","",0,"","root[root] @ localhost []","localhost","","","test"
+"Query","","","create_db","",0,"CREATE DATABASE db1 DEFAULT CHARACTER SET latin1","root[root] @ localhost []","localhost","","","test"
+"Query","","","change_db","",0,"USE db1","root[root] @ localhost []","localhost","","","db1"
+"Query","","","create_table","",0,"CREATE TABLE t1 (a INT, b INT, KEY(b)) engine=MyISAM","root[root] @ localhost []","localhost","","","db1"
+"Query","","","create_table","",0,"CREATE TABLE t2 (a INT, b INT, KEY(b)) engine=InnoDB","root[root] @ localhost []","localhost","","","db1"
+"Query","","","create_procedure","",0,"CREATE PROCEDURE p1()
+BEGIN
+INSERT INTO t1 (a, b) VALUES (1, 1);
+END","root[root] @ localhost []","localhost","","","db1"
+"Query","","","create_trigger","",0,"CREATE TRIGGER trigger1 BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t2 (a, b) VALUES (new.a, new.b)","root[root] @ localhost []","localhost","","","db1"
+"Query","","","insert","",0,"INSERT INTO t2 (a, b) VALUES (new.a, new.b)","root[root] @ localhost []","localhost","","","db1"
+"Query","","","insert","",0,"INSERT INTO t1 VALUES (5,5)","root[root] @ localhost []","localhost","","","db1"
+"Query","","","insert","",0,"INSERT INTO t2 (a, b) VALUES (new.a, new.b)","root[root] @ localhost []","localhost","","","db1"
+"Query","","","call_procedure","",0,"INSERT INTO t1 (a, b) VALUES (1, 1)","root[root] @ localhost []","localhost","","","db1"
+"Query","","","call_procedure","",0,"CALL p1()","root[root] @ localhost []","localhost","","","db1"
+"Query","","","set_option","",0,"SET GLOBAL keycache1.key_buffer_size=128*1024","root[root] @ localhost []","localhost","","","db1"
+"Query","","","assign_to_keycache","",0,"CACHE INDEX t1 IN keycache1","root[root] @ localhost []","localhost","","","db1"
+"Query","","","alter_db","",0,"ALTER DATABASE db1 DEFAULT CHARACTER SET utf8","root[root] @ localhost []","localhost","","","db1"
+"Query","","","alter_db_upgrade","",1049,"ALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME","root[root] @ localhost []","localhost","","","db1"
+"Query","","","change_db","",0,"USE test","root[root] @ localhost []","localhost","","","test"
+"Query","","","drop_table","",0,"DROP TABLE db1.t1","root[root] @ localhost []","localhost","","","test"
+"Query","","","drop_db","",0,"DROP DATABASE db1","root[root] @ localhost []","localhost","","","test"
+"Ping","","","error","",0,"","root[root] @ localhost []","localhost","","","test"
+"Query","","","set_option","",0,"SET GLOBAL audit_log_include_commands= 'set_option,creaTE_DB,CHANGE_DB,CREATE_TABLE,CREATE_TABLE,CREATE_PROCEDURE,CREATE_TRIGger,insert,insert,insert,call_procedure,call_procedure,set_option,assign_to_keycache,alter_db,alter_db_upgrade,change_db,drop_table,drop_db'","root[root] @ localhost []","localhost","","","test"
+"Query","","","create_db","",0,"CREATE DATABASE db1 DEFAULT CHARACTER SET latin1","root[root] @ localhost []","localhost","","","test"
+"Query","","","change_db","",0,"USE db1","root[root] @ localhost []","localhost","","","db1"
+"Query","","","create_table","",0,"CREATE TABLE t1 (a INT, b INT, KEY(b)) engine=MyISAM","root[root] @ localhost []","localhost","","","db1"
+"Query","","","create_table","",0,"CREATE TABLE t2 (a INT, b INT, KEY(b)) engine=InnoDB","root[root] @ localhost []","localhost","","","db1"
+"Query","","","create_procedure","",0,"CREATE PROCEDURE p1()
+BEGIN
+INSERT INTO t1 (a, b) VALUES (1, 1);
+END","root[root] @ localhost []","localhost","","","db1"
+"Query","","","create_trigger","",0,"CREATE TRIGGER trigger1 BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t2 (a, b) VALUES (new.a, new.b)","root[root] @ localhost []","localhost","","","db1"
+"Query","","","insert","",0,"INSERT INTO t2 (a, b) VALUES (new.a, new.b)","root[root] @ localhost []","localhost","","","db1"
+"Query","","","insert","",0,"INSERT INTO t1 VALUES (5,5)","root[root] @ localhost []","localhost","","","db1"
+"Query","","","insert","",0,"INSERT INTO t2 (a, b) VALUES (new.a, new.b)","root[root] @ localhost []","localhost","","","db1"
+"Query","","","call_procedure","",0,"INSERT INTO t1 (a, b) VALUES (1, 1)","root[root] @ localhost []","localhost","","","db1"
+"Query","","","call_procedure","",0,"CALL p1()","root[root] @ localhost []","localhost","","","db1"
+"Query","","","set_option","",0,"SET GLOBAL keycache1.key_buffer_size=128*1024","root[root] @ localhost []","localhost","","","db1"
+"Query","","","assign_to_keycache","",0,"CACHE INDEX t1 IN keycache1","root[root] @ localhost []","localhost","","","db1"
+"Query","","","alter_db","",0,"ALTER DATABASE db1 DEFAULT CHARACTER SET utf8","root[root] @ localhost []","localhost","","","db1"
+"Query","","","alter_db_upgrade","",1049,"ALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME","root[root] @ localhost []","localhost","","","db1"
+"Query","","","change_db","",0,"USE test","root[root] @ localhost []","localhost","","","test"
+"Query","","","drop_table","",0,"DROP TABLE db1.t1","root[root] @ localhost []","localhost","","","test"
+"Query","","","drop_db","",0,"DROP DATABASE db1","root[root] @ localhost []","localhost","","","test"
+"Query","","","set_option","",0,"SET GLOBAL audit_log_include_commands= 'set_option,creaTE_DB,CHANGE_DB,assign_to_keycache,alter_db,alter_db_upgrade'","root[root] @ localhost []","localhost","","","test"
+"Query","","","create_db","",0,"CREATE DATABASE db1 DEFAULT CHARACTER SET latin1","root[root] @ localhost []","localhost","","","test"
+"Query","","","change_db","",0,"USE db1","root[root] @ localhost []","localhost","","","db1"
+"Query","","","set_option","",0,"SET GLOBAL keycache1.key_buffer_size=128*1024","root[root] @ localhost []","localhost","","","db1"
+"Query","","","assign_to_keycache","",0,"CACHE INDEX t1 IN keycache1","root[root] @ localhost []","localhost","","","db1"
+"Query","","","alter_db","",0,"ALTER DATABASE db1 DEFAULT CHARACTER SET utf8","root[root] @ localhost []","localhost","","","db1"
+"Query","","","alter_db_upgrade","",1049,"ALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME","root[root] @ localhost []","localhost","","","db1"
+"Query","","","change_db","",0,"USE test","root[root] @ localhost []","localhost","","","test"
+"Query","","","set_option","",0,"SET GLOBAL audit_log_include_commands= NULL","root[root] @ localhost []","localhost","","","test"
+"Ping","","","error","",0,"","root[root] @ localhost []","localhost","","","test"
+"Ping","","","error","",0,"","root[root] @ localhost []","localhost","","","test"
+"Query","","","set_option","",0,"SET GLOBAL audit_log_exclude_commands= NULL","root[root] @ localhost []","localhost","","","test"
+"Query","","","set_option","",0,"SET GLOBAL audit_log_include_commands= NULL","root[root] @ localhost []","localhost","","","test"
+===================================================================
diff --git a/mysql-wsrep-5.6/mysql-test/r/audit_log_filter_users.result b/mysql-wsrep-5.6/mysql-test/r/audit_log_filter_users.result
new file mode 100644
index 00000000..00fd60f8
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/r/audit_log_filter_users.result
@@ -0,0 +1,227 @@
+CREATE USER 'user1'@'127.0.0.1' IDENTIFIED BY 'password1';
+CREATE USER 'user22'@'%' IDENTIFIED BY 'password1';
+CREATE USER '22user'@'localhost' IDENTIFIED BY 'password1';
+CREATE USER 'admin'@'%' IDENTIFIED BY 'password1';
+CREATE USER 'us,er1'@'localhost' IDENTIFIED BY 'password1';
+SET GLOBAL audit_log_include_accounts= 'user1@localhost,, user22@127.0.0.1,admin@%';
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+@@audit_log_include_accounts	@@audit_log_exclude_accounts
+user1@localhost,, user22@127.0.0.1,admin@%	NULL
+SET GLOBAL audit_log_exclude_accounts= '22useer@localhost';
+ERROR 42000: Variable 'audit_log_exclude_accounts' can't be set to the value of '22useer@localhost'
+SET GLOBAL audit_log_exclude_accounts= NULL;
+ERROR 42000: Variable 'audit_log_exclude_accounts' can't be set to the value of 'NULL'
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+@@audit_log_include_accounts	@@audit_log_exclude_accounts
+user1@localhost,, user22@127.0.0.1,admin@%	NULL
+SET GLOBAL audit_log_include_accounts= 'user1@localhost, user2@localhost, user3@localhost';
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+@@audit_log_include_accounts	@@audit_log_exclude_accounts
+user1@localhost, user2@localhost, user3@localhost	NULL
+SET GLOBAL audit_log_include_accounts= '';
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+@@audit_log_include_accounts	@@audit_log_exclude_accounts
+	NULL
+SET GLOBAL audit_log_exclude_accounts= '22useer@localhost';
+ERROR 42000: Variable 'audit_log_exclude_accounts' can't be set to the value of '22useer@localhost'
+SET GLOBAL audit_log_include_accounts= NULL;
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+@@audit_log_include_accounts	@@audit_log_exclude_accounts
+NULL	NULL
+SET GLOBAL audit_log_exclude_accounts= "'us,er1'@'localhost',, user22@127.0.0.1,admin@%";
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+@@audit_log_include_accounts	@@audit_log_exclude_accounts
+NULL	'us,er1'@'localhost',, user22@127.0.0.1,admin@%
+SET GLOBAL audit_log_include_accounts= '22useer@localhost';
+ERROR 42000: Variable 'audit_log_include_accounts' can't be set to the value of '22useer@localhost'
+SET GLOBAL audit_log_include_accounts= NULL;
+ERROR 42000: Variable 'audit_log_include_accounts' can't be set to the value of 'NULL'
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+@@audit_log_include_accounts	@@audit_log_exclude_accounts
+NULL	'us,er1'@'localhost',, user22@127.0.0.1,admin@%
+SET GLOBAL audit_log_exclude_accounts= 'user1@localhost, user2@localhost, user3@localhost';
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+@@audit_log_include_accounts	@@audit_log_exclude_accounts
+NULL	user1@localhost, user2@localhost, user3@localhost
+SET GLOBAL audit_log_exclude_accounts= '';
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+@@audit_log_include_accounts	@@audit_log_exclude_accounts
+NULL	
+SET GLOBAL audit_log_include_accounts= '22useer@localhost';
+ERROR 42000: Variable 'audit_log_include_accounts' can't be set to the value of '22useer@localhost'
+SET GLOBAL audit_log_exclude_accounts= NULL;
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+@@audit_log_include_accounts	@@audit_log_exclude_accounts
+NULL	NULL
+SET GLOBAL audit_log_flush=ON;
+SET GLOBAL audit_log_flush=ON;
+SET GLOBAL audit_log_include_accounts= '';
+SELECT 'user1';
+user1
+user1
+SELECT 'user22';
+user22
+user22
+SELECT '22user';
+22user
+22user
+SELECT 'user22';
+user22
+user22
+SELECT 'admin';
+admin
+admin
+SELECT 'us,er1';
+us,er1
+us,er1
+SET GLOBAL audit_log_include_accounts= 'user1@localhost,, user22@127.0.0.1,admin@%,veryveryveryveryveryveryveryveryveryveryveryveryveryveryveryloooooooooooooongusername@veryveryveryveryveryveryveryveryveryveryveryveryveryveryveryloooooooooooooonghostname';
+SELECT 'user1';
+user1
+user1
+SELECT 'user22';
+user22
+user22
+SELECT '22user';
+22user
+22user
+SELECT 'user22';
+user22
+user22
+SELECT 'admin';
+admin
+admin
+SELECT 'us,er1';
+us,er1
+us,er1
+SET GLOBAL audit_log_include_accounts= NULL;
+SELECT 'user1';
+user1
+user1
+SELECT 'user22';
+user22
+user22
+SELECT '22user';
+22user
+22user
+SELECT 'user22';
+user22
+user22
+SELECT 'admin';
+admin
+admin
+SELECT 'us,er1';
+us,er1
+us,er1
+SET GLOBAL audit_log_exclude_accounts= 'user1@localhost,, user22@127.0.0.1,admin@%';
+SELECT 'user1';
+user1
+user1
+SELECT 'user22';
+user22
+user22
+SELECT '22user';
+22user
+22user
+SELECT 'user22';
+user22
+user22
+SELECT 'admin';
+admin
+admin
+SELECT 'us,er1';
+us,er1
+us,er1
+SET GLOBAL audit_log_exclude_accounts= NULL;
+set global audit_log_flush= ON;
+===================================================================
+"Query","","","set_option","",0,"SET GLOBAL audit_log_flush=ON","root[root] @ localhost []","localhost","","","test"
+*************************************************************
+"Query","","","set_option","",0,"SET GLOBAL audit_log_include_accounts= ''","root[root] @ localhost []","localhost","","","test"
+*************************************************************
+"Query","","","set_option","",0,"SET GLOBAL audit_log_include_accounts= 'user1@localhost,, user22@127.0.0.1,admin@%,veryveryveryveryveryveryveryveryveryveryveryveryveryveryveryloooooooooooooongusername@veryveryveryveryveryveryveryveryveryveryveryveryveryveryveryloooooooooooooonghostname'","root[root] @ localhost []","localhost","","","test"
+"Connect","","","",0,"admin","admin","","","localhost","127.0.0.1","test"
+"Query","","","select","",0,"SELECT 'admin'","admin[admin] @ localhost [127.0.0.1]","localhost","","127.0.0.1","test"
+"Quit","","","",0,"admin","admin","","","localhost","127.0.0.1","test"
+*************************************************************
+"Query","","","set_option","",0,"SET GLOBAL audit_log_include_accounts= NULL","root[root] @ localhost []","localhost","","","test"
+"Connect","","","",0,"user1","user1","","","localhost","127.0.0.1","test"
+"Query","","","select","",0,"SELECT 'user1'","user1[user1] @ localhost [127.0.0.1]","localhost","","127.0.0.1","test"
+"Quit","","","",0,"user1","user1","","","localhost","127.0.0.1","test"
+"Connect","","","",0,"user22","user22","","","localhost","","test"
+"Query","","","select","",0,"SELECT 'user22'","user22[user22] @ localhost []","localhost","","","test"
+"Quit","","","",0,"user22","user22","","","localhost","","test"
+"Connect","","","",0,"22user","22user","","","localhost","","test"
+"Query","","","select","",0,"SELECT '22user'","22user[22user] @ localhost []","localhost","","","test"
+"Change user","","","",0,"user22","user22","","","localhost","",""
+"Query","","","select","",0,"SELECT 'user22'","user22[user22] @ localhost []","localhost","","",""
+"Quit","","","",0,"user22","user22","","","localhost","",""
+"Connect","","","",0,"admin","admin","","","localhost","127.0.0.1","test"
+"Query","","","select","",0,"SELECT 'admin'","admin[admin] @ localhost [127.0.0.1]","localhost","","127.0.0.1","test"
+"Quit","","","",0,"admin","admin","","","localhost","127.0.0.1","test"
+"Connect","","","",0,"us,er1","us,er1","","","localhost","","test"
+"Query","","","select","",0,"SELECT 'us,er1'","us,er1[us,er1] @ localhost []","localhost","","","test"
+"Quit","","","",0,"us,er1","us,er1","","","localhost","","test"
+*************************************************************
+"Query","","","set_option","",0,"SET GLOBAL audit_log_exclude_accounts= 'user1@localhost,, user22@127.0.0.1,admin@%'","root[root] @ localhost []","localhost","","","test"
+"Connect","","","",0,"user1","user1","","","localhost","127.0.0.1","test"
+"Query","","","select","",0,"SELECT 'user1'","user1[user1] @ localhost [127.0.0.1]","localhost","","127.0.0.1","test"
+"Quit","","","",0,"user1","user1","","","localhost","127.0.0.1","test"
+"Connect","","","",0,"user22","user22","","","localhost","","test"
+"Query","","","select","",0,"SELECT 'user22'","user22[user22] @ localhost []","localhost","","","test"
+"Quit","","","",0,"user22","user22","","","localhost","","test"
+"Connect","","","",0,"22user","22user","","","localhost","","test"
+"Query","","","select","",0,"SELECT '22user'","22user[22user] @ localhost []","localhost","","","test"
+"Change user","","","",0,"user22","user22","","","localhost","",""
+"Query","","","select","",0,"SELECT 'user22'","user22[user22] @ localhost []","localhost","","",""
+"Quit","","","",0,"user22","user22","","","localhost","",""
+"Connect","","","",0,"us,er1","us,er1","","","localhost","","test"
+"Query","","","select","",0,"SELECT 'us,er1'","us,er1[us,er1] @ localhost []","localhost","","","test"
+"Quit","","","",0,"us,er1","us,er1","","","localhost","","test"
+*************************************************************
+"Query","","","set_option","",0,"SET GLOBAL audit_log_exclude_accounts= NULL","root[root] @ localhost []","localhost","","","test"
+===================================================================
+SHOW VARIABLES LIKE 'audit_log_exclude_accounts';
+Variable_name	Value
+audit_log_exclude_accounts	
+SET GLOBAL audit_log_exclude_accounts = 'user22@%';
+SHOW VARIABLES LIKE 'audit_log_exclude_accounts';
+Variable_name	Value
+audit_log_exclude_accounts	user22@%
+SET GLOBAL audit_log_flush = ON;
+SET GLOBAL audit_log_flush = ON;
+SELECT current_user();
+current_user()
+user22@%
+SHOW VARIABLES LIKE 'audit_log_exclude_accounts';
+Variable_name	Value
+audit_log_exclude_accounts	user22@%
+CREATE TABLE t1 (a text);
+INSERT INTO t1 VALUES("This shouldn't go to audit log");
+SELECT * FROM t1;
+a
+This shouldn't go to audit log
+DROP TABLE t1;
+SET GLOBAL audit_log_exclude_accounts = '';
+SHOW VARIABLES LIKE 'audit_log_exclude_accounts';
+Variable_name	Value
+audit_log_exclude_accounts	
+SELECT current_user();
+current_user()
+user22@%
+SHOW VARIABLES LIKE 'audit_log_exclude_accounts';
+Variable_name	Value
+audit_log_exclude_accounts	
+CREATE TABLE t1 (a text);
+INSERT INTO t1 VALUES("This should go to audit log");
+SELECT * FROM t1;
+a
+This should go to audit log
+DROP TABLE t1;
+SET GLOBAL audit_log_flush = ON;
+include/assert_grep.inc ["This should go to audit log"]
+include/assert_grep.inc ["This shouldn't go to audit log"]
+DROP USER 'user1'@'127.0.0.1';
+DROP USER 'user22'@'%';
+DROP USER '22user'@'localhost';
+DROP USER 'admin'@'%';
+DROP USER 'us,er1'@'localhost';
diff --git a/mysql-wsrep-5.6/mysql-test/r/audit_log_install.result b/mysql-wsrep-5.6/mysql-test/r/audit_log_install.result
new file mode 100644
index 00000000..794f1ed4
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/r/audit_log_install.result
@@ -0,0 +1,4 @@
+INSTALL PLUGIN audit_log SONAME 'audit_log.';
+UNINSTALL PLUGIN audit_log;
+Warnings:
+Warning	1620	Plugin is busy and will be uninstalled on shutdown
diff --git a/mysql-wsrep-5.6/mysql-test/r/audit_log_install_bug1435606.result b/mysql-wsrep-5.6/mysql-test/r/audit_log_install_bug1435606.result
new file mode 100644
index 00000000..a5c8e72f
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/r/audit_log_install_bug1435606.result
@@ -0,0 +1,4 @@
+call mtr.add_suppression("Plugin 'audit_log' init function returned error");
+call mtr.add_suppression("Plugin 'audit_log' registration as a AUDIT failed");
+INSTALL PLUGIN audit_log SONAME 'audit_log.';
+ERROR HY000: File '/path/does/not/exist/audit.log' not found (Errcode: 2 - No such file or directory)
diff --git a/mysql-wsrep-5.6/mysql-test/r/audit_log_json.result b/mysql-wsrep-5.6/mysql-test/r/audit_log_json.result
new file mode 100644
index 00000000..0c2d6adb
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/r/audit_log_json.result
@@ -0,0 +1,166 @@
+SET GLOBAL audit_log_flush=ON;
+SET GLOBAL audit_log_flush=ON;
+CREATE TABLE t1 (c1 INT, c2 CHAR(20));
+CREATE TABLE t1
+(c1 INT,
+c2 CHAR(20));
+ERROR 42S01: Table 't1' already exists
+INSERT INTO t1 VALUES (1,'a'),(2,'b'),(3,'c');
+INSERT INTO `t1` VALUES (4,NULL);
+INSERT INTO `t1` VALUES (6,'');
+INSERT INTO `t1` VALUES (7,'');
+INSERT INTO `t1` VALUES (8,'');
+INSERT INTO `t1` VALUES (9,'');
+INSERT INTO `t1` VALUES (10,'');
+INSERT INTO `t1` VALUES (11,'');
+INSERT INTO `t1` VALUES (12,'');
+INSERT INTO `t1` VALUES (13,'');
+INSERT INTO `t1` VALUES (14,'	');
+INSERT INTO `t1` VALUES (15,'
+');
+INSERT INTO `t1` VALUES (16,'');
+INSERT INTO `t1` VALUES (17,'');
+INSERT INTO `t1` VALUES (18,'
');
+INSERT INTO `t1` VALUES (19,'');
+INSERT INTO `t1` VALUES (20,'');
+INSERT INTO `t1` VALUES (21,'');
+INSERT INTO `t1` VALUES (22,'');
+INSERT INTO `t1` VALUES (23,'');
+INSERT INTO `t1` VALUES (24,'');
+INSERT INTO `t1` VALUES (25,'');
+INSERT INTO `t1` VALUES (26,'');
+INSERT INTO `t1` VALUES (27,'');
+INSERT INTO `t1` VALUES (28,'');
+INSERT INTO `t1` VALUES (29,'');
+INSERT INTO `t1` VALUES (30,'');
+INSERT INTO `t1` VALUES (31,'');
+INSERT INTO `t1` VALUES (32,'');
+INSERT INTO `t1` VALUES (33,'');
+INSERT INTO `t1` VALUES (34,'');
+INSERT INTO `t1` VALUES (35,'');
+INSERT INTO `t1` VALUES (36,'');
+SELECT * FROM t1;
+c1	c2
+1	a
+2	b
+3	c
+4	NULL
+6	
+7	
+8	
+9	
+10	
+11	
+12	
+13	
+14		
+15	
+
+16	
+17	
+18	
+19	
+20	
+21	
+22	
+23	
+24	
+25	
+26	
+27	
+28	
+29	
+30	
+31	
+32	
+33	
+34	
+35	
+36	
+SELECT * FROM t2;
+ERROR 42S02: Table 'test.t2' doesn't exist
+DROP TABLE t1;
+PREPARE stmt1 FROM 'SELECT 1';
+EXECUTE stmt1;
+1
+1
+SHOW STATUS LIKE 'audit_log%';
+Variable_name	Value
+Audit_log_buffer_size_overflow	0
+DEALLOCATE PREPARE stmt1;
+show variables like 'audit_log%';
+Variable_name	Value
+audit_log_buffer_size	1048576
+audit_log_exclude_accounts	
+audit_log_exclude_commands	
+audit_log_file	test_audit.log
+audit_log_flush	OFF
+audit_log_format	JSON
+audit_log_handler	FILE
+audit_log_include_accounts	
+audit_log_include_commands	
+audit_log_policy	ALL
+audit_log_rotate_on_size	0
+audit_log_rotations	0
+audit_log_strategy	SEMISYNCHRONOUS
+audit_log_syslog_facility	LOG_USER
+audit_log_syslog_ident	percona-audit
+audit_log_syslog_priority	LOG_INFO
+connect(localhost,no_such_user,,mysql,MASTER_PORT,MASTER_SOCKET);
+ERROR 28000: Access denied for user 'no_such_user'@'localhost' (using password: NO)
+create table t1 (id int);
+create table t2 (id int);
+insert into t1 values (1), (2);
+insert into t2 values (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2);
+select * from t1;
+id
+1
+2
+alter table t1 rename renamed_t1;
+select * from t_doesnt_exist;
+ERROR 42S02: Table 'test.t_doesnt_exist' doesn't exist
+syntax_error_query;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'syntax_error_query' at line 1
+drop table renamed_t1, t2;
+show variables like 'audit_log%';
+Variable_name	Value
+audit_log_buffer_size	1048576
+audit_log_exclude_accounts	
+audit_log_exclude_commands	
+audit_log_file	test_audit.log
+audit_log_flush	OFF
+audit_log_format	JSON
+audit_log_handler	FILE
+audit_log_include_accounts	
+audit_log_include_commands	
+audit_log_policy	ALL
+audit_log_rotate_on_size	0
+audit_log_rotations	0
+audit_log_strategy	SEMISYNCHRONOUS
+audit_log_syslog_facility	LOG_USER
+audit_log_syslog_ident	percona-audit
+audit_log_syslog_priority	LOG_INFO
+create database sa_db;
+create table t1 (id2 int);
+insert into t1 values (1), (2);
+select * from t1;
+id2
+1
+2
+drop table t1;
+use sa_db;
+create table sa_t1(id int);
+insert into sa_t1 values (1), (2);
+drop table sa_t1;
+drop database sa_db;
+create user 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
+drop user 'jeffrey'@'localhost';
+select '&;&&&""""<><<>>>>';
+&;&&&""""<><<>>>>
+&;&&&""""<><<>>>>
+select ' 	
+
/"\\';
+/"\
+ 	
+
/"\
+set global audit_log_flush= ON;
diff --git a/mysql-wsrep-5.6/mysql-test/r/audit_log_long_records.result b/mysql-wsrep-5.6/mysql-test/r/audit_log_long_records.result
new file mode 100644
index 00000000..62cad62a
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/r/audit_log_long_records.result
@@ -0,0 +1,3 @@
+SET GLOBAL audit_log_flush=ON;
+SET GLOBAL audit_log_flush=ON;
+SET GLOBAL audit_log_flush= ON;
diff --git a/mysql-wsrep-5.6/mysql-test/r/audit_log_many_connections.result b/mysql-wsrep-5.6/mysql-test/r/audit_log_many_connections.result
new file mode 100644
index 00000000..395d3a6b
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/r/audit_log_many_connections.result
@@ -0,0 +1,7 @@
+SET @saved_max_connections = @@global.max_connections;
+SET GLOBAL max_connections = 2;
+connect(localhost,root,,test,MYSQL_PORT,MYSQL_SOCK);
+ERROR HY000: Too many connections
+connect(localhost,root,,test,MYSQL_PORT,MYSQL_SOCK);
+ERROR HY000: Too many connections
+SET GLOBAL max_connections= @saved_max_connections;
diff --git a/mysql-wsrep-5.6/mysql-test/r/audit_log_new.result b/mysql-wsrep-5.6/mysql-test/r/audit_log_new.result
new file mode 100644
index 00000000..ce84ff31
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/r/audit_log_new.result
@@ -0,0 +1,100 @@
+SET GLOBAL audit_log_flush=ON;
+SET GLOBAL audit_log_flush=ON;
+CREATE TABLE t1 (c1 INT, c2 CHAR(20));
+CREATE TABLE t1
+(c1 INT,
+c2 CHAR(20));
+ERROR 42S01: Table 't1' already exists
+INSERT INTO t1 VALUES (1,'a'),(2,'b'),(3,'c');
+SELECT * FROM t1;
+c1	c2
+1	a
+2	b
+3	c
+SELECT * FROM t2;
+ERROR 42S02: Table 'test.t2' doesn't exist
+DROP TABLE t1;
+PREPARE stmt1 FROM 'SELECT 1';
+EXECUTE stmt1;
+1
+1
+SHOW STATUS LIKE 'audit_log%';
+Variable_name	Value
+Audit_log_buffer_size_overflow	0
+DEALLOCATE PREPARE stmt1;
+show variables like 'audit_log%';
+Variable_name	Value
+audit_log_buffer_size	1048576
+audit_log_exclude_accounts	
+audit_log_exclude_commands	
+audit_log_file	test_audit.log
+audit_log_flush	OFF
+audit_log_format	NEW
+audit_log_handler	FILE
+audit_log_include_accounts	
+audit_log_include_commands	
+audit_log_policy	LOGINS
+audit_log_rotate_on_size	0
+audit_log_rotations	0
+audit_log_strategy	SEMISYNCHRONOUS
+audit_log_syslog_facility	LOG_USER
+audit_log_syslog_ident	percona-audit
+audit_log_syslog_priority	LOG_INFO
+connect(localhost,no_such_user,,mysql,MASTER_PORT,MASTER_SOCKET);
+ERROR 28000: Access denied for user 'no_such_user'@'localhost' (using password: NO)
+create table t1 (id int);
+create table t2 (id int);
+insert into t1 values (1), (2);
+insert into t2 values (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2);
+select * from t1;
+id
+1
+2
+alter table t1 rename renamed_t1;
+select * from t_doesnt_exist;
+ERROR 42S02: Table 'test.t_doesnt_exist' doesn't exist
+syntax_error_query;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'syntax_error_query' at line 1
+drop table renamed_t1, t2;
+show variables like 'audit_log%';
+Variable_name	Value
+audit_log_buffer_size	1048576
+audit_log_exclude_accounts	
+audit_log_exclude_commands	
+audit_log_file	test_audit.log
+audit_log_flush	OFF
+audit_log_format	NEW
+audit_log_handler	FILE
+audit_log_include_accounts	
+audit_log_include_commands	
+audit_log_policy	LOGINS
+audit_log_rotate_on_size	0
+audit_log_rotations	0
+audit_log_strategy	SEMISYNCHRONOUS
+audit_log_syslog_facility	LOG_USER
+audit_log_syslog_ident	percona-audit
+audit_log_syslog_priority	LOG_INFO
+create database sa_db;
+create table t1 (id2 int);
+insert into t1 values (1), (2);
+select * from t1;
+id2
+1
+2
+drop table t1;
+use sa_db;
+create table sa_t1(id int);
+insert into sa_t1 values (1), (2);
+drop table sa_t1;
+drop database sa_db;
+create user 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
+drop user 'jeffrey'@'localhost';
+select '&;&&&""""<><<>>>>';
+&;&&&""""<><<>>>>
+&;&&&""""<><<>>>>
+select ' 	
+
/"\\';
+/"\
+ 	
+
/"\
+set global audit_log_flush= ON;
diff --git a/mysql-wsrep-5.6/mysql-test/r/audit_log_old.result b/mysql-wsrep-5.6/mysql-test/r/audit_log_old.result
new file mode 100644
index 00000000..5a46aa28
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/r/audit_log_old.result
@@ -0,0 +1,100 @@
+SET GLOBAL audit_log_flush=ON;
+SET GLOBAL audit_log_flush=ON;
+CREATE TABLE t1 (c1 INT, c2 CHAR(20));
+CREATE TABLE t1
+(c1 INT,
+c2 CHAR(20));
+ERROR 42S01: Table 't1' already exists
+INSERT INTO t1 VALUES (1,'a'),(2,'b'),(3,'c');
+SELECT * FROM t1;
+c1	c2
+1	a
+2	b
+3	c
+SELECT * FROM t2;
+ERROR 42S02: Table 'test.t2' doesn't exist
+DROP TABLE t1;
+PREPARE stmt1 FROM 'SELECT 1';
+EXECUTE stmt1;
+1
+1
+SHOW STATUS LIKE 'audit_log%';
+Variable_name	Value
+Audit_log_buffer_size_overflow	0
+DEALLOCATE PREPARE stmt1;
+show variables like 'audit_log%';
+Variable_name	Value
+audit_log_buffer_size	4096
+audit_log_exclude_accounts	
+audit_log_exclude_commands	
+audit_log_file	test_audit.log
+audit_log_flush	OFF
+audit_log_format	OLD
+audit_log_handler	FILE
+audit_log_include_accounts	
+audit_log_include_commands	
+audit_log_policy	ALL
+audit_log_rotate_on_size	0
+audit_log_rotations	0
+audit_log_strategy	ASYNCHRONOUS
+audit_log_syslog_facility	LOG_USER
+audit_log_syslog_ident	percona-audit
+audit_log_syslog_priority	LOG_INFO
+connect(localhost,no_such_user,,mysql,MASTER_PORT,MASTER_SOCKET);
+ERROR 28000: Access denied for user 'no_such_user'@'localhost' (using password: NO)
+create table t1 (id int);
+create table t2 (id int);
+insert into t1 values (1), (2);
+insert into t2 values (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2);
+select * from t1;
+id
+1
+2
+alter table t1 rename renamed_t1;
+select * from t_doesnt_exist;
+ERROR 42S02: Table 'test.t_doesnt_exist' doesn't exist
+syntax_error_query;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'syntax_error_query' at line 1
+drop table renamed_t1, t2;
+show variables like 'audit_log%';
+Variable_name	Value
+audit_log_buffer_size	4096
+audit_log_exclude_accounts	
+audit_log_exclude_commands	
+audit_log_file	test_audit.log
+audit_log_flush	OFF
+audit_log_format	OLD
+audit_log_handler	FILE
+audit_log_include_accounts	
+audit_log_include_commands	
+audit_log_policy	ALL
+audit_log_rotate_on_size	0
+audit_log_rotations	0
+audit_log_strategy	ASYNCHRONOUS
+audit_log_syslog_facility	LOG_USER
+audit_log_syslog_ident	percona-audit
+audit_log_syslog_priority	LOG_INFO
+create database sa_db;
+create table t1 (id2 int);
+insert into t1 values (1), (2);
+select * from t1;
+id2
+1
+2
+drop table t1;
+use sa_db;
+create table sa_t1(id int);
+insert into sa_t1 values (1), (2);
+drop table sa_t1;
+drop database sa_db;
+create user 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
+drop user 'jeffrey'@'localhost';
+select '&;&&&""""<><<>>>>';
+&;&&&""""<><<>>>>
+&;&&&""""<><<>>>>
+select ' 	
+
/"\\';
+/"\
+ 	
+
/"\
+set global audit_log_flush= ON;
diff --git a/mysql-wsrep-5.6/mysql-test/r/audit_log_rotate.result b/mysql-wsrep-5.6/mysql-test/r/audit_log_rotate.result
new file mode 100644
index 00000000..c66c32f3
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/r/audit_log_rotate.result
@@ -0,0 +1,14 @@
+#
+# Rotate with "rotations" and "size" given as startup options
+#
+success
+#
+# PS-4950: Invalid audit log file size when audit_log_rotations is changed during runtime
+#
+SET @audit_log_rotations_orig = @@audit_log_rotations;
+SET @audit_log_rotate_on_size_orig = @@audit_log_rotate_on_size;
+SET GLOBAL audit_log_rotations = 3;
+SET GLOBAL audit_log_rotate_on_size = 4096;
+SET GLOBAL audit_log_rotations = @audit_log_rotations_orig;
+SET GLOBAL audit_log_rotate_on_size = @audit_log_rotate_on_size_orig;
+success
diff --git a/mysql-wsrep-5.6/mysql-test/r/audit_log_startup.result b/mysql-wsrep-5.6/mysql-test/r/audit_log_startup.result
new file mode 100644
index 00000000..36214fe6
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/r/audit_log_startup.result
@@ -0,0 +1,12 @@
+call mtr.add_suppression("Plugin 'audit_log' init function returned error.");
+call mtr.add_suppression("Plugin 'audit_log' registration as a AUDIT failed.");
+SET GLOBAL audit_log_exclude_accounts='info@localhost';
+SET GLOBAL audit_log_include_accounts='info@localhost';
+SET GLOBAL audit_log_exclude_commands='insert';
+SET GLOBAL audit_log_include_commands='insert';
+SHOW VARIABLES LIKE 'audit_log%';
+Variable_name	Value
+SHOW VARIABLES LIKE 'audit_log%';
+Variable_name	Value
+SHOW VARIABLES LIKE 'audit_log%';
+Variable_name	Value
diff --git a/mysql-wsrep-5.6/mysql-test/r/audit_log_syslog.result b/mysql-wsrep-5.6/mysql-test/r/audit_log_syslog.result
new file mode 100644
index 00000000..786f812c
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/r/audit_log_syslog.result
@@ -0,0 +1,97 @@
+CREATE TABLE t1 (c1 INT, c2 CHAR(20));
+CREATE TABLE t1
+(c1 INT,
+c2 CHAR(20));
+ERROR 42S01: Table 't1' already exists
+INSERT INTO t1 VALUES (1,'a'),(2,'b'),(3,'c');
+SELECT * FROM t1;
+c1	c2
+1	a
+2	b
+3	c
+SELECT * FROM t2;
+ERROR 42S02: Table 'test.t2' doesn't exist
+DROP TABLE t1;
+PREPARE stmt1 FROM 'SELECT 1';
+EXECUTE stmt1;
+1
+1
+SHOW STATUS LIKE 'audit_log%';
+Variable_name	Value
+Audit_log_buffer_size_overflow	0
+DEALLOCATE PREPARE stmt1;
+show variables like 'audit_log%';
+Variable_name	Value
+audit_log_buffer_size	1048576
+audit_log_exclude_accounts	
+audit_log_exclude_commands	
+audit_log_file	audit.log
+audit_log_flush	OFF
+audit_log_format	CSV
+audit_log_handler	SYSLOG
+audit_log_include_accounts	
+audit_log_include_commands	
+audit_log_policy	ALL
+audit_log_rotate_on_size	0
+audit_log_rotations	0
+audit_log_strategy	ASYNCHRONOUS
+audit_log_syslog_facility	LOG_AUTH
+audit_log_syslog_ident	test_audit
+audit_log_syslog_priority	LOG_INFO
+connect(localhost,no_such_user,,mysql,MASTER_PORT,MASTER_SOCKET);
+ERROR 28000: Access denied for user 'no_such_user'@'localhost' (using password: NO)
+create table t1 (id int);
+create table t2 (id int);
+insert into t1 values (1), (2);
+insert into t2 values (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2), (1), (2);
+select * from t1;
+id
+1
+2
+alter table t1 rename renamed_t1;
+select * from t_doesnt_exist;
+ERROR 42S02: Table 'test.t_doesnt_exist' doesn't exist
+syntax_error_query;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'syntax_error_query' at line 1
+drop table renamed_t1, t2;
+show variables like 'audit_log%';
+Variable_name	Value
+audit_log_buffer_size	1048576
+audit_log_exclude_accounts	
+audit_log_exclude_commands	
+audit_log_file	audit.log
+audit_log_flush	OFF
+audit_log_format	CSV
+audit_log_handler	SYSLOG
+audit_log_include_accounts	
+audit_log_include_commands	
+audit_log_policy	ALL
+audit_log_rotate_on_size	0
+audit_log_rotations	0
+audit_log_strategy	ASYNCHRONOUS
+audit_log_syslog_facility	LOG_AUTH
+audit_log_syslog_ident	test_audit
+audit_log_syslog_priority	LOG_INFO
+create database sa_db;
+create table t1 (id2 int);
+insert into t1 values (1), (2);
+select * from t1;
+id2
+1
+2
+drop table t1;
+use sa_db;
+create table sa_t1(id int);
+insert into sa_t1 values (1), (2);
+drop table sa_t1;
+drop database sa_db;
+create user 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
+drop user 'jeffrey'@'localhost';
+select '&;&&&""""<><<>>>>';
+&;&&&""""<><<>>>>
+&;&&&""""<><<>>>>
+select ' 	
+
/"\\';
+/"\
+ 	
+
/"\
diff --git a/mysql-wsrep-5.6/mysql-test/r/events_1.result b/mysql-wsrep-5.6/mysql-test/r/events_1.result
index 8f2c7416..65792570 100644
--- a/mysql-wsrep-5.6/mysql-test/r/events_1.result
+++ b/mysql-wsrep-5.6/mysql-test/r/events_1.result
@@ -49,7 +49,7 @@ SECOND	10	SELECT 1
 SELECT execute_at IS NULL, starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test';
 execute_at IS NULL	starts IS NULL	ends IS NULL	comment
 1	0	1	
-ALTER EVENT event_starts_test ON SCHEDULE AT '2020-02-02 20:00:02';
+ALTER EVENT event_starts_test ON SCHEDULE AT date_add(now(), interval 5 day);
 SELECT execute_at IS NULL, starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test';
 execute_at IS NULL	starts IS NULL	ends IS NULL	comment
 0	1	1	
@@ -62,7 +62,7 @@ SELECT execute_at IS NULL, starts IS NULL, ends IS NULL, comment FROM mysql.even
 execute_at IS NULL	starts IS NULL	ends IS NULL	comment
 0	1	1	
 DROP EVENT event_starts_test;
-CREATE EVENT event_starts_test ON SCHEDULE EVERY 20 SECOND STARTS '2020-02-02 20:00:02' ENDS '2022-02-02 20:00:02' DO SELECT 2;
+CREATE EVENT event_starts_test ON SCHEDULE EVERY 20 SECOND STARTS date_add(now(), interval 5 day) ENDS date_add(now(), interval 10 day) DO SELECT 2;
 SELECT execute_at IS NULL, starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test';
 execute_at IS NULL	starts IS NULL	ends IS NULL	comment
 1	0	0	
diff --git a/mysql-wsrep-5.6/mysql-test/r/events_bugs.result b/mysql-wsrep-5.6/mysql-test/r/events_bugs.result
index 8aad6f8d..c6befec7 100644
--- a/mysql-wsrep-5.6/mysql-test/r/events_bugs.result
+++ b/mysql-wsrep-5.6/mysql-test/r/events_bugs.result
@@ -40,11 +40,11 @@ Warnings:
 Note	1588	Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation.
 show events;
 Db	Name	Definer	Time zone	Type	Execute at	Interval value	Interval field	Starts	Ends	Status	Originator	character_set_client	collation_connection	Database Collation
-create event e_55 on schedule at 20200101000000 starts 10000101000000 do drop table t;
+create event e_55 on schedule at 20380101000000 starts 10000101000000 do drop table t;
 ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'starts 10000101000000 do drop table t' at line 1
-create event e_55 on schedule at 20200101000000 ends 10000101000000 do drop table t;
+create event e_55 on schedule at 20380101000000 ends 10000101000000 do drop table t;
 ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ends 10000101000000 do drop table t' at line 1
-create event e_55 on schedule at 20200101000000 starts 10000101000000 ends 10000101000000 do drop table t;
+create event e_55 on schedule at 20380101000000 starts 10000101000000 ends 10000101000000 do drop table t;
 ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'starts 10000101000000 ends 10000101000000 do drop table t' at line 1
 create event e_55 on schedule every 10 hour starts 10000101000000 do drop table t;
 ERROR HY000: Incorrect STARTS value: '10000101000000'
@@ -410,16 +410,16 @@ SHOW EVENTS;
 Db	Name	Definer	Time zone	Type	Execute at	Interval value	Interval field	Starts	Ends	Status	Originator	character_set_client	collation_connection	Database Collation
 events_test	e1	root@localhost	+02:00	ONE TIME	2000-01-02 00:00:00	NULL	NULL	NULL	NULL	DISABLED	1	latin1	latin1_swedish_ci	latin1_swedish_ci
 SET TIME_ZONE= '-03:00';
-ALTER EVENT e1 ON SCHEDULE EVERY 1 DAY ENDS '2030-01-03 00:00:00'
+ALTER EVENT e1 ON SCHEDULE EVERY 1 DAY ENDS '2038-01-03 00:00:00'
   ON COMPLETION PRESERVE DISABLE;
 SHOW EVENTS;
 Db	Name	Definer	Time zone	Type	Execute at	Interval value	Interval field	Starts	Ends	Status	Originator	character_set_client	collation_connection	Database Collation
-events_test	e1	root@localhost	-03:00	RECURRING	NULL	1	DAY	2005-12-31 20:58:59	2030-01-03 00:00:00	DISABLED	1	latin1	latin1_swedish_ci	latin1_swedish_ci
+events_test	e1	root@localhost	-03:00	RECURRING	NULL	1	DAY	2005-12-31 20:58:59	2038-01-03 00:00:00	DISABLED	1	latin1	latin1_swedish_ci	latin1_swedish_ci
 SET TIME_ZONE= '+04:00';
 ALTER EVENT e1 DO SELECT 2;
 SHOW EVENTS;
 Db	Name	Definer	Time zone	Type	Execute at	Interval value	Interval field	Starts	Ends	Status	Originator	character_set_client	collation_connection	Database Collation
-events_test	e1	root@localhost	-03:00	RECURRING	NULL	1	DAY	2005-12-31 20:58:59	2030-01-03 00:00:00	DISABLED	1	latin1	latin1_swedish_ci	latin1_swedish_ci
+events_test	e1	root@localhost	-03:00	RECURRING	NULL	1	DAY	2005-12-31 20:58:59	2038-01-03 00:00:00	DISABLED	1	latin1	latin1_swedish_ci	latin1_swedish_ci
 DROP EVENT e1;
 SET TIME_ZONE='+05:00';
 CREATE EVENT e1 ON SCHEDULE EVERY 1 DAY STARTS '2006-01-01 00:00:00' DO
@@ -643,7 +643,7 @@ SET GLOBAL READ_ONLY = 1;
 # Connection: u1_con (mysqltest_u1@localhost/events_test).
 #
 
-CREATE EVENT e1 ON SCHEDULE AT '2020-01-01 00:00:00' DO SET @a = 1;
+CREATE EVENT e1 ON SCHEDULE AT '2038-01-01 00:00:00' DO SET @a = 1;
 ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement
 
 ALTER EVENT e1 COMMENT 'comment';
@@ -656,7 +656,7 @@ ERROR HY000: The MySQL server is running with the --read-only option so it canno
 # Connection: root_con (root@localhost/events_test).
 #
 
-CREATE EVENT e1 ON SCHEDULE AT '2020-01-01 00:00:00' DO SET @a = 1;
+CREATE EVENT e1 ON SCHEDULE AT '2038-01-01 00:00:00' DO SET @a = 1;
 
 ALTER EVENT e1 COMMENT 'comment';
 
diff --git a/mysql-wsrep-5.6/mysql-test/r/func_str.result b/mysql-wsrep-5.6/mysql-test/r/func_str.result
index 236ca2ba..793e1798 100644
--- a/mysql-wsrep-5.6/mysql-test/r/func_str.result
+++ b/mysql-wsrep-5.6/mysql-test/r/func_str.result
@@ -4526,3 +4526,21 @@ Warning	1292	Truncated incorrect INTEGER value: 'a'
 #
 # End of 5.6 tests
 #
+#
+# Bug 31413167 - PLEASE BACKPORT FIX FOR BUG 31320716 TO 5.6
+#
+SELECT @var:=CONCAT('');
+@var:=CONCAT('')
+
+SELECT @var:=CONCAT_WS('','');
+@var:=CONCAT_WS('','')
+
+SET NAMES utf8;
+CREATE TABLE t(a INT) engine=innodb;
+INSERT INTO t VALUES(1);
+SELECT 1 FROM t WHERE WEIGHT_STRING(CONCAT_WS('1',''));
+1
+SELECT 1 FROM t WHERE WEIGHT_STRING(CONCAT('',''));
+1
+SET NAMES DEFAULT;
+DROP TABLE t;
diff --git a/mysql-wsrep-5.6/mysql-test/r/grant4.result b/mysql-wsrep-5.6/mysql-test/r/grant4.result
index 97525ed5..ad645daa 100644
--- a/mysql-wsrep-5.6/mysql-test/r/grant4.result
+++ b/mysql-wsrep-5.6/mysql-test/r/grant4.result
@@ -85,10 +85,10 @@ GRANT SHOW VIEW ON v2 to mysqltest_u1@localhost;
 GRANT SHOW VIEW, SELECT ON v3 to mysqltest_u1@localhost;
 use mysqltest_db1;
 ** Connect as restricted user mysqltest_u1.
-** SELECT FROM INFORMATION_SCHEMA.STATISTICS will succeed because any privileges will do (authentication is enough).
+# The user does not have table level grants on table t5. Hence cannot get
+# information about it from INFORMATION_SCHEMA.STATISTICS
 SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE table_name='t5';
 TABLE_CATALOG	TABLE_SCHEMA	TABLE_NAME	NON_UNIQUE	INDEX_SCHEMA	INDEX_NAME	SEQ_IN_INDEX	COLUMN_NAME	COLLATION	CARDINALITY	SUB_PART	PACKED	NULLABLE	INDEX_TYPE	COMMENT	INDEX_COMMENT
-def	mysqltest_db1	t5	1	mysqltest_db1	i	1	s1	A	NULL	NULL	NULL	YES	BTREE		
 ** SHOW INDEX FROM t5 will fail because we don't have any privileges on any column combination.
 SHOW INDEX FROM t5;
 ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't5'
diff --git a/mysql-wsrep-5.6/mysql-test/r/insert_debug.result b/mysql-wsrep-5.6/mysql-test/r/insert_debug.result
new file mode 100644
index 00000000..e5e88433
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/r/insert_debug.result
@@ -0,0 +1,24 @@
+SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
+SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
+CREATE TABLE t1(c1 VARCHAR(10) NOT NULL, c2 VARCHAR(10) NOT NULL, c3 VARCHAR(10) NOT NULL);
+INSERT INTO t1(c1, c2, c3) VALUES('A1','B1','IT1'), ('A2','B2','IT1'), ('A3','B3','IT1'), ('A4','B4','IT1'), ('A5','B5','IT1'), ('A6','B6','IT1'), ('A7','B7','IT1');
+CREATE TABLE t2(c1 VARCHAR(10) NOT NULL, c2 VARCHAR(10) NOT NULL, c3 VARCHAR(10) NOT NULL);
+INSERT INTO t2(c1, c2, c3) VALUES ('A3','B3','IT2'), ('A2','B2','IT2'), ('A4','B4','IT2'), ('A5','B5','II2');
+CREATE TABLE result(id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, c1 VARCHAR(10) NOT NULL, c2 VARCHAR(10),
+c3 VARCHAR(10), update_count INT DEFAULT 0, UNIQUE KEY uniq_idx (c1,c2), PRIMARY KEY (id)) ENGINE = innodb;
+SET DEBUG_SYNC = "ha_write_row_end WAIT_FOR flushed EXECUTE 1";
+INSERT INTO result(c1, c2, c3) SELECT * FROM t1 ON DUPLICATE KEY UPDATE c2=t1.c2, c3='UT1', update_count=update_count+1;
+INSERT INTO result(c1, c2, c3) SELECT * FROM t2 ON DUPLICATE KEY UPDATE c2=t2.c2, c3='UT2', update_count=update_count+1;
+SET DEBUG_SYNC = "now SIGNAL flushed";
+SELECT * FROM result;
+id	c1	c2	c3	update_count
+1	A1	B1	IT1	0
+2	A3	B3	UT1	1
+3	A2	B2	UT1	1
+4	A4	B4	UT1	1
+5	A5	B5	UT1	1
+9	A6	B6	IT1	0
+10	A7	B7	IT1	0
+DROP TABLE t1;
+DROP TABLE t2;
+DROP TABLE result;
diff --git a/mysql-wsrep-5.6/mysql-test/r/mysql_config_editor.result b/mysql-wsrep-5.6/mysql-test/r/mysql_config_editor.result
index ce18f585..a906739c 100644
--- a/mysql-wsrep-5.6/mysql-test/r/mysql_config_editor.result
+++ b/mysql-wsrep-5.6/mysql-test/r/mysql_config_editor.result
@@ -100,7 +100,7 @@ user = test_user4
 ##############################################
 # Tests for mysql_config_editor's help command
 ##############################################
-Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
+Copyright (c) 2012, 2021, Oracle and/or its affiliates. All rights reserved.
 
 Oracle is a registered trademark of Oracle Corporation and/or its
 affiliates. Other names may be trademarks of their respective
diff --git a/mysql-wsrep-5.6/mysql-test/r/openssl_1.result b/mysql-wsrep-5.6/mysql-test/r/openssl_1.result
index a60c536c..a70d7261 100644
--- a/mysql-wsrep-5.6/mysql-test/r/openssl_1.result
+++ b/mysql-wsrep-5.6/mysql-test/r/openssl_1.result
@@ -2,16 +2,16 @@ drop table if exists t1;
 create table t1(f1 int);
 insert into t1 values (5);
 grant select on test.* to ssl_user1@localhost require SSL;
-grant select on test.* to ssl_user2@localhost require cipher "DHE-RSA-AES256-SHA";
-grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=Client";
-grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=Client" ISSUER "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=CA";
-grant select on test.* to ssl_user5@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "xxx";
+grant select on test.* to ssl_user2@localhost require cipher "SSL_CIPHER";;
+grant select on test.* to ssl_user3@localhost require cipher "SSL_CIPHER" AND SUBJECT "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=Client";;
+grant select on test.* to ssl_user4@localhost require cipher "SSL_CIPHER" AND SUBJECT "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=Client" ISSUER "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=CA";;
+grant select on test.* to ssl_user5@localhost require cipher "SSL_CIPHER" AND SUBJECT "xxx";;
 flush privileges;
 connect(localhost,ssl_user5,,test,MASTER_PORT,MASTER_SOCKET);
 ERROR 28000: Access denied for user 'ssl_user5'@'localhost' (using password: NO)
 SHOW STATUS LIKE 'Ssl_cipher';
 Variable_name	Value
-Ssl_cipher	DHE-RSA-AES256-SHA
+Ssl_cipher	SSL_CIPHER
 select * from t1;
 f1
 5
@@ -19,7 +19,7 @@ delete from t1;
 ERROR 42000: DELETE command denied to user 'ssl_user1'@'localhost' for table 't1'
 SHOW STATUS LIKE 'Ssl_cipher';
 Variable_name	Value
-Ssl_cipher	DHE-RSA-AES256-SHA
+Ssl_cipher	SSL_CIPHER
 select * from t1;
 f1
 5
@@ -27,7 +27,7 @@ delete from t1;
 ERROR 42000: DELETE command denied to user 'ssl_user2'@'localhost' for table 't1'
 SHOW STATUS LIKE 'Ssl_cipher';
 Variable_name	Value
-Ssl_cipher	DHE-RSA-AES256-SHA
+Ssl_cipher	SSL_CIPHER
 select * from t1;
 f1
 5
@@ -35,7 +35,7 @@ delete from t1;
 ERROR 42000: DELETE command denied to user 'ssl_user3'@'localhost' for table 't1'
 SHOW STATUS LIKE 'Ssl_cipher';
 Variable_name	Value
-Ssl_cipher	DHE-RSA-AES256-SHA
+Ssl_cipher	SSL_CIPHER
 select * from t1;
 f1
 5
@@ -55,7 +55,7 @@ SHOW STATUS LIKE 'Ssl_cipher';
 Variable_name	Value
 Ssl_cipher	DHE-RSA-AES256-SHA
 Variable_name	Value
-Ssl_cipher	DHE-RSA-AES256-SHA
+Ssl_cipher	SSL_CIPHER
 End of 5.0 tests
 DROP TABLE IF EXISTS thread_status;
 DROP EVENT IF EXISTS event_status;
@@ -194,11 +194,9 @@ DROP TABLE t1;
 Variable_name	Value
 Ssl_cipher	DHE-RSA-AES256-SHA
 Variable_name	Value
-Ssl_cipher	EDH-RSA-DES-CBC3-SHA
+Ssl_cipher	DHE-RSA-AES128-SHA
 Variable_name	Value
 Ssl_cipher	AES256-SHA
-Variable_name	Value
-Ssl_cipher	RC4-SHA
 select 'is still running; no cipher request crashed the server' as result from dual;
 result
 is still running; no cipher request crashed the server
@@ -206,6 +204,6 @@ GRANT SELECT ON test.* TO bug42158@localhost REQUIRE X509;
 FLUSH PRIVILEGES;
 SHOW STATUS LIKE 'Ssl_cipher';
 Variable_name	Value
-Ssl_cipher	DHE-RSA-AES256-SHA
+Ssl_cipher	SSL_CIPHER
 DROP USER bug42158@localhost;
 End of 5.1 tests
diff --git a/mysql-wsrep-5.6/mysql-test/r/partition.result b/mysql-wsrep-5.6/mysql-test/r/partition.result
index 22edab08..5bade1c8 100644
--- a/mysql-wsrep-5.6/mysql-test/r/partition.result
+++ b/mysql-wsrep-5.6/mysql-test/r/partition.result
@@ -2552,3 +2552,24 @@ F	5	6
 G	25	7
 H	35	8
 DROP TABLE t;
+#
+# Bug #25207522: INCORRECT ORDER-BY BEHAVIOR ON A PARTITIONED TABLE
+# WITH A COMPOSITE PREFIX INDEX
+#
+CREATE TABLE t(  id int unsigned NOT NULL,
+data varchar(2) DEFAULT NULL,
+KEY data_idx (data(1),id)
+) DEFAULT CHARSET=utf8
+/*!50100 PARTITION BY RANGE (id)
+(PARTITION p10 VALUES LESS THAN (10) ,
+PARTITION p20 VALUES LESS THAN (20) ) */;
+INSERT INTO t VALUES (6, 'ab'), (4, 'ab'), (5, 'ab'), (16, 'ab'), (14, 'ab'), (15, 'ab'), (5, 'ac'), (15, 'aa') ;
+SELECT id FROM t WHERE data = 'ab' ORDER BY id ASC;
+id
+4
+5
+6
+14
+15
+16
+DROP TABLE t;
diff --git a/mysql-wsrep-5.6/mysql-test/r/plugin_auth_sha256_tls.result b/mysql-wsrep-5.6/mysql-test/r/plugin_auth_sha256_tls.result
index 975393b2..969dd5ef 100644
--- a/mysql-wsrep-5.6/mysql-test/r/plugin_auth_sha256_tls.result
+++ b/mysql-wsrep-5.6/mysql-test/r/plugin_auth_sha256_tls.result
@@ -1,6 +1,6 @@
 SHOW STATUS LIKE 'Ssl_cipher';
 Variable_name	Value
-Ssl_cipher	DHE-RSA-AES256-SHA
+Ssl_cipher	SSL_CIPHER
 CREATE USER 'kristofer' IDENTIFIED WITH 'sha256_password';
 SET GLOBAL old_passwords= 2;
 SET SESSION old_passwords= 2;
diff --git a/mysql-wsrep-5.6/mysql-test/r/ssl.result b/mysql-wsrep-5.6/mysql-test/r/ssl.result
index f3bb31b7..60f4ec46 100644
--- a/mysql-wsrep-5.6/mysql-test/r/ssl.result
+++ b/mysql-wsrep-5.6/mysql-test/r/ssl.result
@@ -1,6 +1,6 @@
 SHOW STATUS LIKE 'Ssl_cipher';
 Variable_name	Value
-Ssl_cipher	DHE-RSA-AES256-SHA
+Ssl_cipher	SSL_CIPHER
 SHOW STATUS LIKE 'Ssl_server_not_before';
 Variable_name	Value
 Ssl_server_not_before	Dec  5 04:48:40 2014 GMT
@@ -2162,7 +2162,7 @@ Warning	1052	Column 'kundentyp' in group statement is ambiguous
 drop table t1;
 SHOW STATUS LIKE 'Ssl_cipher';
 Variable_name	Value
-Ssl_cipher	DHE-RSA-AES256-SHA
+Ssl_cipher	SSL_CIPHER
 #
 # Bug#54790: Use of non-blocking mode for sockets limits performance
 #
diff --git a/mysql-wsrep-5.6/mysql-test/r/ssl_8k_key.result b/mysql-wsrep-5.6/mysql-test/r/ssl_8k_key.result
index b33a1d28..b36d9c12 100644
--- a/mysql-wsrep-5.6/mysql-test/r/ssl_8k_key.result
+++ b/mysql-wsrep-5.6/mysql-test/r/ssl_8k_key.result
@@ -1,2 +1,2 @@
 Variable_name	Value
-Ssl_cipher	DHE-RSA-AES256-SHA
+Ssl_cipher	SSL_CIPHER
diff --git a/mysql-wsrep-5.6/mysql-test/r/ssl_ca.result b/mysql-wsrep-5.6/mysql-test/r/ssl_ca.result
index ffc5671f..818d05ee 100644
--- a/mysql-wsrep-5.6/mysql-test/r/ssl_ca.result
+++ b/mysql-wsrep-5.6/mysql-test/r/ssl_ca.result
@@ -5,7 +5,7 @@
 ERROR 2026 (HY000): SSL connection error: SSL_CTX_set_default_verify_paths failed
 # try to connect with correct '--ssl-ca' path : should connect
 Variable_name	Value
-Ssl_cipher	DHE-RSA-AES256-SHA
+Ssl_cipher	SSL_CIPHER
 #
 # Bug#21920678: SSL-CA DOES NOT ACCEPT ~USER TILDE HOME DIRECTORY
 #               PATH SUBSTITUTION
@@ -13,12 +13,12 @@ Ssl_cipher	DHE-RSA-AES256-SHA
 # try to connect with '--ssl-ca' option using tilde home directoy
 # path substitution : should connect
 Variable_name	Value
-Ssl_cipher	DHE-RSA-AES256-SHA
+Ssl_cipher	SSL_CIPHER
 # try to connect with '--ssl-key' option using tilde home directoy
 # path substitution : should connect
 Variable_name	Value
-Ssl_cipher	DHE-RSA-AES256-SHA
+Ssl_cipher	SSL_CIPHER
 # try to connect with '--ssl-cert' option using tilde home directoy
 # path substitution : should connect
 Variable_name	Value
-Ssl_cipher	DHE-RSA-AES256-SHA
+Ssl_cipher	SSL_CIPHER
diff --git a/mysql-wsrep-5.6/mysql-test/r/ssl_compress.result b/mysql-wsrep-5.6/mysql-test/r/ssl_compress.result
index 40e6578d..a4000bfd 100644
--- a/mysql-wsrep-5.6/mysql-test/r/ssl_compress.result
+++ b/mysql-wsrep-5.6/mysql-test/r/ssl_compress.result
@@ -1,6 +1,6 @@
 SHOW STATUS LIKE 'Ssl_cipher';
 Variable_name	Value
-Ssl_cipher	DHE-RSA-AES256-SHA
+Ssl_cipher	SSL_CIPHER
 SHOW STATUS LIKE 'Compression';
 Variable_name	Value
 Compression	ON
@@ -2159,7 +2159,7 @@ Warning	1052	Column 'kundentyp' in group statement is ambiguous
 drop table t1;
 SHOW STATUS LIKE 'Ssl_cipher';
 Variable_name	Value
-Ssl_cipher	DHE-RSA-AES256-SHA
+Ssl_cipher	SSL_CIPHER
 SHOW STATUS LIKE 'Compression';
 Variable_name	Value
 Compression	ON
diff --git a/mysql-wsrep-5.6/mysql-test/std_data/checkDBI_DBD-mysql.pl b/mysql-wsrep-5.6/mysql-test/std_data/checkDBI_DBD-mysql.pl
index 52bcaf30..f6a0f37f 100755
--- a/mysql-wsrep-5.6/mysql-test/std_data/checkDBI_DBD-mysql.pl
+++ b/mysql-wsrep-5.6/mysql-test/std_data/checkDBI_DBD-mysql.pl
@@ -2,15 +2,21 @@
 
 # Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
 #
-# This program 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; version 2
-# of the License.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Library General Public License for more details.
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/std_data/crl-ca-cert.pem b/mysql-wsrep-5.6/mysql-test/std_data/crl-ca-cert.pem
index e155007a..93c96eae 100644
--- a/mysql-wsrep-5.6/mysql-test/std_data/crl-ca-cert.pem
+++ b/mysql-wsrep-5.6/mysql-test/std_data/crl-ca-cert.pem
@@ -2,62 +2,80 @@ Certificate:
     Data:
         Version: 3 (0x2)
         Serial Number:
-            f9:e2:f3:98:0e:2b:05:7c
-        Signature Algorithm: sha1WithRSAEncryption
-        Issuer: C=BG, ST=Plovdiv, O=Oracle, OU=MySQL, CN=MySQL CRL test CA certificate
+            bf:07:54:de:af:cf:c4:de
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=IN, ST=Karnataka, L=Bengaluru, O=Oracle, OU=MySQL, CN=MySQL CRL test ca certificate
         Validity
-            Not Before: May 17 15:08:00 2012 GMT
-            Not After : May 10 15:08:00 2042 GMT
-        Subject: C=BG, ST=Plovdiv, O=Oracle, OU=MySQL, CN=MySQL CRL test CA certificate
+            Not Before: Jul  1 07:44:35 2020 GMT
+            Not After : Jun 29 07:44:35 2030 GMT
+        Subject: C=IN, ST=Karnataka, L=Bengaluru, O=Oracle, OU=MySQL, CN=MySQL CRL test ca certificate
         Subject Public Key Info:
             Public Key Algorithm: rsaEncryption
-            RSA Public Key: (1024 bit)
-                Modulus (1024 bit):
-                    00:ed:ec:45:e0:22:d7:d0:d5:91:87:74:5f:ee:17:
-                    b5:c7:07:c2:4b:b3:e7:13:93:46:95:1f:5d:09:54:
-                    14:98:40:3d:0e:e6:14:5c:5e:39:c5:75:87:4e:73:
-                    24:62:d9:85:4a:69:c4:35:7d:6b:76:6c:1c:8e:56:
-                    a8:fe:9e:fe:22:ae:c9:41:14:67:d4:11:37:8d:d3:
-                    18:02:9d:8a:36:64:b1:8b:2f:a0:ba:2d:d5:fd:c0:
-                    cd:6a:7d:a5:c0:6b:6b:60:64:2f:24:45:bb:a8:ad:
-                    1c:95:a0:d5:40:79:28:5f:b1:17:97:63:a1:d5:1e:
-                    42:d4:10:70:5d:8f:2e:34:45
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:c9:08:13:81:df:5a:aa:45:2a:82:1e:73:4f:d6:
+                    2f:6b:7a:78:41:a7:fb:ea:02:5c:30:15:95:6a:a4:
+                    60:6b:08:4c:7d:46:4f:1a:7c:14:67:c6:19:e0:bf:
+                    c9:12:c3:96:7f:71:12:79:ba:a1:d2:51:1b:fb:f1:
+                    0f:43:9d:22:6d:7f:46:a7:94:0c:51:c2:25:ad:36:
+                    c8:1c:59:45:91:e1:20:4d:5e:31:b1:33:b1:4b:2b:
+                    a0:62:fb:8a:c6:ee:7e:84:77:d2:aa:23:f8:31:74:
+                    d5:94:60:72:88:a7:3a:ec:f3:d8:80:28:36:c1:5a:
+                    7f:58:be:8c:d2:eb:9d:fb:22:de:ec:2c:d3:41:81:
+                    b2:e4:91:e4:da:12:b2:84:0e:8f:f7:b0:1e:36:07:
+                    88:87:8e:1d:63:ad:1b:a5:31:39:d2:02:10:e0:97:
+                    21:3f:7e:e9:f1:a2:e8:c3:aa:ad:e3:bd:05:62:e1:
+                    a2:8d:ed:d5:cd:d7:66:8a:2b:15:dd:e1:91:e2:75:
+                    18:c4:50:62:fb:a1:f9:96:93:af:84:78:f7:69:b6:
+                    7f:82:f7:c8:97:13:10:46:7b:de:a2:a9:c9:71:78:
+                    f1:8e:a1:78:b5:e5:b7:dd:69:4d:8c:1b:ae:34:0e:
+                    5f:94:26:8e:81:b3:23:6e:1f:be:de:e0:e0:41:dc:
+                    71:49
                 Exponent: 65537 (0x10001)
         X509v3 extensions:
             X509v3 Subject Key Identifier: 
-                85:AB:E6:A7:57:88:7D:8D:BE:EB:64:53:73:94:64:CD:4B:8D:29:12
+                43:AB:3F:4D:D3:EB:37:3D:3D:2A:FE:BD:4E:C2:8A:DD:C9:E5:B1:B1
             X509v3 Authority Key Identifier: 
-                keyid:85:AB:E6:A7:57:88:7D:8D:BE:EB:64:53:73:94:64:CD:4B:8D:29:12
-                DirName:/C=BG/ST=Plovdiv/O=Oracle/OU=MySQL/CN=MySQL CRL test CA certificate
-                serial:F9:E2:F3:98:0E:2B:05:7C
+                keyid:43:AB:3F:4D:D3:EB:37:3D:3D:2A:FE:BD:4E:C2:8A:DD:C9:E5:B1:B1
 
             X509v3 Basic Constraints: 
                 CA:TRUE
-    Signature Algorithm: sha1WithRSAEncryption
-        90:f7:9b:56:14:df:c4:db:46:a4:67:f5:83:68:e9:70:45:4c:
-        5d:97:07:06:fd:2c:68:0b:9a:ed:6d:7a:d1:18:be:b8:dd:08:
-        bc:ff:10:5b:d9:b2:50:1f:98:b0:5d:be:6d:0b:88:bb:30:93:
-        fa:04:34:f1:3b:f6:56:d5:86:bb:1c:31:f3:7f:7b:38:0b:d1:
-        f9:fd:87:b5:c4:63:a0:b8:46:59:95:a8:b5:ec:4f:d0:ad:df:
-        42:ed:74:4f:2f:fd:7c:65:aa:d7:60:d1:70:55:41:8b:0b:c2:
-        3b:f1:f3:2f:6b:a5:d9:48:b1:2d:84:e9:07:63:92:f0:36:04:
-        cf:5d
+    Signature Algorithm: sha256WithRSAEncryption
+         16:b8:f3:2a:4a:f7:82:7b:99:cb:40:20:a1:76:7a:2b:19:c9:
+         4f:4f:90:b3:e4:7c:6e:42:28:c8:47:4b:37:12:ab:fa:64:ec:
+         d6:50:f8:2f:bd:61:cd:d6:09:96:d3:84:b1:e6:60:ae:99:ae:
+         4a:1a:b1:34:a6:ee:b7:3b:1f:6f:cc:94:39:26:e4:9d:d2:02:
+         d9:75:ce:e7:dd:e9:3a:b2:c4:84:1a:75:0e:64:ce:32:7f:68:
+         5b:81:b7:5e:18:bd:ac:56:69:1c:1a:a0:a1:61:85:f2:11:78:
+         50:42:4e:e8:b8:67:8a:50:85:09:75:67:d9:09:e1:2a:61:64:
+         24:1a:52:79:12:5c:d1:a5:53:5f:70:63:2b:30:fe:4e:e5:c6:
+         3a:7c:f3:36:3e:7b:ab:6b:57:04:12:53:7e:dd:18:63:bf:25:
+         ae:b0:14:f8:93:bb:0a:a6:d4:7b:77:60:58:52:ee:9e:76:9c:
+         63:ef:84:40:fd:5a:be:54:74:d7:b8:4a:85:09:a0:13:0e:75:
+         75:e6:2c:73:1b:e3:94:ff:ad:73:0b:c6:e3:b0:68:56:ce:ff:
+         8d:75:f4:9d:14:5c:05:a0:8d:ad:ab:96:aa:4f:58:cb:79:cf:
+         5b:85:84:e7:4a:66:54:09:fd:da:c2:3a:3b:ee:3c:3c:0a:66:
+         36:bc:a6:f0
 -----BEGIN CERTIFICATE-----
-MIIDHDCCAoWgAwIBAgIJAPni85gOKwV8MA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV
-BAYTAkJHMRAwDgYDVQQIEwdQbG92ZGl2MQ8wDQYDVQQKEwZPcmFjbGUxDjAMBgNV
-BAsTBU15U1FMMSYwJAYDVQQDEx1NeVNRTCBDUkwgdGVzdCBDQSBjZXJ0aWZpY2F0
-ZTAeFw0xMjA1MTcxNTA4MDBaFw00MjA1MTAxNTA4MDBaMGgxCzAJBgNVBAYTAkJH
-MRAwDgYDVQQIEwdQbG92ZGl2MQ8wDQYDVQQKEwZPcmFjbGUxDjAMBgNVBAsTBU15
-U1FMMSYwJAYDVQQDEx1NeVNRTCBDUkwgdGVzdCBDQSBjZXJ0aWZpY2F0ZTCBnzAN
-BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA7exF4CLX0NWRh3Rf7he1xwfCS7PnE5NG
-lR9dCVQUmEA9DuYUXF45xXWHTnMkYtmFSmnENX1rdmwcjlao/p7+Iq7JQRRn1BE3
-jdMYAp2KNmSxiy+gui3V/cDNan2lwGtrYGQvJEW7qK0claDVQHkoX7EXl2Oh1R5C
-1BBwXY8uNEUCAwEAAaOBzTCByjAdBgNVHQ4EFgQUhavmp1eIfY2+62RTc5RkzUuN
-KRIwgZoGA1UdIwSBkjCBj4AUhavmp1eIfY2+62RTc5RkzUuNKRKhbKRqMGgxCzAJ
-BgNVBAYTAkJHMRAwDgYDVQQIEwdQbG92ZGl2MQ8wDQYDVQQKEwZPcmFjbGUxDjAM
-BgNVBAsTBU15U1FMMSYwJAYDVQQDEx1NeVNRTCBDUkwgdGVzdCBDQSBjZXJ0aWZp
-Y2F0ZYIJAPni85gOKwV8MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEA
-kPebVhTfxNtGpGf1g2jpcEVMXZcHBv0saAua7W160Ri+uN0IvP8QW9myUB+YsF2+
-bQuIuzCT+gQ08Tv2VtWGuxwx8397OAvR+f2HtcRjoLhGWZWotexP0K3fQu10Ty/9
-fGWq12DRcFVBiwvCO/HzL2ul2UixLYTpB2OS8DYEz10=
+MIIDzzCCAregAwIBAgIJAL8HVN6vz8TeMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNV
+BAYTAklOMRIwEAYDVQQIDAlLYXJuYXRha2ExEjAQBgNVBAcMCUJlbmdhbHVydTEP
+MA0GA1UECgwGT3JhY2xlMQ4wDAYDVQQLDAVNeVNRTDEmMCQGA1UEAwwdTXlTUUwg
+Q1JMIHRlc3QgY2EgY2VydGlmaWNhdGUwHhcNMjAwNzAxMDc0NDM1WhcNMzAwNjI5
+MDc0NDM1WjB+MQswCQYDVQQGEwJJTjESMBAGA1UECAwJS2FybmF0YWthMRIwEAYD
+VQQHDAlCZW5nYWx1cnUxDzANBgNVBAoMBk9yYWNsZTEOMAwGA1UECwwFTXlTUUwx
+JjAkBgNVBAMMHU15U1FMIENSTCB0ZXN0IGNhIGNlcnRpZmljYXRlMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyQgTgd9aqkUqgh5zT9Yva3p4Qaf76gJc
+MBWVaqRgawhMfUZPGnwUZ8YZ4L/JEsOWf3ESebqh0lEb+/EPQ50ibX9Gp5QMUcIl
+rTbIHFlFkeEgTV4xsTOxSyugYvuKxu5+hHfSqiP4MXTVlGByiKc67PPYgCg2wVp/
+WL6M0uud+yLe7CzTQYGy5JHk2hKyhA6P97AeNgeIh44dY60bpTE50gIQ4JchP37p
+8aLow6qt470FYuGije3VzddmiisV3eGR4nUYxFBi+6H5lpOvhHj3abZ/gvfIlxMQ
+RnveoqnJcXjxjqF4teW33WlNjBuuNA5flCaOgbMjbh++3uDgQdxxSQIDAQABo1Aw
+TjAdBgNVHQ4EFgQUQ6s/TdPrNz09Kv69TsKK3cnlsbEwHwYDVR0jBBgwFoAUQ6s/
+TdPrNz09Kv69TsKK3cnlsbEwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC
+AQEAFrjzKkr3gnuZy0AgoXZ6KxnJT0+Qs+R8bkIoyEdLNxKr+mTs1lD4L71hzdYJ
+ltOEseZgrpmuShqxNKbutzsfb8yUOSbkndIC2XXO593pOrLEhBp1DmTOMn9oW4G3
+Xhi9rFZpHBqgoWGF8hF4UEJO6LhnilCFCXVn2QnhKmFkJBpSeRJc0aVTX3BjKzD+
+TuXGOnzzNj57q2tXBBJTft0YY78lrrAU+JO7CqbUe3dgWFLunnacY++EQP1avlR0
+17hKhQmgEw51deYscxvjlP+tcwvG47BoVs7/jXX0nRRcBaCNrauWqk9Yy3nPW4WE
+50pmVAn92sI6O+48PApmNrym8A==
 -----END CERTIFICATE-----
diff --git a/mysql-wsrep-5.6/mysql-test/std_data/crl-certificate-readme.txt b/mysql-wsrep-5.6/mysql-test/std_data/crl-certificate-readme.txt
index 72f9468a..7e398eed 100644
--- a/mysql-wsrep-5.6/mysql-test/std_data/crl-certificate-readme.txt
+++ b/mysql-wsrep-5.6/mysql-test/std_data/crl-certificate-readme.txt
@@ -1,31 +1,100 @@
 These are the instructions on how to generate test files for the CRL tests
 using openSSL.
 
+If you have root access on the system
+=====================================
+
 1. Make sure you have the right validity periods in CA.pl and openssl.cnf
 2. Create a new certification authority : CA.pl -newca
 3. Copy demoCA/cacert.pem to crl-ca-cert.pem
 4. Create one server certificate request : CA.pl -newreq
-5. Sign the server certificate request : CA.pl -signreq
+5. Sign the server certificate request : CA.pl -signCA
 6. Copy demoCA/newcert.pem to crl-server-cert.pem
 7. Remove the key from server's certificate key while copying it :
      openssl rsa -in newkey.pem -out crl-server-key.pem
 8. Create one client certificate request : CA.pl -newreq
-9. Sign the client certificate request : CA.pl -signreq
+9. Sign the client certificate request : CA.pl -signCA
 10. Copy demoCA/newcert.pem to crl-client-cert.pem
 11. Remove the key from client's certificate key while copying it :
      openssl rsa -in newkey.pem -out crl-client-key.pem
 12. Create one to-be-revoked client certificate request : CA.pl -newreq
-13. Sign the to-be-revoked client certificate request : CA.pl -signreq
-14. Copy demoCA/newcert.pem to crl-client-invalid-cert.pem
+13. Sign the to-be-revoked client certificate request : CA.pl -signCA
+14. Copy demoCA/newcert.pem to crl-client-cert-revoked.pem
 15. Remove the key from the to-be-revoked client's certificate
   key while copying it :
-     openssl rsa -in newkey.pem -out crl-client-invalid-key.pem
+     openssl rsa -in newkey.pem -out crl-client-key-revoked.pem
 16. Revoke the crl-client-invalid-cert.pem :
-     openssl ca -revoke crl-client-invalid-key.pem
+     openssl ca -revoke crl-client-invalid-cert.pem
 17. Generate a CRL file :
      openssl ca -gencrl -crldays=3650 -out crl-client-revoked.crl
 18. Clean up all the files in the crldir directory
-19. Copy the CA certificate into it :
-     cp crl-ca-cert.pem `openssl -in crl-ca-cert.pem -noout -hash`.0
-20. Copy the CRL file into it :
-     cp crl-client-revoked.crl `openssl -in crl-ca-cert.pem -noout -hash`.r0
+19. Copy the CRL file into it :
+     cp crl-client-revoked.crl `openssl crl -in crl-client-revoked.crl -noout -hash`.r0
+
+
+If you are using your own CA
+============================
+
+Prepare directory
+-----------------
+
+1. mkdir new_crlcerts && cd new_crlcerts
+2. mkdir crldir
+3. mkdir private
+
+Generate CA and 3 set of certificates
+-------------------------------------
+
+4. Generate CA
+openssl genrsa 2048 > crl-ca-key.pem
+openssl req -new -x509 -nodes -days 3650 -key crl-ca-key.pem -out crl-ca-cert.pem
+
+5. Generate Server certificate
+openssl req -newkey rsa:2048 -days 3600 -nodes -keyout crl-server-key.pem -out crl-server-req.pem
+openssl rsa -in crl-server-key.pem -out crl-server-key.pem
+openssl x509 -req -in crl-server-req.pem -days 3600 -CA crl-ca-cert.pem -CAkey crl-ca-key.pem -set_serial 01 -out crl-server-cert.pem
+
+6. Generate Client certificate
+openssl req -newkey rsa:2048 -days 3600 -nodes -keyout crl-client-key.pem -out crl-client-req.pem
+openssl rsa -in crl-client-key.pem -out crl-client-key.pem
+openssl x509 -req -in crl-client-req.pem -days 3600 -CA crl-ca-cert.pem -CAkey crl-ca-key.pem -set_serial 02 -out crl-client-cert.pem
+
+7. Generate Client certificate that will be revoked later
+openssl req -newkey rsa:2048 -days 3600 -nodes -keyout crl-client-revoked-key.pem -out crl-client-revoked-req.pem
+openssl rsa -in crl-client-revoked-key.pem -out crl-client-revoked-key.pem
+openssl x509 -req -in crl-client-revoked-req.pem -days 3600 -CA crl-ca-cert.pem -CAkey crl-ca-key.pem -set_serial 03 -out crl-client-revoked-cert.pem
+
+Prepare for certificate revocation
+----------------------------------
+
+8. cp crl-ca-cert.pem cacert.pem
+9. cp crl-ca-key.pem private/cakey.pem
+10. touch index.txt
+11. echo 1000 > crlnumber
+12. copy global openssl.cnf to current working dirctory
+13. Open local copy of openssl.cnf and in [CA_default] section
+    - Update dir to point to current working directory
+    - Update certs to point to $dir and not $dir/certs
+
+Revoke a certificate and create crl file
+----------------------------------------
+
+14. openssl ca -config openssl.cnf -revoke crl-client-revoked-cert.pem
+15. openssl ca -config openssl.cnf -gencrl -crldays 3600 -out crl-client-revoked.crl
+16. cp crl-client-revoked.crl `openssl crl -in crl-client-revoked.pem -noout -hash`.r0
+
+Replace existing certs
+----------------------
+17. Replace following files in /mysql-test/std_data/ with files generated above
+    crl-ca-cert.pem
+    crl-client-cert.pem
+    crl-client-key.pem
+    crl-client-revoked-cert.pem
+    crl-client-revoked-key.pem
+    crl-client-revoked.crl
+    crl-server-cert.pem
+    crl-server-key.pem
+
+18. Remove file in /mysql-test/std_data/crldir
+19. Copy file generated in step 16 above to /mysql-test/std_data/crldir
+20. You may now remove new_crls directory
diff --git a/mysql-wsrep-5.6/mysql-test/std_data/crl-client-cert.pem b/mysql-wsrep-5.6/mysql-test/std_data/crl-client-cert.pem
index b1271853..a0017c24 100644
--- a/mysql-wsrep-5.6/mysql-test/std_data/crl-client-cert.pem
+++ b/mysql-wsrep-5.6/mysql-test/std_data/crl-client-cert.pem
@@ -1,62 +1,70 @@
 Certificate:
     Data:
-        Version: 3 (0x2)
-        Serial Number:
-            f9:e2:f3:98:0e:2b:05:7e
-        Signature Algorithm: sha1WithRSAEncryption
-        Issuer: C=BG, ST=Plovdiv, O=Oracle, OU=MySQL, CN=MySQL CRL test CA certificate
+        Version: 1 (0x0)
+        Serial Number: 2 (0x2)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=IN, ST=Karnataka, L=Bengaluru, O=Oracle, OU=MySQL, CN=MySQL CRL test ca certificate
         Validity
-            Not Before: May 17 15:18:14 2012 GMT
-            Not After : May 15 15:18:14 2022 GMT
-        Subject: C=BG, ST=Plovdiv, O=Oracle, OU=MySQL, CN=MySQL CRL test client certificate
+            Not Before: Jul  1 07:51:35 2020 GMT
+            Not After : May 10 07:51:35 2030 GMT
+        Subject: C=IN, ST=Karnataka, L=Bengaluru, O=Oracle, OU=MySQL, CN=MySQL CRL test client certificate
         Subject Public Key Info:
             Public Key Algorithm: rsaEncryption
-            RSA Public Key: (1024 bit)
-                Modulus (1024 bit):
-                    00:d8:03:97:99:2f:54:86:ec:b5:79:4f:8f:ff:bb:
-                    b8:23:e0:9b:d3:d4:ba:40:2e:34:dd:ad:8c:2c:43:
-                    f9:7b:d5:4f:5c:ef:47:bd:e3:b2:ac:76:ea:b2:d5:
-                    97:dc:99:4e:fa:d8:13:48:a2:cb:ee:3f:40:7a:fe:
-                    af:f1:d8:cd:c8:5b:1f:f7:7c:a4:7f:cf:fe:02:91:
-                    e6:d8:39:ef:e8:4f:a8:ff:b6:78:29:78:72:24:a4:
-                    f0:e4:67:8a:41:50:5e:9d:6b:a8:4f:06:f2:b4:8e:
-                    22:f9:05:e6:31:03:f9:1b:a8:29:16:6d:7c:5d:bd:
-                    60:81:ac:6e:9c:63:5b:a4:41
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:ab:7f:02:81:a3:ce:01:93:02:67:2a:56:e3:51:
+                    5a:1d:a0:57:e8:4f:bb:2f:27:4d:13:9e:18:8e:b0:
+                    ec:47:a9:9c:cc:ce:24:be:64:c2:86:3f:91:63:d3:
+                    23:22:d9:10:e4:44:d5:2e:b9:09:06:e4:8f:0f:91:
+                    90:18:a6:f6:bb:de:4c:63:13:2a:59:41:fb:42:c4:
+                    05:ce:1a:f2:9e:dd:d5:50:00:55:28:7a:56:63:a9:
+                    e0:81:f1:ef:03:61:97:00:88:39:85:a5:9e:08:11:
+                    fc:76:5a:59:23:79:d8:45:d2:d3:94:19:78:8a:ca:
+                    44:f2:dd:08:df:65:15:0d:d3:b7:df:f5:2c:6c:bb:
+                    86:fb:0e:1a:19:be:ee:8a:af:1f:3d:30:6e:4f:42:
+                    3d:ca:80:39:d5:05:2d:74:5a:6b:0a:0c:49:7c:8b:
+                    95:50:37:46:0e:90:3a:e4:36:58:73:6c:49:69:b0:
+                    76:ca:c4:aa:70:48:b2:1f:2a:86:8a:ae:a7:e0:9a:
+                    b3:af:5f:7a:67:6a:1a:f3:e8:2e:57:1e:f2:ac:96:
+                    a2:ae:39:f3:7f:e3:7f:e3:b4:0f:e1:d3:e3:95:c6:
+                    04:2a:5e:ca:7e:79:52:a5:49:be:95:66:72:80:d4:
+                    2b:7f:cc:b9:aa:1a:24:27:27:6f:3d:b9:d7:5a:fd:
+                    48:23
                 Exponent: 65537 (0x10001)
-        X509v3 extensions:
-            X509v3 Basic Constraints: 
-                CA:FALSE
-            Netscape Comment: 
-                OpenSSL Generated Certificate
-            X509v3 Subject Key Identifier: 
-                7A:9B:4D:5A:CD:9A:CB:14:B2:A5:D3:B0:89:24:6E:BC:8E:1E:99:1D
-            X509v3 Authority Key Identifier: 
-                keyid:85:AB:E6:A7:57:88:7D:8D:BE:EB:64:53:73:94:64:CD:4B:8D:29:12
-
-    Signature Algorithm: sha1WithRSAEncryption
-        ba:04:f4:20:39:e3:94:2b:5b:a4:18:2b:8a:0b:12:bd:58:7d:
-        0b:0c:cd:ab:b2:7c:7a:57:2f:8b:31:06:ce:6d:26:7c:50:5c:
-        74:fd:3c:21:8c:20:04:ef:55:e9:2a:fe:f5:35:2d:86:d0:1c:
-        9f:05:96:91:9e:2f:74:a7:50:db:55:dd:ba:ff:8a:9b:ce:50:
-        03:5d:e1:10:5b:a3:4b:d5:46:73:6f:52:e8:e5:0c:b6:23:7a:
-        22:1e:30:86:9f:34:d2:3e:66:2c:dc:b6:96:0d:ee:21:59:5c:
-        17:50:23:a5:9a:2d:37:d8:ef:85:23:c0:e8:84:14:df:95:35:
-        1a:18
+    Signature Algorithm: sha256WithRSAEncryption
+         9d:4f:df:b6:eb:02:57:d5:e0:bb:f4:31:5c:2d:0e:ac:51:ce:
+         8c:5e:97:58:a8:79:cf:67:be:5c:00:7d:e5:aa:de:5e:8c:61:
+         18:39:2d:4e:e3:62:9f:ba:fc:e3:dc:94:6c:1f:40:0c:e4:98:
+         26:ac:06:45:8f:dc:73:c8:75:0e:12:b3:46:3c:71:2d:c7:d0:
+         fd:07:71:77:68:f9:55:2d:56:66:8b:27:77:c3:af:87:ee:ba:
+         21:8a:85:5e:82:93:69:e7:d9:30:3f:53:06:d5:c1:cd:0f:2f:
+         be:f8:5b:07:9c:e2:08:d1:ec:a3:a8:e1:c4:49:e7:6a:1d:37:
+         b4:41:85:a1:11:43:cd:14:7d:a9:b7:d8:32:ae:75:d1:14:6e:
+         99:cf:52:1c:7c:50:5d:57:09:1f:7c:e6:4a:70:60:cc:49:10:
+         7a:66:37:2e:a7:ee:5d:11:ed:d7:61:5c:c3:ed:dc:c2:9a:d9:
+         c4:92:54:95:67:04:81:ba:8d:ba:a7:c4:81:7a:63:63:52:28:
+         5b:35:01:4e:3b:1e:34:55:d8:62:bc:79:db:c8:7a:6f:e7:0a:
+         65:83:95:5d:bd:21:38:02:a0:24:d5:e5:5c:17:64:39:23:0d:
+         27:62:d3:7f:c5:3b:52:26:ac:f2:13:f5:8a:53:09:d0:52:26:
+         69:09:c4:e2
 -----BEGIN CERTIFICATE-----
-MIICzTCCAjagAwIBAgIJAPni85gOKwV+MA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV
-BAYTAkJHMRAwDgYDVQQIEwdQbG92ZGl2MQ8wDQYDVQQKEwZPcmFjbGUxDjAMBgNV
-BAsTBU15U1FMMSYwJAYDVQQDEx1NeVNRTCBDUkwgdGVzdCBDQSBjZXJ0aWZpY2F0
-ZTAeFw0xMjA1MTcxNTE4MTRaFw0yMjA1MTUxNTE4MTRaMGwxCzAJBgNVBAYTAkJH
-MRAwDgYDVQQIEwdQbG92ZGl2MQ8wDQYDVQQKEwZPcmFjbGUxDjAMBgNVBAsTBU15
-U1FMMSowKAYDVQQDEyFNeVNRTCBDUkwgdGVzdCBjbGllbnQgY2VydGlmaWNhdGUw
-gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANgDl5kvVIbstXlPj/+7uCPgm9PU
-ukAuNN2tjCxD+XvVT1zvR73jsqx26rLVl9yZTvrYE0iiy+4/QHr+r/HYzchbH/d8
-pH/P/gKR5tg57+hPqP+2eCl4ciSk8ORnikFQXp1rqE8G8rSOIvkF5jED+RuoKRZt
-fF29YIGsbpxjW6RBAgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8W
-HU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBR6m01azZrL
-FLKl07CJJG68jh6ZHTAfBgNVHSMEGDAWgBSFq+anV4h9jb7rZFNzlGTNS40pEjAN
-BgkqhkiG9w0BAQUFAAOBgQC6BPQgOeOUK1ukGCuKCxK9WH0LDM2rsnx6Vy+LMQbO
-bSZ8UFx0/TwhjCAE71XpKv71NS2G0ByfBZaRni90p1DbVd26/4qbzlADXeEQW6NL
-1UZzb1Lo5Qy2I3oiHjCGnzTSPmYs3LaWDe4hWVwXUCOlmi032O+FI8DohBTflTUa
-GA==
+MIIDdTCCAl0CAQIwDQYJKoZIhvcNAQELBQAwfjELMAkGA1UEBhMCSU4xEjAQBgNV
+BAgMCUthcm5hdGFrYTESMBAGA1UEBwwJQmVuZ2FsdXJ1MQ8wDQYDVQQKDAZPcmFj
+bGUxDjAMBgNVBAsMBU15U1FMMSYwJAYDVQQDDB1NeVNRTCBDUkwgdGVzdCBjYSBj
+ZXJ0aWZpY2F0ZTAeFw0yMDA3MDEwNzUxMzVaFw0zMDA1MTAwNzUxMzVaMIGCMQsw
+CQYDVQQGEwJJTjESMBAGA1UECAwJS2FybmF0YWthMRIwEAYDVQQHDAlCZW5nYWx1
+cnUxDzANBgNVBAoMBk9yYWNsZTEOMAwGA1UECwwFTXlTUUwxKjAoBgNVBAMMIU15
+U1FMIENSTCB0ZXN0IGNsaWVudCBjZXJ0aWZpY2F0ZTCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBAKt/AoGjzgGTAmcqVuNRWh2gV+hPuy8nTROeGI6w7Eep
+nMzOJL5kwoY/kWPTIyLZEORE1S65CQbkjw+RkBim9rveTGMTKllB+0LEBc4a8p7d
+1VAAVSh6VmOp4IHx7wNhlwCIOYWlnggR/HZaWSN52EXS05QZeIrKRPLdCN9lFQ3T
+t9/1LGy7hvsOGhm+7oqvHz0wbk9CPcqAOdUFLXRaawoMSXyLlVA3Rg6QOuQ2WHNs
+SWmwdsrEqnBIsh8qhoqup+Cas69femdqGvPoLlce8qyWoq4583/jf+O0D+HT45XG
+BCpeyn55UqVJvpVmcoDUK3/MuaoaJCcnbz2511r9SCMCAwEAATANBgkqhkiG9w0B
+AQsFAAOCAQEAnU/ftusCV9Xgu/QxXC0OrFHOjF6XWKh5z2e+XAB95areXoxhGDkt
+TuNin7r849yUbB9ADOSYJqwGRY/cc8h1DhKzRjxxLcfQ/Qdxd2j5VS1WZosnd8Ov
+h+66IYqFXoKTaefZMD9TBtXBzQ8vvvhbB5ziCNHso6jhxEnnah03tEGFoRFDzRR9
+qbfYMq510RRumc9SHHxQXVcJH3zmSnBgzEkQemY3LqfuXRHt12Fcw+3cwprZxJJU
+lWcEgbqNuqfEgXpjY1IoWzUBTjseNFXYYrx528h6b+cKZYOVXb0hOAKgJNXlXBdk
+OSMNJ2LTf8U7Uias8hP1ilMJ0FImaQnE4g==
 -----END CERTIFICATE-----
diff --git a/mysql-wsrep-5.6/mysql-test/std_data/crl-client-key.pem b/mysql-wsrep-5.6/mysql-test/std_data/crl-client-key.pem
index f6bea6e0..8a361d9c 100644
--- a/mysql-wsrep-5.6/mysql-test/std_data/crl-client-key.pem
+++ b/mysql-wsrep-5.6/mysql-test/std_data/crl-client-key.pem
@@ -1,15 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQDYA5eZL1SG7LV5T4//u7gj4JvT1LpALjTdrYwsQ/l71U9c70e9
-47Ksduqy1ZfcmU762BNIosvuP0B6/q/x2M3IWx/3fKR/z/4CkebYOe/oT6j/tngp
-eHIkpPDkZ4pBUF6da6hPBvK0jiL5BeYxA/kbqCkWbXxdvWCBrG6cY1ukQQIDAQAB
-AoGBAL2RAXQcFhjGGEfaa6toaKOLlBSk5cI3CovTpmSeTo2+14PeNN5OuVkijrrc
-OQYNwELgZqPiwgZVmdeWNH+P3J2vo+QqfxskondSDM2ZDedvO8tc4W74oSQzsASr
-37ptEJlAdumzQ1XPxGwZi6E2KPzmTBQ4Q0j50UB2vagbR2cxAkEA7C3dVMyNYLew
-ycujuU7F4SQcYFY5/BMj6yanovBF80FRT2X+mxj3lSZux/tjZFvxeb9Q5vmJJRp6
-PUP/ROQVVQJBAOokfqS6jrvvNvqYZnMb54iDTP7Jx+EJyBJxYtJM53WC3NXarCQq
-EWyVD1KxJxxW1gfcmJbhVQYeUsictO24Uz0CQGEtxgJcYFfJfW6q4eUfqoAm8Z4a
-HKXB4mehchyzLLUYzTIUT5zVuxmdxLt4jr7+re9gbxN63ZlsuZt33RMlnjkCQGbF
-igkIEeqPv1QTXLSdxOz4pO0Y6HDweC8QMc4ZD2dW/1Om3fQpuugsLUOgmogn3V4q
-B5gCY+2BldiUYB4P0AkCQQDDkyhWJQvtXSLGFkfUBZ6PCzVfO+Pkb7tISQuDGT4J
-HY+UpnQBbe6WP2hGXzwaGw9rVYaA9IcvX8pOpWsCDk80
+MIIEogIBAAKCAQEAq38CgaPOAZMCZypW41FaHaBX6E+7LydNE54YjrDsR6mczM4k
+vmTChj+RY9MjItkQ5ETVLrkJBuSPD5GQGKb2u95MYxMqWUH7QsQFzhrynt3VUABV
+KHpWY6nggfHvA2GXAIg5haWeCBH8dlpZI3nYRdLTlBl4ispE8t0I32UVDdO33/Us
+bLuG+w4aGb7uiq8fPTBuT0I9yoA51QUtdFprCgxJfIuVUDdGDpA65DZYc2xJabB2
+ysSqcEiyHyqGiq6n4Jqzr196Z2oa8+guVx7yrJairjnzf+N/47QP4dPjlcYEKl7K
+fnlSpUm+lWZygNQrf8y5qhokJydvPbnXWv1IIwIDAQABAoIBADdU9mEPkdMONJNG
+pNwZDmNKrbJFr1ZKbuLqem/ng4Sno/CsfkxzxBN+hRFZORfwQzPzRXkauF/h9IqI
+Y56gmDELS0gYEezUjhX/mwPhy/AYENAMG23A8wia8dXbUkub/BVu3mhRhEiETRl+
+kw4QLQhyOlOpWCwnkNFvIYK6YW2hHye1utu7L+Hy2zyi9g6ZKyZRl8W/OrFT2ka0
+5zAOb1ttYLUdzK+ErF29GrT2X7PCL//QCNHQW2q03QWSRA7w+MbfytkJRLsCl8fg
+V1uVjP/RumuS6fLxQkytbaioukmfzO+4J0Z+JWpF2IqzixrdxlgPvMIAUDHEOVdv
+JlXuI4kCgYEA4xs75iLM+YDxHyygfyJZGI7iqwfkXbRDcKp/MECa7KcvJs0l8Eeu
+lB0jSM/uy9o92vTXLb5bi45vBiCjImAuZQL08elQZuR5JiPJZqF/b3BXsLUcPIbI
+oxO3hLdigyt9wuuk3XvhrYJkLJZ6z8lBR6Qfvre8kApqLjnlH2QGUR0CgYEAwVCS
+Wy4AL1goFHc+b/hFou0nWLjVFiMpNroDEQigvLnnRG7irMDxDsxAcotl6tYzjjys
+JKtMmBJDJnlsHnO8NK2sUn1CQTxdxoXOhVD0mtbaowU+PVZDzhp1j1dzmtzovKTo
+Qkh+DV8Z4ulbaJ+ROpgCZYCoJ5K3PEwjrrbN+j8CgYA5BZKBkwVSNBzWjfbyVOZ3
+8xBYjw+4s1UnibeLnv0HJGcDYAkBjo335GUCmCrGBlL3kfghJSWJIccgi7tKG0oq
+1JY50zH706vTdrLP0QbVLSjnVmHzlIf14jJ24TCb7KST92Sas8sTLKUISPQnDcoV
+OdE6qplutR654pFz00J+xQKBgGDM6MyxpzQN79v3rhNBfhVMrcQ2obU5HB0kXf68
+lEiMyqqw397jqpHfY3I4LWu/oQdbiFPAV1Va57cvXB2PlLHIOZ8AzBmAkfCj9js5
+w5J5fffd20G5nbBp/W4uu1vTvNMhvI/cXwpxEbRXaAdmx8FQdvq+xvUx+YE/GysU
+rOXfAoGAQ4G+nrbKq76GEKfMzGnAHunSbdYlHOY/sHJ2Z0M/5eHIcvOEBJKGXl3m
+xe6WR/wavanNwMQ4aqpRv09yufdnoVsJcWpThDDBDIlstHUvO1mnk8B7OqHL2GIy
+lbo/QtpHT/46igRZUtBZFyZu4hb5EwBIpKNm1X/MyFYU7XMrvpQ=
 -----END RSA PRIVATE KEY-----
diff --git a/mysql-wsrep-5.6/mysql-test/std_data/crl-client-revoked-cert.pem b/mysql-wsrep-5.6/mysql-test/std_data/crl-client-revoked-cert.pem
index 180dec92..d48e20e0 100644
--- a/mysql-wsrep-5.6/mysql-test/std_data/crl-client-revoked-cert.pem
+++ b/mysql-wsrep-5.6/mysql-test/std_data/crl-client-revoked-cert.pem
@@ -1,62 +1,70 @@
 Certificate:
     Data:
-        Version: 3 (0x2)
-        Serial Number:
-            f9:e2:f3:98:0e:2b:05:7f
-        Signature Algorithm: sha1WithRSAEncryption
-        Issuer: C=BG, ST=Plovdiv, O=Oracle, OU=MySQL, CN=MySQL CRL test CA certificate
+        Version: 1 (0x0)
+        Serial Number: 3 (0x3)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=IN, ST=Karnataka, L=Bengaluru, O=Oracle, OU=MySQL, CN=MySQL CRL test ca certificate
         Validity
-            Not Before: May 17 15:21:12 2012 GMT
-            Not After : May 15 15:21:12 2022 GMT
-        Subject: C=BG, ST=Plovdiv, O=Oracle, OU=MySQL, CN=MySQL CRL test client certificate revoked
+            Not Before: Jul  1 07:52:41 2020 GMT
+            Not After : May 10 07:52:41 2030 GMT
+        Subject: C=IN, ST=Karnataka, L=Bengaluru, O=Oracle, OU=MySQL, CN=MySQL CRL test client certificate revoked
         Subject Public Key Info:
             Public Key Algorithm: rsaEncryption
-            RSA Public Key: (1024 bit)
-                Modulus (1024 bit):
-                    00:a5:dd:99:d5:fd:3a:9c:06:f4:2e:1a:e0:52:1b:
-                    f6:24:ca:e8:07:41:38:a6:9c:5f:84:5a:07:43:9e:
-                    de:91:37:6d:40:44:cd:8e:48:a2:b8:c4:39:75:41:
-                    d6:aa:97:26:01:37:76:7b:02:45:18:78:e1:1e:56:
-                    5d:f8:5d:e0:cc:a4:c4:bd:0d:1b:40:6e:00:4e:e0:
-                    ba:06:61:9f:81:f2:29:ae:db:31:b2:8f:26:2e:32:
-                    c5:74:b2:09:5f:76:a8:4a:5e:b4:f1:44:59:7e:3d:
-                    2a:9c:aa:b0:71:a4:2e:70:3b:8c:f2:93:2f:87:c1:
-                    a6:87:e6:6b:7c:1f:a5:f5:6b
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:c2:57:18:e7:94:ce:44:87:f3:45:8d:e1:c3:a8:
+                    a0:1f:9a:04:9a:67:de:4a:41:bc:5d:0f:31:07:9f:
+                    e3:d5:82:54:81:b9:dc:77:43:62:51:42:43:cd:8c:
+                    31:71:0f:5b:dd:e8:02:c5:f2:3a:be:e4:e9:64:99:
+                    df:e5:8f:34:fc:f9:2c:5b:1d:b1:93:8b:b7:c5:55:
+                    5e:10:f9:b5:1c:0b:9e:1a:65:3d:ab:2e:51:a5:fd:
+                    10:97:57:2d:98:6d:9a:82:0e:ae:25:21:cc:dc:26:
+                    01:16:34:8a:f4:67:30:2f:77:4b:56:7b:e4:ec:c2:
+                    cf:1e:ec:0d:0a:29:c1:49:2f:5e:6e:75:4f:d7:b4:
+                    d0:b2:73:09:9f:25:e0:a8:41:66:e0:78:d4:2b:f5:
+                    6e:3c:20:15:3e:75:d1:e3:cc:ee:47:b8:2a:fe:46:
+                    f4:bc:01:7a:9f:67:48:12:bc:a1:b9:e1:b7:31:4a:
+                    2f:6a:ed:d1:33:7a:26:ab:01:88:05:70:48:8b:87:
+                    41:4b:44:78:67:7b:e7:37:8c:b7:41:c0:6a:eb:37:
+                    3b:de:a9:91:16:75:f9:14:81:eb:b4:60:db:a0:2e:
+                    93:8a:61:91:33:ee:12:2f:85:2c:12:96:30:f1:f5:
+                    00:42:16:95:a7:e9:06:30:32:b9:a3:fe:19:1d:fb:
+                    28:ff
                 Exponent: 65537 (0x10001)
-        X509v3 extensions:
-            X509v3 Basic Constraints: 
-                CA:FALSE
-            Netscape Comment: 
-                OpenSSL Generated Certificate
-            X509v3 Subject Key Identifier: 
-                20:75:FB:E7:F0:11:4F:64:48:C6:F9:85:7C:1E:3A:C7:F0:16:8F:51
-            X509v3 Authority Key Identifier: 
-                keyid:85:AB:E6:A7:57:88:7D:8D:BE:EB:64:53:73:94:64:CD:4B:8D:29:12
-
-    Signature Algorithm: sha1WithRSAEncryption
-        d9:23:63:c2:da:d4:4a:53:85:c2:87:ab:e5:a4:7b:ea:cb:8a:
-        0e:6e:6c:ef:a7:a3:e2:ff:29:9e:af:d0:24:08:40:44:0e:0c:
-        91:5c:5e:38:25:c9:1b:c5:55:b1:17:01:12:57:60:5b:78:f5:
-        e3:3c:47:e0:df:10:11:38:f6:18:ce:37:5f:ec:c6:a9:95:39:
-        db:36:5d:78:12:9a:57:f8:bc:4d:cd:e5:e9:77:85:71:72:d1:
-        66:99:0c:35:51:8a:3d:61:cf:0f:21:5e:e1:cb:4b:33:f7:68:
-        8c:d2:fc:ca:a5:44:a7:d6:d3:76:9a:60:fb:0b:17:97:ee:3a:
-        23:22
+    Signature Algorithm: sha256WithRSAEncryption
+         26:ed:c6:62:c6:37:5b:d6:5a:8d:f1:09:4e:ac:0e:d6:0c:fb:
+         3c:a0:73:c7:2c:c5:23:ed:ca:b4:27:aa:66:1e:37:e0:5c:3a:
+         ff:35:82:f2:da:2e:4a:16:0a:5c:ea:38:9b:63:ce:2e:0c:27:
+         e6:e9:77:c7:ba:16:75:f3:1c:9b:9b:83:aa:90:3a:3e:2e:1b:
+         01:07:24:d1:c7:a8:e9:d6:30:ea:04:37:7d:ed:dc:d8:36:35:
+         ca:df:83:e3:7f:49:b7:a7:06:3b:2b:fa:ed:03:7c:91:39:93:
+         44:59:b5:ed:5d:28:30:25:76:c5:5e:67:ce:28:c6:d1:68:48:
+         bf:43:33:40:8d:5d:3d:2b:cb:8e:b3:77:cb:a7:41:f2:94:20:
+         0a:ab:c7:86:1f:e4:04:84:a4:73:19:ae:e4:ba:82:9a:35:0f:
+         44:26:f0:49:0e:9d:08:d3:7d:94:b0:22:ae:62:7a:3e:60:48:
+         4b:09:11:4d:bc:1e:80:21:65:6f:21:77:43:be:8c:3d:c9:71:
+         c7:c5:88:90:5e:60:26:64:8a:43:45:2e:a3:02:0c:8d:e1:b9:
+         76:a6:c9:61:2d:7a:d2:3c:17:c4:74:01:2f:dc:eb:a0:90:f5:
+         f7:0a:19:2b:d7:38:fb:c3:aa:c7:b6:76:17:72:1a:41:8f:54:
+         95:72:94:bc
 -----BEGIN CERTIFICATE-----
-MIIC1TCCAj6gAwIBAgIJAPni85gOKwV/MA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV
-BAYTAkJHMRAwDgYDVQQIEwdQbG92ZGl2MQ8wDQYDVQQKEwZPcmFjbGUxDjAMBgNV
-BAsTBU15U1FMMSYwJAYDVQQDEx1NeVNRTCBDUkwgdGVzdCBDQSBjZXJ0aWZpY2F0
-ZTAeFw0xMjA1MTcxNTIxMTJaFw0yMjA1MTUxNTIxMTJaMHQxCzAJBgNVBAYTAkJH
-MRAwDgYDVQQIEwdQbG92ZGl2MQ8wDQYDVQQKEwZPcmFjbGUxDjAMBgNVBAsTBU15
-U1FMMTIwMAYDVQQDEylNeVNRTCBDUkwgdGVzdCBjbGllbnQgY2VydGlmaWNhdGUg
-cmV2b2tlZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApd2Z1f06nAb0Lhrg
-Uhv2JMroB0E4ppxfhFoHQ57ekTdtQETNjkiiuMQ5dUHWqpcmATd2ewJFGHjhHlZd
-+F3gzKTEvQ0bQG4ATuC6BmGfgfIprtsxso8mLjLFdLIJX3aoSl608URZfj0qnKqw
-caQucDuM8pMvh8Gmh+ZrfB+l9WsCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgB
-hvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYE
-FCB1++fwEU9kSMb5hXweOsfwFo9RMB8GA1UdIwQYMBaAFIWr5qdXiH2NvutkU3OU
-ZM1LjSkSMA0GCSqGSIb3DQEBBQUAA4GBANkjY8La1EpThcKHq+Wke+rLig5ubO+n
-o+L/KZ6v0CQIQEQODJFcXjglyRvFVbEXARJXYFt49eM8R+DfEBE49hjON1/sxqmV
-Ods2XXgSmlf4vE3N5el3hXFy0WaZDDVRij1hzw8hXuHLSzP3aIzS/MqlRKfW03aa
-YPsLF5fuOiMi
+MIIDfTCCAmUCAQMwDQYJKoZIhvcNAQELBQAwfjELMAkGA1UEBhMCSU4xEjAQBgNV
+BAgMCUthcm5hdGFrYTESMBAGA1UEBwwJQmVuZ2FsdXJ1MQ8wDQYDVQQKDAZPcmFj
+bGUxDjAMBgNVBAsMBU15U1FMMSYwJAYDVQQDDB1NeVNRTCBDUkwgdGVzdCBjYSBj
+ZXJ0aWZpY2F0ZTAeFw0yMDA3MDEwNzUyNDFaFw0zMDA1MTAwNzUyNDFaMIGKMQsw
+CQYDVQQGEwJJTjESMBAGA1UECAwJS2FybmF0YWthMRIwEAYDVQQHDAlCZW5nYWx1
+cnUxDzANBgNVBAoMBk9yYWNsZTEOMAwGA1UECwwFTXlTUUwxMjAwBgNVBAMMKU15
+U1FMIENSTCB0ZXN0IGNsaWVudCBjZXJ0aWZpY2F0ZSByZXZva2VkMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwlcY55TORIfzRY3hw6igH5oEmmfeSkG8
+XQ8xB5/j1YJUgbncd0NiUUJDzYwxcQ9b3egCxfI6vuTpZJnf5Y80/PksWx2xk4u3
+xVVeEPm1HAueGmU9qy5Rpf0Ql1ctmG2agg6uJSHM3CYBFjSK9GcwL3dLVnvk7MLP
+HuwNCinBSS9ebnVP17TQsnMJnyXgqEFm4HjUK/VuPCAVPnXR48zuR7gq/kb0vAF6
+n2dIEryhueG3MUovau3RM3omqwGIBXBIi4dBS0R4Z3vnN4y3QcBq6zc73qmRFnX5
+FIHrtGDboC6TimGRM+4SL4UsEpYw8fUAQhaVp+kGMDK5o/4ZHfso/wIDAQABMA0G
+CSqGSIb3DQEBCwUAA4IBAQAm7cZixjdb1lqN8QlOrA7WDPs8oHPHLMUj7cq0J6pm
+HjfgXDr/NYLy2i5KFgpc6jibY84uDCfm6XfHuhZ18xybm4OqkDo+LhsBByTRx6jp
+1jDqBDd97dzYNjXK34Pjf0m3pwY7K/rtA3yROZNEWbXtXSgwJXbFXmfOKMbRaEi/
+QzNAjV09K8uOs3fLp0HylCAKq8eGH+QEhKRzGa7kuoKaNQ9EJvBJDp0I032UsCKu
+Yno+YEhLCRFNvB6AIWVvIXdDvow9yXHHxYiQXmAmZIpDRS6jAgyN4bl2pslhLXrS
+PBfEdAEv3OugkPX3Chkr1zj7w6rHtnYXchpBj1SVcpS8
 -----END CERTIFICATE-----
diff --git a/mysql-wsrep-5.6/mysql-test/std_data/crl-client-revoked-key.pem b/mysql-wsrep-5.6/mysql-test/std_data/crl-client-revoked-key.pem
index ce7a271a..dd2f2565 100644
--- a/mysql-wsrep-5.6/mysql-test/std_data/crl-client-revoked-key.pem
+++ b/mysql-wsrep-5.6/mysql-test/std_data/crl-client-revoked-key.pem
@@ -1,15 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQCl3ZnV/TqcBvQuGuBSG/YkyugHQTimnF+EWgdDnt6RN21ARM2O
-SKK4xDl1QdaqlyYBN3Z7AkUYeOEeVl34XeDMpMS9DRtAbgBO4LoGYZ+B8imu2zGy
-jyYuMsV0sglfdqhKXrTxRFl+PSqcqrBxpC5wO4zyky+HwaaH5mt8H6X1awIDAQAB
-AoGAKkkoowmAG68aKXbooYZHZnHkXZUfIDrVjyR0naSvEU6UJ8JitVeHRJuiGmbC
-l5MZOU4ugoW9n9ORcO6L3nnwiVKWmG7K561ctp2tPQbUtCEMcFmGbnrJuJHrkyJX
-I0+E7+3mg2cCsTwofjR6bUeM7NnnM0Tf6Q5rKk/aXMW90MECQQDO9d3xt4TU1u/l
-uep52w43x23ZYx+YLIHVR9VRMZrYF62B8GpSf9TOdLOQBUyifdVJiXnuV1OkdHSX
-58G3P6sjAkEAzSrw66gH9YRC72tSU/m6LrMh9xmm3VqUWIYvzgX0Mw/a51VE+blr
-q/jctYicy1rbcDRsI9iKraXmB6fBhAA1GQJAK6VESh6Wv8AYVY0wusQMqoy/SNIT
-rqbsNotwnC/m5N2RdM67zWwx99w6pgvIDpiU6243raDy/cKleAejHb8qmwJBAJyQ
-Bzcdi61MV7PSJwoUCIK4idPBjHdgNtHy3CoQmxAYKkjb5f3XBBZAm1QgQt5foBLY
-vikAhpsKfSYcWuz7J4kCQQCX22QkqP9/JnC7CYfSasb69kD0A/zOn8wT3LQi4HRj
-3c2Mh+hKSVdMUXzULEnF+oZbMADSlPRY1qgykg+fK38R
+MIIEpAIBAAKCAQEAwlcY55TORIfzRY3hw6igH5oEmmfeSkG8XQ8xB5/j1YJUgbnc
+d0NiUUJDzYwxcQ9b3egCxfI6vuTpZJnf5Y80/PksWx2xk4u3xVVeEPm1HAueGmU9
+qy5Rpf0Ql1ctmG2agg6uJSHM3CYBFjSK9GcwL3dLVnvk7MLPHuwNCinBSS9ebnVP
+17TQsnMJnyXgqEFm4HjUK/VuPCAVPnXR48zuR7gq/kb0vAF6n2dIEryhueG3MUov
+au3RM3omqwGIBXBIi4dBS0R4Z3vnN4y3QcBq6zc73qmRFnX5FIHrtGDboC6TimGR
+M+4SL4UsEpYw8fUAQhaVp+kGMDK5o/4ZHfso/wIDAQABAoIBAQCx7VAt5n2bHOVL
+zwTeQCqqBDcmruZEEj9E7D21f1v3BOYeB26j+puvTf4J2MsDek5fsqWnWYkTcT2G
+D6N/50daPT+xBFSqg4bzMp9250g7rx9Hh12YtkWmtTVVekmSfvaxEIO8F2AaRulD
+zUNTVI43Rv9A5RnI8uryoqeloGkIeK9w0Gm0lSelqDNqb3OYbSX4OkBHC3wFvQBV
+eCwDIJIS9hXc8+mt42T5iaAGvVgHEzsOyTtWlMWPlgiIVq1VzoGiyjTR3E+V+tfy
+fzB/nq8s1t0/AOpEkk5LNX8UE1TnET7kqtBw/UmZ9BJ9FtZaYXBFprjxi/hGZbTW
+oYBIaqtxAoGBAOQ9RHUb1V/mJ/qhWsLsKQdNlE/49ypevjUGwcr6YH7lcNz4YDrk
+t75NmQv1svN7UuDpYzATe84n4F+ZmaN/pESKdFOmQ7usosGp8NKGxRQ1Upqr5DEm
+P4wfz/kwsquJOMbSEczfMc7C8CTm5m6wrs9pX8r5UJq7vZHOCAnL7mr7AoGBANn6
+TpB1Pbimv5kub8c8Wi/in9/Y3kDJpBm8oy9aWPLyzVag41O8QDEma8hIxbqMF6fG
+kv9gYzTZ5+w6Uz58CSp1BYzWOaevpqpdRd4YxaMIOnI5ddDTAGQBudkCy6X2qXRl
+Dk4fnkr0GvyIlIhAKnBEnmSo5DPX7W6kPwWk9hrNAoGBAIV3nnStFhXCTVauzJh3
+6XYv068Ac+j/BlOT4/eCerM6EMnnJL7LyPcsAXeQ8liXoVuMn0gZ3KgtgXPmKoYF
+ulWqcWQJMkqpJXQCoKU70juDAw8XvZVQPJEAeWnLJHBTCjSZ23bmfgXe0PeDXvUT
+tOXtROs45/3UE4MT7HduHbnJAoGABNRS4Uh3sZugKxioSVXA+cafnCoF4pGVHSzc
+wLPTvK48dmriHnzRP0WGpc1W9Ccebw0rPJU6HXWmeclhBsVgvpwRH2mvpVNy8dtX
+LPCHkHEiOl2jipjiLVUMdQ5mzKqGXpnOk1SIAUkfP/EWuV4SkqIykDBdvfhOvmDN
+NKbO/RECgYAK2mueSaD3BRtJEiTCCnAjcov3nBIYgXj1y+BCSo5YGMdHSgLMMq7M
+45uUSjv3zNv9wr4Og5/2qDE18ISxPHTvGngNABTGDcLNgPm0j5smwJSe99BITwZb
+jTaa0WaPPdvEzPpaTiNJi81/5UWqNWc5Mg7LBlWhnCjtaYYzDOy33w==
 -----END RSA PRIVATE KEY-----
diff --git a/mysql-wsrep-5.6/mysql-test/std_data/crl-client-revoked.crl b/mysql-wsrep-5.6/mysql-test/std_data/crl-client-revoked.crl
index 4c0a2132..367c35bf 100644
--- a/mysql-wsrep-5.6/mysql-test/std_data/crl-client-revoked.crl
+++ b/mysql-wsrep-5.6/mysql-test/std_data/crl-client-revoked.crl
@@ -1,10 +1,41 @@
+Certificate Revocation List (CRL):
+        Version 2 (0x1)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: /C=IN/ST=Karnataka/L=Bengaluru/O=Oracle/OU=MySQL/CN=MySQL CRL test ca certificate
+        Last Update: Jul  1 07:54:29 2020 GMT
+        Next Update: May 10 07:54:29 2030 GMT
+        CRL extensions:
+            X509v3 CRL Number: 
+                4096
+Revoked Certificates:
+    Serial Number: 03
+        Revocation Date: Jul  1 07:54:18 2020 GMT
+    Signature Algorithm: sha256WithRSAEncryption
+         8d:76:b6:c6:84:2d:f5:14:fa:34:2f:0b:64:7c:20:c0:65:03:
+         60:8a:6b:9d:42:0d:b7:51:93:92:75:b5:28:5d:2f:47:0e:6d:
+         a2:df:c7:a1:b9:95:49:c2:83:5e:36:41:77:63:b4:25:8b:60:
+         d9:f8:25:4e:6e:45:94:3f:a3:86:a3:b5:cc:f0:b5:eb:68:4e:
+         1e:f6:d9:5d:e2:50:a6:e5:50:0e:a0:6f:e8:4b:66:9f:1f:0d:
+         5e:e1:63:e9:c9:96:7d:98:b6:56:5e:ce:3f:d2:42:b4:d3:18:
+         73:ca:ce:7a:42:71:29:7b:1f:bf:07:88:cf:d2:8e:1d:31:9c:
+         00:92:a2:5d:bc:78:0f:7b:f1:02:fe:ed:d7:b1:dc:8d:25:9a:
+         d5:01:c1:d8:ac:fd:a2:41:96:bd:9b:72:cb:95:f5:85:a9:88:
+         b3:74:30:c9:82:5d:8b:c8:d6:8a:5c:92:e8:e7:09:f1:13:73:
+         fa:05:56:1c:e2:dd:9e:b5:49:71:82:67:e6:e3:57:53:c8:f7:
+         df:66:44:7a:d6:f8:4f:44:5f:7e:30:eb:7b:d9:15:db:e2:d0:
+         85:45:9a:7b:d4:c2:f8:44:0f:5f:8c:d0:35:45:a1:c6:82:e8:
+         43:49:73:09:3b:ba:9a:24:00:1f:3c:7a:38:bd:e6:b5:b8:45:
+         e3:33:d3:c9
 -----BEGIN X509 CRL-----
-MIIBXjCByAIBATANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJCRzEQMA4GA1UE
-CBMHUGxvdmRpdjEPMA0GA1UEChMGT3JhY2xlMQ4wDAYDVQQLEwVNeVNRTDEmMCQG
-A1UEAxMdTXlTUUwgQ1JMIHRlc3QgQ0EgY2VydGlmaWNhdGUXDTEyMDUyMTE0NDEx
-NFoXDTIyMDUxOTE0NDExNFowHDAaAgkA+eLzmA4rBX8XDTEyMDUxNzE1Mjc1OVqg
-DjAMMAoGA1UdFAQDAgECMA0GCSqGSIb3DQEBBQUAA4GBAIEYWLAI+mGt21DVlg/t
-mGaQ629aabNhZL3An5+2z+tqzQbOv6bKMW5H8gNNeNrRqQR/XEJvhlg0BrxfIicM
-GbvVoud0HmECIoxNVmeI8UCNPkkeQONT+8ZW029iuJF2KgGI0m1ZJa3bjRaArian
-ag9dgLE4zLppD4aMal0ysHPZ
+MIIB7jCB1wIBATANBgkqhkiG9w0BAQsFADB+MQswCQYDVQQGEwJJTjESMBAGA1UE
+CAwJS2FybmF0YWthMRIwEAYDVQQHDAlCZW5nYWx1cnUxDzANBgNVBAoMBk9yYWNs
+ZTEOMAwGA1UECwwFTXlTUUwxJjAkBgNVBAMMHU15U1FMIENSTCB0ZXN0IGNhIGNl
+cnRpZmljYXRlFw0yMDA3MDEwNzU0MjlaFw0zMDA1MTAwNzU0MjlaMBQwEgIBAxcN
+MjAwNzAxMDc1NDE4WqAPMA0wCwYDVR0UBAQCAhAAMA0GCSqGSIb3DQEBCwUAA4IB
+AQCNdrbGhC31FPo0LwtkfCDAZQNgimudQg23UZOSdbUoXS9HDm2i38ehuZVJwoNe
+NkF3Y7Qli2DZ+CVObkWUP6OGo7XM8LXraE4e9tld4lCm5VAOoG/oS2afHw1e4WPp
+yZZ9mLZWXs4/0kK00xhzys56QnEpex+/B4jP0o4dMZwAkqJdvHgPe/EC/u3XsdyN
+JZrVAcHYrP2iQZa9m3LLlfWFqYizdDDJgl2LyNaKXJLo5wnxE3P6BVYc4t2etUlx
+gmfm41dTyPffZkR61vhPRF9+MOt72RXb4tCFRZp71ML4RA9fjNA1RaHGguhDSXMJ
+O7qaJAAfPHo4vea1uEXjM9PJ
 -----END X509 CRL-----
diff --git a/mysql-wsrep-5.6/mysql-test/std_data/crl-server-cert.pem b/mysql-wsrep-5.6/mysql-test/std_data/crl-server-cert.pem
index 3316e5e8..6328fe4f 100644
--- a/mysql-wsrep-5.6/mysql-test/std_data/crl-server-cert.pem
+++ b/mysql-wsrep-5.6/mysql-test/std_data/crl-server-cert.pem
@@ -1,62 +1,70 @@
 Certificate:
     Data:
-        Version: 3 (0x2)
-        Serial Number:
-            f9:e2:f3:98:0e:2b:05:7d
-        Signature Algorithm: sha1WithRSAEncryption
-        Issuer: C=BG, ST=Plovdiv, O=Oracle, OU=MySQL, CN=MySQL CRL test CA certificate
+        Version: 1 (0x0)
+        Serial Number: 1 (0x1)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=IN, ST=Karnataka, L=Bengaluru, O=Oracle, OU=MySQL, CN=MySQL CRL test ca certificate
         Validity
-            Not Before: May 17 15:09:56 2012 GMT
-            Not After : May 15 15:09:56 2022 GMT
-        Subject: C=BG, ST=Plovdiv, O=Oracle, OU=MySQL, CN=MySQL CRL test server certificate
+            Not Before: Jul  1 07:50:41 2020 GMT
+            Not After : May 10 07:50:41 2030 GMT
+        Subject: C=IN, ST=Karnataka, L=Bengaluru, O=Oracle, OU=MySQL, CN=MySQL CRL test server certificate
         Subject Public Key Info:
             Public Key Algorithm: rsaEncryption
-            RSA Public Key: (1024 bit)
-                Modulus (1024 bit):
-                    00:af:0b:31:f9:f6:20:3b:6c:3f:9a:84:d0:85:b4:
-                    d4:ed:f9:ea:29:37:44:77:2b:37:25:da:9f:b8:f9:
-                    b3:02:9d:62:fc:e5:fc:d8:c1:56:7d:4f:7e:fa:6b:
-                    4f:f5:2b:98:b2:e2:fe:7c:7e:b8:57:bb:03:a5:2b:
-                    03:86:f5:d4:c4:66:6d:41:a7:fa:2a:09:02:7a:8e:
-                    c7:cd:44:15:46:64:fc:77:99:1e:53:06:ef:c5:d6:
-                    b4:19:3a:db:7b:26:16:60:0a:f8:62:ae:40:22:1b:
-                    1b:c2:20:2e:b0:bf:18:37:96:5c:a8:16:35:81:1f:
-                    f6:4b:3a:14:fb:4c:58:8e:37
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:f6:43:d5:3b:37:86:9f:54:a7:96:23:c6:90:73:
+                    a2:cb:79:bc:77:1a:18:dc:ae:30:36:5c:41:e5:a7:
+                    d0:bc:93:08:7e:7b:2c:9a:00:bf:9d:0f:ab:82:56:
+                    e6:ad:f1:3a:6a:e2:49:5d:02:59:0e:03:10:63:b1:
+                    83:f9:73:19:40:ec:8a:a0:1e:17:c9:53:74:ca:ca:
+                    2b:2f:7a:87:98:dc:12:e6:c8:d9:6e:3b:bc:d3:c5:
+                    f3:f4:fa:14:e2:5a:12:f2:3a:79:82:b7:a9:6f:21:
+                    f6:c7:79:a0:c7:56:05:a8:01:64:e8:f0:67:81:29:
+                    af:21:dc:08:02:8e:b8:cf:38:f1:ef:a6:ea:18:14:
+                    43:63:21:e8:a3:fe:78:78:b9:f2:04:6a:c8:32:48:
+                    66:4e:6e:4f:22:28:89:42:27:42:e5:f4:76:38:77:
+                    80:88:2d:73:c8:36:ab:24:40:68:fc:34:83:ba:1c:
+                    07:99:e3:3d:69:49:08:cd:4f:74:83:4e:33:5a:c4:
+                    87:65:7f:84:dc:73:80:93:55:21:5a:4d:86:97:b0:
+                    8a:93:d1:bc:63:c5:19:b0:8a:77:85:af:c9:74:cf:
+                    dd:4b:17:8c:cf:62:b0:bc:1a:3b:3f:b4:18:6b:e7:
+                    ad:4e:56:cb:29:be:31:4f:ee:3b:89:97:d6:fa:bd:
+                    5b:2b
                 Exponent: 65537 (0x10001)
-        X509v3 extensions:
-            X509v3 Basic Constraints: 
-                CA:FALSE
-            Netscape Comment: 
-                OpenSSL Generated Certificate
-            X509v3 Subject Key Identifier: 
-                E1:3D:2B:5B:A1:96:FC:80:19:27:BA:F6:88:94:58:E3:EB:F6:85:10
-            X509v3 Authority Key Identifier: 
-                keyid:85:AB:E6:A7:57:88:7D:8D:BE:EB:64:53:73:94:64:CD:4B:8D:29:12
-
-    Signature Algorithm: sha1WithRSAEncryption
-        67:04:e4:39:2e:80:71:a8:63:ad:7e:e8:61:86:c7:a3:93:9e:
-        0d:0a:82:fd:21:29:9a:68:46:fa:95:b0:8d:23:7e:78:68:0f:
-        a9:19:3a:05:a1:df:b5:78:95:7c:f1:7f:8c:2a:40:23:c0:2b:
-        c8:a5:b0:1a:0e:8a:c4:42:ac:fc:e3:9d:f2:bb:e9:7f:75:b5:
-        94:2e:64:eb:ac:33:53:cd:8f:e8:4d:17:80:f7:ad:dd:03:57:
-        3e:e9:65:76:d3:c1:14:13:62:23:4b:bf:e1:38:0e:da:d0:74:
-        8e:52:9b:9d:9e:cc:ba:e5:a1:94:d1:f2:76:f9:c5:c7:ab:60:
-        01:c8
+    Signature Algorithm: sha256WithRSAEncryption
+         51:bd:1f:2d:64:cb:8c:d3:02:f2:ff:7e:65:3a:fa:78:4c:4b:
+         65:5c:8a:75:49:24:df:14:17:6b:84:a2:6a:e1:b8:d6:84:74:
+         22:7c:e3:bc:3e:7d:81:c7:2a:df:d6:bc:7b:be:44:a7:26:63:
+         1d:09:c1:ea:25:85:4b:14:b3:2f:f8:a5:28:f4:72:36:fc:71:
+         d0:c9:8d:b2:b3:d6:88:2a:4e:98:f2:22:fa:cb:c8:4d:7b:c0:
+         3b:81:f1:dd:f9:29:bd:f4:69:a4:82:87:c6:3b:4f:2f:75:3d:
+         fc:a3:6f:b0:10:80:b4:c5:51:9b:b8:5e:9d:cc:21:38:bc:e9:
+         54:11:76:d8:df:46:88:f5:02:b3:6a:02:e2:8c:cd:d8:f7:4e:
+         ff:fd:5f:e3:b9:db:52:cb:54:39:29:9a:e6:07:84:ea:38:3f:
+         3d:4c:87:ce:6c:5f:c8:18:56:8a:54:8e:6a:d3:f2:77:34:a6:
+         6d:f3:5a:51:8a:0d:23:bd:7e:01:07:af:0e:fd:97:73:64:27:
+         26:cc:34:d8:1f:f3:58:8b:7f:4b:75:df:39:ff:92:dc:e3:04:
+         ea:42:7c:11:7f:77:ab:32:29:c7:59:7e:5d:84:2d:cd:1d:2c:
+         61:d4:be:5d:9b:0e:30:2b:31:7e:4f:e6:07:e7:20:10:18:56:
+         36:97:19:b3
 -----BEGIN CERTIFICATE-----
-MIICzTCCAjagAwIBAgIJAPni85gOKwV9MA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV
-BAYTAkJHMRAwDgYDVQQIEwdQbG92ZGl2MQ8wDQYDVQQKEwZPcmFjbGUxDjAMBgNV
-BAsTBU15U1FMMSYwJAYDVQQDEx1NeVNRTCBDUkwgdGVzdCBDQSBjZXJ0aWZpY2F0
-ZTAeFw0xMjA1MTcxNTA5NTZaFw0yMjA1MTUxNTA5NTZaMGwxCzAJBgNVBAYTAkJH
-MRAwDgYDVQQIEwdQbG92ZGl2MQ8wDQYDVQQKEwZPcmFjbGUxDjAMBgNVBAsTBU15
-U1FMMSowKAYDVQQDEyFNeVNRTCBDUkwgdGVzdCBzZXJ2ZXIgY2VydGlmaWNhdGUw
-gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAK8LMfn2IDtsP5qE0IW01O356ik3
-RHcrNyXan7j5swKdYvzl/NjBVn1PfvprT/UrmLLi/nx+uFe7A6UrA4b11MRmbUGn
-+ioJAnqOx81EFUZk/HeZHlMG78XWtBk623smFmAK+GKuQCIbG8IgLrC/GDeWXKgW
-NYEf9ks6FPtMWI43AgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8W
-HU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBThPStboZb8
-gBknuvaIlFjj6/aFEDAfBgNVHSMEGDAWgBSFq+anV4h9jb7rZFNzlGTNS40pEjAN
-BgkqhkiG9w0BAQUFAAOBgQBnBOQ5LoBxqGOtfuhhhsejk54NCoL9ISmaaEb6lbCN
-I354aA+pGToFod+1eJV88X+MKkAjwCvIpbAaDorEQqz8453yu+l/dbWULmTrrDNT
-zY/oTReA963dA1c+6WV208EUE2IjS7/hOA7a0HSOUpudnsy65aGU0fJ2+cXHq2AB
-yA==
+MIIDdTCCAl0CAQEwDQYJKoZIhvcNAQELBQAwfjELMAkGA1UEBhMCSU4xEjAQBgNV
+BAgMCUthcm5hdGFrYTESMBAGA1UEBwwJQmVuZ2FsdXJ1MQ8wDQYDVQQKDAZPcmFj
+bGUxDjAMBgNVBAsMBU15U1FMMSYwJAYDVQQDDB1NeVNRTCBDUkwgdGVzdCBjYSBj
+ZXJ0aWZpY2F0ZTAeFw0yMDA3MDEwNzUwNDFaFw0zMDA1MTAwNzUwNDFaMIGCMQsw
+CQYDVQQGEwJJTjESMBAGA1UECAwJS2FybmF0YWthMRIwEAYDVQQHDAlCZW5nYWx1
+cnUxDzANBgNVBAoMBk9yYWNsZTEOMAwGA1UECwwFTXlTUUwxKjAoBgNVBAMMIU15
+U1FMIENSTCB0ZXN0IHNlcnZlciBjZXJ0aWZpY2F0ZTCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBAPZD1Ts3hp9Up5YjxpBzost5vHcaGNyuMDZcQeWn0LyT
+CH57LJoAv50Pq4JW5q3xOmriSV0CWQ4DEGOxg/lzGUDsiqAeF8lTdMrKKy96h5jc
+EubI2W47vNPF8/T6FOJaEvI6eYK3qW8h9sd5oMdWBagBZOjwZ4EpryHcCAKOuM84
+8e+m6hgUQ2Mh6KP+eHi58gRqyDJIZk5uTyIoiUInQuX0djh3gIgtc8g2qyRAaPw0
+g7ocB5njPWlJCM1PdINOM1rEh2V/hNxzgJNVIVpNhpewipPRvGPFGbCKd4WvyXTP
+3UsXjM9isLwaOz+0GGvnrU5Wyym+MU/uO4mX1vq9WysCAwEAATANBgkqhkiG9w0B
+AQsFAAOCAQEAUb0fLWTLjNMC8v9+ZTr6eExLZVyKdUkk3xQXa4SiauG41oR0Inzj
+vD59gccq39a8e75EpyZjHQnB6iWFSxSzL/ilKPRyNvxx0MmNsrPWiCpOmPIi+svI
+TXvAO4Hx3fkpvfRppIKHxjtPL3U9/KNvsBCAtMVRm7hencwhOLzpVBF22N9GiPUC
+s2oC4ozN2PdO//1f47nbUstUOSma5geE6jg/PUyHzmxfyBhWilSOatPydzSmbfNa
+UYoNI71+AQevDv2Xc2QnJsw02B/zWIt/S3XfOf+S3OME6kJ8EX93qzIpx1l+XYQt
+zR0sYdS+XZsOMCsxfk/mB+cgEBhWNpcZsw==
 -----END CERTIFICATE-----
diff --git a/mysql-wsrep-5.6/mysql-test/std_data/crl-server-key.pem b/mysql-wsrep-5.6/mysql-test/std_data/crl-server-key.pem
index 56ddd4b5..dfc34c9e 100644
--- a/mysql-wsrep-5.6/mysql-test/std_data/crl-server-key.pem
+++ b/mysql-wsrep-5.6/mysql-test/std_data/crl-server-key.pem
@@ -1,15 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQCvCzH59iA7bD+ahNCFtNTt+eopN0R3Kzcl2p+4+bMCnWL85fzY
-wVZ9T376a0/1K5iy4v58frhXuwOlKwOG9dTEZm1Bp/oqCQJ6jsfNRBVGZPx3mR5T
-Bu/F1rQZOtt7JhZgCvhirkAiGxvCIC6wvxg3llyoFjWBH/ZLOhT7TFiONwIDAQAB
-AoGAeS6b87vURq9DPTszjU1KmFILLWuIp6OwczFuoEWmC2pgTEsAiCMZOHmfo8hF
-O6tp9HY3zoKAJqRe+qrTr0xjdkprgdOW8N34nbzQXJh4pqQJqVzsTOAtuxbzWiXs
-Ge7LOQT6HtOaxH71cIs2bgFM4ToUeXMsdxurlfZ0SReNGekCQQDmzqqt6KeBZwir
-W8CfQw3aek/KX7NP/pQQK4thFcJDKl7y9zID7fE0sf76Ga6sGol4GafP1juPHbj8
-MNh7IYcjAkEAwiZa5ucPS8ucG5jRvQluSsJblwikQnl9cniLz+4/HQU/0aHYr3U5
-U14f+S4jU4Gm+DSjZGVL0/x8rShFKz5X3QJBANzKlMHajuqeCtAJ7KEtvwHiAZRB
-qkH68d7qGOIds4EW9k+Moz7ZDuXu5FCR4uNmW10Vhc+vS7hjoYM2otBfSWsCQQCQ
-kT7e8O7S4ao8Ym7K9FrMEC1jKWwmk5B1zI1PJ3iXg3EiCAHxpLgq+8uTIGftpn1O
-FOQVvdfY4gl0ZqgaqzGBAkAghAjdEB6uOrKOkyDfgRvfz46EDdI3iJFtkVpywqdb
-cllH1bDiH5cpkGwX+yWbbnZaNjOZoSIGrAW7lJNDp22Q
+MIIEowIBAAKCAQEA9kPVOzeGn1SnliPGkHOiy3m8dxoY3K4wNlxB5afQvJMIfnss
+mgC/nQ+rglbmrfE6auJJXQJZDgMQY7GD+XMZQOyKoB4XyVN0ysorL3qHmNwS5sjZ
+bju808Xz9PoU4loS8jp5grepbyH2x3mgx1YFqAFk6PBngSmvIdwIAo64zzjx76bq
+GBRDYyHoo/54eLnyBGrIMkhmTm5PIiiJQidC5fR2OHeAiC1zyDarJEBo/DSDuhwH
+meM9aUkIzU90g04zWsSHZX+E3HOAk1UhWk2Gl7CKk9G8Y8UZsIp3ha/JdM/dSxeM
+z2KwvBo7P7QYa+etTlbLKb4xT+47iZfW+r1bKwIDAQABAoIBAHF3R6QFLW30H1M6
+IJ8l6HhAGun1iEcFqwkg8OvTqoV4aY19S0uZ1K+VLLzdNWQnpXbh1FOaZVXja4XD
+oL8qnRQg6K5lryf/3+wfwk4Z8qgnnj3fhO8ZbyNULddN8ploTxp0ftAPt22RBJdc
+Hww5Qlnqaog5XDdS8XJ0YuxqvhQbjVk/U6e7IltruByFv9bzYiT+QsZf/KJ/mDlk
+ypR/Ic9RM5eqX/86lDxrBacilE/8nBCFUbr7RlnXJhgEKf0DCYJTN2BS+4iwydaA
+TP6a/gZK64Q0JR9BGmYjAtPdl4as3pHlgi7LwIQeF97KwW9mZdAC1L/9FCu9W1Bk
+sOGBAiECgYEA/etLZdqrX5OqymN49PyEb8sQzTWojavLKrZiU6uKlPJH3qjWlu9J
+dlwW4azsgrYL2ISlAbgCo/QZ9H08CrHdumh9EQtYcZtszjjwicag5NtK1NboeZjR
+R0aJBVkNu2xkREEPd2XLNkm+U/FZ5HueGnphkGP/hWLTI+7M/abPAh0CgYEA+Eh7
+A1C3PgcqLSMjXq9axLjJ23o10AAp/H+aogb7LAyKNvkT16Tw+5DSsB2hDbETKxSg
+aQD/9N/bjiGHnK0CaEi/ft4vYoIzrRpQwgst90jRZfwgJyA4wCRfcPaKSa5y8jQm
+OwSetRTO5gKJirNZbxkzSBwaRBTWZRy1Vouhz+cCgYEA1FO3Prq15zxB6u93K9Uk
+oZ76s76U7bKkN1k/q5ucTKS0eHpSxu/dTD4BXEEPnNXB3hI9MMzAWH08XveCB6do
+NAI/4srL8GP5fhCbA3q2++hsEMKMr3GcPq+60GABXaJrza9h0YOrg//ySZtegfLk
+6FtBzk3wU4ep6zg67jhYjfkCgYAgb8eybS8jaWg3MWoDisE/Bi1JATRakkrp8/nN
+xT+3R4QfHndbKu9YzljYLWbHFSU98ZnrXfgSk9RpQzQmYev4l9h8yKZEJmJ98Pwv
+/anprpe8zS2eLvV7FMVrSqpSafoWbn24JChf2/IT1q0Fc9zxSMeMWi+MSXShDRkb
+z246bQKBgC4sdYIG51PQaP/1vqPZg7CoCsNCepqM8UAnQ7piEdGis+w8pIcmYRnG
+Q/OuCdSxVlgS0xDtuFlTMrivUfpsPrgEtQNwkkvWATytYZWL2CpvDKKV2GzgHai/
+ZgiuN7FSqdLq/hRCuJT5Sxo84ilFXb0i0cpaPKfNfE9gLZ8pUbsm
 -----END RSA PRIVATE KEY-----
diff --git a/mysql-wsrep-5.6/mysql-test/std_data/crldir/5df06fcb.r0 b/mysql-wsrep-5.6/mysql-test/std_data/crldir/5df06fcb.r0
new file mode 100644
index 00000000..1ee040e4
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/std_data/crldir/5df06fcb.r0
@@ -0,0 +1,13 @@
+-----BEGIN X509 CRL-----
+MIIB7jCB1wIBATANBgkqhkiG9w0BAQsFADB+MQswCQYDVQQGEwJJTjESMBAGA1UE
+CAwJS2FybmF0YWthMRIwEAYDVQQHDAlCZW5nYWx1cnUxDzANBgNVBAoMBk9yYWNs
+ZTEOMAwGA1UECwwFTXlTUUwxJjAkBgNVBAMMHU15U1FMIENSTCB0ZXN0IGNhIGNl
+cnRpZmljYXRlFw0yMDA3MDEwNzU0MjlaFw0zMDA1MTAwNzU0MjlaMBQwEgIBAxcN
+MjAwNzAxMDc1NDE4WqAPMA0wCwYDVR0UBAQCAhAAMA0GCSqGSIb3DQEBCwUAA4IB
+AQCNdrbGhC31FPo0LwtkfCDAZQNgimudQg23UZOSdbUoXS9HDm2i38ehuZVJwoNe
+NkF3Y7Qli2DZ+CVObkWUP6OGo7XM8LXraE4e9tld4lCm5VAOoG/oS2afHw1e4WPp
+yZZ9mLZWXs4/0kK00xhzys56QnEpex+/B4jP0o4dMZwAkqJdvHgPe/EC/u3XsdyN
+JZrVAcHYrP2iQZa9m3LLlfWFqYizdDDJgl2LyNaKXJLo5wnxE3P6BVYc4t2etUlx
+gmfm41dTyPffZkR61vhPRF9+MOt72RXb4tCFRZp71ML4RA9fjNA1RaHGguhDSXMJ
+O7qaJAAfPHo4vea1uEXjM9PJ
+-----END X509 CRL-----
diff --git a/mysql-wsrep-5.6/mysql-test/std_data/crldir/ab8a3803.r0 b/mysql-wsrep-5.6/mysql-test/std_data/crldir/ab8a3803.r0
deleted file mode 100644
index 4c0a2132..00000000
--- a/mysql-wsrep-5.6/mysql-test/std_data/crldir/ab8a3803.r0
+++ /dev/null
@@ -1,10 +0,0 @@
------BEGIN X509 CRL-----
-MIIBXjCByAIBATANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJCRzEQMA4GA1UE
-CBMHUGxvdmRpdjEPMA0GA1UEChMGT3JhY2xlMQ4wDAYDVQQLEwVNeVNRTDEmMCQG
-A1UEAxMdTXlTUUwgQ1JMIHRlc3QgQ0EgY2VydGlmaWNhdGUXDTEyMDUyMTE0NDEx
-NFoXDTIyMDUxOTE0NDExNFowHDAaAgkA+eLzmA4rBX8XDTEyMDUxNzE1Mjc1OVqg
-DjAMMAoGA1UdFAQDAgECMA0GCSqGSIb3DQEBBQUAA4GBAIEYWLAI+mGt21DVlg/t
-mGaQ629aabNhZL3An5+2z+tqzQbOv6bKMW5H8gNNeNrRqQR/XEJvhlg0BrxfIicM
-GbvVoud0HmECIoxNVmeI8UCNPkkeQONT+8ZW029iuJF2KgGI0m1ZJa3bjRaArian
-ag9dgLE4zLppD4aMal0ysHPZ
------END X509 CRL-----
diff --git a/mysql-wsrep-5.6/mysql-test/std_data/latin1.xml b/mysql-wsrep-5.6/mysql-test/std_data/latin1.xml
index 5884416c..c80ae28e 100644
--- a/mysql-wsrep-5.6/mysql-test/std_data/latin1.xml
+++ b/mysql-wsrep-5.6/mysql-test/std_data/latin1.xml
@@ -7,13 +7,20 @@
   Use is subject to license terms.
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
+
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/std_data/wsrep_notify.sh b/mysql-wsrep-5.6/mysql-test/std_data/wsrep_notify.sh
index 7036f603..a208cc6b 100755
--- a/mysql-wsrep-5.6/mysql-test/std_data/wsrep_notify.sh
+++ b/mysql-wsrep-5.6/mysql-test/std_data/wsrep_notify.sh
@@ -19,7 +19,7 @@ SET wsrep_on=0;
 CREATE SCHEMA IF NOT EXISTS $SCHEMA;
 CREATE TABLE IF NOT EXISTS $MEMB_TABLE (
     idx  INT,
-    uuid CHAR(40), /* node UUID */
+    uuid CHAR(40),        /* node UUID */
     name VARCHAR(32),     /* node name */
     addr VARCHAR(256)     /* node address */
 ) ENGINE=MEMORY;
@@ -31,7 +31,10 @@ CREATE TABLE IF NOT EXISTS $STATUS_TABLE (
     prim   BOOLEAN   /* if component is primary */
 ) ENGINE=MEMORY;
 BEGIN;
+DELETE FROM $MEMB_TABLE;
+DELETE FROM $STATUS_TABLE;
 "
+
 END="COMMIT;"
 
 configuration_change()
diff --git a/mysql-wsrep-5.6/mysql-test/suite/auth_sec/include/not_sha256_rsa_auth.inc b/mysql-wsrep-5.6/mysql-test/suite/auth_sec/include/not_sha256_rsa_auth.inc
deleted file mode 100644
index dfd9634b..00000000
--- a/mysql-wsrep-5.6/mysql-test/suite/auth_sec/include/not_sha256_rsa_auth.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-# Only run this test if YaSSL is supported
-let $shavars= query_get_value("SELECT COUNT(*) as shavars FROM information_schema.session_variables WHERE variable_name = 'sha256_password_private_key_path'", shavars, 1);
-if ($shavars != 0){
-  skip Need YaSSL support;
-}
diff --git a/mysql-wsrep-5.6/mysql-test/suite/auth_sec/r/server_withoutssl_client_withoutssl.result b/mysql-wsrep-5.6/mysql-test/suite/auth_sec/r/server_withoutssl_client_withoutssl.result
deleted file mode 100644
index b4f51cbe..00000000
--- a/mysql-wsrep-5.6/mysql-test/suite/auth_sec/r/server_withoutssl_client_withoutssl.result
+++ /dev/null
@@ -1,400 +0,0 @@
-
-
-======================================================================================
-Checking the user access with SSL through user created with mysql_old_password plugin
-======================================================================================
-
-Creating a user with the mysql_old_plugin
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'mysql_old_password';
-set @@session.old_passwords=1;
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-Warnings:
-Warning	1287	'pre-4.1 password hash' is deprecated and will be removed in a future release. Please use post-4.1 password hash instead
-The client should not connect with secure auth enabled.
-select @@global.secure_auth;
-@@global.secure_auth
-1
-1 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-The client should connect with secure auth disabled.
-set @@global.secure_auth=0;
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-0
-@@session.old_passwords
-1
-0 for GLOBAL Expected
-1 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-0
-@@session.old_passwords
-1
-0 for GLOBAL Expected
-1 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-0
-@@session.old_passwords
-1
-0 for GLOBAL Expected
-1 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-0
-@@session.old_passwords
-1
-0 for GLOBAL Expected
-1 for SESSION Expected
-The mysql_old_password plugin client should not connect with secure auth enabled at the client side.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-DROP USER 'Tanjotuser1'@'localhost';
-
-
-======================================================================================
-Checking the user access with SSL through user created with mysql_native_password plugin
-======================================================================================
-
-Creating a user with the mysql_old_plugin
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'mysql_native_password';
-set @@session.old_passwords=0;
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-The client should connect with secure auth enabled.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-0
-@@session.old_passwords
-0
-0 for GLOBAL Expected
-0 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-0
-@@session.old_passwords
-0
-0 for GLOBAL Expected
-0 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-0
-@@session.old_passwords
-0
-0 for GLOBAL Expected
-0 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-0
-@@session.old_passwords
-0
-0 for GLOBAL Expected
-0 for SESSION Expected
-The client should connect with secure auth disabled.
-set @@global.secure_auth=0;
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-0
-@@session.old_passwords
-0
-0 for GLOBAL Expected
-0 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-0
-@@session.old_passwords
-0
-0 for GLOBAL Expected
-0 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-0
-@@session.old_passwords
-0
-0 for GLOBAL Expected
-0 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-0
-@@session.old_passwords
-0
-0 for GLOBAL Expected
-0 for SESSION Expected
-The mysql_native_password plugin client should  connect with secure auth enabled at the client side.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-0
-@@session.old_passwords
-0
-0 for GLOBAL Expected
-0 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-0
-@@session.old_passwords
-0
-0 for GLOBAL Expected
-0 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-0
-@@session.old_passwords
-0
-0 for GLOBAL Expected
-0 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-0
-@@session.old_passwords
-0
-0 for GLOBAL Expected
-0 for SESSION Expected
-DROP USER 'Tanjotuser1'@'localhost';
-
-
-======================================================================================
-Checking the user access with SSL through user created with sha256_password plugin
-======================================================================================
-
-Creating a user with the mysql_old_plugin
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'sha256_password';
-set @@session.old_passwords=2;
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-The client should connect with secure auth enabled.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-The client should connect with secure auth disabled.
-set @@global.secure_auth=0;
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-The mysql_native_password plugin client should  connect with secure auth enabled at the client side.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-DROP USER 'Tanjotuser1'@'localhost';
-
-
-=================================================================================================
-Starting the server with the default authentication sha256_password
-=================================================================================================
-
-# Restart server with default-authentication-plugin=sha256_password;
-
-
-======================================================================================
-Checking the user access with SSL through user created with mysql_old_password plugin
-======================================================================================
-
-Creating a user with the mysql_old_plugin
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'mysql_old_password';
-set @@session.old_passwords=1;
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-Warnings:
-Warning	1287	'pre-4.1 password hash' is deprecated and will be removed in a future release. Please use post-4.1 password hash instead
-The client should not connect with secure auth enabled.
-select @@global.secure_auth;
-@@global.secure_auth
-1
-1 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-The client should connect with secure auth disabled.
-set @@global.secure_auth=0;
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-2
-@@session.old_passwords
-1
-2 for GLOBAL Expected
-1 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-2
-@@session.old_passwords
-1
-2 for GLOBAL Expected
-1 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-2
-@@session.old_passwords
-1
-2 for GLOBAL Expected
-1 for SESSION Expected
-**** connecting client using the ssl credentials
-2 for GLOBAL Expected
-1 for SESSION Expected
-The mysql_old_password plugin client should not connect with secure auth enabled at the client side.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-DROP USER 'Tanjotuser1'@'localhost';
-
-
-======================================================================================
-Checking the user access with SSL through user created with mysql_native_password plugin
-======================================================================================
-
-Creating a user with the mysql_old_plugin
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'mysql_native_password';
-set @@session.old_passwords=0;
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-The client should connect with secure auth enabled.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-2
-@@session.old_passwords
-0
-2 for GLOBAL Expected
-0 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-2
-@@session.old_passwords
-0
-2 for GLOBAL Expected
-0 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-2
-@@session.old_passwords
-0
-2 for GLOBAL Expected
-0 for SESSION Expected
-**** connecting client using the ssl credentials
-2 for GLOBAL Expected
-0 for SESSION Expected
-The client should connect with secure auth disabled.
-set @@global.secure_auth=0;
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-2
-@@session.old_passwords
-0
-2 for GLOBAL Expected
-0 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-2
-@@session.old_passwords
-0
-2 for GLOBAL Expected
-0 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-2
-@@session.old_passwords
-0
-2 for GLOBAL Expected
-0 for SESSION Expected
-**** connecting client using the ssl credentials
-2 for GLOBAL Expected
-0 for SESSION Expected
-The mysql_native_password plugin client should  connect with secure auth enabled at the client side.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-2
-@@session.old_passwords
-0
-2 for GLOBAL Expected
-0 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-2
-@@session.old_passwords
-0
-2 for GLOBAL Expected
-0 for SESSION Expected
-**** connecting client using the ssl credentials
-@@Global.old_passwords
-2
-@@session.old_passwords
-0
-2 for GLOBAL Expected
-0 for SESSION Expected
-**** connecting client using the ssl credentials
-2 for GLOBAL Expected
-0 for SESSION Expected
-DROP USER 'Tanjotuser1'@'localhost';
-
-
-======================================================================================
-Checking the user access with SSL through user created with sha256_password plugin
-======================================================================================
-
-Creating a user with the sha256_plugin
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'sha256_password';
-set @@session.old_passwords=2;
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-GRANT ALL on *.* to 'Tanjotuser1'@'localhost';
-The client should connect with secure auth enabled.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-The client should connect with secure auth disabled.
-set @@global.secure_auth=0;
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-The mysql_native_password plugin client should  connect with secure auth enabled at the client side.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-DROP USER 'Tanjotuser1'@'localhost';
-set @@global.secure_auth=default;
-set @@session.old_passwords=default;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/auth_sec/r/server_withoutssl_client_withssl.result b/mysql-wsrep-5.6/mysql-test/suite/auth_sec/r/server_withoutssl_client_withssl.result
deleted file mode 100644
index 7c1fee6b..00000000
--- a/mysql-wsrep-5.6/mysql-test/suite/auth_sec/r/server_withoutssl_client_withssl.result
+++ /dev/null
@@ -1,226 +0,0 @@
-
-
-======================================================================================
-Checking the user access with SSL through user created with mysql_old_password plugin
-======================================================================================
-
-Creating a user with the mysql_old_plugin
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'mysql_old_password';
-set @@session.old_passwords=1;
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-Warnings:
-Warning	1287	'pre-4.1 password hash' is deprecated and will be removed in a future release. Please use post-4.1 password hash instead
-GRANT ALL on *.* to 'Tanjotuser1'@'localhost';
-The client should not connect with secure auth enabled.
-select @@global.secure_auth;
-@@global.secure_auth
-1
-1 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-The client should connect with secure auth disabled.
-set @@global.secure_auth=0;
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-The mysql_old_password plugin client should not connect with secure auth enabled at the client side.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-DROP USER 'Tanjotuser1'@'localhost';
-
-
-======================================================================================
-Checking the user access with SSL through user created with mysql_native_password plugin
-======================================================================================
-
-Creating a user with the mysql_old_plugin
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'mysql_native_password';
-set @@session.old_passwords=0;
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-GRANT ALL on *.* to 'Tanjotuser1'@'localhost';
-The client should connect with secure auth enabled.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-The client should connect with secure auth disabled.
-set @@global.secure_auth=0;
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-The mysql_native_password plugin client should  connect with secure auth enabled at the client side.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-DROP USER 'Tanjotuser1'@'localhost';
-
-
-======================================================================================
-Checking the user access with SSL through user created with sha256_password plugin
-======================================================================================
-
-Creating a user with the mysql_old_plugin
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'sha256_password';
-set @@session.old_passwords=2;
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-GRANT ALL on *.* to 'Tanjotuser1'@'localhost';
-The client should connect with secure auth enabled.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-The client should connect with secure auth disabled.
-set @@global.secure_auth=0;
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-The mysql_native_password plugin client should  connect with secure auth enabled at the client side.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-DROP USER 'Tanjotuser1'@'localhost';
-
-
-=================================================================================================
-Starting the server with the default authentication sha256_password
-=================================================================================================
-
-# Restart server with default-authentication-plugin=sha256_password;
-
-
-======================================================================================
-Checking the user access with SSL through user created with mysql_old_password plugin
-======================================================================================
-
-Creating a user with the mysql_old_plugin
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'mysql_old_password';
-set @@session.old_passwords=1;
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-Warnings:
-Warning	1287	'pre-4.1 password hash' is deprecated and will be removed in a future release. Please use post-4.1 password hash instead
-GRANT ALL on *.* to 'Tanjotuser1'@'localhost';
-The client should not connect with secure auth enabled.
-select @@global.secure_auth;
-@@global.secure_auth
-1
-1 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-The client should connect with secure auth disabled.
-set @@global.secure_auth=0;
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-The mysql_old_password plugin client should not connect with secure auth enabled at the client side.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-DROP USER 'Tanjotuser1'@'localhost';
-
-
-======================================================================================
-Checking the user access with SSL through user created with mysql_native_password plugin
-======================================================================================
-
-Creating a user with the mysql_old_plugin
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'mysql_native_password';
-set @@session.old_passwords=0;
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-GRANT ALL on *.* to 'Tanjotuser1'@'localhost';
-The client should connect with secure auth enabled.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-The client should connect with secure auth disabled.
-set @@global.secure_auth=0;
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-The mysql_native_password plugin client should  connect with secure auth enabled at the client side.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-DROP USER 'Tanjotuser1'@'localhost';
-
-
-======================================================================================
-Checking the user access with SSL through user created with sha256_password plugin
-======================================================================================
-
-Creating a user with the sha256_plugin
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'sha256_password';
-set @@session.old_passwords=2;
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-GRANT ALL on *.* to 'Tanjotuser1'@'localhost';
-The client should connect with secure auth enabled.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-The client should connect with secure auth disabled.
-set @@global.secure_auth=0;
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-The mysql_native_password plugin client should  connect with secure auth enabled at the client side.
-select @@global.secure_auth;
-@@global.secure_auth
-0
-0 Expected
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-**** connecting client using the ssl credentials
-DROP USER 'Tanjotuser1'@'localhost';
-set @@global.secure_auth=default;
-set @@session.old_passwords=default;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/auth_sec/t/cert_verify.test b/mysql-wsrep-5.6/mysql-test/suite/auth_sec/t/cert_verify.test
index 1515fc62..2cff515a 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/auth_sec/t/cert_verify.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/auth_sec/t/cert_verify.test
@@ -9,8 +9,6 @@
 let $ssl_verify_fail_path = --ssl --ssl-ca=$MYSQL_TEST_DIR/std_data/ca-cert-verify.pem --ssl-key=$MYSQL_TEST_DIR/std_data/server-key-verify-fail.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/server-cert-verify-fail.pem;
 let $ssl_verify_pass_path = --ssl --ssl-ca=$MYSQL_TEST_DIR/std_data/ca-cert-verify.pem --ssl-key=$MYSQL_TEST_DIR/std_data/server-key-verify-pass.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/server-cert-verify-pass.pem;
 
-let $tls_default= TLSv1;
-
 --echo #T1: Host name (/CN=localhost/) as OU name in the server certificate, server certificate verification should fail.
 --exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
 --shutdown_server
@@ -32,7 +30,7 @@ let $tls_default= TLSv1;
 --enable_reconnect
 --source include/wait_until_connected_again.inc
 
---replace_result $tls_default TLS_VERSION
+--replace_result TLSv1 TLS_VERSION TLSv1.1 TLS_VERSION TLSv1.2 TLS_VERSION
 --exec $MYSQL --protocol=tcp --ssl-ca=$MYSQL_TEST_DIR/std_data/ca-cert-verify.pem --ssl-verify-server-cert -e "SHOW STATUS like 'Ssl_version'"
 
 --echo # restart server using restart
diff --git a/mysql-wsrep-5.6/mysql-test/suite/auth_sec/t/server_withoutssl_client_withoutssl.test b/mysql-wsrep-5.6/mysql-test/suite/auth_sec/t/server_withoutssl_client_withoutssl.test
deleted file mode 100644
index 0102109b..00000000
--- a/mysql-wsrep-5.6/mysql-test/suite/auth_sec/t/server_withoutssl_client_withoutssl.test
+++ /dev/null
@@ -1,722 +0,0 @@
-###############################################################################
-#                                                                             #
-# Authorization and authentication of the key-value pair shared between       #
-# the server and the client when server is started without SSL and client     #
-# is connected without SSL                                                    #
-#                                                                             #
-#                                                                             #
-# Creation Date: 2012-12-26                                                   #
-# Author : Tanjot Singh Uppal                                                 #
-#                                                                             #
-#                                                                             #
-# Description:Test Cases of validates the authentication of the handshake     #
-# information when server started without SSL and client started without SSL  #
-#                                                                             #
-###############################################################################
-
---source include/not_embedded.inc
-#--source include/not_ssl.inc
-#--source include/not_openssl.inc
---source include/not_sha256_rsa_auth.inc
-
-# This test will intentionally generate errors in the server error log
-# when a broken password is inserted into the mysql.user table.
-# The below suppression is to clear those errors.
-
---disable_query_log
-call mtr.add_suppression(".*Password salt for user.*");
---enable_query_log
-
---disable_query_log
-call mtr.add_suppression(".*SSL.*");
---enable_query_log
-
-
-# The default authentication plugin at the server side is mysql_native_password
-
---echo
---echo 
---echo ======================================================================================
---echo Checking the user access with SSL through user created with mysql_old_password plugin
---echo ======================================================================================
---echo 
-
-# Creating a user at localhost with mysql_old_password plugin
-
---echo Creating a user with the mysql_old_plugin
-
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'mysql_old_password';
-
-set @@session.old_passwords=1;
-
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-
-
-# Trying connecting the client with the mysql_old_password user with out the SSL credentials with secure auth enabled.
-
---echo The client should not connect with secure auth enabled.
-
-select @@global.secure_auth;
---echo 1 Expected
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=mysql_old_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=mysql_native_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=sha256_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
-
-# Trying connecting the client with the mysql_old_password user with out the SSL credentials with secure auth disabled.
-
---echo The client should connect with secure auth disabled.
-
---disable_warnings
-set @@global.secure_auth=0;
---enable_warnings
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 0 for GLOBAL Expected
---echo 1 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=mysql_old_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 0 for GLOBAL Expected
---echo 1 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=mysql_native_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 0 for GLOBAL Expected
---echo 1 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=sha256_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 0 for GLOBAL Expected
---echo 1 for SESSION Expected
-
-
-
-# Trying connecting the client with the mysql_old_password user with out the SSL credentials with secure auth disabled at the server side but enabled at the client side.
-
---echo The mysql_old_password plugin client should not connect with secure auth enabled at the client side.
-
-select @@global.secure_auth;
---echo 0 Expected
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_old_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_native_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=sha256_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
-# Dropping the created users
-
-DROP USER 'Tanjotuser1'@'localhost';
-
-
---echo
---echo 
---echo ======================================================================================
---echo Checking the user access with SSL through user created with mysql_native_password plugin
---echo ======================================================================================
---echo 
-
-# Creating a user at localhost with mysql_native_password plugin
-
---echo Creating a user with the mysql_old_plugin
-
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'mysql_native_password';
-
-set @@session.old_passwords=0;
-
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-
-
-# Trying connecting the client with the mysql_native_password user with out the SSL credentials with secure auth enabled.
-
---echo The client should connect with secure auth enabled.
-
-select @@global.secure_auth;
---echo 0 Expected
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 0 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_old_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 0 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_native_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 0 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=sha256_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 0 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
-
-# Trying connecting the client with the mysql_native_password user with out the SSL credentials with secure auth disabled.
-
---echo The client should connect with secure auth disabled.
-
---disable_warnings
-set @@global.secure_auth=0;
---enable_warnings
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 0 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_old_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 0 for GLOBAL Expected
---echo 0 for SESSION Expected
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_native_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 0 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=sha256_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 0 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
-# Trying connecting the client with the mysql_native_password user with out the SSL credentials with secure auth disabled at the server side but enabled at the client side.
-
---echo The mysql_native_password plugin client should  connect with secure auth enabled at the client side.
-
-select @@global.secure_auth;
---echo 0 Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 0 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_old_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 0 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_native_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 0 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=sha256_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 0 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
-# Dropping the created users
-
-DROP USER 'Tanjotuser1'@'localhost';
-
-
-
---echo
---echo 
---echo ======================================================================================
---echo Checking the user access with SSL through user created with sha256_password plugin
---echo ======================================================================================
---echo 
-
-# Creating a user at localhost with sha256_password plugin
-
---echo Creating a user with the mysql_old_plugin
-
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'sha256_password';
-
-set @@session.old_passwords=2;
-
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-
-
-# Trying connecting the client with the sha256_password user with out the SSL credentials with secure auth enabled.
-
---echo The client should connect with secure auth enabled.
-
-select @@global.secure_auth;
---echo 0 Expected
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_old_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_native_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=sha256_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
-# Trying connecting the client with the sha256_password user with out the SSL credentials with secure auth disabled.
-
---echo The client should connect with secure auth disabled.
-
---disable_warnings
-set @@global.secure_auth=0;
---enable_warnings
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_old_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_native_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=sha256_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
-# Trying connecting the client with the mysql_native_password user with out the SSL credentials with secure auth disabled at the server side but enabled at the client side.
-
---echo The mysql_native_password plugin client should  connect with secure auth enabled at the client side.
-
-select @@global.secure_auth;
---echo 0 Expected
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_old_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_native_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=sha256_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
-# Dropping the created users
-
-DROP USER 'Tanjotuser1'@'localhost';
-
-
-
---echo
---echo 
---echo =================================================================================================
---echo Starting the server with the default authentication sha256_password
---echo =================================================================================================
---echo 
-
---echo # Restart server with default-authentication-plugin=sha256_password;
-
-let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect;
---exec echo "wait" > $restart_file
---shutdown_server 10
---source include/wait_until_disconnected.inc
--- exec echo "restart:--default-authentication-plugin=sha256_password  " > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--- enable_reconnect
--- source include/wait_until_connected_again.inc
-
-
-
---echo
---echo 
---echo ======================================================================================
---echo Checking the user access with SSL through user created with mysql_old_password plugin
---echo ======================================================================================
---echo 
-
-# Creating a user at localhost with mysql_old_password plugin
-
---echo Creating a user with the mysql_old_plugin
-
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'mysql_old_password';
-
-set @@session.old_passwords=1;
-
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-
-
-# Trying connecting the client with the mysql_old_password user with out the SSL credentials with secure auth enabled.
-
---echo The client should not connect with secure auth enabled.
-
-select @@global.secure_auth;
---echo 1 Expected
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=mysql_old_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=mysql_native_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=sha256_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
-
-# Trying connecting the client with the mysql_old_password user with out the SSL credentials with secure auth disabled.
-
---echo The client should connect with secure auth disabled.
-
---disable_warnings
-set @@global.secure_auth=0;
---enable_warnings
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 2 for GLOBAL Expected
---echo 1 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=mysql_old_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 2 for GLOBAL Expected
---echo 1 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=mysql_native_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 2 for GLOBAL Expected
---echo 1 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=sha256_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 2 for GLOBAL Expected
---echo 1 for SESSION Expected
-
-
-
-# Trying connecting the client with the mysql_old_password user with out the SSL credentials with secure auth disabled at the server side but enabled at the client side.
-
---echo The mysql_old_password plugin client should not connect with secure auth enabled at the client side.
-
-select @@global.secure_auth;
---echo 0 Expected
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_old_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_native_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=sha256_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
-# Dropping the created users
-
-DROP USER 'Tanjotuser1'@'localhost';
-
-
---echo
---echo 
---echo ======================================================================================
---echo Checking the user access with SSL through user created with mysql_native_password plugin
---echo ======================================================================================
---echo 
-
-# Creating a user at localhost with mysql_native_password plugin
-
---echo Creating a user with the mysql_old_plugin
-
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'mysql_native_password';
-
-set @@session.old_passwords=0;
-
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-
-
-# Trying connecting the client with the mysql_native_password user with out the SSL credentials with secure auth enabled.
-
---echo The client should connect with secure auth enabled.
-
-select @@global.secure_auth;
---echo 0 Expected
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 2 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_old_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 2 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_native_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 2 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=sha256_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 2 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
-
-# Trying connecting the client with the mysql_native_password user with out the SSL credentials with secure auth disabled.
-
---echo The client should connect with secure auth disabled.
-
---disable_warnings
-set @@global.secure_auth=0;
---enable_warnings
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 2 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_old_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 2 for GLOBAL Expected
---echo 0 for SESSION Expected
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_native_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 2 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=sha256_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 2 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
-# Trying connecting the client with the mysql_native_password user without the SSL credentials with secure auth disabled at the server side but enabled at the client side.
-
---echo The mysql_native_password plugin client should  connect with secure auth enabled at the client side.
-
-select @@global.secure_auth;
---echo 0 Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 2 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_old_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 2 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_native_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 2 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=sha256_password -e "select @@Global.old_passwords;select @@session.old_passwords"
---echo 2 for GLOBAL Expected
---echo 0 for SESSION Expected
-
-
-# Dropping the created users
-
-DROP USER 'Tanjotuser1'@'localhost';
-
-
-
---echo
---echo 
---echo ======================================================================================
---echo Checking the user access with SSL through user created with sha256_password plugin
---echo ======================================================================================
---echo 
-
-# Creating a user at localhost with sha256_password plugin
-
---echo Creating a user with the sha256_plugin
-
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'sha256_password';
-
-set @@session.old_passwords=2;
-
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-
-GRANT ALL on *.* to 'Tanjotuser1'@'localhost';
-
-# Trying connecting the client with the sha256_password user without the SSL credentials with secure auth enabled.
-
---echo The client should connect with secure auth enabled.
-
-select @@global.secure_auth;
---echo 0 Expected
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_old_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_native_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=sha256_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
-# Trying connecting the client with the sha256_password user without the SSL credentials with secure auth disabled.
-
---echo The client should connect with secure auth disabled.
-
---disable_warnings
-set @@global.secure_auth=0;
---enable_warnings
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_old_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_native_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=sha256_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-# Trying connecting the client with the mysql_native_password user without the SSL credentials with secure auth disabled at the server side but enabled at the client side.
-
---echo The mysql_native_password plugin client should  connect with secure auth enabled at the client side.
-
-select @@global.secure_auth;
---echo 0 Expected
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_old_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_native_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=sha256_password -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-# Dropping the created users
-
-DROP USER 'Tanjotuser1'@'localhost';
-
-set @@global.secure_auth=default;
-set @@session.old_passwords=default;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/auth_sec/t/server_withoutssl_client_withssl.test b/mysql-wsrep-5.6/mysql-test/suite/auth_sec/t/server_withoutssl_client_withssl.test
deleted file mode 100644
index a2541d6e..00000000
--- a/mysql-wsrep-5.6/mysql-test/suite/auth_sec/t/server_withoutssl_client_withssl.test
+++ /dev/null
@@ -1,762 +0,0 @@
-###############################################################################
-#                                                                             #
-# Authorization and authentication of the key-value pair shared between       #
-# the server and the client when server is started without SSL and client     #
-# is connected with SSL                                                       #
-#                                                                             #
-#                                                                             #
-# Creation Date: 2012-12-20                                                   #
-# Author : Tanjot Singh Uppal                                                 #
-#                                                                             #
-#                                                                             #
-# Description:Test Cases of validates the authentication of the handshake     #
-# information when server started without SSL and client started with SSL     #
-#                                                                             #
-###############################################################################
-
---source include/not_embedded.inc
-#--source include/not_openssl.inc
-#--source include/not_ssl.inc
---source include/not_sha256_rsa_auth.inc
-#--source include/have_ssl_communication.inc
-
-# This test will intentionally generate errors in the server error log
-# when a broken password is inserted into the mysql.user table.
-# The below suppression is to clear those errors.
-
---disable_query_log
-call mtr.add_suppression(".*Password salt for user.*");
---enable_query_log
-
---disable_query_log
-call mtr.add_suppression(".*SSL.*");
---enable_query_log
-
-
-# The default authentication plugin at the server side is mysql_native_password
-
---echo
---echo 
---echo ======================================================================================
---echo Checking the user access with SSL through user created with mysql_old_password plugin
---echo ======================================================================================
---echo 
-
-# Creating a user at localhost with mysql_old_password plugin
-
---echo Creating a user with the mysql_old_plugin
-
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'mysql_old_password';
-
-set @@session.old_passwords=1;
-
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-
-GRANT ALL on *.* to 'Tanjotuser1'@'localhost';
-
-# Trying connecting the client with the mysql_old_password user with the SSL credentials with secure auth enabled.
-
---echo The client should not connect with secure auth enabled.
-
-select @@global.secure_auth;
---echo 1 Expected
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=mysql_old_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=mysql_native_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=sha256_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
-
-# Trying connecting the client with the mysql_old_password user with the SSL credentials with secure auth disabled.
-
---echo The client should connect with secure auth disabled.
-
---disable_warnings
-set @@global.secure_auth=0;
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=mysql_old_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=mysql_native_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=sha256_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
-
-
-# Trying connecting the client with the mysql_old_password user with the SSL credentials with secure auth disabled at the server side but enabled at the client side.
-
---echo The mysql_old_password plugin client should not connect with secure auth enabled at the client side.
-
-select @@global.secure_auth;
---echo 0 Expected
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_old_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_native_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=sha256_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
-# Dropping the created users
-
-DROP USER 'Tanjotuser1'@'localhost';
-
-
---echo
---echo 
---echo ======================================================================================
---echo Checking the user access with SSL through user created with mysql_native_password plugin
---echo ======================================================================================
---echo 
-
-# Creating a user at localhost with mysql_native_password plugin
-
---echo Creating a user with the mysql_old_plugin
-
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'mysql_native_password';
-
-set @@session.old_passwords=0;
-
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-
-GRANT ALL on *.* to 'Tanjotuser1'@'localhost';
-
-# Trying connecting the client with the mysql_native_password user with the SSL credentials with secure auth enabled.
-
---echo The client should connect with secure auth enabled.
-
-select @@global.secure_auth;
---echo 0 Expected
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_old_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_native_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=sha256_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
-
-# Trying connecting the client with the mysql_native_password user with the SSL credentials with secure auth disabled.
-
---echo The client should connect with secure auth disabled.
-
---disable_warnings
-set @@global.secure_auth=0;
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_old_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_native_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=sha256_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
-
-# Trying connecting the client with the mysql_native_password user with the SSL credentials with secure auth disabled at the server side but enabled at the client side.
-
---echo The mysql_native_password plugin client should  connect with secure auth enabled at the client side.
-
-select @@global.secure_auth;
---echo 0 Expected
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_old_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_native_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=sha256_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
-
-# Dropping the created users
-
-DROP USER 'Tanjotuser1'@'localhost';
-
-
-
---echo
---echo 
---echo ======================================================================================
---echo Checking the user access with SSL through user created with sha256_password plugin
---echo ======================================================================================
---echo 
-
-# Creating a user at localhost with sha256_password plugin
-
---echo Creating a user with the mysql_old_plugin
-
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'sha256_password';
-
-set @@session.old_passwords=2;
-
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-
-GRANT ALL on *.* to 'Tanjotuser1'@'localhost';
-
-# Trying connecting the client with the sha256_password user with the SSL credentials with secure auth enabled.
-
---echo The client should connect with secure auth enabled.
-
-select @@global.secure_auth;
---echo 0 Expected
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_old_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_native_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=sha256_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
-
-# Trying connecting the client with the sha256_password user with the SSL credentials with secure auth disabled.
-
---echo The client should connect with secure auth disabled.
-
---disable_warnings
-set @@global.secure_auth=0;
---enable_warnings
-
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_old_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_native_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=sha256_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
-
-# Trying connecting the client with the mysql_native_password user with the SSL credentials with secure auth disabled at the server side but enabled at the client side.
-
---echo The mysql_native_password plugin client should  connect with secure auth enabled at the client side.
-
-select @@global.secure_auth;
---echo 0 Expected
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_old_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_native_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=sha256_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
-# Dropping the created users
-
-DROP USER 'Tanjotuser1'@'localhost';
-
-
-
---echo
---echo 
---echo =================================================================================================
---echo Starting the server with the default authentication sha256_password
---echo =================================================================================================
---echo 
-
---echo # Restart server with default-authentication-plugin=sha256_password;
-
-let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect;
---exec echo "wait" > $restart_file
---shutdown_server 10
---source include/wait_until_disconnected.inc
--- exec echo "restart:--default-authentication-plugin=sha256_password  " > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--- enable_reconnect
--- source include/wait_until_connected_again.inc
-
-
-
---echo
---echo 
---echo ======================================================================================
---echo Checking the user access with SSL through user created with mysql_old_password plugin
---echo ======================================================================================
---echo 
-
-# Creating a user at localhost with mysql_old_password plugin
-
---echo Creating a user with the mysql_old_plugin
-
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'mysql_old_password';
-
-set @@session.old_passwords=1;
-
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-
-GRANT ALL on *.* to 'Tanjotuser1'@'localhost';
-
-# Trying connecting the client with the mysql_old_password user with the SSL credentials with secure auth enabled.
-
---echo The client should not connect with secure auth enabled.
-
-select @@global.secure_auth;
---echo 1 Expected
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=mysql_old_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=mysql_native_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=sha256_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
-
-# Trying connecting the client with the mysql_old_password user with the SSL credentials with secure auth disabled.
-
---echo The client should connect with secure auth disabled.
-
---disable_warnings
-set @@global.secure_auth=0;
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=mysql_old_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=mysql_native_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --skip-secure-auth --default_auth=sha256_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
-
-
-# Trying connecting the client with the mysql_old_password user with the SSL credentials with secure auth disabled at the server side but enabled at the client side.
-
---echo The mysql_old_password plugin client should not connect with secure auth enabled at the client side.
-
-select @@global.secure_auth;
---echo 0 Expected
-
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_old_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_native_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
-
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=sha256_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
-
-
-# Dropping the created users
-
-DROP USER 'Tanjotuser1'@'localhost';
-
-
---echo
---echo 
---echo ======================================================================================
---echo Checking the user access with SSL through user created with mysql_native_password plugin
---echo ======================================================================================
---echo 
-
-# Creating a user at localhost with mysql_native_password plugin
-
---echo Creating a user with the mysql_old_plugin
-
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'mysql_native_password';
-
-set @@session.old_passwords=0;
-
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-
-GRANT ALL on *.* to 'Tanjotuser1'@'localhost';
-
-# Trying connecting the client with the mysql_native_password user with the SSL credentials with secure auth enabled.
-
---echo The client should connect with secure auth enabled.
-
-select @@global.secure_auth;
---echo 0 Expected
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_old_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_native_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=sha256_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
-
-# Trying connecting the client with the mysql_native_password user with the SSL credentials with secure auth disabled.
-
---echo The client should connect with secure auth disabled.
-
---disable_warnings
-set @@global.secure_auth=0;
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_old_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_native_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=sha256_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
-# Trying connecting the client with the mysql_native_password user with the SSL credentials with secure auth disabled at the server side but enabled at the client side.
-
---echo The mysql_native_password plugin client should  connect with secure auth enabled at the client side.
-
-select @@global.secure_auth;
---echo 0 Expected
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_old_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_native_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=sha256_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
-# Dropping the created users
-
-DROP USER 'Tanjotuser1'@'localhost';
-
-
-
---echo
---echo 
---echo ======================================================================================
---echo Checking the user access with SSL through user created with sha256_password plugin
---echo ======================================================================================
---echo 
-
-# Creating a user at localhost with sha256_password plugin
-
---echo Creating a user with the sha256_plugin
-
-CREATE USER 'Tanjotuser1'@'localhost' IDENTIFIED WITH 'sha256_password';
-
-set @@session.old_passwords=2;
-
-set password for 'Tanjotuser1'@'localhost' = password('abc');
-
-GRANT ALL on *.* to 'Tanjotuser1'@'localhost';
-
-# Trying connecting the client with the sha256_password user with the SSL credentials with secure auth enabled.
-
---echo The client should connect with secure auth enabled.
-
-select @@global.secure_auth;
---echo 0 Expected
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_old_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_native_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
-
-# Below section is hased out till Bug #16048665 is fixed
-
-#--echo **** connecting client using the ssl credentials
-#--exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=sha256_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
-#--echo 2 for GLOBAL Expected
-#--echo 2 for SESSION Expected
-
-
-# Trying connecting the client with the sha256_password user with the SSL credentials with secure auth disabled.
-
---echo The client should connect with secure auth disabled.
-
---disable_warnings
-set @@global.secure_auth=0;
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_old_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=mysql_native_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
-# Below section is hased out till Bug #16048665 is fixed
-
-#--echo **** connecting client using the ssl credentials
-#--exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --default_auth=sha256_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
-#--echo 2 for GLOBAL Expected
-#--echo 2 for SESSION Expected
-
-
-# Trying connecting the client with the mysql_native_password user with the SSL credentials with secure auth disabled at the server side but enabled at the client side.
-
---echo The mysql_native_password plugin client should  connect with secure auth enabled at the client side.
-
-select @@global.secure_auth;
---echo 0 Expected
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_old_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
---disable_warnings
---echo **** connecting client using the ssl credentials
---error 1
---exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=mysql_native_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
---enable_warnings
-
-# Below section is hased out till Bug #16048665 is fixed
-
-#--echo **** connecting client using the ssl credentials
-#--exec $MYSQL -uTanjotuser1 -hlocalhost -pabc --secure_auth --default_auth=sha256_password --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem -e "select @@Global.old_passwords;select @@session.old_passwords"
-#--echo 2 for GLOBAL Expected
-#--echo 2 for SESSION Expected
-
-
-# Dropping the created users
-
-DROP USER 'Tanjotuser1'@'localhost';
-
-set @@global.secure_auth=default;
-set @@session.old_passwords=default;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/binlog/r/binlog_stm_do_db.result b/mysql-wsrep-5.6/mysql-test/suite/binlog/r/binlog_stm_do_db.result
index ec3092da..af40c197 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/binlog/r/binlog_stm_do_db.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/binlog/r/binlog_stm_do_db.result
@@ -29,7 +29,7 @@ ERROR HY000: Cannot execute statement: impossible to write to binary log since B
 UPDATE b42829_filtered.t1 ft1, b42829.t1 nft1 SET ft1.x=1, nft1.x=2;
 ERROR HY000: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
 INSERT INTO t1 SELECT * FROM t2;
-ERROR HY000: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
+ERROR HY000: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging.
 COMMIT;
 ### assertion: filtered events did not make into the binlog
 include/show_binlog_events.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/binlog/t/binlog_spurious_ddl_errors.test b/mysql-wsrep-5.6/mysql-test/suite/binlog/t/binlog_spurious_ddl_errors.test
index d8d2b932..513e4b3a 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/binlog/t/binlog_spurious_ddl_errors.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/binlog/t/binlog_spurious_ddl_errors.test
@@ -21,10 +21,16 @@
 #   generate row events but CREATE TABLE without SELECT does not generate
 #   an error.
 ################################################################################
+--source include/not_gtid_enabled.inc
 --source include/have_innodb.inc
 --source include/have_example_plugin.inc
 --source include/have_log_bin.inc
 
+if (`SELECT $PS_PROTOCOL = 1`)
+{
+  --skip Not with ps-protocol
+}
+
 SET @old_binlog_format= @@global.binlog_format;
 --replace_regex /\.dll/.so/
 eval INSTALL PLUGIN example SONAME '$EXAMPLE_PLUGIN';
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/include/galera_load_provider.inc b/mysql-wsrep-5.6/mysql-test/suite/galera/include/galera_load_provider.inc
index 0ecf43e9..c3536f2c 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/include/galera_load_provider.inc
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/include/galera_load_provider.inc
@@ -1,7 +1,6 @@
 --echo Loading wsrep provider ...
 
 --disable_query_log
---eval SET GLOBAL wsrep_provider = '$wsrep_provider_orig';
 --eval SET GLOBAL wsrep_cluster_address = '$wsrep_cluster_address_orig';
 --enable_query_log
 
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/include/galera_unload_provider.inc b/mysql-wsrep-5.6/mysql-test/suite/galera/include/galera_unload_provider.inc
index edc7eb31..a3512f92 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/include/galera_unload_provider.inc
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/include/galera_unload_provider.inc
@@ -1,7 +1,6 @@
 --echo Unloading wsrep provider ...
 
 --let $wsrep_cluster_address_orig = `SELECT @@wsrep_cluster_address`
---let $wsrep_provider_orig = `SELECT @@wsrep_provider`
 --let $wsrep_provider_options_orig = `SELECT @@wsrep_provider_options`
 
-SET GLOBAL wsrep_provider = 'none';
+SET GLOBAL wsrep_cluster_address = '';
\ No newline at end of file
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_as_master_gtid.result b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_as_master_gtid.result
index 8dfe462d..960818bc 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_as_master_gtid.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_as_master_gtid.result
@@ -1,3 +1,10 @@
+SET GLOBAL wsrep_on = OFF;
+RESET MASTER;
+SET GLOBAL wsrep_on = ON;
+SET GLOBAL wsrep_on = OFF;
+RESET MASTER;
+SET GLOBAL wsrep_on = ON;
+RESET MASTER;
 START SLAVE USER='root';
 Warnings:
 Note	1759	Sending passwords in plain text without SSL/TLS is extremely insecure.
@@ -5,36 +12,36 @@ CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
 INSERT INTO t1 VALUES(1);
 uuids_do_not_match
 1
-SHOW BINLOG EVENTS IN 'mysqld-bin.000002' FROM 120;
+SHOW BINLOG EVENTS IN 'mysqld-bin.000001' FROM 120;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-mysqld-bin.000002	120	Previous_gtids	1	151	
-mysqld-bin.000002	151	Gtid	1	199	SET @@SESSION.GTID_NEXT= ':1'
-mysqld-bin.000002	199	Query	1	327	use `test`; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB
-mysqld-bin.000002	327	Gtid	1	375	SET @@SESSION.GTID_NEXT= ':2'
-mysqld-bin.000002	375	Query	1	452	BEGIN
-mysqld-bin.000002	452	Table_map	1	497	table_id: # (test.t1)
-mysqld-bin.000002	497	Write_rows	1	537	table_id: # flags: STMT_END_F
-mysqld-bin.000002	537	Xid	1	568	COMMIT /* xid=# */
+mysqld-bin.000001	120	Previous_gtids	1	151	
+mysqld-bin.000001	151	Gtid	1	199	SET @@SESSION.GTID_NEXT= ':1'
+mysqld-bin.000001	199	Query	1	327	use `test`; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB
+mysqld-bin.000001	327	Gtid	1	375	SET @@SESSION.GTID_NEXT= ':2'
+mysqld-bin.000001	375	Query	1	452	BEGIN
+mysqld-bin.000001	452	Table_map	1	497	table_id: # (test.t1)
+mysqld-bin.000001	497	Write_rows	1	537	table_id: # flags: STMT_END_F
+mysqld-bin.000001	537	Xid	1	568	COMMIT /* xid=# */
 INSERT INTO t1 VALUES(2);
 uuids_do_not_match
 1
 uuids_match
 1
-SHOW BINLOG EVENTS IN 'mysqld-bin.000003' FROM 120;
+SHOW BINLOG EVENTS IN 'mysqld-bin.000001' FROM 120;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-mysqld-bin.000003	120	Previous_gtids	2	151	
-mysqld-bin.000003	151	Gtid	1	199	SET @@SESSION.GTID_NEXT= ':1'
-mysqld-bin.000003	199	Query	1	327	use `test`; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB
-mysqld-bin.000003	327	Gtid	1	375	SET @@SESSION.GTID_NEXT= ':2'
-mysqld-bin.000003	375	Query	1	443	BEGIN
-mysqld-bin.000003	443	Table_map	1	488	table_id: # (test.t1)
-mysqld-bin.000003	488	Write_rows	1	528	table_id: # flags: STMT_END_F
-mysqld-bin.000003	528	Xid	1	559	COMMIT /* xid=# */
-mysqld-bin.000003	559	Gtid	2	607	SET @@SESSION.GTID_NEXT= ':3'
-mysqld-bin.000003	607	Query	2	684	BEGIN
-mysqld-bin.000003	684	Table_map	2	729	table_id: # (test.t1)
-mysqld-bin.000003	729	Write_rows	2	769	table_id: # flags: STMT_END_F
-mysqld-bin.000003	769	Xid	2	800	COMMIT /* xid=# */
+mysqld-bin.000001	120	Previous_gtids	2	151	
+mysqld-bin.000001	151	Gtid	1	199	SET @@SESSION.GTID_NEXT= ':1'
+mysqld-bin.000001	199	Query	1	327	use `test`; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB
+mysqld-bin.000001	327	Gtid	1	375	SET @@SESSION.GTID_NEXT= ':2'
+mysqld-bin.000001	375	Query	1	443	BEGIN
+mysqld-bin.000001	443	Table_map	1	488	table_id: # (test.t1)
+mysqld-bin.000001	488	Write_rows	1	528	table_id: # flags: STMT_END_F
+mysqld-bin.000001	528	Xid	1	559	COMMIT /* xid=# */
+mysqld-bin.000001	559	Gtid	2	607	SET @@SESSION.GTID_NEXT= ':3'
+mysqld-bin.000001	607	Query	2	684	BEGIN
+mysqld-bin.000001	684	Table_map	2	729	table_id: # (test.t1)
+mysqld-bin.000001	729	Write_rows	2	769	table_id: # flags: STMT_END_F
+mysqld-bin.000001	769	Xid	2	800	COMMIT /* xid=# */
 uuids_do_not_match
 1
 uuids_match
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_bf_abort_committing_by_ddl.result b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_bf_abort_committing_by_ddl.result
new file mode 100644
index 00000000..567015ba
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_bf_abort_committing_by_ddl.result
@@ -0,0 +1,207 @@
+# ANALYZE TABLE
+CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+CREATE TABLE t2 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+START TRANSACTION;
+INSERT INTO t2 VALUES (1, 1);
+UPDATE IGNORE t1 SET f2 = 2 WHERE f1 = 2;
+SET DEBUG_SYNC = "wsrep_before_certification SIGNAL wbc_reached WAIT_FOR wbc_continue";
+COMMIT;
+SET DEBUG_SYNC = "now WAIT_FOR wbc_reached";
+SET DEBUG_SYNC = "wsrep_after_toi_begin SIGNAL watb_reached WAIT_FOR watb_continue";
+ANALYZE TABLE t1;
+SET SESSION wsrep_sync_wait = 0;
+SET DEBUG_SYNC = "now WAIT_FOR watb_reached";
+SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_enter_sync';
+SET DEBUG_SYNC = "now SIGNAL wbc_continue";
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 1;
+SET GLOBAL wsrep_provider_options = 'dbug=';
+SET GLOBAL wsrep_provider_options = 'signal=commit_monitor_enter_sync';
+SET DEBUG_SYNC = "now SIGNAL watb_continue";
+Table	Op	Msg_type	Msg_text
+test.t1	analyze	status	OK
+SET DEBUG_SYNC = "RESET";
+DROP TABLE t2;
+wsrep_local_replays
+1
+DROP TABLE t1;
+# OPTIMIZE TABLE
+CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+CREATE TABLE t2 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+START TRANSACTION;
+INSERT INTO t2 VALUES (1, 1);
+UPDATE IGNORE t1 SET f2 = 2 WHERE f1 = 2;
+SET DEBUG_SYNC = "wsrep_before_certification SIGNAL wbc_reached WAIT_FOR wbc_continue";
+COMMIT;
+SET DEBUG_SYNC = "now WAIT_FOR wbc_reached";
+SET DEBUG_SYNC = "wsrep_after_toi_begin SIGNAL watb_reached WAIT_FOR watb_continue";
+OPTIMIZE TABLE t1;
+SET SESSION wsrep_sync_wait = 0;
+SET DEBUG_SYNC = "now WAIT_FOR watb_reached";
+SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_enter_sync';
+SET DEBUG_SYNC = "now SIGNAL wbc_continue";
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 1;
+SET GLOBAL wsrep_provider_options = 'dbug=';
+SET GLOBAL wsrep_provider_options = 'signal=commit_monitor_enter_sync';
+SET DEBUG_SYNC = "now SIGNAL watb_continue";
+Table	Op	Msg_type	Msg_text
+test.t1	optimize	note	Table does not support optimize, doing recreate + analyze instead
+test.t1	optimize	status	OK
+SET DEBUG_SYNC = "RESET";
+DROP TABLE t2;
+wsrep_local_replays
+1
+DROP TABLE t1;
+# REPAIR TABLE
+CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+CREATE TABLE t2 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+START TRANSACTION;
+INSERT INTO t2 VALUES (1, 1);
+UPDATE IGNORE t1 SET f2 = 2 WHERE f1 = 2;
+SET DEBUG_SYNC = "wsrep_before_certification SIGNAL wbc_reached WAIT_FOR wbc_continue";
+COMMIT;
+SET DEBUG_SYNC = "now WAIT_FOR wbc_reached";
+SET DEBUG_SYNC = "wsrep_after_toi_begin SIGNAL watb_reached WAIT_FOR watb_continue";
+REPAIR TABLE t1;
+SET SESSION wsrep_sync_wait = 0;
+SET DEBUG_SYNC = "now WAIT_FOR watb_reached";
+SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_enter_sync';
+SET DEBUG_SYNC = "now SIGNAL wbc_continue";
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 1;
+SET GLOBAL wsrep_provider_options = 'dbug=';
+SET GLOBAL wsrep_provider_options = 'signal=commit_monitor_enter_sync';
+SET DEBUG_SYNC = "now SIGNAL watb_continue";
+Table	Op	Msg_type	Msg_text
+test.t1	repair	note	The storage engine for the table doesn't support repair
+SET DEBUG_SYNC = "RESET";
+DROP TABLE t2;
+wsrep_local_replays
+1
+DROP TABLE t1;
+# CREATE TABLE
+CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+CREATE TABLE t2 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+START TRANSACTION;
+INSERT INTO t2 VALUES (1, 1);
+UPDATE IGNORE t1 SET f2 = 2 WHERE f1 = 2;
+SET DEBUG_SYNC = "wsrep_before_certification SIGNAL wbc_reached WAIT_FOR wbc_continue";
+COMMIT;
+SET DEBUG_SYNC = "now WAIT_FOR wbc_reached";
+SET DEBUG_SYNC = "wsrep_after_toi_begin SIGNAL watb_reached WAIT_FOR watb_continue";
+CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+SET SESSION wsrep_sync_wait = 0;
+SET DEBUG_SYNC = "now WAIT_FOR watb_reached";
+SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_enter_sync';
+SET DEBUG_SYNC = "now SIGNAL wbc_continue";
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 1;
+SET GLOBAL wsrep_provider_options = 'dbug=';
+SET GLOBAL wsrep_provider_options = 'signal=commit_monitor_enter_sync';
+SET DEBUG_SYNC = "now SIGNAL watb_continue";
+SET DEBUG_SYNC = "RESET";
+DROP TABLE t2;
+wsrep_local_replays
+1
+DROP TABLE t1;
+# DROP TABLE
+CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+CREATE TABLE t2 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+START TRANSACTION;
+INSERT INTO t2 VALUES (1, 1);
+UPDATE IGNORE t1 SET f2 = 2 WHERE f1 = 2;
+SET DEBUG_SYNC = "wsrep_before_certification SIGNAL wbc_reached WAIT_FOR wbc_continue";
+COMMIT;
+SET DEBUG_SYNC = "now WAIT_FOR wbc_reached";
+SET DEBUG_SYNC = "wsrep_after_toi_begin SIGNAL watb_reached WAIT_FOR watb_continue";
+DROP TABLE t1;
+SET SESSION wsrep_sync_wait = 0;
+SET DEBUG_SYNC = "now WAIT_FOR watb_reached";
+SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_enter_sync';
+SET DEBUG_SYNC = "now SIGNAL wbc_continue";
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 1;
+SET GLOBAL wsrep_provider_options = 'dbug=';
+SET GLOBAL wsrep_provider_options = 'signal=commit_monitor_enter_sync';
+SET DEBUG_SYNC = "now SIGNAL watb_continue";
+SET DEBUG_SYNC = "RESET";
+DROP TABLE t2;
+wsrep_local_replays
+1
+# ALTER TABLE
+CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+CREATE TABLE t2 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+START TRANSACTION;
+INSERT INTO t2 VALUES (1, 1);
+UPDATE IGNORE t1 SET f2 = 2 WHERE f1 = 2;
+SET DEBUG_SYNC = "wsrep_before_certification SIGNAL wbc_reached WAIT_FOR wbc_continue";
+COMMIT;
+SET DEBUG_SYNC = "now WAIT_FOR wbc_reached";
+SET DEBUG_SYNC = "wsrep_after_toi_begin SIGNAL watb_reached WAIT_FOR watb_continue";
+ALTER TABLE t1 ADD COLUMN f3 INT;
+SET SESSION wsrep_sync_wait = 0;
+SET DEBUG_SYNC = "now WAIT_FOR watb_reached";
+SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_enter_sync';
+SET DEBUG_SYNC = "now SIGNAL wbc_continue";
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 1;
+SET GLOBAL wsrep_provider_options = 'dbug=';
+SET GLOBAL wsrep_provider_options = 'signal=commit_monitor_enter_sync';
+SET DEBUG_SYNC = "now SIGNAL watb_continue";
+SET DEBUG_SYNC = "RESET";
+DROP TABLE t2;
+wsrep_local_replays
+1
+DROP TABLE t1;
+# RENAME TABLE
+CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+CREATE TABLE t2 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+START TRANSACTION;
+INSERT INTO t2 VALUES (1, 1);
+UPDATE IGNORE t1 SET f2 = 2 WHERE f1 = 2;
+SET DEBUG_SYNC = "wsrep_before_certification SIGNAL wbc_reached WAIT_FOR wbc_continue";
+COMMIT;
+SET DEBUG_SYNC = "now WAIT_FOR wbc_reached";
+SET DEBUG_SYNC = "wsrep_after_toi_begin SIGNAL watb_reached WAIT_FOR watb_continue";
+RENAME TABLE t1 TO t3;;
+SET SESSION wsrep_sync_wait = 0;
+SET DEBUG_SYNC = "now WAIT_FOR watb_reached";
+SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_enter_sync';
+SET DEBUG_SYNC = "now SIGNAL wbc_continue";
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 1;
+SET GLOBAL wsrep_provider_options = 'dbug=';
+SET GLOBAL wsrep_provider_options = 'signal=commit_monitor_enter_sync';
+SET DEBUG_SYNC = "now SIGNAL watb_continue";
+SET DEBUG_SYNC = "RESET";
+DROP TABLE t2;
+wsrep_local_replays
+1
+DROP TABLE t3;
+# TRUNCATE TABLE
+CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+CREATE TABLE t2 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+START TRANSACTION;
+INSERT INTO t2 VALUES (1, 1);
+UPDATE IGNORE t1 SET f2 = 2 WHERE f1 = 2;
+SET DEBUG_SYNC = "wsrep_before_certification SIGNAL wbc_reached WAIT_FOR wbc_continue";
+COMMIT;
+SET DEBUG_SYNC = "now WAIT_FOR wbc_reached";
+SET DEBUG_SYNC = "wsrep_after_toi_begin SIGNAL watb_reached WAIT_FOR watb_continue";
+TRUNCATE TABLE t1;;
+SET SESSION wsrep_sync_wait = 0;
+SET DEBUG_SYNC = "now WAIT_FOR watb_reached";
+SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_enter_sync';
+SET DEBUG_SYNC = "now SIGNAL wbc_continue";
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 1;
+SET GLOBAL wsrep_provider_options = 'dbug=';
+SET GLOBAL wsrep_provider_options = 'signal=commit_monitor_enter_sync';
+SET DEBUG_SYNC = "now SIGNAL watb_continue";
+SET DEBUG_SYNC = "RESET";
+DROP TABLE t2;
+wsrep_local_replays
+1
+DROP TABLE t1;
+CALL mtr.add_suppression("Slave SQL: Error 'Table 't1' already exists' on query.");
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_defaults.result b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_defaults.result
index b73df9b6..241b26e3 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_defaults.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_defaults.result
@@ -52,7 +52,7 @@ SELECT COUNT(*) FROM INFORMATION_SCHEMA.GLOBAL_STATUS
 WHERE VARIABLE_NAME LIKE 'wsrep_%'
 AND VARIABLE_NAME != 'wsrep_debug_sync_waiters';
 COUNT(*)
-60
+63
 SELECT VARIABLE_NAME FROM INFORMATION_SCHEMA.GLOBAL_STATUS
 WHERE VARIABLE_NAME LIKE 'wsrep_%'
 AND VARIABLE_NAME != 'wsrep_debug_sync_waiters'
@@ -79,11 +79,14 @@ WSREP_EVS_DELAYED
 WSREP_EVS_EVICT_LIST
 WSREP_EVS_REPL_LATENCY
 WSREP_EVS_STATE
+WSREP_FLOW_CONTROL_ACTIVE
 WSREP_FLOW_CONTROL_PAUSED
 WSREP_FLOW_CONTROL_PAUSED_NS
 WSREP_FLOW_CONTROL_RECV
+WSREP_FLOW_CONTROL_REQUESTED
 WSREP_FLOW_CONTROL_SENT
 WSREP_GCOMM_UUID
+WSREP_GMCAST_SEGMENT
 WSREP_INCOMING_ADDRESSES
 WSREP_LAST_COMMITTED
 WSREP_LOCAL_BF_ABORTS
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_ist_restart_joiner.result b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_ist_restart_joiner.result
index ca6848fb..a470baa5 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_ist_restart_joiner.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_ist_restart_joiner.result
@@ -1,7 +1,9 @@
 CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(1));
 INSERT INTO t1 VALUES (1, 'a'), (2, 'a'), (3, 'a'), (4, 'a'), (5, 'a'),(6, 'a');
+SET SESSION wsrep_sync_wait=0;
+SET SESSION wsrep_dirty_reads=ON;
 Unloading wsrep provider ...
-SET GLOBAL wsrep_provider = 'none';
+SET GLOBAL wsrep_cluster_address = '';
 UPDATE t1 SET f2 = 'b' WHERE f1 > 1;
 UPDATE t1 SET f2 = 'c' WHERE f1 > 2;
 Loading wsrep_provider ...
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_ist_rsync.result b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_ist_rsync.result
index 175e7443..09655b3e 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_ist_rsync.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_ist_rsync.result
@@ -17,7 +17,7 @@ INSERT INTO t1 VALUES ('node2_committed_before');
 INSERT INTO t1 VALUES ('node2_committed_before');
 COMMIT;
 Unloading wsrep provider ...
-SET GLOBAL wsrep_provider = 'none';
+SET GLOBAL wsrep_cluster_address = '';
 SET AUTOCOMMIT=OFF;
 START TRANSACTION;
 INSERT INTO t1 VALUES ('node1_committed_during');
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_ist_xtrabackup-v2.result b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_ist_xtrabackup-v2.result
index 175e7443..09655b3e 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_ist_xtrabackup-v2.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_ist_xtrabackup-v2.result
@@ -17,7 +17,7 @@ INSERT INTO t1 VALUES ('node2_committed_before');
 INSERT INTO t1 VALUES ('node2_committed_before');
 COMMIT;
 Unloading wsrep provider ...
-SET GLOBAL wsrep_provider = 'none';
+SET GLOBAL wsrep_cluster_address = '';
 SET AUTOCOMMIT=OFF;
 START TRANSACTION;
 INSERT INTO t1 VALUES ('node1_committed_during');
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_log_bin.result b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_log_bin.result
index 522e723f..a7181a30 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_log_bin.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_log_bin.result
@@ -1,3 +1,5 @@
+RESET MASTER;
+RESET MASTER;
 CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB;
 INSERT INTO t1 VALUES (1);
 CREATE TABLE t2 (id INT) ENGINE=InnoDB;
@@ -11,24 +13,24 @@ COUNT(*) = 2
 1
 ALTER TABLE t1 ADD COLUMN f2 INTEGER;
 FLUSH LOGS;
-SHOW BINLOG EVENTS IN '0.000002' FROM 120;
+SHOW BINLOG EVENTS IN '0.000001' FROM 120;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-0.000002	120	Query	1	244	use `test`; CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB
-0.000002	244	Query	1	321	BEGIN
-0.000002	321	Table_map	1	366	table_id: # (test.t1)
-0.000002	366	Write_rows	1	406	table_id: # flags: STMT_END_F
-0.000002	406	Xid	1	437	COMMIT /* xid=# */
-0.000002	437	Query	1	549	use `test`; CREATE TABLE t2 (id INT) ENGINE=InnoDB
-0.000002	549	Query	1	626	BEGIN
-0.000002	626	Table_map	1	671	table_id: # (test.t2)
-0.000002	671	Write_rows	1	711	table_id: # flags: STMT_END_F
-0.000002	711	Xid	1	742	COMMIT /* xid=# */
-0.000002	742	Query	1	819	BEGIN
-0.000002	819	Table_map	1	864	table_id: # (test.t2)
-0.000002	864	Write_rows	1	904	table_id: # flags: STMT_END_F
-0.000002	904	Xid	1	935	COMMIT /* xid=# */
-0.000002	935	Query	1	1045	use `test`; ALTER TABLE t1 ADD COLUMN f2 INTEGER
-0.000002	1045	Rotate	1	1084	0.000003;pos=4
+0.000001	120	Query	1	244	use `test`; CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB
+0.000001	244	Query	1	321	BEGIN
+0.000001	321	Table_map	1	366	table_id: # (test.t1)
+0.000001	366	Write_rows	1	406	table_id: # flags: STMT_END_F
+0.000001	406	Xid	1	437	COMMIT /* xid=# */
+0.000001	437	Query	1	549	use `test`; CREATE TABLE t2 (id INT) ENGINE=InnoDB
+0.000001	549	Query	1	626	BEGIN
+0.000001	626	Table_map	1	671	table_id: # (test.t2)
+0.000001	671	Write_rows	1	711	table_id: # flags: STMT_END_F
+0.000001	711	Xid	1	742	COMMIT /* xid=# */
+0.000001	742	Query	1	819	BEGIN
+0.000001	819	Table_map	1	864	table_id: # (test.t2)
+0.000001	864	Write_rows	1	904	table_id: # flags: STMT_END_F
+0.000001	904	Xid	1	935	COMMIT /* xid=# */
+0.000001	935	Query	1	1045	use `test`; ALTER TABLE t1 ADD COLUMN f2 INTEGER
+0.000001	1045	Rotate	1	1084	0.000002;pos=4
 SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
 COUNT(*) = 2
 1
@@ -51,4 +53,3 @@ Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 0.000001	908	Query	1	1018	use `test`; ALTER TABLE t1 ADD COLUMN f2 INTEGER
 DROP TABLE t1;
 DROP TABLE t2;
-RESET MASTER;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_log_output_csv.result b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_log_output_csv.result
index cdb5ee49..fa367d38 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_log_output_csv.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_log_output_csv.result
@@ -1,18 +1,20 @@
-CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1);
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 INTEGER DEFAULT 0) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1, DEFAULT);
 SELECT COUNT(*) > 0 FROM mysql.general_log;
 COUNT(*) > 0
 1
-SELECT 1 = 1 FROM t1;
-1 = 1
+TRUNCATE mysql.slow_log;
+SELECT COUNT(*) = 0 FROM t1 WHERE f2 = 1;
+COUNT(*) = 0
 1
-SELECT COUNT(*) = 1 FROM mysql.slow_log WHERE sql_text = 'SELECT 1 = 1 FROM t1';
+SELECT COUNT(*) = 1 FROM mysql.slow_log WHERE sql_text = 'SELECT COUNT(*) = 0 FROM t1 WHERE f2 = 1';
 COUNT(*) = 1
 1
-SELECT 2 = 2 FROM t1;
-2 = 2
+TRUNCATE mysql.slow_log;
+SELECT COUNT(*) = 0 FROM t1 WHERE f2 = 2;
+COUNT(*) = 0
 1
-SELECT COUNT(*) = 1 FROM mysql.slow_log WHERE sql_text = 'SELECT 2 = 2 FROM t1';
+SELECT COUNT(*) = 1 FROM mysql.slow_log WHERE sql_text = 'SELECT COUNT(*) = 0 FROM t1 WHERE f2 = 2';
 COUNT(*) = 1
 1
 DROP TABLE t1;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_migrate.result b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_migrate.result
index aab3ffbd..228bbe8f 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_migrate.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_migrate.result
@@ -66,14 +66,14 @@ VARIABLE_VALUE = 2
 DROP TABLE t1;
 DROP TABLE t1;
 SET GLOBAL wsrep_provider = 'none';
-SET GLOBAL wsrep_sst_auth = '';
+SET GLOBAL wsrep_sst_method = 'rsync';
 SET GLOBAL wsrep_provider_options = '';
+SET GLOBAL wsrep_sst_receive_address = 'AUTO';
 DROP TABLE t1;
 DROP USER sst;
 SET GLOBAL wsrep_provider = 'none';
-SET GLOBAL wsrep_sst_method = 'rsync';
+SET GLOBAL wsrep_sst_auth = '';
 SET GLOBAL wsrep_provider_options = '';
-SET GLOBAL wsrep_sst_receive_address = 'AUTO';
 DROP TABLE t1;
 DROP USER sst;
 CALL mtr.add_suppression("InnoDB: Error: Table \"mysql\"\\.\"innodb_index_stats\" not found");
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_slave_replay.result b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_slave_replay.result
new file mode 100644
index 00000000..9c305d0d
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_slave_replay.result
@@ -0,0 +1,77 @@
+RESET MASTER;
+RESET SLAVE ALL;
+START SLAVE USER='root';
+Warnings:
+Note	1759	Sending passwords in plain text without SSL/TLS is extremely insecure.
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(1)) engine=innodb;
+INSERT INTO t1 VALUES (1, 'a');
+INSERT INTO t1 VALUES (3, 'a');
+set binlog_format=STATEMENT;
+SET AUTOCOMMIT=ON;
+START TRANSACTION;
+SELECT * FROM t1  FOR UPDATE;
+f1	f2
+1	a
+3	a
+UPDATE t1 SET f2 = 'c' WHERE f1 > 1;
+SET SESSION wsrep_sync_wait = 0;
+SET SESSION wsrep_sync_wait = 0;
+SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_enter_sync';
+SET GLOBAL debug = "d,sync.wsrep_apply_cb";
+INSERT INTO test.t1 VALUES (2, 'b');
+COMMIT;
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 1;
+SET GLOBAL debug = "";
+SET DEBUG_SYNC = "now SIGNAL signal.wsrep_apply_cb";
+SET GLOBAL wsrep_provider_options = 'dbug=';
+SET GLOBAL wsrep_provider_options = 'signal=commit_monitor_enter_sync';
+SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'a';
+COUNT(*) = 1
+1
+SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'c';
+COUNT(*) = 1
+1
+SELECT * FROM t1;
+f1	f2
+1	a
+3	c
+set session wsrep_sync_wait=15;
+set session wsrep_sync_wait=0;
+wsrep_local_replays
+1
+SELECT *  FROM t1;
+f1	f2
+1	a
+2	b
+3	c
+SET DEBUG_SYNC = "RESET";
+#
+# test phase with real abort
+#
+set binlog_format=ROW;
+insert into t1 values (4, 'd');
+SET AUTOCOMMIT=ON;
+START TRANSACTION;
+UPDATE t1 SET f2 = 'd' WHERE f1 = 3;
+SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_enter_sync';
+SET GLOBAL debug = "d,sync.wsrep_apply_cb";
+UPDATE test.t1 SET f2 = 'e' WHERE f1 = 3;
+COMMIT;
+SET GLOBAL debug = "";
+SET DEBUG_SYNC = "now SIGNAL signal.wsrep_apply_cb";
+SET GLOBAL wsrep_provider_options = 'dbug=';
+SET GLOBAL wsrep_provider_options = 'signal=commit_monitor_enter_sync';
+SET DEBUG_SYNC = "RESET";
+set session wsrep_sync_wait=15;
+SELECT COUNT(*) = 1 FROM test.t1 WHERE f2 = 'e';
+COUNT(*) = 1
+1
+set session wsrep_sync_wait=0;
+STOP SLAVE;
+RESET SLAVE ALL;
+DROP TABLE t1;
+CALL mtr.add_suppression("Slave SQL: Node has dropped from cluster");
+CALL mtr.add_suppression("Slave SQL: Error in Xid_log_event: Commit could not be complete");
+DROP TABLE t1;
+RESET MASTER;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_sst_mysqldump.result b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_sst_mysqldump.result
index e35c4055..46d2cfd1 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_sst_mysqldump.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_sst_mysqldump.result
@@ -21,7 +21,7 @@ INSERT INTO t1 VALUES ('node2_committed_before');
 INSERT INTO t1 VALUES ('node2_committed_before');
 COMMIT;
 Unloading wsrep provider ...
-SET GLOBAL wsrep_provider = 'none';
+SET GLOBAL wsrep_cluster_address = '';
 SET AUTOCOMMIT=OFF;
 START TRANSACTION;
 INSERT INTO t1 VALUES ('node1_committed_during');
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key.result b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key.result
index 7d30b356..0b71960b 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key.result
@@ -25,7 +25,7 @@ INSERT INTO t1 VALUES ('node2_committed_before');
 INSERT INTO t1 VALUES ('node2_committed_before');
 COMMIT;
 Unloading wsrep provider ...
-SET GLOBAL wsrep_provider = 'none';
+SET GLOBAL wsrep_cluster_address = '';
 SET AUTOCOMMIT=OFF;
 START TRANSACTION;
 INSERT INTO t1 VALUES ('node1_committed_during');
@@ -104,5 +104,3 @@ CALL mtr.add_suppression("Can't open and lock privilege tables");
 CALL mtr.add_suppression("Info table is not ready to be used");
 CALL mtr.add_suppression("Native table .* has the wrong structure");
 DROP USER sslsst;
-SET GLOBAL general_log = ON;
-SET GLOBAL slow_query_log = ON;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_var_notify_cmd.result b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_var_notify_cmd.result
index e9e4605e..515520ab 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_var_notify_cmd.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/r/galera_var_notify_cmd.result
@@ -1,10 +1,11 @@
-SELECT COUNT(DISTINCT uuid) = 2 FROM mtr_wsrep_notify.membership;
-COUNT(DISTINCT uuid) = 2
-1
-SELECT MAX(size) = 2 FROM mtr_wsrep_notify.status;
-MAX(size) = 2
-1
-SELECT COUNT(DISTINCT idx) = 2 FROM mtr_wsrep_notify.status;
-COUNT(DISTINCT idx) = 2
+SELECT COUNT(DISTINCT uuid) AS expect_2 FROM mtr_wsrep_notify.membership;
+expect_2
+2
+SELECT MAX(size) AS expect_2 FROM mtr_wsrep_notify.status;
+expect_2
+2
+SELECT COUNT(*) AS expect_1 FROM mtr_wsrep_notify.status;
+expect_1
 1
+SET wsrep_on = OFF;
 DROP SCHEMA mtr_wsrep_notify;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/r/mysql-wsrep#216.result b/mysql-wsrep-5.6/mysql-test/suite/galera/r/mysql-wsrep#216.result
index 5d9a7f5d..a4c70b43 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/r/mysql-wsrep#216.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/r/mysql-wsrep#216.result
@@ -2,9 +2,9 @@ SET GLOBAL wsrep_debug = ON;
 CREATE USER u1 IDENTIFIED BY 'plaintext_password';
 CREATE USER u1 IDENTIFIED BY 'plaintext_password';
 ERROR HY000: Operation CREATE USER failed for 'u1'@'%'
-0
-0
-4
-1
+include/assert_grep.inc [Plaintext password count is 0]
+include/assert_grep.inc [Plaintext password count is 0]
+include/assert_grep.inc [Obfuscated password count is 4 on the master node]
+include/assert_grep.inc [Obfuscated password count is 1 on the slave node]
 DROP USER u1;
 CALL mtr.add_suppression('Operation CREATE USER failed');
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/r/mysql-wsrep#33.result b/mysql-wsrep-5.6/mysql-test/suite/galera/r/mysql-wsrep#33.result
index 62af519a..236c2846 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/r/mysql-wsrep#33.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/r/mysql-wsrep#33.result
@@ -21,7 +21,7 @@ INSERT INTO t1 VALUES ('node2_committed_before');
 INSERT INTO t1 VALUES ('node2_committed_before');
 COMMIT;
 Unloading wsrep provider ...
-SET GLOBAL wsrep_provider = 'none';
+SET GLOBAL wsrep_cluster_address = '';
 SET AUTOCOMMIT=OFF;
 START TRANSACTION;
 INSERT INTO t1 VALUES ('node1_committed_during');
@@ -99,5 +99,3 @@ CALL mtr.add_suppression("Can't open and lock time zone table");
 CALL mtr.add_suppression("Can't open and lock privilege tables");
 CALL mtr.add_suppression("Info table is not ready to be used");
 CALL mtr.add_suppression("Native table .* has the wrong structure");
-SET GLOBAL general_log = ON;
-SET GLOBAL slow_query_log = ON;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/MW-369.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/MW-369.test
index 1071d471..2d61b015 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/MW-369.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/MW-369.test
@@ -165,7 +165,7 @@ DROP TABLE p;
 #
 # Expected Outcome:
 # ================
-# This is a true conflict and one transaciton must abort. In this case it is node_1
+# This is a true conflict and one transaction must abort. In this case it is node_1
 # transaction, which was scheduled later.
 #    Parent table should have row (1,0)
 #    child table should have row (1,0)
@@ -212,7 +212,7 @@ DROP TABLE p;
 #
 # Expected Outcome:
 # ================
-# This is a true conflict and one transaciton must abort. In this case it is node_1
+# This is a true conflict and one transaction must abort. In this case it is node_1
 # transaction, which was scheduled later.
 #    Parent table should have rows (1,0), (2,0)
 #    child table should have row (1,1,1)
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/MW-388.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/MW-388.test
index 54467310..7643ff7d 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/MW-388.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/MW-388.test
@@ -1,5 +1,6 @@
 --source include/galera_cluster.inc
 --source include/have_innodb.inc
+--source include/have_debug_sync.inc
 
 --connection node_1
 CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(255)) Engine=InnoDB;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/disabled.def b/mysql-wsrep-5.6/mysql-test/suite/galera/t/disabled.def
index 1e7f3166..69f4336e 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/disabled.def
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/disabled.def
@@ -15,3 +15,5 @@ galera_sst_xtrabackup-v2-options : N/A 0000-00-00 CODERSHIP SST Encryption does
 galera_toi_ddl_fk_insert : qa#39 0000-00-00 CODERSHIP galera_toi_ddl_fk_insert fails sporadically
 galera_var_innodb_disallow_writes : Issue#330 2018-05-16 CODERSHIP https://github.com/codership/mysql-wsrep/issues/330
 galera_wsrep_provider_unset_set : lp1379204 0000-00-00 CODERSHIP 'Unsupported protocol downgrade: incremental data collection disabled. Expect abort.'
+pxc-421 : BUG#0000 2021-03-02 CODERSHIP variable wsrep_provider is now read-only
+galera_migrate : BUG#0000 2021-03-02 CODERSHIP variable wsrep_provider is now read-only
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_as_master_gtid.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_as_master_gtid.test
index 9db104b7..144e1cec 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_as_master_gtid.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_as_master_gtid.test
@@ -12,7 +12,18 @@
 --source include/have_log_bin.inc
 --source include/galera_cluster.inc
 
+--connection node_1
+SET GLOBAL wsrep_on = OFF;
+RESET MASTER;
+SET GLOBAL wsrep_on = ON;
+
+--connection node_2
+SET GLOBAL wsrep_on = OFF;
+RESET MASTER;
+SET GLOBAL wsrep_on = ON;
+
 --connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3
+RESET MASTER;
 --disable_query_log
 --eval CHANGE MASTER TO  MASTER_HOST='127.0.0.1', MASTER_PORT=$NODE_MYPORT_1;
 --enable_query_log
@@ -29,7 +40,7 @@ INSERT INTO t1 VALUES(1);
 
 --replace_result $effective_uuid 
 --replace_regex /table_id: [0-9]+/table_id: #/ /xid=[0-9]+/xid=#/
-SHOW BINLOG EVENTS IN 'mysqld-bin.000002' FROM 120;
+SHOW BINLOG EVENTS IN 'mysqld-bin.000001' FROM 120;
 
 --connection node_2
 INSERT INTO t1 VALUES(2);
@@ -41,7 +52,7 @@ INSERT INTO t1 VALUES(2);
 
 --replace_result $effective_uuid 
 --replace_regex /table_id: [0-9]+/table_id: #/ /xid=[0-9]+/xid=#/
-SHOW BINLOG EVENTS IN 'mysqld-bin.000003' FROM 120;
+SHOW BINLOG EVENTS IN 'mysqld-bin.000001' FROM 120;
 
 --connection node_3
 --let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1';
@@ -68,3 +79,4 @@ DROP TABLE t1;
 
 STOP SLAVE;
 RESET SLAVE ALL;
+
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_bf_abort_committing_by_ddl.inc b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_bf_abort_committing_by_ddl.inc
new file mode 100644
index 00000000..8bca10f8
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_bf_abort_committing_by_ddl.inc
@@ -0,0 +1,70 @@
+#
+# Helper macro to run the BF abort sequence.
+#
+# It is assumed that the caller:
+# - Creates a table t1 which is operated by the DDL
+# - Creates connections con_dml and con_ddl
+# - Sets bf_ddl which operates on table t1
+# - Sets expect_wsrep_local_replays to check if replay happens
+#
+# The test starts a transaction which operates on table t2 to generate
+# a write set and then does an operation to table t1 which takes a
+# MDL lock but does not generate a key (statement does not have any effect).
+#
+# The ordering of the DDL will be such that the DDL will be ordered
+# and certified first, the transaction after that.
+#
+# As there are no certification conflicts because DDL and transaction
+# have keys for different tables, the DDL will BF abort the transaction
+# which is waiting for commit.
+#
+# The transaction will be aborted and replayed.
+#
+
+--connection node_1
+--let $wsrep_local_replays_orig = `SELECT VARIABLE_VALUE FROM information_schema.global_status WHERE VARIABLE_NAME = 'wsrep_local_replays'`
+CREATE TABLE t2 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+
+# Start transaction which gets a shared MDL lock on table t1 but
+# does not generate any changes on it.
+--connection con_dml
+START TRANSACTION;
+INSERT INTO t2 VALUES (1, 1);
+UPDATE IGNORE t1 SET f2 = 2 WHERE f1 = 2;
+SET DEBUG_SYNC = "wsrep_before_certification SIGNAL wbc_reached WAIT_FOR wbc_continue";
+--send COMMIT
+
+--connection node_1
+SET DEBUG_SYNC = "now WAIT_FOR wbc_reached";
+
+--connection con_ddl
+SET DEBUG_SYNC = "wsrep_after_toi_begin SIGNAL watb_reached WAIT_FOR watb_continue";
+--send_eval $bf_ddl
+
+--connection node_1
+SET SESSION wsrep_sync_wait = 0;
+SET DEBUG_SYNC = "now WAIT_FOR watb_reached";
+
+--let $galera_sync_point = commit_monitor_enter_sync
+--source include/galera_set_sync_point.inc
+SET DEBUG_SYNC = "now SIGNAL wbc_continue";
+--source include/galera_wait_sync_point.inc
+--source include/galera_clear_sync_point.inc
+--source include/galera_signal_sync_point.inc
+SET DEBUG_SYNC = "now SIGNAL watb_continue";
+
+--connection con_dml
+--reap
+
+--connection con_ddl
+--error 0,ER_TABLE_EXISTS_ERROR
+--reap
+
+--connection node_1
+SET DEBUG_SYNC = "RESET";
+DROP TABLE t2;
+
+--let $wsrep_local_replays_curr = `SELECT VARIABLE_VALUE FROM information_schema.global_status WHERE VARIABLE_NAME = 'wsrep_local_replays'`
+--disable_query_log
+--eval SELECT $wsrep_local_replays_curr - $wsrep_local_replays_orig = $expect_wsrep_local_replays AS wsrep_local_replays
+--enable_query_log
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_bf_abort_committing_by_ddl.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_bf_abort_committing_by_ddl.test
new file mode 100644
index 00000000..d6644ae5
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_bf_abort_committing_by_ddl.test
@@ -0,0 +1,101 @@
+#
+# The purpose of this test is to check that locally executing
+# TOI DDLs will BF abort conflicting transactions.
+#
+# For details, see galera_bf_abort_committing_by_ddl.inc
+#
+
+--source include/galera_cluster.inc
+--source include/have_innodb.inc
+--source include/have_debug_sync.inc
+--source suite/galera/include/galera_have_debug_sync.inc
+
+
+--let galera_connection_name = con_dml
+--let galera_server_number = 1
+--source include/galera_connect.inc
+
+--let galera_connection_name = con_ddl
+--let galera_server_number = 1
+--source include/galera_connect.inc
+
+#
+# Table maintenance DDLs
+#
+
+--echo # ANALYZE TABLE
+--connection node_1
+CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+--let $bf_ddl = ANALYZE TABLE t1
+# Analyze takes read lock, so there is no BF abort
+--let $expect_wsrep_local_replays = 0
+--source galera_bf_abort_committing_by_ddl.inc
+--connection node_1
+DROP TABLE t1;
+
+--echo # OPTIMIZE TABLE
+--connection node_1
+CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+--let $bf_ddl = OPTIMIZE TABLE t1
+--let $expect_wsrep_local_replays = 1
+--source galera_bf_abort_committing_by_ddl.inc
+--connection node_1
+DROP TABLE t1;
+
+--echo # REPAIR TABLE
+--connection node_1
+CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+--let $bf_ddl = REPAIR TABLE t1
+--let $expect_wsrep_local_replays = 1
+--source galera_bf_abort_committing_by_ddl.inc
+--connection node_1
+DROP TABLE t1;
+
+#
+# Other DDLs
+#
+
+--echo # CREATE TABLE
+--connection node_1
+CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+--let $bf_ddl = CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB
+# Create table takes "S" lock to check the existence of the table.
+# Therefore the BF abort does not happen if the table already exists.
+--let $expect_wsrep_local_replays = 0
+--source galera_bf_abort_committing_by_ddl.inc
+--connection node_1
+DROP TABLE t1;
+
+--echo # DROP TABLE
+--connection node_1
+CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+--let $bf_ddl = DROP TABLE t1
+--let $expect_wsrep_local_replays = 1
+--source galera_bf_abort_committing_by_ddl.inc
+
+--echo # ALTER TABLE
+--connection node_1
+CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+--let $bf_ddl = ALTER TABLE t1 ADD COLUMN f3 INT
+--let $expect_wsrep_local_replays = 1
+--source galera_bf_abort_committing_by_ddl.inc
+DROP TABLE t1;
+
+--echo # RENAME TABLE
+--connection node_1
+CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+--let $bf_ddl = RENAME TABLE t1 TO t3;
+--let $expect_wsrep_local_replays = 1
+--source galera_bf_abort_committing_by_ddl.inc
+DROP TABLE t3;
+
+--echo # TRUNCATE TABLE
+--connection node_1
+CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
+--let $bf_ddl = TRUNCATE TABLE t1;
+--let $expect_wsrep_local_replays = 1
+--source galera_bf_abort_committing_by_ddl.inc
+DROP TABLE t1;
+
+--connection node_2
+CALL mtr.add_suppression("Slave SQL: Error 'Table 't1' already exists' on query.");
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_gcs_fragment.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_gcs_fragment.test
index ae1e0d8b..3932ffae 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_gcs_fragment.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_gcs_fragment.test
@@ -1,6 +1,8 @@
 # Test fragmentation over configuration changes
 --source include/galera_cluster.inc
 --source include/have_innodb.inc
+--source suite/galera/include/galera_have_debug_sync.inc
+
 
 # Prepare table
 CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 TEXT);
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.test
index 07838702..fb45fccf 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.test
@@ -7,6 +7,7 @@
 --source include/big_test.inc
 --source include/galera_cluster.inc
 --source include/have_innodb.inc
+--source include/have_debug.inc
 
 --source suite/galera/include/galera_st_kill_slave.inc
 --source suite/galera/include/galera_st_kill_slave_ddl.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_mysqldump.cnf b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_mysqldump.cnf
index db6b7d5e..742d30fd 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_mysqldump.cnf
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_mysqldump.cnf
@@ -1,7 +1,8 @@
 !include ../galera_2nodes.cnf
 
 # We do not set mysqldump-related SST options here because doing so on startup
-# causes the first MTR connection to be forefully dropped by Galera, which in turn confuses MTR
+# causes the first MTR connection to be forcefully dropped by Galera, which in
+# turn confuses MTR
 
 [mysqld.1]
 wsrep_provider_options='base_port=@mysqld.1.#galera_port;pc.ignore_sb=true'
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_mysqldump.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_mysqldump.test
index a9ff8c41..d24197cd 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_mysqldump.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_mysqldump.test
@@ -1,6 +1,7 @@
 --source include/big_test.inc
 --source include/galera_cluster.inc
 --source include/have_innodb.inc
+--source include/have_debug.inc
 
 --source suite/galera/include/galera_sst_set_mysqldump.inc
 
@@ -15,3 +16,7 @@
 --source suite/galera/include/galera_st_kill_slave_ddl.inc
 
 --source suite/galera/include/galera_sst_restore.inc
+
+# this is needed because somehow wsrep_sst_receive_address gets corrupted
+# on repeat run.
+--source include/force_restart.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_restart_joiner.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_restart_joiner.test
index 297f2379..4c758564 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_restart_joiner.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_restart_joiner.test
@@ -14,6 +14,8 @@ INSERT INTO t1 VALUES (1, 'a'), (2, 'a'), (3, 'a'), (4, 'a'), (5, 'a'),(6, 'a');
 
 # Disconnect node #2
 --connection node_2
+SET SESSION wsrep_sync_wait=0;
+SET SESSION wsrep_dirty_reads=ON;
 --source suite/galera/include/galera_unload_provider.inc
 
 --connection node_1
@@ -38,7 +40,6 @@ UPDATE t1 SET f2 = 'c' WHERE f1 > 2;
 --disable_query_log
 # base_port setting is lost for some reason when unloading provider, so we need to restore it
 --eval SET GLOBAL wsrep_provider_options= 'base_port=$NODE_GALERAPORT_2';
---eval SET GLOBAL wsrep_provider = '$wsrep_provider_orig';
 # Make sure IST will block ...
 --let $galera_sync_point = recv_IST_after_apply_trx
 --source include/galera_set_sync_point.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_rsync.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_rsync.test
index 41d1a0c1..c38cabd7 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_rsync.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_rsync.test
@@ -1,6 +1,7 @@
 --source include/big_test.inc
 --source include/galera_cluster.inc
 --source include/have_innodb.inc
+--source include/have_debug.inc
 
 --source suite/galera/include/galera_st_disconnect_slave.inc
 --source suite/galera/include/galera_st_shutdown_slave.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_xtrabackup-v2.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_xtrabackup-v2.test
index 8b399e77..841b39af 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_xtrabackup-v2.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_ist_xtrabackup-v2.test
@@ -1,6 +1,7 @@
 --source include/big_test.inc
 --source include/galera_cluster.inc
 --source include/have_innodb.inc
+--source include/have_debug.inc
 
 --source suite/galera/include/galera_st_disconnect_slave.inc
 --source suite/galera/include/galera_st_shutdown_slave.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_log_bin.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_log_bin.test
index 0f4ba924..50b8b0cc 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_log_bin.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_log_bin.test
@@ -7,6 +7,12 @@
 # rather than Galera's own implementation
 #
 
+--connection node_2
+RESET MASTER;
+
+--connection node_1
+RESET MASTER;
+
 CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB;
 INSERT INTO t1 VALUES (1);
 
@@ -26,7 +32,7 @@ FLUSH LOGS;
 # Use pos 120 in order to skip the header that contains the MySQL version number.
 # Otherwise, version number changes will cause the test to break
 --replace_regex /table_id: [0-9]+/table_id: #/ /xid=[0-9]+/xid=#/
-SHOW BINLOG EVENTS IN '0.000002' FROM 120;
+SHOW BINLOG EVENTS IN '0.000001' FROM 120;
 
 --connection node_2
 SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
@@ -36,6 +42,3 @@ SHOW BINLOG EVENTS IN '0.000001' FROM 120;
 
 DROP TABLE t1;
 DROP TABLE t2;
-
---connection node_1
-RESET MASTER;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_log_output_csv.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_log_output_csv.test
index 94ae3dd6..f315279f 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_log_output_csv.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_log_output_csv.test
@@ -1,5 +1,5 @@
 #
-# Test that --log-output=FILE works with Galera.
+# Test that --log-output=TABLE works with Galera.
 # The relevant options are set using a -master.opt file
 # wsrep_replicate_myisam is not used as it crashes in MTR with mysql-wsrep#14
 #
@@ -7,18 +7,20 @@
 --source include/galera_cluster.inc
 --source include/have_innodb.inc
 
-CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1);
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 INTEGER DEFAULT 0) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1, DEFAULT);
 
 SELECT COUNT(*) > 0 FROM mysql.general_log;
 
-SELECT 1 = 1 FROM t1;
-SELECT COUNT(*) = 1 FROM mysql.slow_log WHERE sql_text = 'SELECT 1 = 1 FROM t1';
+TRUNCATE mysql.slow_log;
+SELECT COUNT(*) = 0 FROM t1 WHERE f2 = 1;
+SELECT COUNT(*) = 1 FROM mysql.slow_log WHERE sql_text = 'SELECT COUNT(*) = 0 FROM t1 WHERE f2 = 1';
 
 --connection node_2
 
-SELECT 2 = 2 FROM t1;
-SELECT COUNT(*) = 1 FROM mysql.slow_log WHERE sql_text = 'SELECT 2 = 2 FROM t1';
+TRUNCATE mysql.slow_log;
+SELECT COUNT(*) = 0 FROM t1 WHERE f2 = 2;
+SELECT COUNT(*) = 1 FROM mysql.slow_log WHERE sql_text = 'SELECT COUNT(*) = 0 FROM t1 WHERE f2 = 2';
 
 --connection node_1
 DROP TABLE t1;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_migrate.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_migrate.test
index 5d498d3f..39e3d943 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_migrate.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_migrate.test
@@ -21,7 +21,6 @@
 #
 
 --connect node_1, 127.0.0.1, root, , test, $NODE_MYPORT_1
-
 CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
 INSERT INTO t1 VALUES (1);
 
@@ -108,6 +107,8 @@ GRANT ALL PRIVILEGES ON *.* TO 'sst';
 SET GLOBAL wsrep_sst_auth = 'sst:';
 
 --connect node_4, 127.0.0.1, root, , test, $NODE_MYPORT_4
+# enforce SST when running in --repeat mode
+--exec rm -rf $MYSQLTEST_VARDIR/mysqld.4/data/grastate.dat
 GRANT ALL PRIVILEGES ON *.* TO 'sst';
 
 --disable_query_log
@@ -118,13 +119,13 @@ GRANT ALL PRIVILEGES ON *.* TO 'sst';
 --eval SET GLOBAL wsrep_cluster_address='gcomm://127.0.0.1:$NODE_GALERAPORT_3'
 --enable_query_log
 
---let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1';
+--let $wait_condition = SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready';
 --source include/wait_condition.inc
 
---let $wait_condition = SELECT COUNT(*) = 6 FROM t1;
+--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1';
 --source include/wait_condition.inc
 
---let $wait_condition = SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready';
+--let $wait_condition = SELECT COUNT(*) = 6 FROM t1;
 --source include/wait_condition.inc
 
 SELECT VARIABLE_VALUE = 'Synced' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment';
@@ -186,18 +187,26 @@ DROP TABLE t1;
 --connection node_2
 DROP TABLE t1;
 
---connection node_3
+--connection node_4
 SET GLOBAL wsrep_provider = 'none';
-SET GLOBAL wsrep_sst_auth = '';
+SET GLOBAL wsrep_sst_method = 'rsync';
 SET GLOBAL wsrep_provider_options = '';
+SET GLOBAL wsrep_sst_receive_address = 'AUTO';
 DROP TABLE t1;
 DROP USER sst;
 
---connection node_4
+--connection node_3
+# make sure node_3 is the last one remaining in cluster for potential
+# reuse with --repeat option
+--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+--let $wait_condition = SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready';
+--source include/wait_condition.inc
+
 SET GLOBAL wsrep_provider = 'none';
-SET GLOBAL wsrep_sst_method = 'rsync';
+SET GLOBAL wsrep_sst_auth = '';
 SET GLOBAL wsrep_provider_options = '';
-SET GLOBAL wsrep_sst_receive_address = 'AUTO';
 DROP TABLE t1;
 DROP USER sst;
 
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_slave_replay.cnf b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_slave_replay.cnf
new file mode 100644
index 00000000..6f2193fe
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_slave_replay.cnf
@@ -0,0 +1,5 @@
+!include ../galera_2nodes_as_slave.cnf
+
+[mysqld]
+log-bin=mysqld-bin
+log-slave-updates
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_slave_replay.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_slave_replay.test
new file mode 100644
index 00000000..5542cf65
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_slave_replay.test
@@ -0,0 +1,204 @@
+#
+# This test tests the operation of transaction replay for async replication slave.
+# If a potentially conflicting galera transaction arrives at
+# just the right time during the commit and has lock conflict with async replication transaction
+# applied by slave SQL thread, then the async replication transaction should either abort
+# or rollback and replay (depending on the nature of lock conflict).
+#
+
+--source include/have_innodb.inc
+--source include/have_debug.inc
+--source include/have_debug_sync.inc
+--source include/have_log_bin.inc
+
+--connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2
+
+--connection node_2a
+--source include/galera_cluster.inc
+--connection node_2a
+--source suite/galera/include/galera_have_debug_sync.inc
+
+#
+# node 1 is native MariaDB server operating as async replication master
+#
+--connection node_1
+RESET MASTER;
+
+--connection node_2a
+RESET SLAVE ALL;
+#
+# count the number of wsrep replay's done in the node
+#
+--let $wsrep_local_replays_old = `SELECT VARIABLE_VALUE FROM information_schema.global_status WHERE VARIABLE_NAME = 'wsrep_local_replays'`
+
+
+#
+# nodes 2 and 3 form a galera cluster, node 2 operates as slave for native MariaDB naster in node 1
+#
+--disable_query_log
+--eval CHANGE MASTER TO  MASTER_HOST='127.0.0.1', MASTER_PORT=$NODE_MYPORT_1;
+--enable_query_log
+START SLAVE USER='root';
+
+--connection node_1
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(1)) engine=innodb;
+INSERT INTO t1 VALUES (1, 'a');
+INSERT INTO t1 VALUES (3, 'a');
+
+#
+# use statement format replication to cause a false positive conflict with async replication transaction
+# and galera replication. The conflict will be on GAP lock, and slave SQL thread should rollback
+# and replay
+#
+set binlog_format=STATEMENT;
+
+SET AUTOCOMMIT=ON;
+START TRANSACTION;
+
+SELECT * FROM t1  FOR UPDATE;
+UPDATE t1 SET f2 = 'c' WHERE f1 > 1;
+
+--connection node_2a
+# wait for create table and inserts to be replicated from master
+SET SESSION wsrep_sync_wait = 0;
+--let $wait_condition = SELECT COUNT(*) = 2 FROM test.t1;
+--source include/wait_condition.inc
+
+# wait for create table and inserts to be replicated in cluster
+--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3
+--connection node_3
+SET SESSION wsrep_sync_wait = 0;
+--let $wait_condition = SELECT COUNT(*) = 2 FROM test.t1;
+--source include/wait_condition.inc
+
+--connection node_2a
+# Block the future commit of async replication
+--let $galera_sync_point = commit_monitor_enter_sync
+--source include/galera_set_sync_point.inc
+
+# block also the applier before applying begins
+SET GLOBAL debug = "d,sync.wsrep_apply_cb";
+
+#
+# now inject a conflicting insert from node 3, it will replicate with
+# earlier seqno (than async transaction) and pause before applying in node 2
+#
+--connection node_3
+INSERT INTO test.t1 VALUES (2, 'b');
+
+#
+# send the update from master, this will succeed here, beceuase of async replication.
+# async replication will apply this in node 2 and pause before commit phase,
+--connection node_1
+--error 0
+COMMIT;
+
+# Wait until async slave commit is blocked in node_2
+--connection node_2a
+--source include/galera_wait_sync_point.inc
+
+#
+# release the applier
+# note: have to clear wsrep_apply_cb sync point first, as async replication will go for replay
+# and as this sync point, after BF applier is released to progress
+#
+SET GLOBAL debug = "";
+SET DEBUG_SYNC = "now SIGNAL signal.wsrep_apply_cb";
+
+# Unblock the async slave commit
+--connection node_2a
+--source include/galera_clear_sync_point.inc
+--source include/galera_signal_sync_point.inc
+
+--connection node_1
+
+SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'a';
+SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'c';
+SELECT * FROM t1;
+
+--connection node_2a
+
+# wsrep_local_replays has increased by 1
+set session wsrep_sync_wait=15;
+--let $wsrep_local_replays_new = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_replays'`
+set session wsrep_sync_wait=0;
+
+--disable_query_log
+--eval SELECT $wsrep_local_replays_new - $wsrep_local_replays_old = 1 AS wsrep_local_replays;
+--enable_query_log
+
+#
+#  replaying of async transaction should be effective, and row 3 having 'c' in f2
+#
+SELECT *  FROM t1;
+SET DEBUG_SYNC = "RESET";
+
+#********************************************************************************
+#	test phase 2
+#********************************************************************************
+
+--echo #
+--echo # test phase with real abort
+--echo #
+
+--connection node_1
+
+set binlog_format=ROW;
+
+insert into t1 values (4, 'd');
+
+SET AUTOCOMMIT=ON;
+START TRANSACTION;
+
+UPDATE t1 SET f2 = 'd' WHERE f1 = 3;
+
+--connection node_2a
+# wait for the last insert to be replicated from master
+--let $wait_condition = SELECT COUNT(*) = 4 FROM test.t1;
+--source include/wait_condition.inc
+
+# Block the commit
+--let $galera_sync_point = commit_monitor_enter_sync
+--source include/galera_set_sync_point.inc
+
+# block applier
+SET GLOBAL debug = "d,sync.wsrep_apply_cb";
+
+# Inject a conflicting update from node 3
+--connection node_3
+UPDATE test.t1 SET f2 = 'e' WHERE f1 = 3;
+
+# send the update from master
+--connection node_1
+--error 0
+COMMIT;
+
+--connection node_2a
+
+# release the applier
+SET GLOBAL debug = "";
+SET DEBUG_SYNC = "now SIGNAL signal.wsrep_apply_cb";
+
+
+# Unblock the async slave commit
+--connection node_2a
+--source include/galera_clear_sync_point.inc
+--source include/galera_signal_sync_point.inc
+SET DEBUG_SYNC = "RESET";
+
+--connection node_2a
+
+set session wsrep_sync_wait=15;
+SELECT COUNT(*) = 1 FROM test.t1 WHERE f2 = 'e';
+set session wsrep_sync_wait=0;
+
+STOP SLAVE;
+RESET SLAVE ALL;
+
+DROP TABLE t1;
+CALL mtr.add_suppression("Slave SQL: Node has dropped from cluster");
+CALL mtr.add_suppression("Slave SQL: Error in Xid_log_event: Commit could not be complete");
+
+--connection node_1
+DROP TABLE t1;
+RESET MASTER;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sp_bf_abort.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sp_bf_abort.test
index bea5067e..b9898ac3 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sp_bf_abort.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sp_bf_abort.test
@@ -4,6 +4,7 @@
 
 --source include/galera_cluster.inc
 --source include/have_innodb.inc
+--source suite/galera/include/galera_have_debug_sync.inc
 
 --connection node_1
 
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sst_mysqldump.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sst_mysqldump.test
index 0b717159..fa9e770c 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sst_mysqldump.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sst_mysqldump.test
@@ -1,6 +1,7 @@
 --source include/big_test.inc
 --source include/galera_cluster.inc
 --source include/have_innodb.inc
+--source include/have_debug.inc
 
 --source suite/galera/include/galera_sst_set_mysqldump.inc
 
@@ -16,3 +17,7 @@
 --source suite/galera/include/galera_st_kill_slave_ddl.inc
 
 --source suite/galera/include/galera_sst_restore.inc
+
+# this is needed because somehow wsrep_sst_receive_address gets corrupted
+# on repeat run.
+--source include/force_restart.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sst_mysqldump_with_key.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sst_mysqldump_with_key.test
index c813e041..0b3edeb7 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sst_mysqldump_with_key.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sst_mysqldump_with_key.test
@@ -20,10 +20,3 @@ SET GLOBAL wsrep_sst_auth = 'sslsst:';
 
 --source suite/galera/include/galera_sst_restore.inc
 DROP USER sslsst;
-
---connection node_2
-# We have to manually restore global_log and slow_query_log due to mysql-wsrep#108
-# Otherwise MTR's check_testcases complains
-
-SET GLOBAL general_log = ON;
-SET GLOBAL slow_query_log = ON;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sst_rsync.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sst_rsync.test
index c6823795..c2fdf8eb 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sst_rsync.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sst_rsync.test
@@ -1,6 +1,7 @@
 --source include/big_test.inc
 --source include/galera_cluster.inc
 --source include/have_innodb.inc
+--source include/have_debug.inc
 
 --source suite/galera/include/galera_st_shutdown_slave.inc
 --source suite/galera/include/galera_st_clean_slave.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sst_xtrabackup-v2.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sst_xtrabackup-v2.test
index c6823795..c2fdf8eb 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sst_xtrabackup-v2.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sst_xtrabackup-v2.test
@@ -1,6 +1,7 @@
 --source include/big_test.inc
 --source include/galera_cluster.inc
 --source include/have_innodb.inc
+--source include/have_debug.inc
 
 --source suite/galera/include/galera_st_shutdown_slave.inc
 --source suite/galera/include/galera_st_clean_slave.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sync_wait_show.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sync_wait_show.test
index 65621c98..4d012275 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sync_wait_show.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_sync_wait_show.test
@@ -3,6 +3,7 @@
 #
 
 --source include/galera_cluster.inc
+--source include/have_debug.inc
 
 --connection node_2
 # MW-86 SHOW commands have now bitmap value 8
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_var_notify_cmd.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_var_notify_cmd.test
index 4fea69f6..f525907c 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_var_notify_cmd.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/galera_var_notify_cmd.test
@@ -1,14 +1,32 @@
 #
-# Test wsrep_notify_cmd. We use a version of the support-files/wsrep_notify.sh script that writes
-# notifications into a table.
+# Test wsrep_notify_cmd. We use a version of the support-files/wsrep_notify.sh
+# script that writes notifications into a table.
+#
+# Restart node_2 to ensure identical conditions on test repeat.
 #
 
 --source include/have_innodb.inc
 --source include/galera_cluster.inc
 
+--connection node_2
+--source include/restart_mysqld.inc
+--source include/wait_until_connected_again.inc
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+--let $wait_condition = SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready';
+--source include/wait_condition.inc
+
 --connection node_1
-SELECT COUNT(DISTINCT uuid) = 2 FROM mtr_wsrep_notify.membership;
-SELECT MAX(size) = 2 FROM mtr_wsrep_notify.status;
-SELECT COUNT(DISTINCT idx) = 2 FROM mtr_wsrep_notify.status;
 
+--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'mtr_wsrep_notify' AND TABLE_NAME = 'membership';
+--source include/wait_condition.inc
+--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'mtr_wsrep_notify' AND TABLE_NAME = 'status';
+--source include/wait_condition.inc
+
+SELECT COUNT(DISTINCT uuid) AS expect_2 FROM mtr_wsrep_notify.membership;
+SELECT MAX(size) AS expect_2 FROM mtr_wsrep_notify.status;
+SELECT COUNT(*) AS expect_1 FROM mtr_wsrep_notify.status;
+
+# Notification schema is private to the node, don't replicate
+SET wsrep_on = OFF;
 DROP SCHEMA mtr_wsrep_notify;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/mysql-wsrep#216.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/mysql-wsrep#216.test
index 6409f332..66f803a5 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/mysql-wsrep#216.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/mysql-wsrep#216.test
@@ -15,17 +15,32 @@ CREATE USER u1 IDENTIFIED BY 'plaintext_password';
 --error ER_CANNOT_USER
 CREATE USER u1 IDENTIFIED BY 'plaintext_password';
 
+--let $assert_only_after = CURRENT_TEST
+
 # Check that the plaintext password does not appear in the logs
---exec grep --count plaintext_password $MYSQLTEST_VARDIR/log/mysqld.1.err || true
---exec grep --count plaintext_password $MYSQLTEST_VARDIR/log/mysqld.2.err || true
+--let $assert_select = plaintext_password
+--let $assert_count = 0
+--let $assert_text = Plaintext password count is 0
+
+--let $assert_file = $MYSQLTEST_VARDIR/log/mysqld.1.err
+--source include/assert_grep.inc
+--let $assert_file = $MYSQLTEST_VARDIR/log/mysqld.2.err
+--source include/assert_grep.inc
 
 # Check that the obfuscated password appears in the logs
+--let $assert_select = 9CAB2BAE176801E82ABA9E55CCCDDBF388E0301D
 
 # Four times for the first node, in the various wsrep_debug messages
---exec grep --count 9CAB2BAE176801E82ABA9E55CCCDDBF388E0301D $MYSQLTEST_VARDIR/log/mysqld.1.err
+--let $assert_count = 4
+--let $assert_text = Obfuscated password count is 4 on the master node
+--let $assert_file = $MYSQLTEST_VARDIR/log/mysqld.1.err
+--source include/assert_grep.inc
 
 # Once for the second node, in the 'Slave SQL' error
---exec grep --count 9CAB2BAE176801E82ABA9E55CCCDDBF388E0301D $MYSQLTEST_VARDIR/log/mysqld.2.err
+--let $assert_count = 1
+--let $assert_text = Obfuscated password count is 1 on the slave node
+--let $assert_file = $MYSQLTEST_VARDIR/log/mysqld.2.err
+--source include/assert_grep.inc
 
 DROP USER u1;
 
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera/t/mysql-wsrep#33.test b/mysql-wsrep-5.6/mysql-test/suite/galera/t/mysql-wsrep#33.test
index acc7c735..859ca44b 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera/t/mysql-wsrep#33.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera/t/mysql-wsrep#33.test
@@ -8,11 +8,3 @@
 --source suite/galera/include/galera_st_disconnect_slave.inc
 
 --source suite/galera/include/galera_sst_restore.inc
-
---connection node_2
-# We have to manually restore global_log and slow_query_log due to mysql-wsrep#108
-# Otherwise MTR's check_testcases complains
-
-SET GLOBAL general_log = ON;
-SET GLOBAL slow_query_log = ON;
-
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_ipv6_mysqldump.result b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_ipv6_mysqldump.result
index f5196549..20994365 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_ipv6_mysqldump.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_ipv6_mysqldump.result
@@ -2,7 +2,7 @@ GRANT ALL PRIVILEGES ON *.* TO 'sst';
 SET GLOBAL wsrep_sst_auth = 'sst:';
 SET GLOBAL wsrep_sst_method = 'mysqldump';
 Unloading wsrep provider ...
-SET GLOBAL wsrep_provider = 'none';
+SET GLOBAL wsrep_cluster_address = '';
 CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
 INSERT INTO t1 VALUES (1);
 Loading wsrep provider ...
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_ist_gcache_rollover.result b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_ist_gcache_rollover.result
index 6c66bf4a..23d4ef2b 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_ist_gcache_rollover.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_ist_gcache_rollover.result
@@ -1,13 +1,15 @@
 CREATE TABLE t1 (f1 INTEGER PRIMARY KEY);
 INSERT INTO t1 VALUES (01), (02), (03), (04), (05);
 Unloading wsrep provider ...
-SET GLOBAL wsrep_provider = 'none';
+SET GLOBAL wsrep_cluster_address = '';
 Unloading wsrep provider ...
-SET GLOBAL wsrep_provider = 'none';
+SET GLOBAL wsrep_cluster_address = '';
 INSERT INTO t1 VALUES (11), (12), (13), (14), (15);
 INSERT INTO t1 VALUES (21), (22), (23), (24), (25);
 SET GLOBAL wsrep_provider_options = 'dbug=d,ist_sender_send_after_get_buffers';
 INSERT INTO t1 VALUES (31), (32), (33), (34), (35);
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 1;
 SHOW STATUS LIKE 'wsrep_debug_sync_waiters';
 Variable_name	Value
 wsrep_debug_sync_waiters	ist_sender_send_after_get_buffers ist_sender_send_after_get_buffers
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_join_with_cc_A.result b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_join_with_cc_A.result
new file mode 100644
index 00000000..0461f1f1
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_join_with_cc_A.result
@@ -0,0 +1,40 @@
+CREATE TABLE t1 (pk INT PRIMARY KEY, node INT) ENGINE=innodb;
+INSERT INTO t1 VALUES (1, 1);
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+INSERT INTO t1 VALUES (2, 3);
+SET wsrep_sync_wait = 0;
+SET wsrep_on = OFF;
+SET GLOBAL wsrep_provider_options = 'dbug=d,after_shift_to_joining';
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+INSERT INTO t1 VALUES (3, 2);
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 0;
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+INSERT INTO t1 VALUES (4, 3);
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+INSERT INTO t1 VALUES (5, 2);
+SET GLOBAL wsrep_provider_options = 'dbug=d,before_send_state_request';
+SET GLOBAL wsrep_provider_options = 'signal=after_shift_to_joining';
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 0;
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+INSERT INTO t1 VALUES (6, 3);
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+INSERT INTO t1 VALUES (7, 2);
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+INSERT INTO t1 VALUES (8, 3);
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+SET GLOBAL wsrep_provider_options = 'dbug=d,process_primary_configuration';
+SET GLOBAL wsrep_provider_options = 'signal=before_send_state_request';
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 0;
+INSERT INTO t1 VALUES (9, 2);
+SET GLOBAL wsrep_provider_options = 'signal=process_primary_configuration';
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 0;
+SET GLOBAL wsrep_provider_options = 'signal=process_primary_configuration';
+SET GLOBAL wsrep_provider_options = 'dbug=';
+DROP TABLE t1;
+call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
+call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
+call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_join_with_cc_B.result b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_join_with_cc_B.result
new file mode 100644
index 00000000..9a6fc088
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_join_with_cc_B.result
@@ -0,0 +1,44 @@
+CREATE TABLE t1 (pk INT PRIMARY KEY, node INT) ENGINE=innodb;
+INSERT INTO t1 VALUES (1, 1);
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+INSERT INTO t1 VALUES (2, 3);
+SET wsrep_sync_wait = 0;
+SET wsrep_on = OFF;
+SET GLOBAL wsrep_provider_options = 'dbug=d,after_shift_to_joining';
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+INSERT INTO t1 VALUES (3, 2);
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 0;
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+INSERT INTO t1 VALUES (4, 3);
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+INSERT INTO t1 VALUES (5, 2);
+SET GLOBAL wsrep_provider_options = 'dbug=d,before_send_state_request';
+SET GLOBAL wsrep_provider_options = 'signal=after_shift_to_joining';
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 0;
+SET GLOBAL wsrep_provider_options = 'dbug=';
+SET GLOBAL wsrep_provider_options = 'signal=before_send_state_request';
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 0;
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+INSERT INTO t1 VALUES (6, 3);
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+INSERT INTO t1 VALUES (7, 2);
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+INSERT INTO t1 VALUES (8, 3);
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+SET GLOBAL wsrep_provider_options = 'dbug=d,process_primary_configuration';
+SET GLOBAL wsrep_provider_options = 'signal=after_shift_to_joining';
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 0;
+INSERT INTO t1 VALUES (9, 2);
+SET GLOBAL wsrep_provider_options = 'signal=process_primary_configuration';
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 0;
+SET GLOBAL wsrep_provider_options = 'signal=process_primary_configuration';
+SET GLOBAL wsrep_provider_options = 'dbug=';
+DROP TABLE t1;
+call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
+call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
+call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_join_with_cc_C.result b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_join_with_cc_C.result
new file mode 100644
index 00000000..cc6e434c
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/r/galera_join_with_cc_C.result
@@ -0,0 +1,51 @@
+CREATE TABLE t1 (pk INT PRIMARY KEY, node INT) ENGINE=innodb;
+INSERT INTO t1 VALUES (1, 1);
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+INSERT INTO t1 VALUES (2, 3);
+SET wsrep_sync_wait = 0;
+SET wsrep_on = OFF;
+SET GLOBAL wsrep_provider_options = 'dbug=d,after_shift_to_joining';
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+INSERT INTO t1 VALUES (3, 2);
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 0;
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+INSERT INTO t1 VALUES (4, 3);
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+INSERT INTO t1 VALUES (5, 2);
+SET GLOBAL wsrep_provider_options = 'dbug=d,before_send_state_request';
+SET GLOBAL wsrep_provider_options = 'signal=after_shift_to_joining';
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 0;
+SET GLOBAL wsrep_provider_options = 'dbug=';
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+SET GLOBAL wsrep_provider_options = 'dbug=d,after_shift_to_joining';
+SET GLOBAL wsrep_provider_options = 'signal=before_send_state_request';
+INSERT INTO t1 VALUES (6, 3);
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+INSERT INTO t1 VALUES (7, 2);
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 0;
+SET GLOBAL wsrep_provider_options = 'dbug=';
+SET GLOBAL wsrep_provider_options = 'dbug=d,process_primary_configuration';
+SET GLOBAL wsrep_provider_options = 'signal=after_shift_to_joining';
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+INSERT INTO t1 VALUES (8, 3);
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 0;
+INSERT INTO t1 VALUES (9, 2);
+SET GLOBAL wsrep_provider_options = 'signal=process_primary_configuration';
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 0;
+SET GLOBAL wsrep_provider_options = 'dbug=';
+SET GLOBAL wsrep_provider_options = 'signal=process_primary_configuration';
+SET SESSION wsrep_on = 0;
+SET SESSION wsrep_on = 0;
+SET GLOBAL wsrep_provider_options = 'dbug=';
+SET GLOBAL wsrep_provider_options = 'signal=after_shift_to_joining';
+DROP TABLE t1;
+call mtr.add_suppression("WSREP: Send action {\(.*\), STATE_REQUEST} returned -107 \\(Transport endpoint is not connected\\)");
+call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
+call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
+call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_ipv6_xtrabackup-v2.test b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_ipv6_xtrabackup-v2.test
index 84eee017..5a6152b3 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_ipv6_xtrabackup-v2.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_ipv6_xtrabackup-v2.test
@@ -57,6 +57,6 @@ DROP TABLE t1;
 --let $assert_select = Prepared IST receiver, listening at: tcp://\[::1\]
 --source include/assert_grep.inc
 
-
-
+# need to restart to force SST again (for --repeat option)
+--source include/force_restart.inc
 
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_ist_gcache_rollover.test b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_ist_gcache_rollover.test
index 7d8bbb39..8942a0c4 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_ist_gcache_rollover.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_ist_gcache_rollover.test
@@ -44,7 +44,6 @@ INSERT INTO t1 VALUES (21), (22), (23), (24), (25);
 # ... and restart providers to force IST
 --connection node_2
 --disable_query_log
---eval SET GLOBAL wsrep_provider = '$wsrep_provider_orig';
 --eval SET GLOBAL wsrep_cluster_address = '$wsrep_cluster_address_orig';
 --enable_query_log
 
@@ -53,12 +52,13 @@ INSERT INTO t1 VALUES (31), (32), (33), (34), (35);
 
 --connection node_3
 --disable_query_log
---eval SET GLOBAL wsrep_provider = '$wsrep_provider_orig';
 --eval SET GLOBAL wsrep_cluster_address = '$wsrep_cluster_address_orig';
 --enable_query_log
 
 --connection node_1
---sleep 2
+--let $galera_sync_point = ist_sender_send_after_get_buffers ist_sender_send_after_get_buffers
+--source include/galera_wait_sync_point.inc
+--let $galera_sync_point = ist_sender_send_after_get_buffers
 SHOW STATUS LIKE 'wsrep_debug_sync_waiters';
 
 INSERT INTO t1 VALUES (41), (42), (43), (44), (45);
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_join_with_cc_A.test b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_join_with_cc_A.test
new file mode 100644
index 00000000..e181b683
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_join_with_cc_A.test
@@ -0,0 +1,262 @@
+#
+# Tests handling of several configuration changes while a joiner gets
+# state transfer
+#
+# Variant A: sending of state transfer request delayed until two more
+#            primary configuration changes happen
+#
+# Refs codersihp/galera-bugs#454
+#
+--source include/have_innodb.inc
+--source include/galera_cluster.inc
+--source suite/galera/include/galera_have_debug_sync.inc
+
+--let $galera_connection_name = node_3
+--let $galera_server_number = 3
+--source include/galera_connect.inc
+
+--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+CREATE TABLE t1 (pk INT PRIMARY KEY, node INT) ENGINE=innodb;
+INSERT INTO t1 VALUES (1, 1);
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 1 FROM t1;
+--source include/wait_condition.inc
+
+#
+# Isolate node_1 and update cluster state to force node 1 into joiner mode
+#
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+--connection node_3
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+INSERT INTO t1 VALUES (2, 3);
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 2 FROM t1;
+--source include/wait_condition.inc
+
+#
+# Now reconnect node_1 but first make it block before sending state transfer
+# request
+#
+# THIS IS PC1
+#
+--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
+SET wsrep_sync_wait = 0;
+SET wsrep_on = OFF;
+--let $galera_sync_point = after_shift_to_joining
+--source include/galera_set_sync_point.inc
+
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+INSERT INTO t1 VALUES (3, 2);
+
+--connection node_1a
+--source include/galera_wait_sync_point.inc
+#
+# At this point every node thinks that node_1 is in a JOINER state
+#
+
+--connection node_3
+--let $wait_condition = SELECT COUNT(*) = 3 FROM t1;
+--source include/wait_condition.inc
+
+#
+# Now that node_1 sent state request and became JOINER isolate node_1 again
+# and commit one more action, so that node_1 loses JOINER state
+#
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+--connection node_3
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+INSERT INTO t1 VALUES (4, 3);
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 4 FROM t1;
+--source include/wait_condition.inc
+
+#
+# Reconnect node_1 again
+#
+# THIS IS PC2
+#
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+#
+# After this point node_1 is no longer JOINER and is required to start the
+# whole procedure over because it missed some actions (4th insert into t1)
+#
+
+INSERT INTO t1 VALUES (5, 2);
+
+--connection node_3
+--let $wait_condition = SELECT COUNT(*) = 5 FROM t1;
+--source include/wait_condition.inc
+
+#
+# Now let node_1 continue with IST and finish processing PC1, but make it
+# block when processing PC2 just before sending state transfer request
+#
+--connection node_1a
+--let $galera_sync_point = before_send_state_request
+--source include/galera_set_sync_point.inc
+--let $galera_sync_point = after_shift_to_joining
+--source include/galera_signal_sync_point.inc
+--let $galera_sync_point = before_send_state_request
+--source include/galera_wait_sync_point.inc
+
+# since PC1 has been processed node_1 must have 3 rows in t1
+# 2 were there before PC1 and one was added while in PC1
+--let $wait_condition = SELECT COUNT(*) = 3 FROM t1;
+--source include/wait_condition.inc
+
+#
+# Now disconnect and reconnect node_1 again to get PC3
+# It still is blocked before sending state transfer request in PC2.
+#
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+--connection node_3
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+INSERT INTO t1 VALUES (6, 3);
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 6 FROM t1;
+--source include/wait_condition.inc
+
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+#
+# This is PC3
+#
+
+INSERT INTO t1 VALUES (7, 2);
+
+--connection node_3
+--let $wait_condition = SELECT COUNT(*) = 7 FROM t1;
+--source include/wait_condition.inc
+
+#
+# Now disconnect and reconnect node_1 again to get PC4 and allow node_1
+# to send state transfer request to be delivered in PC4 (and thus get
+# updated to PC4 seqno in state transfer.
+# Note that node_1 still processes PC2.
+#
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+--connection node_3
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+INSERT INTO t1 VALUES (8, 3);
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 8 FROM t1;
+--source include/wait_condition.inc
+
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+#
+# This is PC4. node_1 is still processing PC2, waiting to send state trasfer
+# request
+#
+--connection node_1a
+--let $galera_sync_point = process_primary_configuration
+--source include/galera_set_sync_point.inc
+--let $galera_sync_point = before_send_state_request
+--source include/galera_signal_sync_point.inc
+# sent STR from PC2 into PC4
+
+--let $galera_sync_point = process_primary_configuration
+--source include/galera_wait_sync_point.inc
+#
+# Now node_1 is processing PC3, but should have completed state transfer from
+# PC4 and thus must have 8 rows in t1
+#
+--let $wait_condition = SELECT COUNT(*) = 8 FROM t1;
+--source include/wait_condition.inc
+
+--connection node_2
+INSERT INTO t1 VALUES (9, 2);
+
+--connection node_3
+--let $wait_condition = SELECT COUNT(*) = 9 FROM t1;
+--source include/wait_condition.inc
+
+--connection node_1a
+#--let $galera_sync_point = process_primary_configuration
+--source include/galera_signal_sync_point.inc
+--source include/galera_wait_sync_point.inc
+#
+# Now node_1 is processing PC4, still must have 8 rows in t1
+#
+--let $wait_condition = SELECT COUNT(*) = 8 FROM t1;
+--source include/wait_condition.inc
+
+#--let $galera_sync_point = process_primary_configuration
+--source include/galera_signal_sync_point.inc
+--source include/galera_clear_sync_point.inc
+
+--let $wait_condition = SELECT COUNT(*) = 9 FROM t1;
+--source include/wait_condition.inc
+
+--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready';
+--source include/wait_condition.inc
+
+DROP TABLE t1;
+
+call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
+
+--connection node_2
+call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
+
+--connection node_3
+call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_join_with_cc_B.test b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_join_with_cc_B.test
new file mode 100644
index 00000000..1082fcc3
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_join_with_cc_B.test
@@ -0,0 +1,275 @@
+#
+# Tests handling of several configuration changes while a joiner gets
+# state transfer
+#
+# Variant B: sending of state transfer request is immediate but completion
+#            of IST delayed until two more primary configuration changes happen
+#
+# Refs codersihp/galera-bugs#454
+#
+--source include/have_innodb.inc
+--source include/galera_cluster.inc
+--source suite/galera/include/galera_have_debug_sync.inc
+
+--let $galera_connection_name = node_3
+--let $galera_server_number = 3
+--source include/galera_connect.inc
+
+--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+CREATE TABLE t1 (pk INT PRIMARY KEY, node INT) ENGINE=innodb;
+INSERT INTO t1 VALUES (1, 1);
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 1 FROM t1;
+--source include/wait_condition.inc
+
+#
+# Isolate node_1 and update cluster state to force node 1 into joiner mode
+#
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+--connection node_3
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+INSERT INTO t1 VALUES (2, 3);
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 2 FROM t1;
+--source include/wait_condition.inc
+
+#
+# Now reconnect node_1 but first make it block before sending state transfer
+# request
+#
+# THIS IS PC1
+#
+--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
+SET wsrep_sync_wait = 0;
+SET wsrep_on = OFF;
+--let $galera_sync_point = after_shift_to_joining
+--source include/galera_set_sync_point.inc
+
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+INSERT INTO t1 VALUES (3, 2);
+
+--connection node_1a
+--source include/galera_wait_sync_point.inc
+#
+# At this point every node thinks that node_1 is in a JOINER state
+#
+
+--connection node_3
+--let $wait_condition = SELECT COUNT(*) = 3 FROM t1;
+--source include/wait_condition.inc
+
+#
+# Now that node_1 sent state request and became JOINER isolate node_1 again
+# and commit one more action, so that node_1 loses JOINER state
+#
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+--connection node_3
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+INSERT INTO t1 VALUES (4, 3);
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 4 FROM t1;
+--source include/wait_condition.inc
+
+#
+# Reconnect node_1 again
+#
+# THIS IS PC2
+#
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+#
+# After this point node_1 is no longer JOINER and is required to start the
+# whole procedure over because it missed some actions (4th insert into t1)
+#
+
+INSERT INTO t1 VALUES (5, 2);
+
+--connection node_3
+--let $wait_condition = SELECT COUNT(*) = 5 FROM t1;
+--source include/wait_condition.inc
+
+#
+# Now let node_1 continue with IST and finish processing PC1, but make it
+# block when processing PC2 right after progressing to JOINER state and
+# before IST happens.
+#
+--connection node_1a
+--let $galera_sync_point = before_send_state_request
+--source include/galera_set_sync_point.inc
+--let $galera_sync_point = after_shift_to_joining
+--source include/galera_signal_sync_point.inc
+--let $galera_sync_point = before_send_state_request
+--source include/galera_wait_sync_point.inc
+--source include/galera_clear_sync_point.inc
+# Here node_1 is processing PC2 just before sending state request
+
+# since PC1 has been processed node_1 must have 3 rows in t1
+# 2 were there before PC1 and one was added while in PC1
+--let $wait_condition = SELECT COUNT(*) = 3 FROM t1;
+--source include/wait_condition.inc
+
+# Proceed to sending state transfer request and block right after
+--source include/galera_signal_sync_point.inc # before_send_state_request
+--let $galera_sync_point = after_shift_to_joining
+--source include/galera_wait_sync_point.inc
+
+#
+# Now disconnect and reconnect node_1 again to get PC3
+# It is blocked right after shifting to JOINING state.
+#
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+--connection node_3
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+INSERT INTO t1 VALUES (6, 3);
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 6 FROM t1;
+--source include/wait_condition.inc
+
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+#
+# This is PC3
+#
+
+INSERT INTO t1 VALUES (7, 2);
+
+--connection node_3
+--let $wait_condition = SELECT COUNT(*) = 7 FROM t1;
+--source include/wait_condition.inc
+
+#
+# Now disconnect and reconnect node_1 again to get PC4 and allow node_1
+# to continue with IST.
+# Note that node_1 still processes PC2 and is joining.
+#
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+--connection node_3
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+INSERT INTO t1 VALUES (8, 3);
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 8 FROM t1;
+--source include/wait_condition.inc
+
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+#
+# This is PC4. node_1 is still processing PC2, waiting to send state trasfer
+# request
+#
+--connection node_1a
+--let $galera_sync_point = process_primary_configuration
+--source include/galera_set_sync_point.inc
+--let $galera_sync_point = after_shift_to_joining
+--source include/galera_signal_sync_point.inc
+# continue with IST prepared for in PC2
+
+--let $galera_sync_point = process_primary_configuration
+--source include/galera_wait_sync_point.inc
+
+#
+# Now node_1 is processing PC3, and should have finished state transfer
+# State tranfer request was dilivered before PC3, so node_1 should have
+# received IST up to 4 rows in t1 (what was there before PC2) plus one more
+# INSERT while in PC2.
+#
+--let $wait_condition = SELECT COUNT(*) = 5 FROM t1;
+--source include/wait_condition.inc
+
+--connection node_2
+INSERT INTO t1 VALUES (9, 2);
+
+--connection node_3
+--let $wait_condition = SELECT COUNT(*) = 9 FROM t1;
+--source include/wait_condition.inc
+
+--connection node_1a
+--let $galera_sync_point = process_primary_configuration
+--source include/galera_signal_sync_point.inc
+--source include/galera_wait_sync_point.inc
+#SELECT * FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_debug_sync_waiters';
+
+#
+# Now node_1 is processing PC4, still must have 8 rows in t1
+#
+--let $wait_condition = SELECT COUNT(*) = 8 FROM t1;
+--source include/wait_condition.inc
+
+--let $galera_sync_point = process_primary_configuration
+--source include/galera_signal_sync_point.inc
+--source include/galera_clear_sync_point.inc
+
+--let $wait_condition = SELECT COUNT(*) = 9 FROM t1;
+--source include/wait_condition.inc
+
+--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready';
+--source include/wait_condition.inc
+
+DROP TABLE t1;
+
+call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
+
+--connection node_2
+call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
+
+--connection node_3
+call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
diff --git a/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_join_with_cc_C.test b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_join_with_cc_C.test
new file mode 100644
index 00000000..bab33090
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/galera_3nodes/t/galera_join_with_cc_C.test
@@ -0,0 +1,298 @@
+#
+# Tests handling of several configuration changes while a joiner gets
+# state transfer
+#
+# Variant C: sending of state transfer request is scheduled while in non-PRIM
+#
+# Refs codersihp/galera-bugs#454
+#
+--source include/have_innodb.inc
+--source include/galera_cluster.inc
+--source suite/galera/include/galera_have_debug_sync.inc
+
+--let $galera_connection_name = node_3
+--let $galera_server_number = 3
+--source include/galera_connect.inc
+
+--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+CREATE TABLE t1 (pk INT PRIMARY KEY, node INT) ENGINE=innodb;
+INSERT INTO t1 VALUES (1, 1);
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 1 FROM t1;
+--source include/wait_condition.inc
+
+#
+# Isolate node_1 and update cluster state to force node 1 into joiner mode
+#
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+--connection node_3
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+INSERT INTO t1 VALUES (2, 3);
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 2 FROM t1;
+--source include/wait_condition.inc
+
+#
+# Now reconnect node_1 but first make it block before sending state transfer
+# request
+#
+# THIS IS PC1
+#
+--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
+SET wsrep_sync_wait = 0;
+SET wsrep_on = OFF;
+--let $galera_sync_point = after_shift_to_joining
+--source include/galera_set_sync_point.inc
+
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+INSERT INTO t1 VALUES (3, 2);
+
+--connection node_1a
+--source include/galera_wait_sync_point.inc
+#
+# At this point every node thinks that node_1 is in a JOINER state
+#
+
+--connection node_3
+--let $wait_condition = SELECT COUNT(*) = 3 FROM t1;
+--source include/wait_condition.inc
+
+#
+# Now that node_1 sent state request and became JOINER isolate node_1 again
+# and commit one more action, so that node_1 loses JOINER state
+#
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+--connection node_3
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+INSERT INTO t1 VALUES (4, 3);
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 4 FROM t1;
+--source include/wait_condition.inc
+
+#
+# Reconnect node_1 again
+#
+# THIS IS PC2
+#
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+#
+# After this point node_1 is no longer JOINER and is required to start the
+# whole procedure over because it missed some actions (4th insert into t1)
+#
+
+INSERT INTO t1 VALUES (5, 2);
+
+--connection node_3
+--let $wait_condition = SELECT COUNT(*) = 5 FROM t1;
+--source include/wait_condition.inc
+
+#
+# Now let node_1 continue with IST and finish processing PC1, but make it
+# block when processing PC2 right after progressing to JOINER state and
+# before IST happens.
+#
+--connection node_1a
+--let $galera_sync_point = before_send_state_request
+--source include/galera_set_sync_point.inc
+--let $galera_sync_point = after_shift_to_joining
+--source include/galera_signal_sync_point.inc
+--let $galera_sync_point = before_send_state_request
+--source include/galera_wait_sync_point.inc
+--source include/galera_clear_sync_point.inc
+# Here we are processing PC2 just before sending state request
+
+# since PC1 has been processed node_1 must have 3 rows in t1
+# 2 were there before PC1 and one was added while in PC1
+--let $wait_condition = SELECT COUNT(*) = 3 FROM t1;
+--source include/wait_condition.inc
+
+#
+# Now disconnect and reconnect node_1 again to get PC3
+# It still is blocked before sending state transfer request in PC2.
+#
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+--connection node_3
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+# Proceed to sending state transfer request
+--connection node_1a
+--let $galera_sync_point = after_shift_to_joining
+--source include/galera_set_sync_point.inc
+--let $galera_sync_point = before_send_state_request
+--source include/galera_signal_sync_point.inc # before_send_state_request
+#
+# node_1 proceeds to sending state transfer request, it will be delivered only
+# in the next PC which is PC3. Only then the node will shift to JOINING
+#
+
+--connection node_3
+INSERT INTO t1 VALUES (6, 3);
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 6 FROM t1;
+--source include/wait_condition.inc
+
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+#
+# This is PC3
+#
+
+INSERT INTO t1 VALUES (7, 2);
+
+--connection node_3
+--let $wait_condition = SELECT COUNT(*) = 7 FROM t1;
+--source include/wait_condition.inc
+
+# node_1 is stiil processing PC2, it was let to send state transfer request
+# while in non-PRIM. Now it should be able to complete it and shift to
+# JOINING. Make it block on next PC(3) and continue to receive IST
+--connection node_1a
+--let $galera_sync_point = after_shift_to_joining
+--source include/galera_wait_sync_point.inc
+--source include/galera_clear_sync_point.inc # won't need it any more
+--let $galera_sync_point = process_primary_configuration
+--source include/galera_set_sync_point.inc
+--let $galera_sync_point = after_shift_to_joining
+--source include/galera_signal_sync_point.inc
+# continue with IST while still processing PC2
+
+#
+# Now disconnect and reconnect node_1 again to generate PC4.
+#
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=1';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+--connection node_3
+--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+INSERT INTO t1 VALUES (8, 3);
+
+--connection node_2
+--let $wait_condition = SELECT COUNT(*) = 8 FROM t1;
+--source include/wait_condition.inc
+
+--connection node_1
+SET GLOBAL wsrep_provider_options='gmcast.isolate=0';
+
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+#
+# This is PC4. node_1 should complete IST, complete PC2, and continue
+# with the next item in queue
+#
+--connection node_1a
+--let $galera_sync_point = process_primary_configuration
+--source include/galera_wait_sync_point.inc
+
+#
+# Now node_1 is blocked before processing PC3, and should have finished state
+# transfer started while in PC2.
+# State tranfer request was dilivered in PC3 to donor, so node_1 should have
+# received IST up to 6 rows in t1 (what was there before PC3).
+#
+--let $wait_condition = SELECT COUNT(*) = 6 FROM t1;
+--source include/wait_condition.inc
+
+--connection node_2
+INSERT INTO t1 VALUES (9, 2);
+
+--connection node_3
+--let $wait_condition = SELECT COUNT(*) = 9 FROM t1;
+--source include/wait_condition.inc
+
+--connection node_1a
+# continue with processing PC3
+--let $galera_sync_point = process_primary_configuration
+--source include/galera_signal_sync_point.inc
+
+# wait for row that follows PC3
+--let $wait_condition = SELECT COUNT(*) = 7 FROM t1;
+--source include/wait_condition.inc
+
+# wait till PC4
+--let $galera_sync_point = process_primary_configuration
+--source include/galera_wait_sync_point.inc
+#
+# Now node_1 is processing PC4, still must have 7 rows in t1
+#
+--let $wait_condition = SELECT COUNT(*) = 7 FROM t1;
+--source include/wait_condition.inc
+
+# Continue with PC4
+--let $galera_sync_point = process_primary_configuration
+--source include/galera_clear_sync_point.inc
+--source include/galera_signal_sync_point.inc
+--let $galera_sync_point = after_shift_to_joining
+--source include/galera_wait_sync_point.inc
+#SELECT * FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_debug_sync_waiters';
+--source include/galera_clear_sync_point.inc
+--source include/galera_signal_sync_point.inc
+
+--let $wait_condition = SELECT COUNT(*) = 9 FROM t1;
+--source include/wait_condition.inc
+
+--connection node_1
+--let $wait_condition = SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready';
+--source include/wait_condition.inc
+
+DROP TABLE t1;
+
+call mtr.add_suppression("WSREP: Send action {\(.*\), STATE_REQUEST} returned -107 \\(Transport endpoint is not connected\\)");
+call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
+
+--connection node_2
+call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
+
+--connection node_3
+call mtr.add_suppression("WSREP: Rejecting JOIN message from \(.*\): new State Transfer required.");
diff --git a/mysql-wsrep-5.6/mysql-test/suite/innodb/r/import_tablespace_schema_missmatch.result b/mysql-wsrep-5.6/mysql-test/suite/innodb/r/import_tablespace_schema_missmatch.result
new file mode 100644
index 00000000..ac887c62
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/innodb/r/import_tablespace_schema_missmatch.result
@@ -0,0 +1,58 @@
+#
+# Bug #30190227 CRASH IMPORTING TABLESPACE WITH DIFFERENT DATA DIRECTORY
+# BUT NOT .CFG FILE
+#
+# Test-case-1
+SET default_storage_engine=InnoDB;
+CREATE TABLE t1 (id int unsigned NOT NULL PRIMARY KEY) DATA DIRECTORY='MYSQL_TMP_DIR/alt_dir';
+INSERT INTO t1 VALUES (1), (2), (3);
+FLUSH TABLES t1 FOR EXPORT;
+UNLOCK TABLES;
+DROP TABLE t1;
+CREATE TABLE t1 (id int unsigned NOT NULL PRIMARY KEY);
+ALTER TABLE t1 DISCARD TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Schema mismatch (Table location flags do not match. The source table uses a DATA DIRECTORY but the destination table does not.)
+DROP TABLE t1;
+#
+# Test-case-2
+CREATE TABLE t1 (id int unsigned NOT NULL PRIMARY KEY);
+INSERT INTO t1 VALUES (1), (2), (3);
+FLUSH TABLES t1 FOR EXPORT;
+UNLOCK TABLES;
+DROP TABLE t1;
+CREATE TABLE t1 (id int unsigned NOT NULL PRIMARY KEY) DATA DIRECTORY='MYSQL_TMP_DIR/alt_dir';
+ALTER TABLE t1 DISCARD TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Schema mismatch (Table location flags do not match. The source table does not use a DATA DIRECTORY but the destination table does.)
+DROP TABLE t1;
+#
+# Bug #30190199 ERROR WHEN IMPORTING TABLESPACE WITH DIFFERENT DATA
+# DIRECTORY LACKS DETAILS
+#
+# Test-case-3
+CREATE TABLE t1 (id int unsigned NOT NULL PRIMARY KEY) DATA DIRECTORY='MYSQL_TMP_DIR/alt_dir';
+INSERT INTO t1 VALUES (1), (2), (3);
+FLUSH TABLES t1 FOR EXPORT;
+UNLOCK TABLES;
+DROP TABLE t1;
+CREATE TABLE t1 (id int unsigned NOT NULL PRIMARY KEY);
+ALTER TABLE t1 DISCARD TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Schema mismatch (Table location flags do not match. The source table uses a DATA DIRECTORY but the destination table does not.)
+DROP TABLE t1;
+#
+# Test-case-4
+CREATE TABLE t1 (id int unsigned NOT NULL PRIMARY KEY);
+INSERT INTO t1 VALUES (1), (2), (3);
+FLUSH TABLES t1 FOR EXPORT;
+UNLOCK TABLES;
+DROP TABLE t1;
+CREATE TABLE t1 (id int unsigned NOT NULL PRIMARY KEY) DATA DIRECTORY='MYSQL_TMP_DIR/alt_dir';
+ALTER TABLE t1 DISCARD TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Schema mismatch (Table location flags do not match. The source table does not use a DATA DIRECTORY but the destination table does.)
+DROP TABLE t1;
+#
+# Cleanup
+#
diff --git a/mysql-wsrep-5.6/mysql-test/suite/innodb/r/innodb_sys_var_valgrind.result b/mysql-wsrep-5.6/mysql-test/suite/innodb/r/innodb_sys_var_valgrind.result
new file mode 100644
index 00000000..a34e1b5b
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/innodb/r/innodb_sys_var_valgrind.result
@@ -0,0 +1,70 @@
+#
+# Bug #29717909	MEMORY LIFETIME OF VARIABLES BETWEEN CHECK AND UPDATE INCORRECTLY MANAGED
+#
+select @@innodb_ft_server_stopword_table;
+@@innodb_ft_server_stopword_table
+NULL
+create table user_stopword_1(value varchar(30)) engine = innodb;
+create table user_stopword_2(value varchar(30)) engine = innodb;
+set @blah = 'test/user_stopword_1';
+SET GLOBAL innodb_ft_server_stopword_table= @blah;
+select @@innodb_ft_server_stopword_table;
+@@innodb_ft_server_stopword_table
+test/user_stopword_1
+set @blah = 'test/user_stopword_2';
+SET GLOBAL innodb_ft_server_stopword_table= @blah;
+select @@innodb_ft_server_stopword_table;
+@@innodb_ft_server_stopword_table
+test/user_stopword_2
+SET GLOBAL innodb_ft_server_stopword_table= NULL;
+select @@innodb_ft_server_stopword_table;
+@@innodb_ft_server_stopword_table
+NULL
+SET GLOBAL innodb_ft_server_stopword_table= default;
+select @@innodb_ft_server_stopword_table;
+@@innodb_ft_server_stopword_table
+NULL
+drop table user_stopword_1, user_stopword_2;
+select @@innodb_buffer_pool_filename;
+@@innodb_buffer_pool_filename
+ib_buffer_pool
+set @blah='hello';
+set global innodb_buffer_pool_filename = @blah;
+select @@innodb_buffer_pool_filename;
+@@innodb_buffer_pool_filename
+hello
+set global innodb_buffer_pool_filename="bye";
+select @@innodb_buffer_pool_filename;
+@@innodb_buffer_pool_filename
+bye
+set global innodb_buffer_pool_filename=NULL;
+ERROR 42000: Variable 'innodb_buffer_pool_filename' can't be set to the value of 'NULL'
+set global innodb_buffer_pool_filename=default;
+select @@innodb_buffer_pool_filename;
+@@innodb_buffer_pool_filename
+ib_buffer_pool
+CREATE TABLE t1 ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
+opening_line TEXT(500), author VARCHAR(200), title VARCHAR(200), FULLTEXT idx
+(opening_line)) ENGINE=InnoDB;
+CREATE TABLE t2 ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
+opening_line TEXT(500), author VARCHAR(200), title VARCHAR(200), FULLTEXT idx
+(opening_line)) ENGINE=InnoDB;
+select @@innodb_ft_aux_table;
+@@innodb_ft_aux_table
+NULL
+set @blah = 'test/t1';
+SET GLOBAL innodb_ft_aux_table = @blah;
+select @@innodb_ft_aux_table;
+@@innodb_ft_aux_table
+test/t1
+set @blah = 'test/t2';
+SET GLOBAL innodb_ft_aux_table = @blah;
+SET GLOBAL innodb_ft_aux_table = NULL;
+select @@innodb_ft_aux_table;
+@@innodb_ft_aux_table
+NULL
+SET GLOBAL innodb_ft_aux_table =default;
+select @@innodb_ft_aux_table;
+@@innodb_ft_aux_table
+NULL
+drop table t1,t2;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/innodb/t/galera.skip b/mysql-wsrep-5.6/mysql-test/suite/innodb/t/galera.skip
index d9e70131..5af7f7eb 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/innodb/t/galera.skip
+++ b/mysql-wsrep-5.6/mysql-test/suite/innodb/t/galera.skip
@@ -24,3 +24,7 @@ innodb_stats_table_flag_auto_recalc : Performs multiple restarts in a row which
 innodb_deadlock_with_autoinc : Test uses autoinc_lock_mode = 0
 ibuf_not_empty : InnoDB: Failing assertion: !srv_read_only_mode with server restart
 innodb_force_recovery : InnoDB: Failing assertion: !srv_read_only_mode with server restart
+innodb-log-file-size-1 : Process exit code mismatch on SE init failure.
+innodb-log-file-size : Process exit code mismatch on SE init failure.
+innodb_bug70867 : Process exit code mismatch on SE init failure.
+innodb_page_size_func : Process exit code mismatch on SE init failure.
diff --git a/mysql-wsrep-5.6/mysql-test/suite/innodb/t/import_tablespace_schema_missmatch.test b/mysql-wsrep-5.6/mysql-test/suite/innodb/t/import_tablespace_schema_missmatch.test
new file mode 100644
index 00000000..c8ec2b9c
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/innodb/t/import_tablespace_schema_missmatch.test
@@ -0,0 +1,119 @@
+--echo #
+--echo # Bug #30190227 CRASH IMPORTING TABLESPACE WITH DIFFERENT DATA DIRECTORY
+--echo # BUT NOT .CFG FILE
+--echo #
+--echo # Test-case-1
+# Source tablespace is created with DATA DIRECTORY clause,
+# whereas destination table is defined without DATA DIRECTORY clause.
+SET default_storage_engine=InnoDB;
+--let $MYSQLD_DATADIR=`select @@datadir`
+--let $DB = `SELECT DATABASE()`
+--let $data_directory = DATA DIRECTORY='$MYSQL_TMP_DIR/alt_dir'
+
+--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
+eval CREATE TABLE t1 (id int unsigned NOT NULL PRIMARY KEY) $data_directory;
+INSERT INTO t1 VALUES (1), (2), (3);
+FLUSH TABLES t1 FOR EXPORT;
+
+--copy_file '$MYSQL_TMP_DIR/alt_dir/$DB/t1.ibd' $MYSQL_TMP_DIR/t1.ibd
+
+UNLOCK TABLES;
+DROP TABLE t1;
+CREATE TABLE t1 (id int unsigned NOT NULL PRIMARY KEY);
+ALTER TABLE t1 DISCARD TABLESPACE;
+
+--move_file $MYSQL_TMP_DIR/t1.ibd $MYSQLD_DATADIR/$DB/t1.ibd
+--error ER_TABLE_SCHEMA_MISMATCH
+
+ALTER TABLE t1 IMPORT TABLESPACE;
+DROP TABLE t1;
+--remove_file $MYSQLD_DATADIR/$DB/t1.ibd
+
+--echo #
+--echo # Test-case-2
+# Source tablespace is created without DATA DIRECTORY clause,
+# whereas destination table is defined with DATA DIRECTORY clause.
+
+CREATE TABLE t1 (id int unsigned NOT NULL PRIMARY KEY);
+INSERT INTO t1 VALUES (1), (2), (3);
+FLUSH TABLES t1 FOR EXPORT;
+
+--copy_file '$MYSQLD_DATADIR/$DB/t1.ibd' $MYSQL_TMP_DIR/t1.ibd
+
+UNLOCK TABLES;
+DROP TABLE t1;
+--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
+eval CREATE TABLE t1 (id int unsigned NOT NULL PRIMARY KEY) $data_directory;
+ALTER TABLE t1 DISCARD TABLESPACE;
+
+--move_file $MYSQL_TMP_DIR/t1.ibd $MYSQL_TMP_DIR/alt_dir/$DB/t1.ibd
+
+--error ER_TABLE_SCHEMA_MISMATCH
+ALTER TABLE t1 IMPORT TABLESPACE;
+DROP TABLE t1;
+--remove_file $MYSQL_TMP_DIR/alt_dir/$DB/t1.ibd
+
+
+--echo #
+--echo # Bug #30190199 ERROR WHEN IMPORTING TABLESPACE WITH DIFFERENT DATA
+--echo # DIRECTORY LACKS DETAILS
+--echo #
+--echo # Test-case-3
+# Same as test-case-1 but .cfg file is available during
+# import tablespace.
+
+--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
+eval CREATE TABLE t1 (id int unsigned NOT NULL PRIMARY KEY) $data_directory;
+INSERT INTO t1 VALUES (1), (2), (3);
+FLUSH TABLES t1 FOR EXPORT;
+
+--copy_file '$MYSQL_TMP_DIR/alt_dir/$DB/t1.ibd' $MYSQL_TMP_DIR/t1.ibd
+--copy_file '$MYSQL_TMP_DIR/alt_dir/$DB/t1.cfg' $MYSQL_TMP_DIR/t1.cfg
+
+UNLOCK TABLES;
+DROP TABLE t1;
+CREATE TABLE t1 (id int unsigned NOT NULL PRIMARY KEY);
+ALTER TABLE t1 DISCARD TABLESPACE;
+
+--move_file $MYSQL_TMP_DIR/t1.cfg $MYSQLD_DATADIR/$DB/t1.cfg
+--move_file $MYSQL_TMP_DIR/t1.ibd $MYSQLD_DATADIR/$DB/t1.ibd
+
+--error ER_TABLE_SCHEMA_MISMATCH
+ALTER TABLE t1 IMPORT TABLESPACE;
+DROP TABLE t1;
+--remove_file $MYSQLD_DATADIR/$DB/t1.ibd
+--remove_file $MYSQLD_DATADIR/$DB/t1.cfg
+
+--echo #
+--echo # Test-case-4
+# Same as test-case-2 but .cfg file is available during
+# import tablespace.
+
+CREATE TABLE t1 (id int unsigned NOT NULL PRIMARY KEY);
+INSERT INTO t1 VALUES (1), (2), (3);
+FLUSH TABLES t1 FOR EXPORT;
+
+--copy_file '$MYSQLD_DATADIR/$DB/t1.ibd' $MYSQL_TMP_DIR/t1.ibd
+--copy_file '$MYSQLD_DATADIR/$DB/t1.cfg' $MYSQL_TMP_DIR/t1.cfg
+
+UNLOCK TABLES;
+DROP TABLE t1;
+--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
+eval CREATE TABLE t1 (id int unsigned NOT NULL PRIMARY KEY) $data_directory;
+ALTER TABLE t1 DISCARD TABLESPACE;
+
+--move_file $MYSQL_TMP_DIR/t1.ibd $MYSQL_TMP_DIR/alt_dir/$DB/t1.ibd
+--move_file $MYSQL_TMP_DIR/t1.cfg $MYSQL_TMP_DIR/alt_dir/$DB/t1.cfg
+
+--error ER_TABLE_SCHEMA_MISMATCH
+ALTER TABLE t1 IMPORT TABLESPACE;
+DROP TABLE t1;
+--remove_file $MYSQL_TMP_DIR/alt_dir/$DB/t1.ibd
+--remove_file $MYSQL_TMP_DIR/alt_dir/$DB/t1.cfg
+
+--echo #
+--echo # Cleanup
+--echo #
+
+--rmdir $MYSQL_TMP_DIR/alt_dir/test
+--rmdir $MYSQL_TMP_DIR/alt_dir
diff --git a/mysql-wsrep-5.6/mysql-test/suite/innodb/t/innodb_sys_var_valgrind.test b/mysql-wsrep-5.6/mysql-test/suite/innodb/t/innodb_sys_var_valgrind.test
new file mode 100644
index 00000000..4e7dadcf
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/innodb/t/innodb_sys_var_valgrind.test
@@ -0,0 +1,67 @@
+--echo #
+--echo # Bug #29717909	MEMORY LIFETIME OF VARIABLES BETWEEN CHECK AND UPDATE INCORRECTLY MANAGED
+--echo #
+
+#Test innodb_ft_server_stopword_table (global variable)
+select @@innodb_ft_server_stopword_table;
+create table user_stopword_1(value varchar(30)) engine = innodb;
+create table user_stopword_2(value varchar(30)) engine = innodb;
+
+set @blah = 'test/user_stopword_1';
+SET GLOBAL innodb_ft_server_stopword_table= @blah;
+select @@innodb_ft_server_stopword_table;
+
+set @blah = 'test/user_stopword_2';
+SET GLOBAL innodb_ft_server_stopword_table= @blah;
+select @@innodb_ft_server_stopword_table;
+
+SET GLOBAL innodb_ft_server_stopword_table= NULL;
+select @@innodb_ft_server_stopword_table;
+
+SET GLOBAL innodb_ft_server_stopword_table= default;
+select @@innodb_ft_server_stopword_table;
+
+drop table user_stopword_1, user_stopword_2;
+
+#Test innodb_buffer_pool_filename (global variable)
+
+select @@innodb_buffer_pool_filename;
+
+set @blah='hello';
+set global innodb_buffer_pool_filename = @blah;
+select @@innodb_buffer_pool_filename;
+
+set global innodb_buffer_pool_filename="bye";
+select @@innodb_buffer_pool_filename;
+
+--error ER_WRONG_VALUE_FOR_VAR
+set global innodb_buffer_pool_filename=NULL;
+
+set global innodb_buffer_pool_filename=default;
+select @@innodb_buffer_pool_filename;
+
+#Test innodb_ft_aux_table (global variable)
+CREATE TABLE t1 ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
+opening_line TEXT(500), author VARCHAR(200), title VARCHAR(200), FULLTEXT idx
+(opening_line)) ENGINE=InnoDB;
+
+CREATE TABLE t2 ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
+opening_line TEXT(500), author VARCHAR(200), title VARCHAR(200), FULLTEXT idx
+(opening_line)) ENGINE=InnoDB;
+
+select @@innodb_ft_aux_table;
+
+set @blah = 'test/t1';
+SET GLOBAL innodb_ft_aux_table = @blah;
+select @@innodb_ft_aux_table;
+
+set @blah = 'test/t2';
+SET GLOBAL innodb_ft_aux_table = @blah;
+
+SET GLOBAL innodb_ft_aux_table = NULL;
+select @@innodb_ft_aux_table;
+
+SET GLOBAL innodb_ft_aux_table =default;
+select @@innodb_ft_aux_table;
+
+drop table t1,t2;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/innodb_fts/r/sync.result b/mysql-wsrep-5.6/mysql-test/suite/innodb_fts/r/sync.result
index 627d3aa5..228b2373 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/innodb_fts/r/sync.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/innodb_fts/r/sync.result
@@ -13,15 +13,16 @@ SET DEBUG_SYNC= 'now WAIT_FOR written';
 SET GLOBAL innodb_ft_aux_table="test/t1";
 SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE;
 WORD	FIRST_DOC_ID	LAST_DOC_ID	DOC_COUNT	DOC_ID	POSITION
+SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
+WORD	FIRST_DOC_ID	LAST_DOC_ID	DOC_COUNT	DOC_ID	POSITION
 database	2	3	2	2	0
 database	2	3	2	3	6
 mysql	1	3	2	1	0
 mysql	1	3	2	3	0
-SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
-WORD	FIRST_DOC_ID	LAST_DOC_ID	DOC_COUNT	DOC_ID	POSITION
 SET GLOBAL innodb_ft_aux_table=default;
 SELECT * FROM t1 WHERE MATCH(title) AGAINST('mysql database');
 FTS_DOC_ID	title
+3	mysql database
 1	mysql
 2	database
 SET DEBUG_SYNC= 'now SIGNAL selected';
@@ -130,3 +131,32 @@ id	title
 2	database
 3	good
 DROP TABLE t1;
+#
+# Bug #31310404 I_S_FTS_INDEX_CACHE_FILL_ONE_INDEX() IS NOT PROTECT BY THE LOCK
+#
+CREATE TABLE t1 (
+FTS_DOC_ID BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
+title VARCHAR(200),
+FULLTEXT(title)
+) ENGINE = InnoDB;
+INSERT INTO t1(title) VALUES('mysql');
+INSERT INTO t1(title) VALUES('database');
+SET SESSION debug="+d,fts_instrument_sync_request";
+INSERT INTO t1(title) VALUES('mysql database');
+SET SESSION debug="-d,fts_instrument_sync_request";
+SET GLOBAL innodb_ft_aux_table="test/t1";
+SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE;
+WORD	FIRST_DOC_ID	LAST_DOC_ID	DOC_COUNT	DOC_ID	POSITION
+SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
+WORD	FIRST_DOC_ID	LAST_DOC_ID	DOC_COUNT	DOC_ID	POSITION
+database	2	3	2	2	0
+database	2	3	2	3	6
+mysql	1	3	2	1	0
+mysql	1	3	2	3	0
+SET GLOBAL innodb_ft_aux_table=default;
+SELECT * FROM t1 WHERE MATCH(title) AGAINST('mysql database');
+FTS_DOC_ID	title
+3	mysql database
+1	mysql
+2	database
+DROP TABLE t1;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/innodb_fts/t/sync.test b/mysql-wsrep-5.6/mysql-test/suite/innodb_fts/t/sync.test
index 9389fd72..21a83588 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/innodb_fts/t/sync.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/innodb_fts/t/sync.test
@@ -168,3 +168,31 @@ SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database good');
 DROP TABLE t1;
 
 --source include/wait_until_count_sessions.inc
+
+--echo #
+--echo # Bug #31310404 I_S_FTS_INDEX_CACHE_FILL_ONE_INDEX() IS NOT PROTECT BY THE LOCK
+--echo #
+
+CREATE TABLE t1 (
+        FTS_DOC_ID BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
+        title VARCHAR(200),
+        FULLTEXT(title)
+) ENGINE = InnoDB;
+
+INSERT INTO t1(title) VALUES('mysql');
+INSERT INTO t1(title) VALUES('database');
+
+SET SESSION debug="+d,fts_instrument_sync_request";
+INSERT INTO t1(title) VALUES('mysql database');
+SET SESSION debug="-d,fts_instrument_sync_request";
+
+SET GLOBAL innodb_ft_aux_table="test/t1";
+
+# If FTS SYNC is in progress then wait for SYNC to finish.
+SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE;
+SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
+SET GLOBAL innodb_ft_aux_table=default;
+
+SELECT * FROM t1 WHERE MATCH(title) AGAINST('mysql database');
+
+DROP TABLE t1;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/ndb_rpl/r/ndb_rpl_binlog_format_errors.result b/mysql-wsrep-5.6/mysql-test/suite/ndb_rpl/r/ndb_rpl_binlog_format_errors.result
index d5cbb523..11b07edf 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/ndb_rpl/r/ndb_rpl_binlog_format_errors.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/ndb_rpl/r/ndb_rpl_binlog_format_errors.result
@@ -1,31 +1,14 @@
 include/master-slave.inc
 [connection master]
 ==== Initialize ====
-[on slave]
-SET @old_binlog_format= @@global.binlog_format;
-INSTALL PLUGIN example SONAME 'ha_example.so';
 [on master]
-SET @old_binlog_format= @@global.binlog_format;
-INSTALL PLUGIN example SONAME 'ha_example.so';
+[connection master]
 CREATE TABLE t (a VARCHAR(100)) ENGINE = MYISAM;
 CREATE TABLE t_self_logging (a VARCHAR(100)) ENGINE = NDB;
-CREATE TABLE t_row (a VARCHAR(100)) ENGINE = INNODB;
-CREATE TABLE t_stmt (a VARCHAR(100)) ENGINE = EXAMPLE;
-CREATE TABLE t_slave_stmt (a VARCHAR(100)) ENGINE = MYISAM;
-CREATE TABLE t_autoinc (a INT KEY AUTO_INCREMENT) ENGINE = MYISAM;
-CREATE TABLE t_double_autoinc (a INT KEY AUTO_INCREMENT) ENGINE = MYISAM;
-CREATE TRIGGER trig_autoinc BEFORE INSERT ON t_autoinc FOR EACH ROW BEGIN INSERT INTO t_stmt VALUES ('x'); END;
-CREATE TRIGGER trig_double_autoinc BEFORE INSERT ON t_double_autoinc FOR EACH ROW BEGIN INSERT INTO t_autoinc VALUES (NULL); END;
-CREATE DATABASE other;
-SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
 [on slave]
-DROP TABLE t_slave_stmt;
-CREATE TABLE t_slave_stmt (a INT) ENGINE = EXAMPLE;
+include/sync_slave_sql_with_master.inc
 [on master]
-BINLOG '
-1gRVSg8BAAAAZgAAAGoAAAABAAQANS4xLjM2LWRlYnVnLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAADWBFVKEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
-';
+[connection master]
 ==== Test ====
 ---- binlog_format=row ----
 * Modify tables of more than one engine, one of which is self-logging
@@ -37,131 +20,7 @@ SELECT * FROM t_self_logging /* Should be empty */;
 a
 SELECT * FROM t /* Should be empty */;
 a
-* Modify both row-only and stmt-only table
-CREATE TRIGGER trig_2 AFTER INSERT ON t_stmt FOR EACH ROW BEGIN INSERT INTO t_row VALUES(1); END;
-INSERT INTO t_stmt VALUES (1);
-ERROR HY000: Cannot execute statement: impossible to write to binary log since both row-incapable engines and statement-incapable engines are involved.
-SELECT * FROM t_stmt /* should be empty */;
-a
-DROP TRIGGER trig_2;
-* Stmt-only table and binlog_format=row
-INSERT INTO t_stmt VALUES (1);
-ERROR HY000: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = ROW and at least one table uses a storage engine limited to statement-based logging.
-SELECT * FROM t_stmt /* should be empty */;
-a
-* Row injection and stmt-only table: in slave sql thread
-INSERT INTO t_slave_stmt VALUES (1);
-[on slave]
-include/wait_for_slave_sql_error_and_skip.inc [errno=1664]
-Last_SQL_Error = 'Error executing row event: 'Cannot execute statement: impossible to write to binary log since statement is in row format and at least one table uses a storage engine limited to statement-based logging.''
-SELECT * FROM t_slave_stmt /* should be empty */;
-a
-[on master]
-* Row injection and stmt-only table: use BINLOG statement
-BINLOG '
-1gRVShMBAAAALwAAAEABAAAAABcAAAAAAAAABHRlc3QABnRfc3RtdAABDwJkAAE=
-1gRVShcBAAAAIAAAAGABAAAQABcAAAAAAAEAAf/+ATE=
-';
-ERROR HY000: Cannot execute statement: impossible to write to binary log since statement is in row format and at least one table uses a storage engine limited to statement-based logging.
-SELECT * FROM t_stmt /* should be empty */;
-a
----- binlog_format=mixed ----
-[on slave]
-include/stop_slave.inc
-SET @@global.binlog_format = MIXED;
-include/start_slave.inc
-[on master]
-SET @@global.binlog_format = MIXED;
-SET @@session.binlog_format = MIXED;
-* Unsafe statement and stmt-only engine
-INSERT INTO t_stmt VALUES (UUID());
-ERROR HY000: Cannot execute statement: impossible to write to binary log since statement is unsafe, storage engine is limited to statement-based logging, and BINLOG_FORMAT = MIXED. Statement is unsafe because it uses a system function that may return a different value on the slave.
-* Multi-unsafe statement and stmt-only engine
-INSERT DELAYED INTO t_double_autoinc SELECT CONCAT(UUID(), @@hostname, NULL) FROM mysql.general_log LIMIT 1;
-ERROR HY000: Cannot execute statement: impossible to write to binary log since statement is unsafe, storage engine is limited to statement-based logging, and BINLOG_FORMAT = MIXED. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
----- binlog_format=statement ----
-[on slave]
-include/stop_slave.inc
-SET @@global.binlog_format = STATEMENT;
-include/start_slave.inc
-[on master]
-SET @@global.binlog_format = STATEMENT;
-SET @@session.binlog_format = STATEMENT;
-* Row-only engine and binlog_format=statement: innodb-specific message
-INSERT INTO t_row VALUES (1);
-ERROR HY000: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
-SELECT * FROM t_row /* should be empty */;
-a
-* Row-only engine and binlog_format=statement: generic message
-SET @@session.debug= '+d,no_innodb_binlog_errors';
-INSERT INTO t_row VALUES (1);
-ERROR HY000: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging.
-SELECT * FROM t_row /* should be empty */;
-a
-* Same statement, but db filtered out - no error
-USE other;
-INSERT INTO test.t_row VALUES (1);
-USE test;
-SET @@session.debug= '';
-SELECT * FROM t_row /* should contain the value 1 */;
-a
-1
-* Row injection and binlog_format=statement: BINLOG statement
-BINLOG '
-cNpVShMBAAAAKgAAADYBAAAAABcAAAAAAAAABHRlc3QAAXQAAQ8CZAAB
-cNpVShcBAAAAIAAAAFYBAAAQABcAAAAAAAEAAf/+ATE=
-';
-ERROR HY000: Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT.
-SELECT * FROM t /* should be empty */;
-a
-* Same statement, but db filtered out - no error
-USE other;
-BINLOG '
-cNpVShMBAAAAKgAAADYBAAAAABcAAAAAAAAABHRlc3QAAXQAAQ8CZAAB
-cNpVShcBAAAAIAAAAFYBAAAQABcAAAAAAAEAAf/+ATE=
-';
-USE test;
-SELECT * FROM t /* should contain the value 1 */;
-a
-1
-DELETE FROM t;
-* Unsafe statement and binlog_format=statement
-INSERT INTO t VALUES (COALESCE(1, UUID()));
-Warnings:
-Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
-SELECT * FROM t /* should contain the value 1 */;
-a
-1
-DELETE FROM t;
-* Same statement, but db filtered out - no message
-USE other;
-INSERT INTO test.t VALUES (COALESCE(1, UUID()));
-USE test;
-SELECT * FROM t /* should contain the value 1 */;
-a
-1
-DELETE FROM t;
----- master: binlog_format=mixed, slave: binlog_format=statement ----
-SET @@global.binlog_format = MIXED;
-SET @@session.binlog_format = MIXED;
-* Row injection and binlog_format=statement: in slave sql thread
-INSERT INTO t VALUES (COALESCE(1, UUID()));
-[on slave]
-include/wait_for_slave_sql_error_and_skip.inc [errno=1666]
-Last_SQL_Error = 'Error executing row event: 'Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT.''
-SELECT * FROM t /* should be empty */;
-a
-[on master]
 ==== Clean up ====
-DROP TRIGGER trig_autoinc;
-DROP TRIGGER trig_double_autoinc;
-DROP TABLE t, t_self_logging, t_row, t_stmt, t_slave_stmt, t_autoinc, t_double_autoinc;
-DROP DATABASE other;
-SET @@global.binlog_format = @old_binlog_format;
-SET @@session.binlog_format = @old_binlog_format;
-UNINSTALL PLUGIN example;
-[on slave]
-SET @@global.binlog_format = @old_binlog_format;
-SET @@session.binlog_format = @old_binlog_format;
-UNINSTALL PLUGIN example;
+DROP TABLE t, t_self_logging;
+include/sync_slave_sql_with_master.inc
 include/rpl_end.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/ndb_rpl/t/ndb_rpl_binlog_format_errors.test b/mysql-wsrep-5.6/mysql-test/suite/ndb_rpl/t/ndb_rpl_binlog_format_errors.test
index f2fa77f5..e7ae9896 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/ndb_rpl/t/ndb_rpl_binlog_format_errors.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/ndb_rpl/t/ndb_rpl_binlog_format_errors.test
@@ -1,24 +1,40 @@
 # ==== Purpose ====
+# The purpose of this script is to test that binary logging returns an error
+# if more than one engine is involved and at least one of them it's doing its
+# own logging (is *self-logging*), which is the case for NDB engine.
 #
-# Verify that errors or warnings are issued for all error conditions
-# related to deciding the binlog format of a statement.  The possible
-# errors are listed in a comment above decide_logging_format() in
-# sql_base.cc.
+# ==== Requirements ====
 #
-# ==== Method ====
+# R1. When more than one engine is involved in binary logging and at least one
+#     engine is self-logging then binary logging should return error
+#     `ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE`.
 #
-# Each error condition is executed; we verify that there is an error.
+# ==== Implementation ====
 #
-# ==== Related bugs ====
+# TC1. Verify that when more than one engine is involved in binary logging and
+#      at least one engine is self-logging then binary logging should return
+#      error `ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE`.
+# ------------------------------------------------------------------
+# With BINLOG_FORMAT = ROW :
+# 1) Create a trigger which inserts data in MYISAM engine upon insertion of
+#    data in NDB engine.
+# 2) Try to insert data in the NDB ENGINE.
+# 3) Verify that error `ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE` is returned.
+# 4) Verify that no data was inserted in the NDB engine.
+# 5) Verify that no data was inserted in MYISAM engine.
+#
+# ==== References ====
 #
 # BUG#39934: Slave stops for engine that only support row-based logging
-# BUG#42829: binlogging enabled for all schemas regardless of binlog-db-db / binlog-ignore-db
+# BUG#42829: binlogging enabled for all schemas regardless of binlog-db-db /
+# binlog-ignore-db
 #
 # ==== Related test cases ====
 #
-# binlog.binlog_unsafe verifies more thoroughly that a warning is
-# given for the case when an unsafe statement is executed and
-# binlog_format = STATEMENT.
+# rpl.rpl_binlog_format_errors verifies that binary logging returns an error
+# for the conditions 1 to 7 listed in the comments section of method
+# decide_logging_format(). Condition 8 requires a self-logging engine which
+# is the case of NDB and therefore it is tested in this script.
 
 # Need debug so that 'SET @@session.debug' works.
 --source include/have_debug.inc
@@ -28,61 +44,29 @@
 # under more than one binlog format.
 --source include/have_binlog_format_row.inc
 --source include/have_ndb.inc
---source include/have_innodb.inc
+# Test requires GTIDs off
+--source include/not_gtid_enabled.inc
 --source suite/ndb_rpl/ndb_master-slave.inc
 
-disable_query_log;
-call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
-call mtr.add_suppression("Cannot execute statement: impossible to write to binary log");
-enable_query_log;
+--disable_query_log
+CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
+CALL mtr.add_suppression("Cannot execute statement: impossible to write to binary log");
+--enable_query_log
 
 --echo ==== Initialize ====
 
---echo [on slave]
---connection slave
-
-SET @old_binlog_format= @@global.binlog_format;
-INSTALL PLUGIN example SONAME 'ha_example.so';
 
 --echo [on master]
---connection master
-
-SET @old_binlog_format= @@global.binlog_format;
-INSTALL PLUGIN example SONAME 'ha_example.so';
+--source include/rpl_connection_master.inc
 
 CREATE TABLE t (a VARCHAR(100)) ENGINE = MYISAM;
 CREATE TABLE t_self_logging (a VARCHAR(100)) ENGINE = NDB;
-CREATE TABLE t_row (a VARCHAR(100)) ENGINE = INNODB;
-CREATE TABLE t_stmt (a VARCHAR(100)) ENGINE = EXAMPLE;
-CREATE TABLE t_slave_stmt (a VARCHAR(100)) ENGINE = MYISAM;
-CREATE TABLE t_autoinc (a INT KEY AUTO_INCREMENT) ENGINE = MYISAM;
-CREATE TABLE t_double_autoinc (a INT KEY AUTO_INCREMENT) ENGINE = MYISAM;
-
---eval CREATE TRIGGER trig_autoinc BEFORE INSERT ON t_autoinc FOR EACH ROW BEGIN INSERT INTO t_stmt VALUES ('x'); END
---eval CREATE TRIGGER trig_double_autoinc BEFORE INSERT ON t_double_autoinc FOR EACH ROW BEGIN INSERT INTO t_autoinc VALUES (NULL); END
-
-CREATE DATABASE other;
-
-# This makes the innodb table row-only
-SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
 
 --echo [on slave]
---sync_slave_with_master
-
-DROP TABLE t_slave_stmt;
-CREATE TABLE t_slave_stmt (a INT) ENGINE = EXAMPLE;
+--source include/sync_slave_sql_with_master.inc
 
 --echo [on master]
---connection master
-
-# This is a format description event.  It is needed because any BINLOG
-# statement containing a row event must be preceded by a BINLOG
-# statement containing a format description event.
-BINLOG '
-1gRVSg8BAAAAZgAAAGoAAAABAAQANS4xLjM2LWRlYnVnLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAADWBFVKEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
-';
-
+--source include/rpl_connection_master.inc
 
 --echo ==== Test ====
 
@@ -96,169 +80,8 @@ DROP trigger trig_1;
 SELECT * FROM t_self_logging /* Should be empty */;
 SELECT * FROM t /* Should be empty */;
 
---echo * Modify both row-only and stmt-only table
---eval CREATE TRIGGER trig_2 AFTER INSERT ON t_stmt FOR EACH ROW BEGIN INSERT INTO t_row VALUES(1); END
---error ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE
-INSERT INTO t_stmt VALUES (1);
-SELECT * FROM t_stmt /* should be empty */;
-DROP TRIGGER trig_2;
-
---echo * Stmt-only table and binlog_format=row
---error ER_BINLOG_ROW_MODE_AND_STMT_ENGINE
-INSERT INTO t_stmt VALUES (1);
-SELECT * FROM t_stmt /* should be empty */;
-
---echo * Row injection and stmt-only table: in slave sql thread
-INSERT INTO t_slave_stmt VALUES (1);
---echo [on slave]
---connection slave
-# 1664 = ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE
---let $slave_sql_errno= 1664
---let $show_slave_sql_error= 1
---source include/wait_for_slave_sql_error_and_skip.inc
---connection slave
-SELECT * FROM t_slave_stmt /* should be empty */;
-
---echo [on master]
---connection master
---echo * Row injection and stmt-only table: use BINLOG statement
-# This is a Table_map_event and a Write_rows_event. Together, they are
-# equivalent to 'INSERT INTO t_stmt VALUES (1)'
---error ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE
-BINLOG '
-1gRVShMBAAAALwAAAEABAAAAABcAAAAAAAAABHRlc3QABnRfc3RtdAABDwJkAAE=
-1gRVShcBAAAAIAAAAGABAAAQABcAAAAAAAEAAf/+ATE=
-';
-SELECT * FROM t_stmt /* should be empty */;
-
-
---echo ---- binlog_format=mixed ----
-
---echo [on slave]
---sync_slave_with_master
---source include/stop_slave.inc
-SET @@global.binlog_format = MIXED;
---source include/start_slave.inc
---echo [on master]
---connection master
-SET @@global.binlog_format = MIXED;
-SET @@session.binlog_format = MIXED;
-
---echo * Unsafe statement and stmt-only engine
---error ER_BINLOG_UNSAFE_AND_STMT_ENGINE
-INSERT INTO t_stmt VALUES (UUID());
-
-# Concatenate two unsafe values, and then concatenate NULL to
-# that so that the result is NULL and we instead use autoinc.
---echo * Multi-unsafe statement and stmt-only engine
---error ER_BINLOG_UNSAFE_AND_STMT_ENGINE
-INSERT DELAYED INTO t_double_autoinc SELECT CONCAT(UUID(), @@hostname, NULL) FROM mysql.general_log LIMIT 1;
-
-
---echo ---- binlog_format=statement ----
-
---echo [on slave]
---sync_slave_with_master
---source include/stop_slave.inc
-SET @@global.binlog_format = STATEMENT;
---source include/start_slave.inc
---echo [on master]
---connection master
-SET @@global.binlog_format = STATEMENT;
-SET @@session.binlog_format = STATEMENT;
-
---echo * Row-only engine and binlog_format=statement: innodb-specific message
---error ER_BINLOG_STMT_MODE_AND_ROW_ENGINE
-INSERT INTO t_row VALUES (1);
-SELECT * FROM t_row /* should be empty */;
-
-# Commented out since innodb gives an error (this is a bug)
-#--echo * Same statement, but db filtered out - no error
-#USE other;
-#INSERT INTO test.t_row VALUES (1);
-#USE test;
-
---echo * Row-only engine and binlog_format=statement: generic message
-SET @@session.debug= '+d,no_innodb_binlog_errors';
---error ER_BINLOG_STMT_MODE_AND_ROW_ENGINE
-INSERT INTO t_row VALUES (1);
-SELECT * FROM t_row /* should be empty */;
-
---echo * Same statement, but db filtered out - no error
-USE other;
-INSERT INTO test.t_row VALUES (1);
-USE test;
-SET @@session.debug= '';
-SELECT * FROM t_row /* should contain the value 1 */;
-
---echo * Row injection and binlog_format=statement: BINLOG statement
-# This is a Table_map_event and a Write_rows_event. Together, they are
-# equivalent to 'INSERT INTO t VALUES (1)'.
---error ER_BINLOG_ROW_INJECTION_AND_STMT_MODE
-BINLOG '
-cNpVShMBAAAAKgAAADYBAAAAABcAAAAAAAAABHRlc3QAAXQAAQ8CZAAB
-cNpVShcBAAAAIAAAAFYBAAAQABcAAAAAAAEAAf/+ATE=
-';
-SELECT * FROM t /* should be empty */;
-
---echo * Same statement, but db filtered out - no error
-# This is a Table_map_event and a Write_rows_event. Together, they are
-# equivalent to 'INSERT INTO t VALUES (1)'.
-USE other;
-BINLOG '
-cNpVShMBAAAAKgAAADYBAAAAABcAAAAAAAAABHRlc3QAAXQAAQ8CZAAB
-cNpVShcBAAAAIAAAAFYBAAAQABcAAAAAAAEAAf/+ATE=
-';
-USE test;
-SELECT * FROM t /* should contain the value 1 */;
-DELETE FROM t;
-
---echo * Unsafe statement and binlog_format=statement
-# This will give a warning.
-INSERT INTO t VALUES (COALESCE(1, UUID()));
-SELECT * FROM t /* should contain the value 1 */;
-DELETE FROM t;
-
---echo * Same statement, but db filtered out - no message
-USE other;
-INSERT INTO test.t VALUES (COALESCE(1, UUID()));
-USE test;
-SELECT * FROM t /* should contain the value 1 */;
-DELETE FROM t;
-
-
---echo ---- master: binlog_format=mixed, slave: binlog_format=statement ----
-
-SET @@global.binlog_format = MIXED;
-SET @@session.binlog_format = MIXED;
-
---echo * Row injection and binlog_format=statement: in slave sql thread
-INSERT INTO t VALUES (COALESCE(1, UUID()));
---echo [on slave]
---connection slave
-# 1666 = ER_BINLOG_ROW_INJECTION_AND_STMT_MODE
---let $slave_sql_errno= 1666
---let $show_sql_error= 1
---source include/wait_for_slave_sql_error_and_skip.inc
---connection slave
-SELECT * FROM t /* should be empty */;
---echo [on master]
---connection master
-
-
 --echo ==== Clean up ====
-
-DROP TRIGGER trig_autoinc;
-DROP TRIGGER trig_double_autoinc;
-DROP TABLE t, t_self_logging, t_row, t_stmt, t_slave_stmt, t_autoinc, t_double_autoinc;
-DROP DATABASE other;
-SET @@global.binlog_format = @old_binlog_format;
-SET @@session.binlog_format = @old_binlog_format;
-UNINSTALL PLUGIN example;
---echo [on slave]
---sync_slave_with_master
-SET @@global.binlog_format = @old_binlog_format;
-SET @@session.binlog_format = @old_binlog_format;
-UNINSTALL PLUGIN example;
+DROP TABLE t, t_self_logging;
+--source include/sync_slave_sql_with_master.inc
 
 --source include/rpl_end.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/perfschema/r/stage_mdl_procedure.result b/mysql-wsrep-5.6/mysql-test/suite/perfschema/r/stage_mdl_procedure.result
index b214a8ec..92eee394 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/perfschema/r/stage_mdl_procedure.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/perfschema/r/stage_mdl_procedure.result
@@ -15,7 +15,7 @@ test.f1()
 drop procedure test.p1;
 call dump_one_thread('user1');
 username	event_name	sql_text
-user1	statement/sql/select	select test.f1()
+user1	statement/sql/select	call test.p1()
 username	event_name	nesting_event_type
 username	event_name	nesting_event_type
 user1	stage/sql/executing	STATEMENT
diff --git a/mysql-wsrep-5.6/mysql-test/suite/perfschema/t/ddl_esms_by_digest.test b/mysql-wsrep-5.6/mysql-test/suite/perfschema/t/ddl_esms_by_digest.test
index b674dc8d..e054c9c6 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/perfschema/t/ddl_esms_by_digest.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/perfschema/t/ddl_esms_by_digest.test
@@ -1,13 +1,20 @@
 # Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software Foundation,
diff --git a/mysql-wsrep-5.6/mysql-test/suite/perfschema/t/dml_esms_by_digest.test b/mysql-wsrep-5.6/mysql-test/suite/perfschema/t/dml_esms_by_digest.test
index 6fdc8ec9..478c2d41 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/perfschema/t/dml_esms_by_digest.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/perfschema/t/dml_esms_by_digest.test
@@ -1,13 +1,20 @@
 # Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software Foundation,
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/extension/bhs.pl b/mysql-wsrep-5.6/mysql-test/suite/rpl/extension/bhs.pl
index a0bb8a4b..7d23cfdc 100755
--- a/mysql-wsrep-5.6/mysql-test/suite/rpl/extension/bhs.pl
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/extension/bhs.pl
@@ -3,13 +3,20 @@
 # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/extension/checksum.pl b/mysql-wsrep-5.6/mysql-test/suite/rpl/extension/checksum.pl
index 60dca18c..94d9025b 100755
--- a/mysql-wsrep-5.6/mysql-test/suite/rpl/extension/checksum.pl
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/extension/checksum.pl
@@ -3,13 +3,20 @@
 # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_binlog_format_errors.result b/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_binlog_format_errors.result
new file mode 100644
index 00000000..e7746cf7
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_binlog_format_errors.result
@@ -0,0 +1,195 @@
+include/master-slave.inc
+Warnings:
+Note	####	Sending passwords in plain text without SSL/TLS is extremely insecure.
+Note	####	Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
+[connection master]
+==== Initialize ====
+[on slave]
+[connection slave]
+SET @old_binlog_format= @@global.binlog_format;
+INSTALL PLUGIN example SONAME 'ha_example.so';
+[on master]
+[connection master]
+SET @old_binlog_format= @@global.binlog_format;
+INSTALL PLUGIN example SONAME 'ha_example.so';
+CREATE TABLE t (a VARCHAR(100)) ENGINE = MYISAM;
+CREATE TABLE t_row (a VARCHAR(100)) ENGINE = INNODB;
+CREATE TABLE t_stmt (a VARCHAR(100)) ENGINE = EXAMPLE;
+CREATE TABLE t_slave_stmt (a VARCHAR(100)) ENGINE = MYISAM;
+CREATE TABLE t_autoinc (a INT KEY AUTO_INCREMENT) ENGINE = MYISAM;
+CREATE TABLE t_double_autoinc (a INT KEY AUTO_INCREMENT) ENGINE = MYISAM;
+CREATE TRIGGER trig_autoinc BEFORE INSERT ON t_autoinc FOR EACH ROW BEGIN INSERT INTO t_stmt VALUES ('x'); END;
+CREATE TRIGGER trig_double_autoinc BEFORE INSERT ON t_double_autoinc FOR EACH ROW BEGIN INSERT INTO t_autoinc VALUES (NULL); END;
+CREATE DATABASE other;
+SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
+[on slave]
+include/sync_slave_sql_with_master.inc
+DROP TABLE t_slave_stmt;
+CREATE TABLE t_slave_stmt (a INT) ENGINE = EXAMPLE;
+[on master]
+[connection master]
+BINLOG '
+1gRVSg8BAAAAZgAAAGoAAAABAAQANS4xLjM2LWRlYnVnLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAADWBFVKEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
+';
+==== Test ====
+---- binlog_format='row' ----
+* TC1: Modify both row-only and stmt-only table
+CREATE TRIGGER trig_2 AFTER INSERT ON t_stmt FOR EACH ROW BEGIN INSERT INTO t_row VALUES(1); END;
+INSERT INTO t_stmt VALUES (1);
+ERROR HY000: Cannot execute statement: impossible to write to binary log since both row-incapable engines and statement-incapable engines are involved.
+SELECT * FROM t_stmt /* should be empty */;
+a
+SELECT * FROM t_row /* should be empty */;
+a
+DROP TRIGGER trig_2;
+* TC2: Stmt-only table and binlog_format='row'
+INSERT INTO t_stmt VALUES (1);
+ERROR HY000: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = ROW and at least one table uses a storage engine limited to statement-based logging.
+SELECT * FROM t_stmt /* should be empty */;
+a
+* TC3: Row injection and stmt-only table: in slave sql thread
+INSERT INTO t_slave_stmt VALUES (1);
+[on slave]
+[connection slave]
+include/wait_for_slave_sql_error_and_skip.inc [errno=1664]
+Last_SQL_Error = 'Error executing row event: 'Cannot execute statement: impossible to write to binary log since statement is in row format and at least one table uses a storage engine limited to statement-based logging.''
+[connection slave]
+SELECT * FROM t_slave_stmt /* should be empty */;
+a
+[on master]
+[connection master]
+* TC4: Row injection and stmt-only table: use BINLOG statement
+BINLOG '
+1gRVShMBAAAALwAAAEABAAAAABcAAAAAAAAABHRlc3QABnRfc3RtdAABDwJkAAE=
+1gRVShcBAAAAIAAAAGABAAAQABcAAAAAAAEAAf/+ATE=
+';
+ERROR HY000: Cannot execute statement: impossible to write to binary log since statement is in row format and at least one table uses a storage engine limited to statement-based logging.
+SELECT * FROM t_stmt /* should be empty */;
+a
+---- binlog_format=mixed ----
+[on slave]
+include/sync_slave_sql_with_master.inc
+include/stop_slave.inc
+SET @@global.binlog_format = MIXED;
+include/start_slave.inc
+[on master]
+[connection master]
+SET @@global.binlog_format = MIXED;
+SET @@session.binlog_format = MIXED;
+* TC5: Unsafe statement and stmt-only engine
+INSERT INTO t_stmt VALUES (UUID());
+ERROR HY000: Cannot execute statement: impossible to write to binary log since statement is unsafe, storage engine is limited to statement-based logging, and BINLOG_FORMAT = MIXED. Statement is unsafe because it uses a system function that may return a different value on the slave.
+SELECT * FROM t_stmt;
+a
+/* should be empty */;
+* TC6: Multi-unsafe statement and stmt-only engine
+INSERT INTO t_double_autoinc SELECT CONCAT(UUID(), @@hostname, NULL) FROM mysql.general_log LIMIT 1;
+ERROR HY000: Cannot execute statement: impossible to write to binary log since statement is unsafe, storage engine is limited to statement-based logging, and BINLOG_FORMAT = MIXED. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
+SELECT * FROM t_double_autoinc;
+a
+/* should be empty */;
+---- binlog_format=statement ----
+[on slave]
+include/sync_slave_sql_with_master.inc
+include/stop_slave.inc
+SET @@global.binlog_format = STATEMENT;
+include/start_slave.inc
+[on master]
+[connection master]
+SET @@global.binlog_format = STATEMENT;
+SET @@session.binlog_format = STATEMENT;
+* TC7: Row-only engine and binlog_format=statement: innodb-specific message
+INSERT INTO t_row VALUES (1);
+ERROR HY000: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
+SELECT * FROM t_row /* should be empty */;
+a
+* TC8: Same statement, but db filtered out - no error
+USE other;
+INSERT INTO test.t_row VALUES (1);
+USE test;
+SELECT * FROM t_row /* should contain the value 1 */;
+a
+1
+USE other;
+DELETE FROM test.t_row;
+USE test;
+* TC9: Row-only engine and binlog_format=statement: generic message
+SET @@session.debug= '+d,no_innodb_binlog_errors';
+INSERT INTO t_row VALUES (1);
+ERROR HY000: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging.
+SELECT * FROM t_row /* should be empty */;
+a
+* TC10: Same statement, but db filtered out - no error
+USE other;
+INSERT INTO test.t_row VALUES (1);
+USE test;
+SET @@session.debug= '';
+SELECT * FROM t_row /* should contain the value 1 */;
+a
+1
+* TC11: Row injection and binlog_format=statement: BINLOG statement
+BINLOG '
+cNpVShMBAAAAKgAAADYBAAAAABcAAAAAAAAABHRlc3QAAXQAAQ8CZAAB
+cNpVShcBAAAAIAAAAFYBAAAQABcAAAAAAAEAAf/+ATE=
+';
+ERROR HY000: Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT.
+SELECT * FROM t /* should be empty */;
+a
+* TC12: Same statement, but db filtered out - no error
+USE other;
+BINLOG '
+cNpVShMBAAAAKgAAADYBAAAAABcAAAAAAAAABHRlc3QAAXQAAQ8CZAAB
+cNpVShcBAAAAIAAAAFYBAAAQABcAAAAAAAEAAf/+ATE=
+';
+USE test;
+SELECT * FROM t /* should contain the value 1 */;
+a
+1
+DELETE FROM t;
+* TC13: Unsafe statement and binlog_format=statement
+INSERT INTO t VALUES (COALESCE(1, UUID()));
+Warnings:
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+SELECT * FROM t /* should contain the value 1 */;
+a
+1
+DELETE FROM t;
+* TC14: Same statement, but db filtered out - no message
+USE other;
+INSERT INTO test.t VALUES (COALESCE(1, UUID()));
+USE test;
+SELECT * FROM t /* should contain the value 1 */;
+a
+1
+DELETE FROM t;
+---- master: binlog_format=mixed, slave: binlog_format=statement ----
+SET @@global.binlog_format = MIXED;
+SET @@session.binlog_format = MIXED;
+* TC15: Row injection and binlog_format=statement: in slave sql thread
+INSERT INTO t VALUES (COALESCE(1, UUID()));
+[on slave]
+[connection slave]
+include/wait_for_slave_sql_error_and_skip.inc [errno=1666]
+Last_SQL_Error = 'Error executing row event: 'Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT.''
+[connection slave]
+SELECT * FROM t /* should be empty */;
+a
+[on master]
+[connection master]
+==== Clean up ====
+DROP TRIGGER trig_autoinc;
+DROP TRIGGER trig_double_autoinc;
+DROP TABLE t, t_row, t_stmt, t_slave_stmt, t_autoinc, t_double_autoinc;
+DROP DATABASE other;
+SET @@global.binlog_format = @old_binlog_format;
+SET @@session.binlog_format = @old_binlog_format;
+UNINSTALL PLUGIN example;
+[on slave]
+include/sync_slave_sql_with_master.inc
+include/stop_slave.inc
+SET @@global.binlog_format = @old_binlog_format;
+SET @@session.binlog_format = @old_binlog_format;
+include/start_slave.inc
+UNINSTALL PLUGIN example;
+include/rpl_end.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_delete_memory_table_after_start_server.result b/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_delete_memory_table_after_start_server.result
new file mode 100644
index 00000000..5b288806
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_delete_memory_table_after_start_server.result
@@ -0,0 +1,98 @@
+include/master-slave.inc
+Warnings:
+Note	####	Sending passwords in plain text without SSL/TLS is extremely insecure.
+Note	####	Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
+[connection master]
+CREATE DATABASE db1;
+CREATE DATABASE db2;
+CREATE TABLE t1(c1 INT);
+CREATE TABLE t2(c1 INT);
+CREATE TABLE mem_t1(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+CREATE TABLE mem_t2(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+CREATE TABLE db1.mem_t1(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+CREATE TABLE db1.mem_t2(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+CREATE TABLE db2.mem_t1(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+CREATE TABLE db2.mem_t2(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+CREATE TABLE db2.mem_t3(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+CREATE TABLE db2.mem_t4(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+CREATE TABLE db2.mem_t5(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+CREATE TRIGGER tr1 AFTER INSERT ON t2 FOR EACH ROW
+BEGIN
+INSERT INTO t1 SELECT * FROM db2.mem_t3;
+END |
+INSERT INTO db1.mem_t1 VALUES(1),(2),(3);
+INSERT INTO db1.mem_t2 VALUES(1),(2),(3);
+INSERT INTO db2.mem_t1 VALUES(1),(2),(3);
+INSERT INTO db2.mem_t2 VALUES(1),(2),(3);
+INSERT INTO db2.mem_t3 VALUES(1),(2),(3);
+INSERT INTO db2.mem_t4 VALUES(1),(2),(3);
+INSERT INTO db2.mem_t5 VALUES(1),(2),(3);
+include/sync_slave_sql_with_master.inc
+include/stop_slave_io.inc
+[connection master]
+include/rpl_restart_server.inc [server_number=1]
+include/rpl_reconnect.inc
+[connection slave]
+include/start_slave_io.inc
+include/sync_slave_sql.inc
+#
+# Test case 1: verify DELETE FROM mem_xx can be binlogged correctly
+#              in CREATE TABLE ... LIKE
+[connection master]
+include/gtid_step_reset.inc
+include/save_binlog_position.inc
+CREATE TABLE t3 LIKE db2.mem_t1;
+include/gtid_step_assert.inc [count=2, only_count=0]
+include/assert_binlog_events.inc [Gtid # Query/.*BEGIN # Query/.*DELETE.* # Query/.*COMMIT]
+include/sync_slave_sql_with_master.inc
+SELECT * FROM db2.mem_t1;
+c1
+#
+# Test case 2: verify DELETE FROM mem_xx can be binlogged correctly
+#              in DML
+[connection master]
+include/gtid_step_reset.inc
+include/save_binlog_position.inc
+INSERT INTO t3 SELECT * FROM db2.mem_t2 UNION SELECT 10;
+include/gtid_step_assert.inc [count=2, only_count=0]
+include/assert_binlog_events.inc [Gtid # Query/.*BEGIN # Query/.*DELETE.* # Query/.*COMMIT]
+include/sync_slave_sql_with_master.inc
+SELECT * FROM db2.mem_t2;
+c1
+#
+# Test case 3: verify DELETE FROM mem_xx can be binlogged correctly
+#              in a trigger
+[connection master]
+include/gtid_step_reset.inc
+include/save_binlog_position.inc
+INSERT INTO t2 VALUES(11);
+include/gtid_step_assert.inc [count=2, only_count=0]
+include/assert_binlog_events.inc [Gtid # Query/.*BEGIN # Query/.*DELETE.* # Query/.*COMMIT]
+include/sync_slave_sql_with_master.inc
+SELECT * FROM db2.mem_t3;
+c1
+#
+# Test case 4: Verify DELETE FROM mem_xx can be binlog correctly
+#              when ALTER the memory table.
+[connection master]
+include/gtid_step_reset.inc
+include/save_binlog_position.inc
+ALTER TABLE db2.mem_t4 ADD COLUMN c2 INT;
+include/gtid_step_assert.inc [count=2, only_count=0]
+include/assert_binlog_events.inc [Gtid # Query/.*BEGIN # Query/.*DELETE.* # Query/.*COMMIT]
+include/sync_slave_sql_with_master.inc
+SELECT * FROM db2.mem_t4;
+c1	c2
+#
+# Test case 5: Verify DELETE FROM mem_xx can be binlog correctly
+#              when DROP the memory table.
+[connection master]
+include/gtid_step_reset.inc
+DROP TABLE db2.mem_t5;
+include/gtid_step_assert.inc [count=1, only_count=0]
+include/sync_slave_sql_with_master.inc
+[connection master]
+DROP TABLE t1, t2, t3, mem_t1, mem_t2;
+DROP DATABASE db1;
+DROP DATABASE db2;
+include/rpl_end.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_deleted_binlog_fail_to_connect.result b/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_deleted_binlog_fail_to_connect.result
new file mode 100644
index 00000000..f3a8119f
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_deleted_binlog_fail_to_connect.result
@@ -0,0 +1,67 @@
+#
+# 1) Create a master-slave setup.
+#
+include/master-slave.inc
+Warnings:
+Note	####	Sending passwords in plain text without SSL/TLS is extremely insecure.
+Note	####	Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
+[connection master]
+#
+# 2) Create a table on master, sync it, stop the slave threads and dump
+#    thread on master.
+#
+CREATE TABLE t1 (a INT) ENGINE = InnoDB;
+include/sync_slave_sql_with_master.inc
+include/stop_slave.inc
+[connection master]
+include/stop_dump_threads.inc
+#
+# 3) On master, generate a transaction, flush the binary log and delete
+#    the first binary logs so that only remaining binlog only contains
+#    transaction UUID:3.
+#
+INSERT INTO t1 VALUES (1);
+FLUSH LOGS;
+INSERT INTO t1 VALUES (2);
+#
+# 4) Verify that the slave fails if it tries to connect using CHANGE
+#    MASTER TO MASTER_AUTO_POSITION=1.
+#
+[connection slave]
+CHANGE MASTER TO MASTER_AUTO_POSITION = 1;
+START SLAVE;
+include/wait_for_slave_io_error.inc [errno=1236 # ER_MASTER_FATAL_ERROR_READING_BINLOG]
+include/stop_slave_sql.inc
+#
+# 5) Verify that appropriate messages are logged into master's and slave's
+#    error log.
+#
+include/assert_grep.inc [Found warning containing lost GTIDs in the master error log.]
+include/assert_grep.inc [Found warning containing lost GTIDs in the slave error log.]
+#
+# 6) Verify that replication succeeds if it tries to connect using CHANGE
+#    MASTER TO MASTER_LOG_POS.
+#
+CHANGE MASTER TO MASTER_LOG_FILE = 'MASTER_FILE', MASTER_LOG_POS = MASTER_POS, MASTER_AUTO_POSITION = 0;
+include/start_slave.inc
+include/assert.inc [t1 should contain only one row with the value 2]
+include/stop_slave.inc
+[connection master]
+CALL mtr.add_suppression("Cannot replicate to server.*server has purged required binary logs.*");
+CALL mtr.add_suppression("Failed to open log");
+CALL mtr.add_suppression("Could not open log");
+[connection slave]
+CALL mtr.add_suppression("Got fatal error 1236 from master.*Replicate the missing transactions from elsewhere");
+#
+# 7) Cleanup.
+#
+RESET MASTER;
+RESET SLAVE;
+[connection master]
+RESET MASTER;
+[connection slave]
+include/start_slave.inc
+[connection master]
+DROP TABLE t1;
+include/sync_slave_sql_with_master.inc
+include/rpl_end.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_drop_mem_table.result b/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_drop_mem_table.result
new file mode 100644
index 00000000..ccc61ee8
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_drop_mem_table.result
@@ -0,0 +1,135 @@
+include/master-slave.inc
+Warnings:
+Note	####	Sending passwords in plain text without SSL/TLS is extremely insecure.
+Note	####	Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
+[connection master]
+[connection master]
+CREATE TABLE mem_t1 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t2 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t3 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t4 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t5 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t6 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t7 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t8 (c1 INT) ENGINE= MEMORY;
+INSERT INTO mem_t1 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t2 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t3 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t4 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t5 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t6 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t7 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t8 VALUES (1), (2), (3), (4);
+include/sync_slave_sql_with_master.inc
+include/stop_slave.inc
+include/rpl_restart_server.inc [server_number=1]
+include/start_slave.inc
+[connection master]
+include/save_binlog_position.inc
+INSERT INTO mem_t1 VALUES (1), (2), (3), (4);
+include/sync_slave_sql_with_master.inc
+[connection master]
+include/assert_binlog_events.inc [#Gtid # !Begin # !Delete # !Commit #Gtid # !Begin # !Insert # !Commit]
+include/save_binlog_position.inc
+ALTER TABLE mem_t2 ADD COLUMN (c2 INT);
+include/sync_slave_sql_with_master.inc
+[connection master]
+include/assert_binlog_events.inc [#Gtid # !Begin # !Delete # !Commit #Gtid # !Q(ALTER.*)]
+include/save_binlog_position.inc
+CREATE TABLE mem_t9 LIKE mem_t3;
+include/sync_slave_sql_with_master.inc
+[connection master]
+include/assert_binlog_events.inc [#Gtid # !Begin # !Delete # !Commit #Gtid # !Q(CREATE.*)]
+include/save_binlog_position.inc
+BEGIN;
+INSERT INTO mem_t4 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t5 VALUES (1), (2), (3), (4);
+COMMIT;
+include/sync_slave_sql_with_master.inc
+[connection master]
+include/assert_binlog_events.inc [#Gtid # !Begin # !Delete # !Commit #Gtid # !Begin # !Insert # !Commit #Gtid # !Begin # !Delete # !Commit #Gtid # !Begin # !Insert # !Commit]
+include/save_binlog_position.inc
+UPDATE mem_t6, mem_t7 SET mem_t6.c1 = mem_t6.c1 + 1, mem_t7.c1 = mem_t7.c1 + 1;
+include/sync_slave_sql_with_master.inc
+[connection master]
+include/assert_binlog_events.inc [#Gtid # !Begin # !Delete # !Commit #Gtid # !Begin # !Delete # !Commit]
+include/save_binlog_position.inc
+SET @@session.gtid_next = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1';
+INSERT INTO mem_t8 VALUES (1), (2), (3), (4);
+SET @@session.gtid_next = 'AUTOMATIC';
+include/sync_slave_sql_with_master.inc
+[connection master]
+include/assert_binlog_events.inc [#Gtid # !Begin # !Delete # !Commit #Gtid/(.*'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1')# !Begin # !Insert # !Commit]
+DROP TABLE mem_t1, mem_t2, mem_t3, mem_t4, mem_t5, mem_t6, mem_t7, mem_t8, mem_t9;
+include/rpl_reset.inc
+[connection master]
+CREATE TABLE mem_t1 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t2 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t3 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t4 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t5 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t6 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t7 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t8 (c1 INT) ENGINE= MEMORY;
+INSERT INTO mem_t1 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t2 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t3 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t4 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t5 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t6 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t7 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t8 VALUES (1), (2), (3), (4);
+include/sync_slave_sql_with_master.inc
+include/rpl_restart_server.inc [server_number=2]
+include/start_slave.inc
+include/save_binlog_position.inc
+[connection master]
+[connection slave]
+[connection master]
+INSERT INTO mem_t1 VALUES (1), (2), (3), (4);
+include/sync_slave_sql_with_master.inc
+[connection slave]
+include/assert_binlog_events.inc
+include/save_binlog_position.inc
+[connection master]
+ALTER TABLE mem_t2 ADD COLUMN (c2 INT);
+include/sync_slave_sql_with_master.inc
+[connection slave]
+include/assert_binlog_events.inc
+include/save_binlog_position.inc
+[connection master]
+CREATE TABLE mem_t9 LIKE mem_t3;
+include/sync_slave_sql_with_master.inc
+[connection slave]
+include/assert_binlog_events.inc
+include/save_binlog_position.inc
+[connection master]
+BEGIN;
+INSERT INTO mem_t4 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t5 VALUES (1), (2), (3), (4);
+COMMIT;
+include/sync_slave_sql_with_master.inc
+[connection slave]
+include/assert_binlog_events.inc
+include/save_binlog_position.inc
+[connection master]
+CREATE FUNCTION f () RETURNS INT BEGIN
+INSERT INTO mem_t6 VALUES (1);
+RETURN 2;
+END|
+INSERT INTO mem_t7 VALUES (f());
+include/sync_slave_sql_with_master.inc
+[connection slave]
+include/assert_binlog_events.inc
+include/save_binlog_position.inc
+[connection master]
+SET @@session.gtid_next = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1';
+INSERT INTO mem_t8 VALUES (1), (2), (3), (4);
+SET @@session.gtid_next = 'AUTOMATIC';
+include/sync_slave_sql_with_master.inc
+[connection slave]
+include/assert_binlog_events.inc
+[connection master]
+DROP FUNCTION f;
+DROP TABLE mem_t1, mem_t2, mem_t3, mem_t4, mem_t5, mem_t6, mem_t7, mem_t8, mem_t9;
+include/rpl_end.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_purged_fail_to_connect.result b/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_purged_fail_to_connect.result
index 6310fd7a..c98bb60b 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_purged_fail_to_connect.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_purged_fail_to_connect.result
@@ -1,37 +1,80 @@
+#
+# 1) Create a master-slave setup.
+#
 include/master-slave.inc
 Warnings:
 Note	####	Sending passwords in plain text without SSL/TLS is extremely insecure.
 Note	####	Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
 [connection master]
-call mtr.add_suppression("Got fatal error 1236 from master when reading data from binary log: 'The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.");
-######## Initialize ########
+#
+# 2) Create a table on master, sync it, stop the slave threads and dump
+#    thread on master.
+#
 CREATE TABLE t1 (a INT) ENGINE = InnoDB;
 include/sync_slave_sql_with_master.inc
 include/stop_slave.inc
+[connection master]
 include/stop_dump_threads.inc
+#
+# 3) On master, generate a transaction, flush the binary log and execute
+#    PURGE BINARY LOGS TO command so that only remaining binlog only contains
+#    transaction UUID:3.
+#
 INSERT INTO t1 VALUES (1);
 FLUSH LOGS;
 INSERT INTO t1 VALUES (2);
 PURGE BINARY LOGS TO 'master-bin.000002';
-include/assert.inc [PURGE BINARY LOGS successfully removed all but the latest files]
-INSERT INTO t1 VALUES (2);
+include/assert.inc [PURGE BINARY LOGS successfully removed all but the latest file]
+#
+# 4) Verify that the slave fails if it tries to connect using CHANGE
+#    MASTER TO MASTER_AUTO_POSITION=1.
+#
+[connection slave]
 CHANGE MASTER TO MASTER_AUTO_POSITION = 1;
 START SLAVE;
 include/wait_for_slave_io_error.inc [errno=1236 # ER_MASTER_FATAL_ERROR_READING_BINLOG]
 include/stop_slave_sql.inc
-CHANGE MASTER TO MASTER_LOG_FILE = 'master-bin.000002', MASTER_LOG_POS = MASTER_POS, MASTER_AUTO_POSITION = 0;
+[connection master]
+SET @saved_debug= @@GLOBAL.DEBUG;
+SET GLOBAL DEBUG= '+d,simulate_long_missing_gtids';
+[connection slave]
+START SLAVE;
+include/wait_for_slave_io_error.inc [errno=1236 # ER_MASTER_FATAL_ERROR_READING_BINLOG]
+include/stop_slave_sql.inc
+[connection master]
+SET GLOBAL DEBUG= @saved_debug;
+[connection slave]
+#
+# 5) Verify that appropriate messages are logged into master's and slave's
+#    error log.
+#
+include/assert_grep.inc [Found the suggestions to extract the missing GTIDs in the master error log.]
+include/assert_grep.inc [Found a message about the long GTIDs in the slave error log.]
+#
+# 6) Verify that replication succeeds if it tries to connect using CHANGE
+#    MASTER TO MASTER_LOG_POS.
+#
+CHANGE MASTER TO MASTER_LOG_FILE = 'MASTER_FILE', MASTER_LOG_POS = MASTER_POS, MASTER_AUTO_POSITION = 0;
 include/start_slave.inc
 include/assert.inc [t1 should contain only one row with the value 2]
-######## Clean up ########
-=== Stop and reset slave/master (connection slave) ====
 include/stop_slave.inc
+include/assert_grep.inc [Found warning containing lost GTIDs in the master error log.]
+include/assert_grep.inc [Found warning containing lost GTIDs in the slave error log.]
+[connection master]
+CALL mtr.add_suppression("Cannot replicate to server.*server has purged required binary logs.*");
+[connection slave]
+CALL mtr.add_suppression("Got fatal error 1236 from master.*Replicate the missing transactions from elsewhere");
+#
+# 7) Cleanup.
+#
+[connection slave]
 RESET MASTER;
 RESET SLAVE;
-=== Stop and reset master (connection master) ====
+[connection master]
 RESET MASTER;
-=== Start slave (connection slave) ====
+[connection slave]
 include/start_slave.inc
-=== Sync slave with master (connection master/slave) ====
+[connection master]
 DROP TABLE t1;
 include/sync_slave_sql_with_master.inc
 include/rpl_end.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_validate_slave_gtids.result b/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_validate_slave_gtids.result
index 7e723082..b06d3159 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_validate_slave_gtids.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_gtid_validate_slave_gtids.result
@@ -8,12 +8,14 @@ CREATE TABLE t1(i INT);
 DROP TABLE t1;
 START SLAVE IO_THREAD;
 include/wait_for_slave_io_error.inc [errno=1236]
-Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary log: 'The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.''
+Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary log: 'The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires. Replicate the missing transactions from elsewhere, or provision a new slave from backup. Consider increasing the master's binary log expiration period. The GTID set sent by the slave is '', and the missing transactions are 'MASTER_UUID:1-2'.''
 SET GLOBAL GTID_PURGED= "master_uuid:1-2";
 include/start_slave.inc
 include/sync_slave_sql_with_master.inc
 include/assert.inc [Slave should be able to get GTID-3 and 4 now.]
-call mtr.add_suppression(".*Master has purged binary logs containing GTIDs that the slave requires.*");
+CALL mtr.add_suppression(".*Cannot replicate.*purged required binary logs.*");
+CALL mtr.add_suppression(".*Master has purged binary logs containing GTIDs that the slave requires.*");
+include/assert_grep.inc [Found warning continaining lost GTIDs]
 include/rpl_reset.inc
 CREATE TABLE t1(i INT);
 DROP TABLE t1;
@@ -21,7 +23,7 @@ include/stop_slave.inc
 include/rpl_restart_server.inc [server_number=1]
 START SLAVE IO_THREAD;
 include/wait_for_slave_io_error.inc [errno=1236]
-Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary log: 'Slave has more GTIDs than the master has, using the master's SERVER_UUID. This may indicate that the end of the binary log was truncated or that the last binary log file was lost, e.g., after a power or disk failure when sync_binlog != 1. The master may or may not have rolled back transactions that were already replica''
+Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary log: 'Slave has more GTIDs than the master has, using the master's SERVER_UUID. This may indicate that the end of the binary log was truncated or that the last binary log file was lost, e.g., after a power or disk failure when sync_binlog != 1. The master may or may not have rolled back transactions that were already replicated to the slave. Suggest to replicate any transactions that master has rolled back from slave to master, and/or commit empty transactions on master to account for transactions that have been''
 call mtr.add_suppression(".*Slave has more GTIDs than the master has.*");
 SET GLOBAL GTID_PURGED= "master_uuid:1-2";
 include/start_slave.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_no_gtid_delete_memory_table_after_start_server.result b/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_no_gtid_delete_memory_table_after_start_server.result
new file mode 100644
index 00000000..66dc3434
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_no_gtid_delete_memory_table_after_start_server.result
@@ -0,0 +1,37 @@
+include/master-slave.inc
+Warnings:
+Note	####	Sending passwords in plain text without SSL/TLS is extremely insecure.
+Note	####	Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
+[connection master]
+CREATE TABLE t1(c1 INT);
+CREATE TABLE t2(c1 INT) ENGINE = MyISAM;
+CREATE TABLE mem_t1(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+CREATE TABLE mem_t2(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+INSERT INTO mem_t1 VALUES(1),(2),(3);
+INSERT INTO mem_t2 VALUES(1),(2),(3);
+include/sync_slave_sql_with_master.inc
+include/stop_slave.inc
+include/rpl_restart_server.inc [server_number=1]
+include/start_slave.inc
+# Test case 1: verify DELETE FROM mem_xx can be binlogged correctly
+#              in CREATE TABLE ... SELECT
+[connection master]
+include/save_binlog_position.inc
+CREATE TABLE t3 SELECT * FROM mem_t1 UNION SELECT 10;
+include/assert_binlog_events.inc [# Query/.*BEGIN # Query/.*DELETE.* # Query/.*COMMIT]
+include/sync_slave_sql_with_master.inc
+SELECT * FROM mem_t1;
+c1
+#
+# Test case 2: verify DELETE FROM mem_xx can be binlogged correctly
+#              in a DML on a MyISAM table
+[connection master]
+include/save_binlog_position.inc
+INSERT INTO t2 SELECT * FROM mem_t2 UNION SELECT 10;
+include/assert_binlog_events.inc [# Query/.*BEGIN # Query/.*DELETE.* # Query/.*COMMIT]
+include/sync_slave_sql_with_master.inc
+SELECT * FROM mem_t2;
+c1
+[connection master]
+DROP TABLE t1, t2, t3, mem_t1, mem_t2;
+include/rpl_end.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_plugin_load.result b/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_plugin_load.result
index 0b3db9e2..3afdd36f 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_plugin_load.result
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_plugin_load.result
@@ -18,6 +18,7 @@ Verify that example engine is installed.
 SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE ENGINE='EXAMPLE';
 ENGINE	SUPPORT	COMMENT	TRANSACTIONS	XA	SAVEPOINTS
 EXAMPLE	YES	Example storage engine	NO	NO	NO
+include/sync_slave_sql_with_master.inc
 connection slave: Verify that example engine is not installed.
 SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE ENGINE='EXAMPLE';
 ENGINE	SUPPORT	COMMENT	TRANSACTIONS	XA	SAVEPOINTS
@@ -32,5 +33,6 @@ Delta
 Verify that example engine is not installed.
 SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE ENGINE='EXAMPLE';
 ENGINE	SUPPORT	COMMENT	TRANSACTIONS	XA	SAVEPOINTS
+include/sync_slave_sql_with_master.inc
 include/rpl_end.inc
 End of test
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_row_image_check_for_insert_select.result b/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_row_image_check_for_insert_select.result
new file mode 100644
index 00000000..cf2250d6
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/r/rpl_row_image_check_for_insert_select.result
@@ -0,0 +1,58 @@
+include/master-slave.inc
+Warnings:
+Note	####	Sending passwords in plain text without SSL/TLS is extremely insecure.
+Note	####	Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
+[connection master]
+SET @old_binlog_row_image= @@binlog_row_image;
+[connection slave]
+SET @old_binlog_row_image= @@binlog_row_image;
+[connection master]
+# 1. Initial setup includes setting the transaction isolation level to
+#    'READ-COMMITTED' on master and setting binlog_row_image = FULL using
+#    rpl_row_img_set.inc.
+SET @old_tx_isolation= @@session.tx_isolation;
+SET SESSION tx_isolation='READ-COMMITTED';
+# Set the binlog_row_image to FULL on both master and slave.
+CON: 'master', IMG: 'FULL', RESTART SLAVE: 'N'
+SET SESSION binlog_row_image= 'FULL';
+SET GLOBAL binlog_row_image= 'FULL';
+FLUSH TABLES;
+SHOW VARIABLES LIKE 'binlog_row_image';
+Variable_name	Value
+binlog_row_image	FULL
+CON: 'slave', IMG: 'FULL', RESTART SLAVE: 'Y'
+SET SESSION binlog_row_image= 'FULL';
+SET GLOBAL binlog_row_image= 'FULL';
+include/stop_slave.inc
+include/start_slave.inc
+FLUSH TABLES;
+SHOW VARIABLES LIKE 'binlog_row_image';
+Variable_name	Value
+binlog_row_image	FULL
+#
+# 2. Create two tables with same structure and insert a row into a table.
+#
+CREATE DATABASE a;
+CREATE DATABASE b;
+CREATE TABLE a.test (id INT PRIMARY KEY, name VARCHAR(50) DEFAULT NULL, age BIGINT)ENGINE=InnoDB;
+CREATE TABLE b.test (id INT PRIMARY KEY, name VARCHAR(50) DEFAULT NULL, age BIGINT)ENGINE=InnoDB;
+include/sync_slave_sql_with_master.inc
+#
+# 3. Verify that INSERT..SELECT query is logged with full image on both
+#    master and slave with the use of rpl_row_img_parts_master_slave.inc
+#    file.
+#
+[connection master]
+INSERT INTO a.test(id, age) VALUES (1,5);
+INSERT INTO b.test(id,age) SELECT id , age FROM a.test;
+DROP DATABASE a;
+DROP DATABASE b;
+include/sync_slave_sql_with_master.inc
+[connection master]
+SET GLOBAL binlog_row_image= @old_binlog_row_image;
+SET SESSION binlog_row_image= @old_binlog_row_image;
+SET SESSION tx_isolation= @old_tx_isolation;
+[connection slave]
+SET GLOBAL binlog_row_image= @old_binlog_row_image;
+SET SESSION binlog_row_image= @old_binlog_row_image;
+include/rpl_end.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/ndb_rpl/t/ndb_rpl_binlog_format_errors-master.opt b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_binlog_format_errors-master.opt
similarity index 100%
rename from mysql-wsrep-5.6/mysql-test/suite/ndb_rpl/t/ndb_rpl_binlog_format_errors-master.opt
rename to mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_binlog_format_errors-master.opt
diff --git a/mysql-wsrep-5.6/mysql-test/suite/ndb_rpl/t/ndb_rpl_binlog_format_errors-slave.opt b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_binlog_format_errors-slave.opt
similarity index 100%
rename from mysql-wsrep-5.6/mysql-test/suite/ndb_rpl/t/ndb_rpl_binlog_format_errors-slave.opt
rename to mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_binlog_format_errors-slave.opt
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_binlog_format_errors.test b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_binlog_format_errors.test
new file mode 100644
index 00000000..f412e03c
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_binlog_format_errors.test
@@ -0,0 +1,442 @@
+# ==== Purpose ====
+# The purpose of this script is to test that binary logging returns an error
+# when its format is incompatible with the statement to be logged and to verify
+# the correctness of the error message.
+#
+# ==== Requirements ====
+# For the conditions 1 to 7 listed in the comments section of method
+# decide_logging_format() verify that binary logging returns the proper error or
+# warning.
+#
+# R1. When both row-incapable and statement-incapable storage engines are
+#     involved then binary logging returns error
+#     `ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE`.
+# R2. When binlog_format = ROW and the SQL statement contains a table stored in
+#     a engine limited to statement-logging then binary logging returns error
+#      `ER_BINLOG_ROW_MODE_AND_STMT_ENGINE`.
+# R3. When binlog_format = ROW and a row is injected in a engine limited to
+#     statement-logging then binary_log returns error
+#     `ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE`.
+# R4. When binlog_format = MIXED, the SQL statement is unsafe and the storage
+#     engine is limited to statement-logging then binary logs returns error
+#     `ER_BINLOG_UNSAFE_AND_STMT_ENGINE`.
+# R5. When binlog_format = STATEMENT and the SQL statement contains a table
+#     stored in a engine limited to row-logging then binary log returns error
+#     `ER_BINLOG_STMT_MODE_AND_ROW_ENGINE`.
+# R6. When binlog_format = STATEMENT and a row is injected then binary logging
+#     returns error `ER_BINLOG_ROW_INJECTION_AND_STMT_MODE`.
+# R7. When binlog_format = STATEMENT and the SQL statement is unsafe then a
+#     warning is returned.
+#
+# ==== Implementation ====
+#
+# TC1. Verify that when both row-incapable and statement-incapable storage
+# engines are involved in a SQL statement then binary logging returns the
+# error `ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE`.
+# ------------------------------------------------------------------
+# With binlog_format = ROW :
+# 1) Create a trigger which inserts data on a row-only table upon insertion of
+#    data in statement-only table.
+# 2) Try to insert data in the statement-only table.
+# 3) Verify that error `ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE` is returned.
+# 4) Verify that no data was inserted in the statement-only table.
+# 5) Verify that no data was inserted in the row-only table.
+#
+# TC2. Verify that when binlog_format = ROW and the SQL statement contains a
+#      table stored in a engine limited to statement-logging then binary logging
+#      returns the error `ER_BINLOG_ROW_MODE_AND_STMT_ENGINE`.
+# ------------------------------------------------------------------
+# With binlog_format = ROW :
+#
+# 1) Try to insert data in a statement-only table.
+# 2) Verify that `ER_BINLOG_ROW_MODE_AND_STMT_ENGINE` is returned.
+# 3) Verify that no data was inserted in the statement-only table.
+#
+# TC3. Verify that when binlog_format = ROW and the SQL statement modifies data
+#      of a table stored on the slave server in a engine limited to
+#      statement-logging then binary logging returns the error
+#      `ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE`.
+# ------------------------------------------------------------------
+# With binlog_format = ROW :
+# 1) On the master server insert data in a table which is stored in the slave as
+#    statement-only.
+# 2) On the slave server verify that error
+#    `ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE` is returned.
+# 3) On the slave server verify that no data was inserted in the
+#    statement-only table.
+#
+# TC4. Verify that when binlog_format = ROW and a row is injected in a table
+#      stored in a engine limited to statement-logging then binary logging
+#      returns the error
+#      `ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE`.
+# ------------------------------------------------------------------
+# With binlog_format = ROW :
+# 1) Execute a BINLOG statement which inserts data in a
+#    statement-only table.
+# 2) Verify that error `ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE` is returned.
+# 3) Verify that no data was inserted in the statement-only
+#    table.
+#
+# TC5. Verify that when binlog_format = MIXED, the SQL statement is unsafe and
+#      the storage engine is limited to statement-logging then binary logging
+#      returns the error `ER_BINLOG_UNSAFE_AND_STMT_ENGINE`.
+# ------------------------------------------------------------------
+# With binlog_format = MIXED :
+# 1) Try to execute an unsafe statement on a statement-only table.
+# 2) Verify that error `ER_BINLOG_UNSAFE_AND_STMT_ENGINE` is returned.
+# 3) Verify that no data was inserted in the statement-only table.
+#
+# TC6. Verify that when binlog_format = MIXED and a multi-unsafe statement is
+#      executed in a table stored in a engine limited to statement-logging then
+#      binary logging returns the error `ER_BINLOG_UNSAFE_AND_STMT_ENGINE`.
+# ------------------------------------------------------------------
+# With binlog_format = MIXED :
+# 1) Try to execute a multi-unsafe statement in a statement-only table.
+# 2) Verify that error `ER_BINLOG_UNSAFE_AND_STMT_ENGINE` is returned.
+# 3) Verify that no data was inserted in the statement-only table.
+#
+# TC7. Verify that when binlog_format = STATEMENT and the SQL statement modifies
+#      a table stored in INNODB engine as row-only then binary logging returns
+#      the error `ER_BINLOG_STMT_MODE_AND_ROW_ENGINE`.
+# ------------------------------------------------------------------
+# With binlog_format = STATEMENT :
+# 1) Try to insert data on table stored in INNODB as row-only.
+# 2) Verify that error `ER_BINLOG_STMT_MODE_AND_ROW_ENGINE` is returned.
+# 3) Verify that no data was inserted in the table.
+#
+# TC8. Verify that when binlog_format = STATEMENT and the default database is
+#      ignored by binary logging no error is returned if the SQL statement
+#      modifies a table stored in INNODB as row-only.
+# ------------------------------------------------------------------
+# With binlog_format = STATEMENT :
+# 1) Set the default database to a database which is ignored by binary logging.
+# 2) Insert data in the table stored in INNODB as row-only.
+# 3) Verify that data was inserted.
+#
+# TC9. Verify that when binlog_format = STATEMENT and the SQL statement modifies
+#      a table stored in a row-only engine then binary logging returns the error
+#      `ER_BINLOG_STMT_MODE_AND_ROW_ENGINE`.
+# ------------------------------------------------------------------
+# With binlog_format = STATEMENT:
+# 1) Try to insert data in a table stored in a row-only engine.
+# 2) Verify that error `ER_BINLOG_STMT_MODE_AND_ROW_ENGINE` is returned.
+# 3) Verify that no data was inserted in the row-only table.
+#
+# TC10. Verify that when binlog_format = STATEMENT and the default database is
+#       ignored by binary logging no error is returned if the SQL statement
+#       modifies a table stored in a row-only engine.
+# ------------------------------------------------------------------
+# With binlog_format = STATEMENT :
+# 1) Set the default database to a database which is ignored by binary logging.
+# 2) Insert data in a table stored in the row-only engine.
+# 3) Verify that data was inserted.
+#
+# TC11. Verify that when binlog_format = STATEMENT and a row is injected then
+#       binary logging returns the error `ER_BINLOG_ROW_INJECTION_AND_STMT_MODE`.
+# ------------------------------------------------------------------
+# With binlog_format = STATEMENT :
+# 1) Execute a BINLOG statement which inserts data.
+# 2) Verify that error `ER_BINLOG_ROW_INJECTION_AND_STMT_MODE` is returned.
+# 3) Verify that no data was inserted.
+#
+# TC12. Verify that when binlog_format = STATEMENT and the default database is
+#       ignored by binary logging no error is returned for row injection.
+# ------------------------------------------------------------------
+# With binlog_format = STATEMENT :
+# 1) Set the default database to a database which is ignored by binary logging.
+# 2) Execute a BINLOG statement which inserts data.
+# 3) Verify that data was inserted.
+#
+# TC13. Verify that when binlog_format = STATEMENT and the SQL statement is
+#       unsafe then a warning is returned.
+# ------------------------------------------------------------------
+# With binlog_format = STATEMENT :
+# 1) Execute a unsafe SQL statement.
+# 2) Verify that warning is returned.
+# 3) Verify that data was inserted.
+#
+# TC14. Verify that when binlog_format = STATEMENT and the default database is
+#       ignored by binary logging no warning is returned for an SQL unsafe
+#       statement.
+# ------------------------------------------------------------------
+# With binlog_format = STATEMENT :
+# 1) Set the default database to a database which is ignored by binary logging.
+# 2) Execute a unsafe statement.
+# 3) Verify that no warning is returned.
+# 4) Verify that data was inserted.
+#
+# TC15. Verify that when binlog_format = STATEMENT, a row is injected in the
+#       master server having binlog_format = MIXED and the slave server has
+#       binlog_format = STATEMENT then binary returns the error
+#       `ER_BINLOG_ROW_INJECTION_AND_STMT_MODE`.
+# ------------------------------------------------------------------
+# With binlog_format = MIXED for the master server and binlog_format = STATEMENT
+# for the slave server
+# 1) On the master server execute a BINLOG statement which injects a row.
+# 2) Verify that on the slave server the error
+#    `ER_BINLOG_ROW_INJECTION_AND_STMT_MODE` is returned.
+# 3) Verify that no data was inserted in the slave server.
+#
+# ==== References ====
+# BUG#39934: Slave stops for engine that only support row-based logging
+# BUG#42829: binlogging enabled for all schemas regardless of binlog-do-db /
+# binlog-ignore-db
+#
+# ==== Related test cases ====
+#
+# binlog.binlog_unsafe verifies more thoroughly that a warning is
+# given for the case when an unsafe statement is executed and
+# binlog_format = STATEMENT.
+#
+# ndb_rpl.ndb_rpl_binlog_format_errors verifies that a binlog error is issued
+# if more than one engine is involved in a statement and at least one is doing
+# it's own logging (is *self-logging*), which is the case for NDB engine.
+
+# Need debug so that 'SET @@session.debug' works.
+--source include/have_debug.inc
+# Need example plugin because it is the only statement-only engine.
+# Dynamic loading of Example does not work on Windows currently.
+--source include/not_windows.inc
+--source include/have_example_plugin.inc
+# The test changes binlog_format, so there is no reason to run it
+# under more than one binlog format.
+--source include/have_binlog_format_row.inc
+# Disable multi threaded slave since an error in a worker slave leads to an
+# upper-level error in the coordinator
+--source include/not_mts_slave_parallel_workers.inc
+# Test requires GTIDs off
+--source include/not_gtid_enabled.inc
+
+--source include/master-slave.inc
+
+--disable_query_log
+CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since binlog_format = STATEMENT");
+CALL mtr.add_suppression("Cannot execute statement: impossible to write to binary log");
+--enable_query_log
+
+--echo ==== Initialize ====
+
+--echo [on slave]
+--source include/rpl_connection_slave.inc
+
+SET @old_binlog_format= @@global.binlog_format;
+INSTALL PLUGIN example SONAME 'ha_example.so';
+
+--echo [on master]
+--source include/rpl_connection_master.inc
+
+SET @old_binlog_format= @@global.binlog_format;
+INSTALL PLUGIN example SONAME 'ha_example.so';
+
+CREATE TABLE t (a VARCHAR(100)) ENGINE = MYISAM;
+CREATE TABLE t_row (a VARCHAR(100)) ENGINE = INNODB;
+CREATE TABLE t_stmt (a VARCHAR(100)) ENGINE = EXAMPLE;
+CREATE TABLE t_slave_stmt (a VARCHAR(100)) ENGINE = MYISAM;
+CREATE TABLE t_autoinc (a INT KEY AUTO_INCREMENT) ENGINE = MYISAM;
+CREATE TABLE t_double_autoinc (a INT KEY AUTO_INCREMENT) ENGINE = MYISAM;
+
+--eval CREATE TRIGGER trig_autoinc BEFORE INSERT ON t_autoinc FOR EACH ROW BEGIN INSERT INTO t_stmt VALUES ('x'); END
+--eval CREATE TRIGGER trig_double_autoinc BEFORE INSERT ON t_double_autoinc FOR EACH ROW BEGIN INSERT INTO t_autoinc VALUES (NULL); END
+
+CREATE DATABASE other;
+
+# This makes the innodb table row-only
+SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
+
+--echo [on slave]
+--source include/sync_slave_sql_with_master.inc
+
+DROP TABLE t_slave_stmt;
+CREATE TABLE t_slave_stmt (a INT) ENGINE = EXAMPLE;
+
+--echo [on master]
+--source include/rpl_connection_master.inc
+
+# This is a format description event.  It is needed because any BINLOG
+# statement containing a row event must be preceded by a BINLOG
+# statement containing a format description event.
+BINLOG '
+1gRVSg8BAAAAZgAAAGoAAAABAAQANS4xLjM2LWRlYnVnLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAADWBFVKEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
+';
+
+
+--echo ==== Test ====
+
+--echo ---- binlog_format='row' ----
+
+
+--echo * TC1: Modify both row-only and stmt-only table
+--eval CREATE TRIGGER trig_2 AFTER INSERT ON t_stmt FOR EACH ROW BEGIN INSERT INTO t_row VALUES(1); END
+--error ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE
+INSERT INTO t_stmt VALUES (1);
+SELECT * FROM t_stmt /* should be empty */;
+SELECT * FROM t_row /* should be empty */;
+DROP TRIGGER trig_2;
+
+--echo * TC2: Stmt-only table and binlog_format='row'
+--error ER_BINLOG_ROW_MODE_AND_STMT_ENGINE
+INSERT INTO t_stmt VALUES (1);
+SELECT * FROM t_stmt /* should be empty */;
+
+--echo * TC3: Row injection and stmt-only table: in slave sql thread
+INSERT INTO t_slave_stmt VALUES (1);
+--echo [on slave]
+--source include/rpl_connection_slave.inc
+# 1664 = ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE
+--let $slave_sql_errno= 1664
+--let $show_slave_sql_error= 1
+--source include/wait_for_slave_sql_error_and_skip.inc
+--source include/rpl_connection_slave.inc
+SELECT * FROM t_slave_stmt /* should be empty */;
+
+--echo [on master]
+--source include/rpl_connection_master.inc
+--echo * TC4: Row injection and stmt-only table: use BINLOG statement
+# This is a Table_map_event and a Write_rows_event. Together, they are
+# equivalent to 'INSERT INTO t_stmt VALUES (1)'
+--error ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE
+BINLOG '
+1gRVShMBAAAALwAAAEABAAAAABcAAAAAAAAABHRlc3QABnRfc3RtdAABDwJkAAE=
+1gRVShcBAAAAIAAAAGABAAAQABcAAAAAAAEAAf/+ATE=
+';
+SELECT * FROM t_stmt /* should be empty */;
+
+
+--echo ---- binlog_format=mixed ----
+
+--echo [on slave]
+--source include/sync_slave_sql_with_master.inc
+--source include/stop_slave.inc
+SET @@global.binlog_format = MIXED;
+--source include/start_slave.inc
+--echo [on master]
+--source include/rpl_connection_master.inc
+SET @@global.binlog_format = MIXED;
+SET @@session.binlog_format = MIXED;
+
+--echo * TC5: Unsafe statement and stmt-only engine
+--error ER_BINLOG_UNSAFE_AND_STMT_ENGINE
+INSERT INTO t_stmt VALUES (UUID());
+SELECT * FROM t_stmt; /* should be empty */;
+
+# Concatenate two unsafe values, and then concatenate NULL to
+# that so that the result is NULL and we instead use autoinc.
+--echo * TC6: Multi-unsafe statement and stmt-only engine
+--error ER_BINLOG_UNSAFE_AND_STMT_ENGINE
+INSERT INTO t_double_autoinc SELECT CONCAT(UUID(), @@hostname, NULL) FROM mysql.general_log LIMIT 1;
+SELECT * FROM t_double_autoinc; /* should be empty */;
+
+
+--echo ---- binlog_format=statement ----
+
+--echo [on slave]
+--source include/sync_slave_sql_with_master.inc
+--source include/stop_slave.inc
+SET @@global.binlog_format = STATEMENT;
+--source include/start_slave.inc
+--echo [on master]
+--source include/rpl_connection_master.inc
+SET @@global.binlog_format = STATEMENT;
+SET @@session.binlog_format = STATEMENT;
+
+--echo * TC7: Row-only engine and binlog_format=statement: innodb-specific message
+--error ER_BINLOG_STMT_MODE_AND_ROW_ENGINE
+INSERT INTO t_row VALUES (1);
+SELECT * FROM t_row /* should be empty */;
+
+--echo * TC8: Same statement, but db filtered out - no error
+USE other;
+INSERT INTO test.t_row VALUES (1);
+USE test;
+SELECT * FROM t_row /* should contain the value 1 */;
+USE other;
+DELETE FROM test.t_row;
+USE test;
+
+--echo * TC9: Row-only engine and binlog_format=statement: generic message
+SET @@session.debug= '+d,no_innodb_binlog_errors';
+--error ER_BINLOG_STMT_MODE_AND_ROW_ENGINE
+INSERT INTO t_row VALUES (1);
+SELECT * FROM t_row /* should be empty */;
+
+--echo * TC10: Same statement, but db filtered out - no error
+USE other;
+INSERT INTO test.t_row VALUES (1);
+USE test;
+SET @@session.debug= '';
+SELECT * FROM t_row /* should contain the value 1 */;
+
+--echo * TC11: Row injection and binlog_format=statement: BINLOG statement
+# This is a Table_map_event and a Write_rows_event. Together, they are
+# equivalent to 'INSERT INTO t VALUES (1)'.
+--error ER_BINLOG_ROW_INJECTION_AND_STMT_MODE
+BINLOG '
+cNpVShMBAAAAKgAAADYBAAAAABcAAAAAAAAABHRlc3QAAXQAAQ8CZAAB
+cNpVShcBAAAAIAAAAFYBAAAQABcAAAAAAAEAAf/+ATE=
+';
+SELECT * FROM t /* should be empty */;
+
+--echo * TC12: Same statement, but db filtered out - no error
+# This is a Table_map_event and a Write_rows_event. Together, they are
+# equivalent to 'INSERT INTO t VALUES (1)'.
+USE other;
+BINLOG '
+cNpVShMBAAAAKgAAADYBAAAAABcAAAAAAAAABHRlc3QAAXQAAQ8CZAAB
+cNpVShcBAAAAIAAAAFYBAAAQABcAAAAAAAEAAf/+ATE=
+';
+USE test;
+SELECT * FROM t /* should contain the value 1 */;
+DELETE FROM t;
+
+--echo * TC13: Unsafe statement and binlog_format=statement
+# This will give a warning.
+INSERT INTO t VALUES (COALESCE(1, UUID()));
+SELECT * FROM t /* should contain the value 1 */;
+DELETE FROM t;
+
+--echo * TC14: Same statement, but db filtered out - no message
+USE other;
+INSERT INTO test.t VALUES (COALESCE(1, UUID()));
+USE test;
+SELECT * FROM t /* should contain the value 1 */;
+DELETE FROM t;
+
+
+--echo ---- master: binlog_format=mixed, slave: binlog_format=statement ----
+
+SET @@global.binlog_format = MIXED;
+SET @@session.binlog_format = MIXED;
+
+--echo * TC15: Row injection and binlog_format=statement: in slave sql thread
+INSERT INTO t VALUES (COALESCE(1, UUID()));
+--echo [on slave]
+--source include/rpl_connection_slave.inc
+# 1666 = ER_BINLOG_ROW_INJECTION_AND_STMT_MODE
+--let $slave_sql_errno= 1666
+--let $show_sql_error= 1
+--source include/wait_for_slave_sql_error_and_skip.inc
+--source include/rpl_connection_slave.inc
+SELECT * FROM t /* should be empty */;
+--echo [on master]
+--source include/rpl_connection_master.inc
+
+
+--echo ==== Clean up ====
+
+DROP TRIGGER trig_autoinc;
+DROP TRIGGER trig_double_autoinc;
+DROP TABLE t, t_row, t_stmt, t_slave_stmt, t_autoinc, t_double_autoinc;
+DROP DATABASE other;
+SET @@global.binlog_format = @old_binlog_format;
+SET @@session.binlog_format = @old_binlog_format;
+UNINSTALL PLUGIN example;
+--echo [on slave]
+--source include/sync_slave_sql_with_master.inc
+--source include/stop_slave.inc
+SET @@global.binlog_format = @old_binlog_format;
+SET @@session.binlog_format = @old_binlog_format;
+--source include/start_slave.inc
+UNINSTALL PLUGIN example;
+
+--source include/rpl_end.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_delete_memory_table_after_start_server.test b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_delete_memory_table_after_start_server.test
new file mode 100644
index 00000000..a81615d7
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_delete_memory_table_after_start_server.test
@@ -0,0 +1,178 @@
+################################################################################
+# Bug#25681518 - CLEANUP PROCEDURE FOR MEMORY ENGINE TABLES BREAKS GTID
+#                REPLICA
+#
+# Memory table's data will be lost after server restarts. To keep the data
+# consistency between master and slave, it just binlogs
+# 'DELETE FROM `db`.`table_name`' when the memory table is locked first time.
+# So DELETE statement could be binlogged in many statements.
+#
+# Because it was not handled correctly, it caused below problems:
+## - COM_FIELD_LIST
+#   it didn't flush binlog cache to binlog file. So the DELETEs were not
+#   binlogged in COM_FIELD_LIST, it was binlogged with next statement together.
+#
+# - CREATE TABLE ... LIKE memory_table
+# - CREATE TABLE ... SELECT memory_table
+#   They were binlogged like:
+#   GTID_log_event
+#   DELETE FROM memory_table
+#   CREATE TABLE ... LIKE memory_table | CREATE TABLE ... SELECT memory_table
+#
+#   Both statements shared the same gtid event. That was not correct.
+#
+# - DELETE was binlogged without BEGIN and COMMIT
+#   It caused some DML binlogged without BEGIN and COMMIT.  For example:
+#   INSERT INTO myisam_t1 SELECT * FROM memory_table
+#   it was binlogged as:
+#   GTID_log_event
+#   DELETE FROM memory_table
+#   INSERT INTO myisam_t1 SELECT * FROM memory_table
+#
+# The test cases in this file will verify some cases that can be run only when
+# gtid mode is on.
+#
+# See rpl_no_gtid_delete_memory_table_after_start_server.test for the tests with
+# gtid_mode=off.
+################################################################################
+--source include/have_gtid.inc
+--let $rpl_gtid_utils= 1
+--source include/master-slave.inc
+
+CREATE DATABASE db1;
+CREATE DATABASE db2;
+CREATE TABLE t1(c1 INT);
+CREATE TABLE t2(c1 INT);
+CREATE TABLE mem_t1(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+CREATE TABLE mem_t2(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+CREATE TABLE db1.mem_t1(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+CREATE TABLE db1.mem_t2(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+CREATE TABLE db2.mem_t1(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+CREATE TABLE db2.mem_t2(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+CREATE TABLE db2.mem_t3(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+CREATE TABLE db2.mem_t4(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+CREATE TABLE db2.mem_t5(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+
+--delimiter |
+CREATE TRIGGER tr1 AFTER INSERT ON t2 FOR EACH ROW
+BEGIN
+  INSERT INTO t1 SELECT * FROM db2.mem_t3;
+END |
+--delimiter ;
+
+INSERT INTO db1.mem_t1 VALUES(1),(2),(3);
+INSERT INTO db1.mem_t2 VALUES(1),(2),(3);
+INSERT INTO db2.mem_t1 VALUES(1),(2),(3);
+INSERT INTO db2.mem_t2 VALUES(1),(2),(3);
+INSERT INTO db2.mem_t3 VALUES(1),(2),(3);
+INSERT INTO db2.mem_t4 VALUES(1),(2),(3);
+INSERT INTO db2.mem_t5 VALUES(1),(2),(3);
+
+--source include/sync_slave_sql_with_master.inc
+--source include/stop_slave_io.inc
+--source include/rpl_connection_master.inc
+
+# Restart the master server
+--let $rpl_server_number=1
+--source include/rpl_restart_server.inc
+--source include/rpl_reconnect.inc
+
+# Restart slave threads
+--source include/rpl_connection_slave.inc
+--source include/start_slave_io.inc
+--source include/sync_slave_sql.inc
+
+--echo #
+--echo # Test case 1: verify DELETE FROM mem_xx can be binlogged correctly
+--echo #              in CREATE TABLE ... LIKE
+--source include/rpl_connection_master.inc
+--source include/gtid_step_reset.inc
+--source include/save_binlog_position.inc
+
+CREATE TABLE t3 LIKE db2.mem_t1;
+
+--let $gtid_step_count= 2
+--source include/gtid_step_assert.inc
+
+--let $limit= 0,4
+--let $event_sequence= Gtid # Query/.*BEGIN # Query/.*DELETE.* # Query/.*COMMIT
+--source include/assert_binlog_events.inc
+
+--source include/sync_slave_sql_with_master.inc
+# DELETE FROM mem_xx have been applied the tables should be empty.
+SELECT * FROM db2.mem_t1;
+
+--echo #
+--echo # Test case 2: verify DELETE FROM mem_xx can be binlogged correctly
+--echo #              in DML
+--source include/rpl_connection_master.inc
+--source include/gtid_step_reset.inc
+--source include/save_binlog_position.inc
+
+# mem_t3 is empty, the UNION makes sure that a row event is binlogged.
+INSERT INTO t3 SELECT * FROM db2.mem_t2 UNION SELECT 10;
+
+--let $gtid_step_count= 2
+--source include/gtid_step_assert.inc
+
+--let $limit= 0,4
+--let $event_sequence= Gtid # Query/.*BEGIN # Query/.*DELETE.* # Query/.*COMMIT
+--source include/assert_binlog_events.inc
+
+--source include/sync_slave_sql_with_master.inc
+# DELETE FROM mem_xx have been applied the tables should be empty.
+SELECT * FROM db2.mem_t2;
+
+--echo #
+--echo # Test case 3: verify DELETE FROM mem_xx can be binlogged correctly
+--echo #              in a trigger
+
+--source include/rpl_connection_master.inc
+--source include/gtid_step_reset.inc
+--source include/save_binlog_position.inc
+
+INSERT INTO t2 VALUES(11);
+
+--let $gtid_step_count= 2
+--source include/gtid_step_assert.inc
+
+--source include/assert_binlog_events.inc
+
+--source include/sync_slave_sql_with_master.inc
+# DELETE FROM mem_xx have been applied the tables should be empty.
+SELECT * FROM db2.mem_t3;
+
+--echo #
+--echo # Test case 4: Verify DELETE FROM mem_xx can be binlog correctly
+--echo #              when ALTER the memory table.
+--source include/rpl_connection_master.inc
+--source include/gtid_step_reset.inc
+--source include/save_binlog_position.inc
+
+ALTER TABLE db2.mem_t4 ADD COLUMN c2 INT;
+
+--let $gtid_step_count= 2
+--source include/gtid_step_assert.inc
+--source include/assert_binlog_events.inc
+
+--source include/sync_slave_sql_with_master.inc
+# DELETE FROM mem_xx have been applied the tables should be empty.
+SELECT * FROM db2.mem_t4;
+
+--echo #
+--echo # Test case 5: Verify DELETE FROM mem_xx can be binlog correctly
+--echo #              when DROP the memory table.
+--source include/rpl_connection_master.inc
+--source include/gtid_step_reset.inc
+DROP TABLE db2.mem_t5;
+
+--let $gtid_step_count= 1
+--source include/gtid_step_assert.inc
+--source include/sync_slave_sql_with_master.inc
+
+--source include/rpl_connection_master.inc
+DROP TABLE t1, t2, t3, mem_t1, mem_t2;
+DROP DATABASE db1;
+DROP DATABASE db2;
+
+--source include/rpl_end.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_deleted_binlog_fail_to_connect.test b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_deleted_binlog_fail_to_connect.test
new file mode 100644
index 00000000..6769a775
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_deleted_binlog_fail_to_connect.test
@@ -0,0 +1,146 @@
+# ==== Purpose ====
+#
+# Test that the slave fails to connect to the master with
+# MASTER_AUTO_POSITION=1 if the slave is missing some transactions that
+# the user has manually deleted the binary logs that slave requires.
+#
+# ==== Implementation ====
+#
+# 1) Create a master-slave setup.
+# 2) Create a table on master, sync it, stop the slave threads and dump thread
+#    on master.
+# 3) On master, generate a transaction, flush the binary log and delete the
+#    first binary logs so that only remaining binlog only contains transaction
+#    UUID:3.
+# 4) Verify that the slave fails if it tries to connect using CHANGE MASTER TO
+#    MASTER_AUTO_POSITION=1.
+# 5) Verify that appropriate messages are logged into master's and slave's
+#    error log.
+# 6) Verify that replication succeeds if it tries to connect using CHANGE
+#    MASTER TO MASTER_LOG_POS.
+# 7) Cleanup.
+#
+# ==== References ====
+#
+# Bug#29769293 - ERROR 1236 "MASTER HAS PURGED BINARY LOGS CONTAINING GTIDS":
+#                GTID NOT LOGGED
+
+# This test is binlog format agnostic
+--source include/have_binlog_format_row.inc
+--source include/have_debug.inc
+--source include/have_gtid.inc
+--let $rpl_gtid_utils= 1
+
+--echo #
+--echo # 1) Create a master-slave setup.
+--echo #
+--source include/master-slave.inc
+
+--let $master_uuid= `SELECT @@SERVER_UUID`
+
+--echo #
+--echo # 2) Create a table on master, sync it, stop the slave threads and dump
+--echo #    thread on master.
+--echo #
+CREATE TABLE t1 (a INT) ENGINE = InnoDB;
+--source include/sync_slave_sql_with_master.inc
+--source include/stop_slave.inc
+
+--source include/rpl_connection_master.inc
+# Need to kill the dump thread explicitly: stop slave does not do
+# that, and if the dump thread is slow, it will still be reading from
+# the old binlog at the time we do PURGE BINARY LOGS below. That would
+# prevent PURGE BINARY LOGS from purging the log.
+--source include/stop_dump_threads.inc
+
+--echo #
+--echo # 3) On master, generate a transaction, flush the binary log and delete
+--echo #    the first binary logs so that only remaining binlog only contains
+--echo #    transaction UUID:3.
+--echo #
+INSERT INTO t1 VALUES (1);
+
+--let $master_file_old= query_get_value(SHOW MASTER STATUS, File, 1)
+FLUSH LOGS;
+
+--let $master_file= query_get_value(SHOW MASTER STATUS, File, 1)
+--let $master_pos= query_get_value(SHOW MASTER STATUS, Position, 1)
+INSERT INTO t1 VALUES (2);
+--save_master_pos
+
+# Remove the binary log manually
+--let $MASTER_DATADIR= `select @@datadir`
+--remove_file $MASTER_DATADIR/$master_file_old
+
+--echo #
+--echo # 4) Verify that the slave fails if it tries to connect using CHANGE
+--echo #    MASTER TO MASTER_AUTO_POSITION=1.
+--echo #
+--source include/rpl_connection_slave.inc
+CHANGE MASTER TO MASTER_AUTO_POSITION = 1;
+
+START SLAVE;
+
+--let $slave_io_errno= 1236 # ER_MASTER_FATAL_ERROR_READING_BINLOG
+--source include/wait_for_slave_io_error.inc
+--source include/stop_slave_sql.inc
+
+--echo #
+--echo # 5) Verify that appropriate messages are logged into master's and slave's
+--echo #    error log.
+--echo #
+
+# Verify that warning about the missing transactions are logged into the master's error log.
+--let $assert_file=$MYSQLTEST_VARDIR/log/mysqld.1.err
+--let $assert_match= .*Cannot replicate to server with server_uuid.*The missing transactions are '.*:1'.*
+--let $assert_select= Cannot replicate to server with server_uuid
+--let $assert_text= Found warning containing lost GTIDs in the master error log.
+--source include/assert_grep.inc
+
+# Verify that an error about the missing transactions are logged into the slave's error log.
+--let $assert_file=$MYSQLTEST_VARDIR/log/mysqld.2.err
+--let $assert_match= .*Replicate the missing transactions from elsewhere, or provision a new slave from backup.*the missing transactions are '.*:1'.*
+--let $assert_select= Replicate the missing transactions from elsewhere, or provision a new slave from backup
+--let $assert_text= Found warning containing lost GTIDs in the slave error log.
+--source include/assert_grep.inc
+
+--echo #
+--echo # 6) Verify that replication succeeds if it tries to connect using CHANGE
+--echo #    MASTER TO MASTER_LOG_POS.
+--echo #
+--replace_result $master_file MASTER_FILE $master_pos MASTER_POS
+--eval CHANGE MASTER TO MASTER_LOG_FILE = '$master_file', MASTER_LOG_POS = $master_pos, MASTER_AUTO_POSITION = 0
+
+--source include/start_slave.inc
+--sync_with_master
+
+--let $assert_text= t1 should contain only one row with the value 2
+--let $assert_cond= "[SELECT COUNT(*) FROM t1]" = "1" AND "[SELECT * FROM t1]" = "2"
+--source include/assert.inc
+--source include/stop_slave.inc
+
+# Suppress the error on master.
+--source include/rpl_connection_master.inc
+CALL mtr.add_suppression("Cannot replicate to server.*server has purged required binary logs.*");
+CALL mtr.add_suppression("Failed to open log");
+CALL mtr.add_suppression("Could not open log");
+
+# Suppress the error on slave.
+--source include/rpl_connection_slave.inc
+CALL mtr.add_suppression("Got fatal error 1236 from master.*Replicate the missing transactions from elsewhere");
+
+--echo #
+--echo # 7) Cleanup.
+--echo #
+--disable_warnings
+RESET MASTER;
+RESET SLAVE;
+--source include/rpl_connection_master.inc
+RESET MASTER;
+--source include/rpl_connection_slave.inc
+--source include/start_slave.inc
+--source include/rpl_connection_master.inc
+DROP TABLE t1;
+--source include/sync_slave_sql_with_master.inc
+--enable_warnings
+--source include/rpl_end.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_drop_mem_table.cnf b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_drop_mem_table.cnf
new file mode 100644
index 00000000..97c6110f
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_drop_mem_table.cnf
@@ -0,0 +1,11 @@
+!include ../my.cnf
+
+[mysqld.1]
+gtid-mode=on
+enforce-gtid-consistency
+log-slave-updates
+
+[mysqld.2]
+gtid-mode=on
+enforce-gtid-consistency
+log-slave-updates
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_drop_mem_table.test b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_drop_mem_table.test
new file mode 100644
index 00000000..314b7fef
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_drop_mem_table.test
@@ -0,0 +1,260 @@
+#  ==== Purpose ====
+#
+# The purpose of this test is to verify that a DELETE statement is binary
+# logged with correct GTID when a replicated memory table is fisrt updated
+# after a server crash or a server restart.
+#
+#  ==== Requirements ====
+#
+# R1. When there is a replicated memory table, and the slave crashes, the next
+# transaction that updates the memory table shall generate a DELETE statement
+# in the binary log. This test verifies that this works in the below cases:
+
+# R1.1. When the update is applied on a replication channel.
+# R1.2. When the update is applied in a client session having
+#       gtid_next=UUID:NUMBER.
+#
+# R2. The DELETE statement shall have a new GTID generated by the slave.
+#
+# R3. There shall not be a crash.
+#
+# ==== Implementation ====
+#
+# 1. Try to update the memory table on master after restarting the master:
+#
+# 1.1. A DML on the memory table
+# 1.2. A DDL on the memory table.
+# 1.3. A statement that reads from the memory table.
+# 1.4. A transaction containing update on the memory table along with other
+#      table updates.
+# 1.5. A statement containing update on the memory table along with other
+#      table updates.
+# 1.6. A DML on the memory table applied in a client session having
+#      gtid_next=UUID:NUMBER.
+#
+# In each of the above cases:
+# - Verify that DELETE statement is binary logged on the master.
+#
+# 2. Try to update the memory table on master after restarting the slave:
+#
+# 2.1. A DML on the memory table
+# 2.2. A DDL on the memory table.
+# 2.3. A statement that reads from the memory table
+# 2.4. A transaction containing update on the memory table along with other
+#      table updates.
+# 2.5. A statement containing update on the memory table along with other
+#      table updates.
+# 2.6. A DML on the memory table applied in a client session having
+#      gtid_next=UUID:NUMBER.
+#
+# In each of the above cases:
+# - Verify that DELETE statement is binary logged on the slave.
+#
+# ==== References ====
+#
+# Bug#30527929 - RESTART CREATES ANONYMOUS TRANSACTION FOR MEMORY TABLE
+#
+
+--source include/have_gtid.inc
+--source include/master-slave.inc
+
+#Scenario 1
+--source include/rpl_connection_master.inc
+CREATE TABLE mem_t1 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t2 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t3 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t4 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t5 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t6 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t7 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t8 (c1 INT) ENGINE= MEMORY;
+INSERT INTO mem_t1 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t2 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t3 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t4 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t5 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t6 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t7 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t8 VALUES (1), (2), (3), (4);
+--source include/sync_slave_sql_with_master.inc
+
+# Restart master
+--source include/stop_slave.inc
+--let $rpl_server_number=1
+--source include/rpl_restart_server.inc
+--source include/start_slave.inc
+--source include/rpl_connection_master.inc
+--source include/save_binlog_position.inc
+
+# Scenario 1.1
+INSERT INTO mem_t1 VALUES (1), (2), (3), (4);
+--source include/sync_slave_sql_with_master.inc
+--source include/rpl_connection_master.inc
+--let $limit= 0,9
+--let $event_sequence= #Gtid # !Begin # !Delete # !Commit #Gtid # !Begin # !Insert # !Commit
+--source include/assert_binlog_events.inc
+--source include/save_binlog_position.inc
+
+# Scenario 1.2
+ALTER TABLE mem_t2 ADD COLUMN (c2 INT);
+--source include/sync_slave_sql_with_master.inc
+--source include/rpl_connection_master.inc
+--let $limit= 0,6
+--let $event_sequence= #Gtid # !Begin # !Delete # !Commit #Gtid # !Q(ALTER.*)
+--source include/assert_binlog_events.inc
+--source include/save_binlog_position.inc
+
+# Scenario 1.3
+CREATE TABLE mem_t9 LIKE mem_t3;
+--source include/sync_slave_sql_with_master.inc
+--source include/rpl_connection_master.inc
+--let $limit= 0,6
+--let $event_sequence= #Gtid # !Begin # !Delete # !Commit #Gtid # !Q(CREATE.*)
+--source include/assert_binlog_events.inc
+--source include/save_binlog_position.inc
+
+# Scenario 1.4:
+BEGIN;
+INSERT INTO mem_t4 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t5 VALUES (1), (2), (3), (4);
+COMMIT;
+--source include/sync_slave_sql_with_master.inc
+--source include/rpl_connection_master.inc
+--let $limit= 0,18
+--let $event_sequence= #Gtid # !Begin # !Delete # !Commit #Gtid # !Begin # !Insert # !Commit #Gtid # !Begin # !Delete # !Commit #Gtid # !Begin # !Insert # !Commit
+--source include/assert_binlog_events.inc
+--source include/save_binlog_position.inc
+
+# Scenario 1.5:
+UPDATE mem_t6, mem_t7 SET mem_t6.c1 = mem_t6.c1 + 1, mem_t7.c1 = mem_t7.c1 + 1;
+--source include/sync_slave_sql_with_master.inc
+--source include/rpl_connection_master.inc
+--let $limit= 0,8
+--let $event_sequence= #Gtid # !Begin # !Delete # !Commit #Gtid # !Begin # !Delete # !Commit
+--source include/assert_binlog_events.inc
+--source include/save_binlog_position.inc
+
+#Scenario 1.6:
+--let $explicit_gtid=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1
+--eval SET @@session.gtid_next = '$explicit_gtid'
+INSERT INTO mem_t8 VALUES (1), (2), (3), (4);
+SET @@session.gtid_next = 'AUTOMATIC';
+--source include/sync_slave_sql_with_master.inc
+--source include/rpl_connection_master.inc
+--let $limit= 0,9
+--let $event_sequence= #Gtid # !Begin # !Delete # !Commit #Gtid/(.*'$explicit_gtid')# !Begin # !Insert # !Commit
+--source include/assert_binlog_events.inc
+
+# Cleanup
+DROP TABLE mem_t1, mem_t2, mem_t3, mem_t4, mem_t5, mem_t6, mem_t7, mem_t8, mem_t9;
+--source include/rpl_reset.inc
+
+# Scenario 2:
+--source include/rpl_connection_master.inc
+CREATE TABLE mem_t1 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t2 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t3 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t4 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t5 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t6 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t7 (c1 INT) ENGINE= MEMORY;
+CREATE TABLE mem_t8 (c1 INT) ENGINE= MEMORY;
+INSERT INTO mem_t1 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t2 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t3 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t4 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t5 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t6 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t7 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t8 VALUES (1), (2), (3), (4);
+--source include/sync_slave_sql_with_master.inc
+
+# Restart slave
+--let $rpl_server_number=2
+--source include/rpl_restart_server.inc
+--source include/start_slave.inc
+--source include/save_binlog_position.inc
+
+# Save the UUID of master and slave
+--source include/rpl_connection_master.inc
+--let $master_uuid = `SELECT @@global.server_uuid`
+--source include/rpl_connection_slave.inc
+--let $slave_uuid = `SELECT @@global.server_uuid`
+--let $dont_print_pattern = 1
+
+# Scenario 2.1
+--source include/rpl_connection_master.inc
+INSERT INTO mem_t1 VALUES (1), (2), (3), (4);
+--source include/sync_slave_sql_with_master.inc
+--source include/rpl_connection_slave.inc
+--let $limit= 0,9
+--let $event_sequence= #Gtid/(.*'$slave_uuid:1') # !Begin # !Delete # !Commit #Gtid/(.*'$master_uuid:17') # !Begin # !Insert # !Commit
+--source include/assert_binlog_events.inc
+--source include/save_binlog_position.inc
+
+# Scenario 2.2
+--source include/rpl_connection_master.inc
+ALTER TABLE mem_t2 ADD COLUMN (c2 INT);
+--source include/sync_slave_sql_with_master.inc
+--source include/rpl_connection_slave.inc
+--let $limit= 0,6
+--let $event_sequence= #Gtid/(.*'$slave_uuid:2') # !Begin # !Delete # !Commit #Gtid/(.*'$master_uuid:18') # !Q(ALTER.*)
+--source include/assert_binlog_events.inc
+--source include/save_binlog_position.inc
+
+# Scenario 2.3
+--source include/rpl_connection_master.inc
+CREATE TABLE mem_t9 LIKE mem_t3;
+--source include/sync_slave_sql_with_master.inc
+--source include/rpl_connection_slave.inc
+--let $limit= 0,6
+--let $event_sequence= #Gtid/(.*'$slave_uuid:3') # !Begin # !Delete # !Commit #Gtid/(.*'$master_uuid:19') # !Q(CREATE.*)
+--source include/assert_binlog_events.inc
+--source include/save_binlog_position.inc
+
+# Scenario 2.4:
+--source include/rpl_connection_master.inc
+BEGIN;
+INSERT INTO mem_t4 VALUES (1), (2), (3), (4);
+INSERT INTO mem_t5 VALUES (1), (2), (3), (4);
+COMMIT;
+--source include/sync_slave_sql_with_master.inc
+--source include/rpl_connection_slave.inc
+--let $limit= 0,18
+--let $event_sequence= #Gtid/(.*'$slave_uuid:4') # !Begin # !Delete # !Commit #Gtid/(.*'$master_uuid:20') # !Begin # !Insert # !Commit #Gtid/(.*'$slave_uuid:5') # !Begin # !Delete # !Commit #Gtid/(.*'$master_uuid:21') # !Begin # !Insert # !Commit
+--source include/assert_binlog_events.inc
+--source include/save_binlog_position.inc
+
+# Scenario 2.5:
+--source include/rpl_connection_master.inc
+DELIMITER |;
+CREATE FUNCTION f () RETURNS INT BEGIN
+INSERT INTO mem_t6 VALUES (1);
+RETURN 2;
+END|
+DELIMITER ;|
+INSERT INTO mem_t7 VALUES (f());
+--source include/sync_slave_sql_with_master.inc
+--source include/rpl_connection_slave.inc
+--let $limit= 2,16
+--let $event_sequence= #Gtid/(.*'$slave_uuid:6') # !Begin # !Delete # !Commit #Gtid/(.*'$slave_uuid:7') # !Begin # !Delete # !Commit #Gtid/(.*'$master_uuid:23') # !Begin # !Multi_DML # !Commit
+--source include/assert_binlog_events.inc
+--source include/save_binlog_position.inc
+
+#Scenario 2.6:
+--source include/rpl_connection_master.inc
+--eval SET @@session.gtid_next = '$explicit_gtid'
+INSERT INTO mem_t8 VALUES (1), (2), (3), (4);
+SET @@session.gtid_next = 'AUTOMATIC';
+--source include/sync_slave_sql_with_master.inc
+--source include/rpl_connection_slave.inc
+--let $limit= 0,9
+--let $event_sequence= #Gtid/(.*'$slave_uuid:8') # !Begin # !Delete # !Commit #Gtid/(.*'$explicit_gtid')# !Begin # !Insert # !Commit
+--source include/assert_binlog_events.inc
+
+# Cleanup
+--source include/rpl_connection_master.inc
+DROP FUNCTION f;
+DROP TABLE mem_t1, mem_t2, mem_t3, mem_t4, mem_t5, mem_t6, mem_t7, mem_t8, mem_t9;
+--let $dont_print_pattern = 0
+--source include/rpl_end.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_purged_fail_to_connect.test b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_purged_fail_to_connect.test
index 46cce3aa..ff944a84 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_purged_fail_to_connect.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_purged_fail_to_connect.test
@@ -6,66 +6,124 @@
 #
 # ==== Implementation ====
 #
-# Start master and slave, then stop the slave. Generate a transaction
-# on master and purge it.  Verify that the slave fails if it tries to
-# connect using CHANGE MASTER TO MASTER_AUTO_POSITION, but the slave
-# succeeds if it tries to connect using CHANGE MASTER TO
-# MASTER_LOG_POS.
+# 1) Create a master-slave setup.
+# 2) Create a table on master, sync it, stop the slave threads and dump thread
+#    on master.
+# 3) On master, generate a transaction, flush the binary log and execute PURGE
+#    BINARY LOGS TO command so that only remaining binlog only contains
+#    transaction UUID:3.
+# 4) Verify that the slave fails if it tries to connect using CHANGE MASTER TO
+#    MASTER_AUTO_POSITION=1.
+# 5) Verify that appropriate messages are logged into master's and slave's
+#    error log.
+# 6) Verify that replication succeeds if it tries to connect using CHANGE
+#    MASTER TO MASTER_LOG_POS.
+# 7) Cleanup.
 #
 # ==== References ====
 #
-# Added in WL#3584 - Global Transaction Identifiers
+# WL#3584 - Global Transaction Identifiers
+# Bug#29769293 - ERROR 1236 "MASTER HAS PURGED BINARY LOGS CONTAINING GTIDS":
+#                GTID NOT LOGGED
 
 --source include/have_debug.inc
 --source include/have_gtid.inc
 --let $rpl_gtid_utils= 1
---source include/master-slave.inc
-
-call mtr.add_suppression("Got fatal error 1236 from master when reading data from binary log: 'The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.");
 
---echo ######## Initialize ########
+--echo #
+--echo # 1) Create a master-slave setup.
+--echo #
+--source include/master-slave.inc
 
 --let $master_uuid= `SELECT @@SERVER_UUID`
+
+--echo #
+--echo # 2) Create a table on master, sync it, stop the slave threads and dump
+--echo #    thread on master.
+--echo #
 CREATE TABLE t1 (a INT) ENGINE = InnoDB;
 --source include/sync_slave_sql_with_master.inc
 --source include/stop_slave.inc
 
---connection master
+--source include/rpl_connection_master.inc
 # Need to kill the dump thread explicitly: stop slave does not do
 # that, and if the dump thread is slow, it will still be reading from
 # the old binlog at the time we do PURGE BINARY LOGS below. That would
 # prevent PURGE BINARY LOGS from purging the log.
 --source include/stop_dump_threads.inc
 
+--echo #
+--echo # 3) On master, generate a transaction, flush the binary log and execute
+--echo #    PURGE BINARY LOGS TO command so that only remaining binlog only contains
+--echo #    transaction UUID:3.
+--echo #
 INSERT INTO t1 VALUES (1);
 
 FLUSH LOGS;
 --let $master_file= query_get_value(SHOW MASTER STATUS, File, 1)
 --let $master_pos= query_get_value(SHOW MASTER STATUS, Position, 1)
 INSERT INTO t1 VALUES (2);
-eval PURGE BINARY LOGS TO '$master_file';
+--save_master_pos
+
+--eval PURGE BINARY LOGS TO '$master_file'
 
 --let $assert_cond= "[SHOW MASTER STATUS, File, 1]" = "$master_file"
---let $assert_text= PURGE BINARY LOGS successfully removed all but the latest files
+--let $assert_text= PURGE BINARY LOGS successfully removed all but the latest file
 --source include/assert.inc
 
---let $master_file= query_get_value(SHOW MASTER STATUS, File, 1)
---let $master_pos= query_get_value(SHOW MASTER STATUS, Position, 1)
-INSERT INTO t1 VALUES (2);
---save_master_pos
-
---connection slave
+--echo #
+--echo # 4) Verify that the slave fails if it tries to connect using CHANGE
+--echo #    MASTER TO MASTER_AUTO_POSITION=1.
+--echo #
+--source include/rpl_connection_slave.inc
 CHANGE MASTER TO MASTER_AUTO_POSITION = 1;
 
 START SLAVE;
+
 # BUG#13727933 causes this test to fail sporadically on the following line
 # apparently the binlog is not always purged on the master (?)
 --let $slave_io_errno= 1236 # ER_MASTER_FATAL_ERROR_READING_BINLOG
 --source include/wait_for_slave_io_error.inc
 --source include/stop_slave_sql.inc
 
---replace_result $master_file MASTER_FILE
---replace_result $master_pos MASTER_POS
+# Testing with long set of gtids
+--source include/rpl_connection_master.inc
+SET @saved_debug= @@GLOBAL.DEBUG;
+SET GLOBAL DEBUG= '+d,simulate_long_missing_gtids';
+--source include/rpl_connection_slave.inc
+START SLAVE;
+
+--let $slave_io_errno= 1236 # ER_MASTER_FATAL_ERROR_READING_BINLOG
+--source include/wait_for_slave_io_error.inc
+--source include/stop_slave_sql.inc
+--source include/rpl_connection_master.inc
+SET GLOBAL DEBUG= @saved_debug;
+--source include/rpl_connection_slave.inc
+
+--echo #
+--echo # 5) Verify that appropriate messages are logged into master's and slave's
+--echo #    error log.
+--echo #
+
+# Verify that suggestions to extract the missing gtids are logged into the master's error log.
+--let $assert_file=$MYSQLTEST_VARDIR/log/mysqld.1.err
+--let $assert_match= .*To find the missing purged transactions.*
+--let $assert_select= To find the missing purged transactions
+--let $assert_text= Found the suggestions to extract the missing GTIDs in the master error log.
+--source include/assert_grep.inc
+
+# Verify that an error about long gtids are logged into the slave's error log.
+--let $assert_file=$MYSQLTEST_VARDIR/log/mysqld.2.err
+--let $assert_match= .*The GTID sets and the missing purged transactions are too long to print in this message.*
+--let $assert_select= The GTID sets and the missing purged transactions are too long to print in this message.
+--let $assert_text= Found a message about the long GTIDs in the slave error log.
+--source include/assert_grep.inc
+
+--echo #
+--echo # 6) Verify that replication succeeds if it tries to connect using CHANGE
+--echo #    MASTER TO MASTER_LOG_POS.
+--echo #
+--replace_result $master_file MASTER_FILE $master_pos MASTER_POS
 eval CHANGE MASTER TO MASTER_LOG_FILE = '$master_file', MASTER_LOG_POS = $master_pos, MASTER_AUTO_POSITION = 0;
 
 --source include/start_slave.inc
@@ -74,23 +132,41 @@ eval CHANGE MASTER TO MASTER_LOG_FILE = '$master_file', MASTER_LOG_POS = $master
 --let $assert_text= t1 should contain only one row with the value 2
 --let $assert_cond= "[SELECT COUNT(*) FROM t1]" = "1" AND "[SELECT * FROM t1]" = "2"
 --source include/assert.inc
-
---echo ######## Clean up ########
---echo === Stop and reset slave/master (connection slave) ====
---connection slave
 --source include/stop_slave.inc
+
+# Verify that warning about the missing transactions are logged into the master's error log.
+--let $assert_file=$MYSQLTEST_VARDIR/log/mysqld.1.err
+--let $assert_match= .*Cannot replicate to server with server_uuid.*The missing transactions are '.*:2'.*
+--let $assert_select= Cannot replicate to server with server_uuid
+--let $assert_text= Found warning containing lost GTIDs in the master error log.
+--source include/assert_grep.inc
+
+# Verify that an error about the missing transactions are logged into the slave's error log.
+--let $assert_file=$MYSQLTEST_VARDIR/log/mysqld.2.err
+--let $assert_match= .*Replicate the missing transactions from elsewhere, or provision a new slave from backup.*the missing transactions are '.*:2'.*
+--let $assert_select= Replicate the missing transactions from elsewhere, or provision a new slave from backup
+--let $assert_text= Found warning containing lost GTIDs in the slave error log.
+--source include/assert_grep.inc
+
+# Suppress the error on master.
+--source include/rpl_connection_master.inc
+CALL mtr.add_suppression("Cannot replicate to server.*server has purged required binary logs.*");
+
+# Suppress the error on slave.
+--source include/rpl_connection_slave.inc
+CALL mtr.add_suppression("Got fatal error 1236 from master.*Replicate the missing transactions from elsewhere");
+
+--echo #
+--echo # 7) Cleanup.
+--echo #
+--source include/rpl_connection_slave.inc
 RESET MASTER;
 RESET SLAVE;
---echo === Stop and reset master (connection master) ====
---connection master
+--source include/rpl_connection_master.inc
 RESET MASTER;
---echo === Start slave (connection slave) ====
---connection slave
+--source include/rpl_connection_slave.inc
 --source include/start_slave.inc
---echo === Sync slave with master (connection master/slave) ====
---connection master
+--source include/rpl_connection_master.inc
 DROP TABLE t1;
 --source include/sync_slave_sql_with_master.inc
-
---connection master
 --source include/rpl_end.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_validate_slave_gtids.test b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_validate_slave_gtids.test
index 91d567a6..06627876 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_validate_slave_gtids.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_gtid_validate_slave_gtids.test
@@ -36,8 +36,9 @@ START SLAVE IO_THREAD;
 # Step-4)since Master has already purged binary logs  containing GTID 1 and 2,
 # it should throw error and I/O thread should not be started.
 #1236 = ER_MASTER_FATAL_ERROR_READING_BINLOG
---let $slave_io_errno= 1236
+--let $slave_io_errno= convert_error(ER_MASTER_FATAL_ERROR_READING_BINLOG)
 --let $show_slave_io_error= 1
+--let $slave_io_error_replace= /$master_uuid/MASTER_UUID/
 --source include/wait_for_slave_io_error.inc
 
 # Fix the problem by setting GTID_PURGED on Slave as well.
@@ -55,7 +56,17 @@ START SLAVE IO_THREAD;
 --let $assert_cond= "[SELECT @@GLOBAL.GTID_EXECUTED]" = "$master_uuid:1-4"
 --source include/assert.inc
 
-call mtr.add_suppression(".*Master has purged binary logs containing GTIDs that the slave requires.*");
+# Suppress the errors and warnings
+--connection master
+CALL mtr.add_suppression(".*Cannot replicate.*purged required binary logs.*");
+--connection slave
+CALL mtr.add_suppression(".*Master has purged binary logs containing GTIDs that the slave requires.*");
+
+--let $assert_file=$MYSQLTEST_VARDIR/log/mysqld.1.err
+--let $assert_match= .*Cannot replicate to server with server_uuid.*The missing transactions are '$master_uuid:1-2'.*
+--let $assert_select= Cannot replicate to server with server_uuid
+--let $assert_text= Found warning continaining lost GTIDs
+--source include/assert_grep.inc
 
 ###############################################################################
 #Bug #18789758  DATA INCONSISTENCIES WHEN MASTER HAS TRUNCATED BINARY LOG WITH
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_no_gtid_delete_memory_table_after_start_server.test b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_no_gtid_delete_memory_table_after_start_server.test
new file mode 100644
index 00000000..5cd52c60
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_no_gtid_delete_memory_table_after_start_server.test
@@ -0,0 +1,89 @@
+################################################################################
+# Bug#25681518 - CLEANUP PROCEDURE FOR MEMORY ENGINE TABLES BREAKS GTID
+#                REPLICA
+#
+# Memory table's data will be lost after server restarts. To keep the data
+# consistency between master and slave, it just binlogs
+# 'DELETE FROM `db`.`table_name`' when the memory table is locked first time.
+# So DELETE statement could be binlogged in many statements.
+#
+# Because it was not handled correctly, it caused below problems:
+# - COM_FIELD_LIST
+#   it didn't flush binlog cache to binlog file. So the DELETEs were not
+#   binlogged in COM_FIELD_LIST, it was binlogged with next statement together.
+#
+# - CREATE TABLE ... LIKE memory_table
+# - CREATE TABLE ... SELECT memory_table
+#   They were binlogged like:
+#   GTID_log_event
+#   DELETE FROM memory_table
+#   CREATE TABLE ... LIKE memory_table | CREATE TABLE ... SELECT memory_table
+#
+#   Both statements shared the same gtid event. That was not correct.
+#
+# - DELETE was binlogged without BEGIN and COMMIT
+#   It caused some DML binlogged without BEGIN and COMMIT.  For example:
+#   INSERT INTO myisam_t1 SELECT * FROM memory_table
+#   it was binlogged as:
+#   GTID_log_event
+#   DELETE FROM memory_table
+#   INSERT INTO myisam_t1 SELECT * FROM memory_table
+#
+# The test cases in this file will verify some cases that cannot be run when
+# gtid mode is on.
+#
+# See rpl_gtid_delete_memory_table_after_start_server.test for the tests with
+# gtid_mode=on.
+################################################################################
+--source include/not_gtid_enabled.inc
+--source include/master-slave.inc
+
+CREATE TABLE t1(c1 INT);
+CREATE TABLE t2(c1 INT) ENGINE = MyISAM;
+CREATE TABLE mem_t1(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+CREATE TABLE mem_t2(c1 INT PRIMARY KEY) ENGINE = MEMORY;
+
+INSERT INTO mem_t1 VALUES(1),(2),(3);
+INSERT INTO mem_t2 VALUES(1),(2),(3);
+
+--source include/sync_slave_sql_with_master.inc
+--source include/stop_slave.inc
+
+--let $rpl_server_number=1
+--source include/rpl_restart_server.inc
+
+--source include/start_slave.inc
+
+--echo # Test case 1: verify DELETE FROM mem_xx can be binlogged correctly
+--echo #              in CREATE TABLE ... SELECT
+--source include/rpl_connection_master.inc
+--source include/save_binlog_position.inc
+
+CREATE TABLE t3 SELECT * FROM mem_t1 UNION SELECT 10;
+
+--let $limit= 0,3
+--let $event_sequence= # Query/.*BEGIN # Query/.*DELETE.* # Query/.*COMMIT
+--source include/assert_binlog_events.inc
+
+--source include/sync_slave_sql_with_master.inc
+# DELETE FROM mem_t1 have been applied the tables should be empty.
+SELECT * FROM mem_t1;
+
+--echo #
+--echo # Test case 2: verify DELETE FROM mem_xx can be binlogged correctly
+--echo #              in a DML on a MyISAM table
+--source include/rpl_connection_master.inc
+--source include/save_binlog_position.inc
+
+# mem_t2 is empty, the UNION makes sure that a row event is binlogged.
+INSERT INTO t2 SELECT * FROM mem_t2 UNION SELECT 10;
+
+--source include/assert_binlog_events.inc
+
+--source include/sync_slave_sql_with_master.inc
+# DELETE FROM mem_xx have been applied the tables should be empty.
+SELECT * FROM mem_t2;
+
+--source include/rpl_connection_master.inc
+DROP TABLE t1, t2, t3, mem_t1, mem_t2;
+--source include/rpl_end.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_row_image_check_for_insert_select.test b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_row_image_check_for_insert_select.test
new file mode 100644
index 00000000..56dc3b0d
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_row_image_check_for_insert_select.test
@@ -0,0 +1,84 @@
+# ==== Purpose ====
+#
+# Verify that INSERT..SELECT query is logged as a row event and honors
+# binlog_row_image= FULL when binlog_format=MIXED with transaction isolation
+# level set to READ-COMMITTED.
+#
+# ==== Implementation ====
+#
+# 1. Initial setup includes setting the transaction isolation level to
+#    'READ-COMMITTED' on master and setting binlog_row_image = FULL using
+#    rpl_row_img_set.inc.
+# 2. Create two tables with same structure and insert a row into a table.
+# 3. Verify that INSERT..SELECT query is logged with full image on both master
+#    and slave with the use of rpl_row_img_parts_master_slave.inc file.
+#
+# Note: Please see rpl_row_img_set.inc and rpl_row_img_parts_master_slave.inc
+# for more details.
+#
+# ==== References ====
+#
+# Bug#29110804: BINLOG_ROW_IMAGE=FULL NOT ALWAYS HONOURED FOR BINROW_FORMAT=MIXED
+
+--source include/have_binlog_format_mixed.inc
+--source include/master-slave.inc
+
+# Save the value binlog_row_image
+SET @old_binlog_row_image= @@binlog_row_image;
+--source include/rpl_connection_slave.inc
+SET @old_binlog_row_image= @@binlog_row_image;
+--source include/rpl_connection_master.inc
+
+--echo # 1. Initial setup includes setting the transaction isolation level to
+--echo #    'READ-COMMITTED' on master and setting binlog_row_image = FULL using
+--echo #    rpl_row_img_set.inc.
+
+SET @old_tx_isolation= @@session.tx_isolation;
+SET SESSION tx_isolation='READ-COMMITTED';
+
+--echo # Set the binlog_row_image to FULL on both master and slave.
+--let $row_img_set=master:FULL:N,slave:FULL:Y
+--source include/rpl_row_img_set.inc
+
+--echo #
+--echo # 2. Create two tables with same structure and insert a row into a table.
+--echo #
+CREATE DATABASE a;
+CREATE DATABASE b;
+
+CREATE TABLE a.test (id INT PRIMARY KEY, name VARCHAR(50) DEFAULT NULL, age BIGINT)ENGINE=InnoDB;
+CREATE TABLE b.test (id INT PRIMARY KEY, name VARCHAR(50) DEFAULT NULL, age BIGINT)ENGINE=InnoDB;
+
+--source include/sync_slave_sql_with_master.inc
+
+--echo #
+--echo # 3. Verify that INSERT..SELECT query is logged with full image on both
+--echo #    master and slave with the use of rpl_row_img_parts_master_slave.inc
+--echo #    file.
+--echo #
+--source include/rpl_connection_master.inc
+--let $row_img_query= INSERT INTO a.test(id, age) VALUES (1,5)
+--let $row_img_expected_master= | 1:1 2:NULL 3:5
+--let $row_img_expected_slave = | 1:1 2:NULL 3:5
+--source include/rpl_row_img_parts_master_slave.inc
+
+--let $row_img_query= INSERT INTO b.test(id,age) SELECT id , age FROM a.test
+--let $row_img_expected_master= | 1:1 2:NULL 3:5
+--let $row_img_expected_slave = | 1:1 2:NULL 3:5
+--source include/rpl_row_img_parts_master_slave.inc
+
+# CLEAN UP
+DROP DATABASE a;
+DROP DATABASE b;
+--source include/sync_slave_sql_with_master.inc
+
+--source include/rpl_connection_master.inc
+SET GLOBAL binlog_row_image= @old_binlog_row_image;
+SET SESSION binlog_row_image= @old_binlog_row_image;
+SET SESSION tx_isolation= @old_tx_isolation;
+
+--source include/rpl_connection_slave.inc
+SET GLOBAL binlog_row_image= @old_binlog_row_image;
+SET SESSION binlog_row_image= @old_binlog_row_image;
+
+--source include/rpl_end.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_ssl.test b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_ssl.test
index 7e32d212..c099ee55 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_ssl.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/rpl/t/rpl_ssl.test
@@ -100,8 +100,6 @@ drop table t1;
 
 # ==== BUG#18165937: HITTING CRASH WHEN SETTING SSL OPTIONS THROUGH CHANGE MASTER COMMAND ====
 #
-# The server would crash when setting SSL_CRL options using CHANGE
-# MASTER with YASSL enabled.
 
 --source include/stop_slave.inc
 --replace_column 2 ####
diff --git a/mysql-wsrep-5.6/mysql-test/suite/sys_vars/t/pfs_digests_size_basic.test b/mysql-wsrep-5.6/mysql-test/suite/sys_vars/t/pfs_digests_size_basic.test
index 76085bb1..8e293d62 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/sys_vars/t/pfs_digests_size_basic.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/sys_vars/t/pfs_digests_size_basic.test
@@ -2,13 +2,20 @@
 # Use is subject to license terms
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/suite/sys_vars/t/pfs_session_connect_attrs_size_basic.test b/mysql-wsrep-5.6/mysql-test/suite/sys_vars/t/pfs_session_connect_attrs_size_basic.test
index f10126b1..621364ad 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/sys_vars/t/pfs_session_connect_attrs_size_basic.test
+++ b/mysql-wsrep-5.6/mysql-test/suite/sys_vars/t/pfs_session_connect_attrs_size_basic.test
@@ -2,13 +2,20 @@
 # Use is subject to license terms
 #
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/suite/wsrep/my.cnf b/mysql-wsrep-5.6/mysql-test/suite/wsrep/my.cnf
index 81e22a52..3785d8d0 100644
--- a/mysql-wsrep-5.6/mysql-test/suite/wsrep/my.cnf
+++ b/mysql-wsrep-5.6/mysql-test/suite/wsrep/my.cnf
@@ -3,6 +3,7 @@
 
 [mysqld.1]
 wsrep_provider=@ENV.WSREP_PROVIDER
+wsrep_provider_options='base_port=@mysqld.1.#galera_port;gcache.size=10M'
 wsrep_cluster_address='gcomm://'
 wsrep_node_address=127.0.0.1
 binlog-format=row
diff --git a/mysql-wsrep-5.6/mysql-test/suite/wsrep/r/wsrep-recover-v25-binlog.result b/mysql-wsrep-5.6/mysql-test/suite/wsrep/r/wsrep-recover-v25-binlog.result
new file mode 100644
index 00000000..5727dc86
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/wsrep/r/wsrep-recover-v25-binlog.result
@@ -0,0 +1,26 @@
+Killing server ...
+Expect seqno 0
+0
+Using --wsrep-start-position when starting mysqld ...
+CREATE TABLE t1 (f1 INT PRIMARY KEY) ENGINE=InnoDB;
+Killing server ...
+Expect seqno 1
+1
+Using --wsrep-start-position when starting mysqld ...
+INSERT INTO t1 VALUES (2);
+Killing server ...
+Expect seqno 2
+2
+Using --wsrep-start-position when starting mysqld ...
+SET DEBUG_SYNC = "wsrep_before_commit SIGNAL wsrep_before_commit_reached WAIT_FOR continue";
+INSERT INTO t1 VALUES (3);
+SET DEBUG_SYNC = "now WAIT_FOR wsrep_before_commit_reached";
+Killing server ...
+Expect seqno 2
+2
+Using --wsrep-start-position when starting mysqld ...
+Expect 2
+SELECT * FROM t1;
+f1
+2
+DROP TABLE t1;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/wsrep/r/wsrep-recover-v25.result b/mysql-wsrep-5.6/mysql-test/suite/wsrep/r/wsrep-recover-v25.result
new file mode 100644
index 00000000..93768f04
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/wsrep/r/wsrep-recover-v25.result
@@ -0,0 +1,27 @@
+Killing server ...
+Expect seqno 0
+0
+Using --wsrep-start-position when starting mysqld ...
+CREATE TABLE t1 (f1 INT PRIMARY KEY) ENGINE=InnoDB;
+Killing server ...
+Expect seqno 1
+1
+Using --wsrep-start-position when starting mysqld ...
+INSERT INTO t1 VALUES (2);
+Killing server ...
+Expect seqno 2
+2
+Using --wsrep-start-position when starting mysqld ...
+SET SESSION debug_sync = "wsrep_before_commit SIGNAL wsrep_before_commit_reached WAIT_FOR wsrep_before_commit_continue";
+INSERT INTO t1 VALUES (3);
+SET SESSION debug_sync = "now WAIT_FOR wsrep_before_commit_reached";
+Killing server ...
+Expect seqno 3
+3
+Using --wsrep-start-position when starting mysqld ...
+Expect 2 3
+SELECT * FROM t1;
+f1
+2
+3
+DROP TABLE t1;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-step.inc b/mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-step.inc
new file mode 100644
index 00000000..634c22da
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-step.inc
@@ -0,0 +1,41 @@
+#
+# Macro to run wsrep recovery step. This is adapted from
+# suite/galera/include/galera_wsrep_recover.inc, with additional
+# option to pass binlog argument to recovery command. The macro
+# returns recovered position split in uuid and seqno parts.
+#
+# Arguments:
+#
+# wsrep_recover_binlog_opt - Binlog options to recovery command
+#
+# Return:
+#
+# wsrep_recover_start_position_uuid - UUID corresponding to recovered position
+# wsrep_recover_start_position_seqno - seqno corresponding to recovered position
+#
+
+--exec $MYSQLD --defaults-group-suffix=.1 --defaults-file=$MYSQLTEST_VARDIR/my.cnf --log-error=$MYSQL_TMP_DIR/galera_wsrep_recover.log --innodb --wsrep-recover $wsrep_recover_binlog_opt --core-file > $MYSQL_TMP_DIR/galera_wsrep_recover.log 2>&1
+
+--perl
+	use strict;
+	my $wsrep_start_position = `grep ' Recovered position:' $ENV{MYSQL_TMP_DIR}/galera_wsrep_recover.log | sed 's/.*Recovered\ position://' | sed 's/^[ \t]*//'`;
+	chomp($wsrep_start_position);
+        die if $wsrep_start_position eq '';
+	open(FILE, ">", "$ENV{MYSQL_TMP_DIR}/galera_wsrep_start_position.inc") or die;
+	my ($uuid, $seqno) = split /:/, $wsrep_start_position;
+	print FILE "--let \$wsrep_recover_start_position_uuid = $uuid\n";
+	print FILE "--let \$wsrep_recover_start_position_seqno = $seqno\n";
+	close FILE;
+EOF
+
+--source $MYSQL_TMP_DIR/galera_wsrep_start_position.inc
+
+if ($wsrep_recover_start_position_uuid == '') {
+   --die "Could not obtain start_position_uuid."
+}
+
+if ($wsrep_recover_start_position_seqno == '') {
+   --die "Could not obtain start_position_seqno."
+}
+
+--remove_file $MYSQL_TMP_DIR/galera_wsrep_start_position.inc
diff --git a/mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-v25-binlog.cnf b/mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-v25-binlog.cnf
new file mode 100644
index 00000000..3971348d
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-v25-binlog.cnf
@@ -0,0 +1,9 @@
+!include ../my.cnf
+
+[mysqld.1]
+wsrep-cluster-address=gcomm://
+wsrep-provider=@ENV.WSREP_PROVIDER
+innodb-flush-log-at-trx-commit=1
+binlog-format=ROW
+log-bin
+sync-binlog=1
diff --git a/mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-v25-binlog.test b/mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-v25-binlog.test
new file mode 100644
index 00000000..9367540d
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-v25-binlog.test
@@ -0,0 +1,90 @@
+#
+# Verify that the wsrep XID gets updated in InnoDB system header
+# properly and can be recovered with --wsrep-recover
+#
+# The test runs the following scenarios:
+#
+# 1) The server is started but no SQL is run
+# 2) DDL is executed
+# 3) INSERT is executed
+# 4) INSERT is executed and the server is killed before commit happens.
+#
+# After each scenario server is killed and the recovered position
+# is validated.
+#
+
+--source include/have_wsrep.inc
+--source include/have_wsrep_provider.inc
+--source include/have_debug_sync.inc
+--source include/have_log_bin.inc
+
+--let $wsrep_recover_binlog_opt = --log-bin
+
+#
+# Scenario 1
+# The expected recovered seqno is 0 corresponding to initial cluster
+# configuration change.
+#
+--source include/kill_galera.inc
+--source wsrep-recover-step.inc
+--echo Expect seqno 0
+--echo $wsrep_recover_start_position_seqno
+
+--let $galera_wsrep_start_position = $wsrep_recover_start_position_uuid:$wsrep_recover_start_position_seqno
+--source include/start_mysqld.inc
+--source include/wait_wsrep_ready.inc
+
+#
+# Senario 2
+# The expected recovered seqno is 1 corresponding to CREATE TABLE
+#
+
+CREATE TABLE t1 (f1 INT PRIMARY KEY) ENGINE=InnoDB;
+--source include/kill_galera.inc
+--source wsrep-recover-step.inc
+--echo Expect seqno 1
+--echo $wsrep_recover_start_position_seqno
+--let $galera_wsrep_start_position = $wsrep_recover_start_position_uuid:$wsrep_recover_start_position_seqno
+--source include/start_mysqld.inc
+--source include/wait_wsrep_ready.inc
+
+#
+# Scenario 3
+# The expected recovered seqno is 2 corresponding CREATE TABLE and INSERT.
+#
+
+INSERT INTO t1 VALUES (2);
+--source include/kill_galera.inc
+--source wsrep-recover-step.inc
+--echo Expect seqno 2
+--echo $wsrep_recover_start_position_seqno
+--let $galera_wsrep_start_position = $wsrep_recover_start_position_uuid:$wsrep_recover_start_position_seqno
+--source include/start_mysqld.inc
+--source include/wait_wsrep_ready.inc
+
+#
+# Scenario 4
+#
+# The INSERT gets prepared but not committed.
+#
+# The INSERT should be rolled back during recovery phase since it has not yet
+# been logged into binlog.
+#
+
+--connect con1, localhost, root
+SET DEBUG_SYNC = "wsrep_before_commit SIGNAL wsrep_before_commit_reached WAIT_FOR continue";
+--send INSERT INTO t1 VALUES (3)
+
+--connection default
+SET DEBUG_SYNC = "now WAIT_FOR wsrep_before_commit_reached";
+--source include/kill_galera.inc
+--source wsrep-recover-step.inc
+--echo Expect seqno 2
+--echo $wsrep_recover_start_position_seqno
+--let $galera_wsrep_start_position = $wsrep_recover_start_position_uuid:$wsrep_recover_start_position_seqno
+--source include/start_mysqld.inc
+--source include/wait_wsrep_ready.inc
+--echo Expect 2
+SELECT * FROM t1;
+
+DROP TABLE t1;
diff --git a/mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-v25.cnf b/mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-v25.cnf
new file mode 100644
index 00000000..a718ada1
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-v25.cnf
@@ -0,0 +1,7 @@
+!include ../my.cnf
+
+[mysqld.1]
+wsrep-cluster-address=gcomm://
+wsrep-provider=@ENV.WSREP_PROVIDER
+innodb-flush-log-at-trx-commit=1
+skip-log-bin
diff --git a/mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-v25.test b/mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-v25.test
new file mode 100644
index 00000000..2035321c
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/suite/wsrep/t/wsrep-recover-v25.test
@@ -0,0 +1,86 @@
+#
+# Verify that the wsrep XID gets updated in InnoDB system header
+# properly and can be recovered with --wsrep-recover
+#
+# The test runs the following scenarios:
+#
+# 1) The server is started but no SQL is run
+# 2) DDL is executed
+# 3) INSERT is executed
+# 4) INSERT is executed and the server is killed before commit happens.
+#
+# After each scenario server is killed and the recovered position
+# is validated.
+#
+
+--source include/have_wsrep.inc
+--source include/have_wsrep_provider.inc
+--source include/have_debug_sync.inc
+
+#
+# Scenario 1
+# The expected recovered seqno is 0 corresponding to initial cluster
+# configuration change.
+#
+--source include/kill_galera.inc
+--source wsrep-recover-step.inc
+--echo Expect seqno 0
+--echo $wsrep_recover_start_position_seqno
+
+--let $galera_wsrep_start_position = $wsrep_recover_start_position_uuid:$wsrep_recover_start_position_seqno
+--source include/start_mysqld.inc
+--source include/wait_wsrep_ready.inc
+
+#
+# Senario 2
+# The expected recovered seqno is 1 corresponding CREATE TABLE
+#
+
+CREATE TABLE t1 (f1 INT PRIMARY KEY) ENGINE=InnoDB;
+--source include/kill_galera.inc
+--source wsrep-recover-step.inc
+--echo Expect seqno 1
+--echo $wsrep_recover_start_position_seqno
+
+--let $galera_wsrep_start_position = $wsrep_recover_start_position_uuid:$wsrep_recover_start_position_seqno
+--source include/start_mysqld.inc
+--source include/wait_wsrep_ready.inc
+
+#
+# Scenario 3
+# The expected recovered seqno is 2 corresponding to CREATE TABLE and INSERT.
+#
+
+INSERT INTO t1 VALUES (2);
+--source include/kill_galera.inc
+--source wsrep-recover-step.inc
+--echo Expect seqno 2
+--echo $wsrep_recover_start_position_seqno
+--let $galera_wsrep_start_position = $wsrep_recover_start_position_uuid:$wsrep_recover_start_position_seqno
+--source include/start_mysqld.inc
+--source include/wait_wsrep_ready.inc
+
+#
+# Scenario 4
+# The server is killed before transaction commits. The transaction
+# is found in prepared state with wsrep XID associated and it will
+# be committed.
+#
+
+SET SESSION debug_sync = "wsrep_before_commit SIGNAL wsrep_before_commit_reached WAIT_FOR wsrep_before_commit_continue";
+--send INSERT INTO t1 VALUES (3)
+
+--connect (node_1a, localhost, root,,)
+SET SESSION debug_sync = "now WAIT_FOR wsrep_before_commit_reached";
+
+--source include/kill_galera.inc
+--source wsrep-recover-step.inc
+--echo Expect seqno 3
+--echo $wsrep_recover_start_position_seqno
+--let $galera_wsrep_start_position = $wsrep_recover_start_position_uuid:$wsrep_recover_start_position_seqno
+--source include/start_mysqld.inc
+--source include/wait_wsrep_ready.inc
+--echo Expect 2 3
+SELECT * FROM t1;
+
+DROP TABLE t1;
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_buffer_size_overflow.test b/mysql-wsrep-5.6/mysql-test/t/audit_log_buffer_size_overflow.test
new file mode 100644
index 00000000..659f984c
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_buffer_size_overflow.test
@@ -0,0 +1,31 @@
+--source include/not_embedded.inc
+# Bug PS-3969: Adding a status variable to catch when statement was too big to fit buffer.
+
+# Test it with default audit_log_strategy
+--source include/shutdown_mysqld.inc
+--let $start_mysqld_params = $AUDIT_LOG_OPT $AUDIT_LOG_LOAD --audit_log_buffer_size=4096
+--source include/start_mysqld.inc
+--source include/wait_until_connected_again.inc
+
+SHOW GLOBAL STATUS LIKE 'Audit_log_buffer_size_overflow';
+
+--disable_query_log
+--disable_result_log
+SELECT "4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonj";
+--enable_query_log
+--enable_result_log
+SHOW GLOBAL STATUS LIKE 'Audit_log_buffer_size_overflow';
+
+# Test it with audit_log_strategy = PERFORMANCE
+--source include/shutdown_mysqld.inc
+--let $start_mysqld_params = $AUDIT_LOG_OPT $AUDIT_LOG_LOAD --audit_log_buffer_size=4096 --audit_log_strategy=PERFORMANCE
+--source include/start_mysqld.inc
+--source include/wait_until_connected_again.inc
+
+SHOW GLOBAL STATUS LIKE 'Audit_log_buffer_size_overflow';
+--disable_query_log
+--disable_result_log
+SELECT "4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonjTjv4IHYyOZMEAUJcURiOO9nLoceKvbRi3HSZZObmonj";
+--enable_query_log
+--enable_result_log
+SHOW GLOBAL STATUS LIKE 'Audit_log_buffer_size_overflow';
\ No newline at end of file
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_charset-master.opt b/mysql-wsrep-5.6/mysql-test/t/audit_log_charset-master.opt
new file mode 100644
index 00000000..ad7f91c6
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_charset-master.opt
@@ -0,0 +1,6 @@
+$AUDIT_LOG_OPT
+$AUDIT_LOG_LOAD
+--audit_log_file=test_audit.log
+--audit_log_policy=ALL
+--audit-log-format=CSV
+--audit_log_strategy=SYNCHRONOUS
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_charset.test b/mysql-wsrep-5.6/mysql-test/t/audit_log_charset.test
new file mode 100644
index 00000000..02f1fcd5
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_charset.test
@@ -0,0 +1,66 @@
+# test encodings suppport by audit plugin
+
+--source include/not_embedded.inc
+
+let $MYSQLD_DATADIR= `select @@datadir`;
+let $log_file=$MYSQLD_DATADIR/test_audit.log;
+
+--remove_file $log_file
+SET GLOBAL audit_log_flush=ON;
+
+set names tis620;
+
+--disable_query_log
+--disable_result_log
+
+let $db=`SELECT x'b0d2b9a2e9cdc1d9c5'`;
+let $text1=`SELECT x'a2d8b9b9d2a7e3aae8bee8cde1c1e820cbd4b9e1a7e8e3aae8b5d2c2d2c2'`;
+let $text2=`SELECT x'a1a7e0a1c7d5c2b9a1d3e0a1c7d5c2b9'`;
+let $very_long_text=`SELECT REPEAT('$text2   ', 400)`;
+
+eval SELECT '$db';
+
+eval CREATE DATABASE `$db`;
+
+eval use `$db`;
+
+CREATE TABLE t (txt TEXT) charset='utf8';
+
+eval INSERT INTO t VALUES ('$text1');
+eval INSERT INTO t VALUES ('$text2');
+eval INSERT INTO t VALUES ('$very_long_text');
+
+--enable_query_log
+--enable_result_log
+
+SET NAMES utf8mb4;
+
+INSERT INTO t VALUES ('𦉘𦟌𦧲');
+CREATE DATABASE 𦉘𦟌𦧲;
+
+SHOW DATABASES;
+
+use 𦉘𦟌𦧲;
+
+use ฐานข้อมูล;
+
+SET NAMES utf8;
+
+SELECT * FROM t WHERE txt LIKE 'ขุนนาง%';
+
+use test;
+
+SELECT * FROM ฐานข้อมูล.t LIMIT 1;
+
+use ฐานข้อมูล;
+
+DROP DATABASE ฐานข้อมูล;
+DROP DATABASE `???`;
+
+use test;
+
+SET @@character_set_client=cp1256;
+--error ER_PARSE_ERROR
+CREATE t \217\355ݏ\355ݏ\355\335(\217\260\241\217\260\241\217\260\241 char) DEFAULT CHARSET=ujis engine=TokuDB;
+
+--source audit_log_echo.inc
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_csv-master.opt b/mysql-wsrep-5.6/mysql-test/t/audit_log_csv-master.opt
new file mode 100644
index 00000000..cabae414
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_csv-master.opt
@@ -0,0 +1,5 @@
+$AUDIT_LOG_OPT
+$AUDIT_LOG_LOAD
+--audit_log_file=test_audit.log
+--audit-log-format=CSV
+--audit_log_strategy=SEMISYNCHRONOUS
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_csv.test b/mysql-wsrep-5.6/mysql-test/t/audit_log_csv.test
new file mode 100644
index 00000000..ee31c507
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_csv.test
@@ -0,0 +1,25 @@
+--source include/not_embedded.inc
+
+let $MYSQLD_DATADIR= `select @@datadir`;
+let MYSQLD_DATADIR= $MYSQLD_DATADIR;
+
+SET GLOBAL audit_log_flush=ON;
+--remove_file $MYSQLD_DATADIR/test_audit.log
+SET GLOBAL audit_log_flush=ON;
+
+--source include/audit_log_events.inc
+
+--move_file $MYSQLD_DATADIR/test_audit.log $MYSQLD_DATADIR/test_audit_csv.log
+set global audit_log_flush= ON;
+perl;
+  eval "use Text::CSV; 1" or exit 0;
+  my $p = Text::CSV->new({ binary => 1, sep_char => ',' });
+  open my $file, $ENV{'MYSQLD_DATADIR'} . '/test_audit_csv.log' or die "Could not open log: $!";
+  while ($p->getline($file)) {};
+  if (not $p->eof) {
+    die "CSV parse error " . $p->error_diag();
+  }
+  close $file;
+EOF
+--remove_file $MYSQLD_DATADIR/test_audit.log
+--remove_file $MYSQLD_DATADIR/test_audit_csv.log
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_default_db-master.opt b/mysql-wsrep-5.6/mysql-test/t/audit_log_default_db-master.opt
new file mode 100644
index 00000000..ad7f91c6
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_default_db-master.opt
@@ -0,0 +1,6 @@
+$AUDIT_LOG_OPT
+$AUDIT_LOG_LOAD
+--audit_log_file=test_audit.log
+--audit_log_policy=ALL
+--audit-log-format=CSV
+--audit_log_strategy=SYNCHRONOUS
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_default_db.test b/mysql-wsrep-5.6/mysql-test/t/audit_log_default_db.test
new file mode 100644
index 00000000..8322068e
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_default_db.test
@@ -0,0 +1,91 @@
+# test correctness of default_db field
+
+--source include/not_embedded.inc
+
+let $MYSQLD_DATADIR= `select @@datadir`;
+let $log_file=$MYSQLD_DATADIR/test_audit.log;
+
+set names utf8;
+
+CREATE USER 'user1'@'%' IDENTIFIED BY '111';
+CREATE USER 'user2'@'%' IDENTIFIED BY '111';
+
+CREATE DATABASE db1;
+CREATE DATABASE db2;
+CREATE DATABASE `ąžąžąžą`;
+
+CREATE TABLE db1.t (a VARCHAR(100));
+CREATE TABLE db2.t (a VARCHAR(100));
+CREATE TABLE ąžąžąžą.t (a VARCHAR(100)) charset=utf8;
+INSERT INTO db1.t VALUES ('db1');
+INSERT INTO db2.t VALUES ('db2');
+INSERT INTO ąžąžąžą.t VALUES ('ąžąžąžą');
+
+GRANT ALL PRIVILEGES ON db1.* TO 'user1'@'%';
+
+GRANT ALL PRIVILEGES ON db2.* TO 'user1'@'%';
+GRANT ALL PRIVILEGES ON db2.* TO 'user2'@'%';
+
+GRANT ALL PRIVILEGES ON ąžąžąžą.* TO 'user1'@'%';
+GRANT ALL PRIVILEGES ON ąžąžąžą.* TO 'user2'@'%';
+
+# truncate audit log
+UNINSTALL PLUGIN audit_log;
+let $wait_condition=
+    SELECT count(*) = 0 FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE 'audit_log';
+--source include/wait_condition.inc
+--remove_file $log_file
+
+--source include/count_sessions.inc
+connect (root,localhost,root,,,);
+connection root;
+INSTALL PLUGIN audit_log SONAME 'audit_log.so';
+disconnect root;
+
+connection default;
+--source include/wait_until_count_sessions.inc
+--replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+--error ER_DBACCESS_DENIED_ERROR
+connect (test,localhost,user2,111,db1,);
+connection default;
+--source include/wait_until_count_sessions.inc
+--replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+--error ER_ACCESS_DENIED_ERROR
+connect (test,localhost,user2,112,db2,);
+connection default;
+--source include/wait_until_count_sessions.inc
+--replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+--error ER_ACCESS_DENIED_ERROR
+connect (test,localhost,user3,111,db2,);
+connection default;
+--source include/wait_until_count_sessions.inc
+connect (test,localhost,user2,111,db2,);
+connection test;
+set names utf8;
+SELECT * FROM t;
+--error ER_DBACCESS_DENIED_ERROR
+use    	`db1`;
+SELECT * FROM t;
+change_user user1,111,db1;
+set names utf8;
+SELECT * FROM t;
+use `db2`;
+SELECT * FROM t;
+use ąžąžąžą;
+SELECT * FROM t;
+disconnect test;
+connection default;
+--source include/wait_until_count_sessions.inc
+
+--exec $MYSQL --user=user1 --password=111 test -e "use db1; SELECT * FROM t;"
+--source include/wait_until_count_sessions.inc
+
+--source audit_log_echo.inc
+
+DROP DATABASE db1;
+DROP DATABASE db2;
+DROP DATABASE ąžąžąžą;
+
+DROP USER user1;
+DROP USER user2;
+
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_echo.inc b/mysql-wsrep-5.6/mysql-test/t/audit_log_echo.inc
new file mode 100644
index 00000000..800b4f23
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_echo.inc
@@ -0,0 +1,35 @@
+# Echo the contents of the audit log (in CSV format)
+# log_file is the name of the log file
+
+--move_file $log_file $log_file.copy
+set global audit_log_flush= ON;
+let log_file=$log_file;
+perl;
+  print "===================================================================\n";
+  open my $file, $ENV{'log_file'} . '.copy' or die "Can not open log: $!";
+  while ($line = <$file>) {
+    if ($line =~ /SET NAMES/) {
+      # change_user does automatic reconnect and messing up 'SET NAMES' around
+      next;
+    }
+    if ($line =~ /Threads_connected/ || $line =~ /SELECT \d <= \d/
+       || /SELECT.*FROM.*INFORMATION_SCHEMA.PLUGINS/) {
+      # part of wait_until_count_sessions.inc and wait_condition.inc scripts
+      next;
+    }
+    if ($line =~ /^"Audit"/) {
+      # skip opening log record and disconnect record
+      next;
+    }
+    $line =~ s/"([a-zA-Z_ ]*)","([0-9]+)_[0-9_ :T-]*","[0-9_ :A-Z-]*"/"$1","",""/;
+    $line =~ s/"(Connect|Quit|Change user)","","","[0-9]+"/"$1","","",""/;
+    $line =~ s/"([A-Za-z ]+)","","","([a-z_]+)","[0-9]+"/"$1","","","$2",""/;
+    if ($line =~ /SET GLOBAL .*_accounts/) {
+      print "*************************************************************\n";
+    }
+    print "$line";
+  };
+  close $file;
+  print "===================================================================\n";
+EOF
+--remove_file $log_file.copy
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_filter_commands-master.opt b/mysql-wsrep-5.6/mysql-test/t/audit_log_filter_commands-master.opt
new file mode 100644
index 00000000..ad7f91c6
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_filter_commands-master.opt
@@ -0,0 +1,6 @@
+$AUDIT_LOG_OPT
+$AUDIT_LOG_LOAD
+--audit_log_file=test_audit.log
+--audit_log_policy=ALL
+--audit-log-format=CSV
+--audit_log_strategy=SYNCHRONOUS
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_filter_commands.test b/mysql-wsrep-5.6/mysql-test/t/audit_log_filter_commands.test
new file mode 100644
index 00000000..efbb7352
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_filter_commands.test
@@ -0,0 +1,71 @@
+# test filtering by sql_command
+
+# test set/unset filters
+
+SET GLOBAL audit_log_include_commands= 'create_table,create_procedure,create_trigger,insert';
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+--error ER_WRONG_VALUE_FOR_VAR
+SET GLOBAL audit_log_exclude_commands= 'alter_db_upgrade,change_db,drop_table,drop_db';
+--error ER_WRONG_VALUE_FOR_VAR
+SET GLOBAL audit_log_exclude_commands= NULL;
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+SET GLOBAL audit_log_include_commands= 'alter_db_upgrade,change_db,drop_table,drop_db';
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+SET GLOBAL audit_log_include_commands= '';
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+--error ER_WRONG_VALUE_FOR_VAR
+SET GLOBAL audit_log_exclude_commands= 'insert,call_procedure,call_procedure,set_option,assign_to_keycache';
+SET GLOBAL audit_log_include_commands= NULL;
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+
+SET GLOBAL audit_log_exclude_commands= "insert,call_procedure,call_procedure,set_option,assign_to_keycache";
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+--error ER_WRONG_VALUE_FOR_VAR
+SET GLOBAL audit_log_include_commands= 'change_db,drop_table@localhost';
+--error ER_WRONG_VALUE_FOR_VAR
+SET GLOBAL audit_log_include_commands= NULL;
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+SET GLOBAL audit_log_exclude_commands= 'change_db,drop_table';
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+SET GLOBAL audit_log_exclude_commands= '';
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+--error ER_WRONG_VALUE_FOR_VAR
+SET GLOBAL audit_log_include_commands= 'change_db';
+SET GLOBAL audit_log_exclude_commands= NULL;
+SELECT @@audit_log_include_commands, @@audit_log_exclude_commands;
+
+# test filtering
+
+let $MYSQLD_DATADIR= `select @@datadir`;
+let $log_file=$MYSQLD_DATADIR/test_audit.log;
+
+SET GLOBAL audit_log_flush=ON;
+--remove_file $log_file
+SET GLOBAL audit_log_flush=ON;
+
+# log everything
+SET GLOBAL audit_log_exclude_commands= NULL;
+SET GLOBAL audit_log_include_commands= NULL;
+
+--source audit_log_filter_commands_events.inc
+
+# log everything once again
+SET GLOBAL audit_log_include_commands= 'set_option,creaTE_DB,CHANGE_DB,CREATE_TABLE,CREATE_TABLE,CREATE_PROCEDURE,CREATE_TRIGger,insert,insert,insert,call_procedure,call_procedure,set_option,assign_to_keycache,alter_db,alter_db_upgrade,change_db,drop_table,drop_db';
+
+--source audit_log_filter_commands_events.inc
+
+# log some of the commands
+SET GLOBAL audit_log_include_commands= 'set_option,creaTE_DB,CHANGE_DB,assign_to_keycache,alter_db,alter_db_upgrade';
+
+--source audit_log_filter_commands_events.inc
+
+# log nothing
+SET GLOBAL audit_log_include_commands= NULL;
+SET GLOBAL audit_log_exclude_commands= 'set_option,create_db,change_db,create_table,create_table,create_prOCEDURE,CREATE_TRIGGER,INSERT,INSERT,INSERT,CALL_PROCEDURE,CALL_PROCEDUre,set_option,assign_to_keycache,alter_db,alter_db_upgrade,change_db,drop_table,drop_db';
+
+--source audit_log_filter_commands_events.inc
+
+SET GLOBAL audit_log_exclude_commands= NULL;
+SET GLOBAL audit_log_include_commands= NULL;
+
+--source audit_log_echo.inc
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_filter_commands_events.inc b/mysql-wsrep-5.6/mysql-test/t/audit_log_filter_commands_events.inc
new file mode 100644
index 00000000..5b536c5a
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_filter_commands_events.inc
@@ -0,0 +1,31 @@
+
+PING;
+CREATE DATABASE db1 DEFAULT CHARACTER SET latin1;
+USE db1;
+CREATE TABLE t1 (a INT, b INT, KEY(b)) engine=MyISAM;
+CREATE TABLE t2 (a INT, b INT, KEY(b)) engine=InnoDB;
+
+DELIMITER //;
+CREATE PROCEDURE p1()
+BEGIN
+  INSERT INTO t1 (a, b) VALUES (1, 1);
+END//
+DELIMITER ;//
+
+CREATE TRIGGER trigger1 BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t2 (a, b) VALUES (new.a, new.b);
+
+INSERT INTO t1 VALUES (5,5);
+CALL p1();
+
+SET GLOBAL keycache1.key_buffer_size=128*1024;
+CACHE INDEX t1 IN keycache1;
+ALTER DATABASE db1 DEFAULT CHARACTER SET utf8;
+--error 1049
+ALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME;
+
+
+USE test;
+DROP TABLE db1.t1;
+DROP DATABASE db1;
+
+PING;
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_filter_events.inc b/mysql-wsrep-5.6/mysql-test/t/audit_log_filter_events.inc
new file mode 100644
index 00000000..9103f954
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_filter_events.inc
@@ -0,0 +1,43 @@
+--source include/count_sessions.inc
+
+connect (test,127.0.0.1,user1,password1,,$MASTER_PORT,);
+connection test;
+SELECT 'user1';
+disconnect test;
+connection default;
+--source include/wait_until_count_sessions.inc
+
+connect (test,localhost,user22,password1,,);
+connection test;
+SELECT 'user22';
+disconnect test;
+connection default;
+--source include/wait_until_count_sessions.inc
+
+connect (test,localhost,22user,password1,,);
+connection test;
+SELECT '22user';
+change_user user22,password1;
+SELECT 'user22';
+disconnect test;
+connection default;
+--source include/wait_until_count_sessions.inc
+
+connect (test,127.0.0.1,admin,password1,,$MASTER_PORT,);
+connection test;
+SELECT 'admin';
+disconnect test;
+connection default;
+--source include/wait_until_count_sessions.inc
+
+connect (test,localhost,"us,er1",password1,,);
+connection test;
+SELECT 'us,er1';
+disconnect test;
+connection default;
+--source include/wait_until_count_sessions.inc
+
+connection default;
+
+connection default;
+--source include/wait_until_count_sessions.inc
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_filter_users-master.opt b/mysql-wsrep-5.6/mysql-test/t/audit_log_filter_users-master.opt
new file mode 100644
index 00000000..ad7f91c6
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_filter_users-master.opt
@@ -0,0 +1,6 @@
+$AUDIT_LOG_OPT
+$AUDIT_LOG_LOAD
+--audit_log_file=test_audit.log
+--audit_log_policy=ALL
+--audit-log-format=CSV
+--audit_log_strategy=SYNCHRONOUS
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_filter_users.test b/mysql-wsrep-5.6/mysql-test/t/audit_log_filter_users.test
new file mode 100644
index 00000000..228278c6
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_filter_users.test
@@ -0,0 +1,145 @@
+--source include/not_embedded.inc
+
+# setup some user accounts
+
+CREATE USER 'user1'@'127.0.0.1' IDENTIFIED BY 'password1';
+CREATE USER 'user22'@'%' IDENTIFIED BY 'password1';
+CREATE USER '22user'@'localhost' IDENTIFIED BY 'password1';
+CREATE USER 'admin'@'%' IDENTIFIED BY 'password1';
+CREATE USER 'us,er1'@'localhost' IDENTIFIED BY 'password1';
+
+# test set/unset filters
+
+SET GLOBAL audit_log_include_accounts= 'user1@localhost,, user22@127.0.0.1,admin@%';
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+--error ER_WRONG_VALUE_FOR_VAR
+SET GLOBAL audit_log_exclude_accounts= '22useer@localhost';
+--error ER_WRONG_VALUE_FOR_VAR
+SET GLOBAL audit_log_exclude_accounts= NULL;
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+SET GLOBAL audit_log_include_accounts= 'user1@localhost, user2@localhost, user3@localhost';
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+SET GLOBAL audit_log_include_accounts= '';
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+--error ER_WRONG_VALUE_FOR_VAR
+SET GLOBAL audit_log_exclude_accounts= '22useer@localhost';
+SET GLOBAL audit_log_include_accounts= NULL;
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+
+SET GLOBAL audit_log_exclude_accounts= "'us,er1'@'localhost',, user22@127.0.0.1,admin@%";
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+--error ER_WRONG_VALUE_FOR_VAR
+SET GLOBAL audit_log_include_accounts= '22useer@localhost';
+--error ER_WRONG_VALUE_FOR_VAR
+SET GLOBAL audit_log_include_accounts= NULL;
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+SET GLOBAL audit_log_exclude_accounts= 'user1@localhost, user2@localhost, user3@localhost';
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+SET GLOBAL audit_log_exclude_accounts= '';
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+--error ER_WRONG_VALUE_FOR_VAR
+SET GLOBAL audit_log_include_accounts= '22useer@localhost';
+SET GLOBAL audit_log_exclude_accounts= NULL;
+SELECT @@audit_log_include_accounts, @@audit_log_exclude_accounts;
+
+let $MYSQLD_DATADIR= `select @@datadir`;
+let $log_file=$MYSQLD_DATADIR/test_audit.log;
+
+SET GLOBAL audit_log_flush=ON;
+--remove_file $log_file
+SET GLOBAL audit_log_flush=ON;
+
+# log nothing
+SET GLOBAL audit_log_include_accounts= '';
+
+--source audit_log_filter_events.inc
+
+# testing include
+SET GLOBAL audit_log_include_accounts= 'user1@localhost,, user22@127.0.0.1,admin@%,veryveryveryveryveryveryveryveryveryveryveryveryveryveryveryloooooooooooooongusername@veryveryveryveryveryveryveryveryveryveryveryveryveryveryveryloooooooooooooonghostname';
+
+--source audit_log_filter_events.inc
+
+# log everything
+SET GLOBAL audit_log_include_accounts= NULL;
+
+--source audit_log_filter_events.inc
+
+# testing exclude
+SET GLOBAL audit_log_exclude_accounts= 'user1@localhost,, user22@127.0.0.1,admin@%';
+
+--source audit_log_filter_events.inc
+
+SET GLOBAL audit_log_exclude_accounts= NULL;
+
+--source audit_log_echo.inc
+
+
+
+#
+# PS-5707: Audit log filtering by user is not working
+#
+
+--let $expected_text = "This should go to audit log"
+--let $not_expected_text = "This shouldn't go to audit log"
+
+SHOW VARIABLES LIKE 'audit_log_exclude_accounts';
+SET GLOBAL audit_log_exclude_accounts = 'user22@%';
+SHOW VARIABLES LIKE 'audit_log_exclude_accounts';
+
+SET GLOBAL audit_log_flush = ON;
+--remove_file $log_file
+SET GLOBAL audit_log_flush = ON;
+
+
+--connect (user_connection, 127.0.0.1, user22, password1, )
+--connection user_connection
+SELECT current_user();
+SHOW VARIABLES LIKE 'audit_log_exclude_accounts';
+
+CREATE TABLE t1 (a text);
+--eval INSERT INTO t1 VALUES($not_expected_text)
+SELECT * FROM t1;
+DROP TABLE t1;
+
+--disconnect user_connection
+
+--connection default
+SET GLOBAL audit_log_exclude_accounts = '';
+SHOW VARIABLES LIKE 'audit_log_exclude_accounts';
+
+
+--connect (user_connection, 127.0.0.1, user22, password1, )
+--connection user_connection
+SELECT current_user();
+SHOW VARIABLES LIKE 'audit_log_exclude_accounts';
+
+CREATE TABLE t1 (a text);
+--eval INSERT INTO t1 VALUES($expected_text)
+SELECT * FROM t1;
+DROP TABLE t1;
+
+--disconnect user_connection
+
+--connection default
+SET GLOBAL audit_log_flush = ON;
+
+# Check that log is properly filtered
+--let $assert_file= $log_file
+--let $assert_count = 1
+--let $assert_select = $expected_text
+--let $assert_text = $expected_text
+--source include/assert_grep.inc
+
+--let $assert_count = 0
+--let $assert_select = $not_expected_text
+--let $assert_text = $not_expected_text
+--source include/assert_grep.inc
+
+
+# cleanup users
+DROP USER 'user1'@'127.0.0.1';
+DROP USER 'user22'@'%';
+DROP USER '22user'@'localhost';
+DROP USER 'admin'@'%';
+DROP USER 'us,er1'@'localhost';
+
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_install-master.opt b/mysql-wsrep-5.6/mysql-test/t/audit_log_install-master.opt
new file mode 100644
index 00000000..e01b0769
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_install-master.opt
@@ -0,0 +1 @@
+$AUDIT_LOG_OPT
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_install.test b/mysql-wsrep-5.6/mysql-test/t/audit_log_install.test
new file mode 100644
index 00000000..35a1d436
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_install.test
@@ -0,0 +1,14 @@
+--source include/not_embedded.inc
+
+# Adjustment to the OS dependent extension of shared libraries.
+let $expected_extension= so;
+if(`SELECT CONVERT(@@version_compile_os USING latin1)
+           IN ("Win32","Win64","Windows")`)
+{
+   let $expected_extension= dll;
+}
+
+--replace_result $expected_extension 
+eval INSTALL PLUGIN audit_log SONAME 'audit_log.$expected_extension';
+
+UNINSTALL PLUGIN audit_log;
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_install_bug1435606-master.opt b/mysql-wsrep-5.6/mysql-test/t/audit_log_install_bug1435606-master.opt
new file mode 100644
index 00000000..8806eec1
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_install_bug1435606-master.opt
@@ -0,0 +1 @@
+$AUDIT_LOG_OPT $AUDIT_LOG_LOAD --audit_log_file=/path/does/not/exist/audit.log
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_install_bug1435606.test b/mysql-wsrep-5.6/mysql-test/t/audit_log_install_bug1435606.test
new file mode 100644
index 00000000..1176b38f
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_install_bug1435606.test
@@ -0,0 +1,18 @@
+# Bug1435606: server crashes if audit log plugin cannot create file
+
+--source include/not_embedded.inc
+
+call mtr.add_suppression("Plugin 'audit_log' init function returned error");
+call mtr.add_suppression("Plugin 'audit_log' registration as a AUDIT failed");
+
+# Adjustment to the OS dependent extension of shared libraries.
+let $expected_extension= so;
+if(`SELECT CONVERT(@@version_compile_os USING latin1)
+           IN ("Win32","Win64","Windows")`)
+{
+   let $expected_extension= dll;
+}
+
+--replace_result $expected_extension 
+--error 29
+eval INSTALL PLUGIN audit_log SONAME 'audit_log.$expected_extension';
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_json-master.opt b/mysql-wsrep-5.6/mysql-test/t/audit_log_json-master.opt
new file mode 100644
index 00000000..d9afea5f
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_json-master.opt
@@ -0,0 +1,5 @@
+$AUDIT_LOG_OPT
+$AUDIT_LOG_LOAD
+--audit_log_file=test_audit.log
+--audit-log-format=JSON
+--audit_log_strategy=SEMISYNCHRONOUS
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_json.test b/mysql-wsrep-5.6/mysql-test/t/audit_log_json.test
new file mode 100644
index 00000000..945b7683
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_json.test
@@ -0,0 +1,47 @@
+--source include/not_embedded.inc
+
+let $MYSQLD_DATADIR= `select @@datadir`;
+let MYSQLD_DATADIR= $MYSQLD_DATADIR;
+
+SET GLOBAL audit_log_flush=ON;
+--remove_file $MYSQLD_DATADIR/test_audit.log
+SET GLOBAL audit_log_flush=ON;
+
+--let $test_control_chars=1;
+--source include/audit_log_events.inc
+
+--move_file $MYSQLD_DATADIR/test_audit.log $MYSQLD_DATADIR/test_audit_json.log
+set global audit_log_flush= ON;
+perl;
+  eval "use JSON qw(decode_json); 1" or exit 0;
+  open my $file, $ENV{'MYSQLD_DATADIR'} . '/test_audit_json.log' or die "Could not open log: $!";
+  my $found_1st_control_char = 0;
+  my $last_control_char = 0;
+  my $control_char_count = 0;
+  while (my $line = <$file>) {
+      my $json = decode_json($line);
+      my $entry_type = $json->{audit_record}->{name};
+      if($entry_type eq "Query") {
+          my $query = $json->{audit_record}->{sqltext};
+          my @query_chars = sort($query =~ /./sg);
+          my $minimum_character = ord($query_chars[0]);
+          if ($minimum_character == 1) {
+              $found_1st_control_char = 1;
+          }
+          if ($found_1st_control_char && $control_char_count < 31) {
+              $control_char_count = $control_char_count + 1;
+              my $expected = $last_control_char + 1;
+              if ($expected != $minimum_character) {
+                   print "Incorrect control character in output: Expected $expected, got $minimum_character\n";
+                   exit l;
+              }
+              $last_control_char = $minimum_character;
+          }
+      }
+  }
+  if ($control_char_count != 31) {
+      print "Missing control characters from the output. Expected 31, got $control_char_count\n";
+      exit 2;
+  }
+  close $file;
+EOF
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_long_records-master.opt b/mysql-wsrep-5.6/mysql-test/t/audit_log_long_records-master.opt
new file mode 100644
index 00000000..392485c5
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_long_records-master.opt
@@ -0,0 +1,6 @@
+$AUDIT_LOG_OPT
+$AUDIT_LOG_LOAD
+--audit_log_file=test_audit.log
+--audit_log_buffer_size=8192
+--audit_log_strategy=ASYNCHRONOUS
+--audit_log_format=OLD
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_long_records.test b/mysql-wsrep-5.6/mysql-test/t/audit_log_long_records.test
new file mode 100644
index 00000000..5ce7dfbf
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_long_records.test
@@ -0,0 +1,42 @@
+--source include/not_embedded.inc
+
+let $MYSQLD_DATADIR= `select @@datadir`;
+let MYSQLD_DATADIR= $MYSQLD_DATADIR;
+
+SET GLOBAL audit_log_flush=ON;
+--remove_file $MYSQLD_DATADIR/test_audit.log
+SET GLOBAL audit_log_flush=ON;
+
+let $i= 2;
+let $xx= xx;
+while ($i < 3500)
+{
+let $xx= x$xx;
+inc $i;
+}
+--disable_query_log
+--disable_result_log
+while ($i < 8500)
+{
+eval SELECT '$xx';
+let $xx= x$xx;
+inc $i;
+}
+while ($i < 9000)
+{
+eval SELECT '$xx';
+let $xx= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$xx;
+inc $i;
+}
+--enable_query_log
+--enable_result_log
+
+--move_file $MYSQLD_DATADIR/test_audit.log $MYSQLD_DATADIR/test_audit_long.log
+SET GLOBAL audit_log_flush= ON;
+perl;
+  eval "use XML::Parser; 1" or exit 0;
+  $p = new XML::Parser;
+  $p->parsefile($ENV{'MYSQLD_DATADIR'} . '/test_audit_long.log');
+EOF
+--remove_file $MYSQLD_DATADIR/test_audit.log
+--remove_file $MYSQLD_DATADIR/test_audit_long.log
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_many_connections-master.opt b/mysql-wsrep-5.6/mysql-test/t/audit_log_many_connections-master.opt
new file mode 100644
index 00000000..cabae414
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_many_connections-master.opt
@@ -0,0 +1,5 @@
+$AUDIT_LOG_OPT
+$AUDIT_LOG_LOAD
+--audit_log_file=test_audit.log
+--audit-log-format=CSV
+--audit_log_strategy=SEMISYNCHRONOUS
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_many_connections.test b/mysql-wsrep-5.6/mysql-test/t/audit_log_many_connections.test
new file mode 100644
index 00000000..8fcd7350
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_many_connections.test
@@ -0,0 +1,31 @@
+#
+# Bug #1633988: Assertion `thd == _current_thd()' failed
+#
+# Test audit log handling of too many connections error
+#
+
+--disable_query_log
+call mtr.add_suppression("Too many connections");
+--enable_query_log
+
+--source include/count_sessions.inc
+
+SET @saved_max_connections = @@global.max_connections;
+SET GLOBAL max_connections = 2;
+
+--connect (con1, localhost, root)
+--connect (con2, localhost, root)
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+--error ER_CON_COUNT_ERROR
+--connect (con3, localhost, root)
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+--error ER_CON_COUNT_ERROR
+--connect (con4, localhost, root)
+
+connection default;
+SET GLOBAL max_connections= @saved_max_connections;
+
+--disconnect con2
+--disconnect con1
+
+--source include/wait_until_count_sessions.inc
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_new-master.opt b/mysql-wsrep-5.6/mysql-test/t/audit_log_new-master.opt
new file mode 100644
index 00000000..c7c12303
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_new-master.opt
@@ -0,0 +1,6 @@
+$AUDIT_LOG_OPT
+$AUDIT_LOG_LOAD
+--audit_log_file=test_audit.log
+--audit_log_policy=LOGINS
+--audit-log-format=NEW
+--audit_log_strategy=SEMISYNCHRONOUS
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_new.test b/mysql-wsrep-5.6/mysql-test/t/audit_log_new.test
new file mode 100644
index 00000000..66c0a4ca
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_new.test
@@ -0,0 +1,20 @@
+--source include/not_embedded.inc
+
+let $MYSQLD_DATADIR= `select @@datadir`;
+let MYSQLD_DATADIR= $MYSQLD_DATADIR;
+
+SET GLOBAL audit_log_flush=ON;
+--remove_file $MYSQLD_DATADIR/test_audit.log
+SET GLOBAL audit_log_flush=ON;
+
+--source include/audit_log_events.inc
+
+--move_file $MYSQLD_DATADIR/test_audit.log $MYSQLD_DATADIR/test_audit_new.log
+set global audit_log_flush= ON;
+perl;
+  eval "use XML::Parser; 1" or exit 0;
+  $p = new XML::Parser;
+  $p->parsefile($ENV{'MYSQLD_DATADIR'} . '/test_audit_new.log');
+EOF
+--remove_file $MYSQLD_DATADIR/test_audit.log
+--remove_file $MYSQLD_DATADIR/test_audit_new.log
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_old-master.opt b/mysql-wsrep-5.6/mysql-test/t/audit_log_old-master.opt
new file mode 100644
index 00000000..17db5c10
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_old-master.opt
@@ -0,0 +1,5 @@
+$AUDIT_LOG_OPT
+$AUDIT_LOG_LOAD
+--audit_log_file=test_audit.log
+--audit_log_buffer_size=4096
+--audit_log_strategy=ASYNCHRONOUS
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_old.test b/mysql-wsrep-5.6/mysql-test/t/audit_log_old.test
new file mode 100644
index 00000000..27c3b4a8
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_old.test
@@ -0,0 +1,20 @@
+--source include/not_embedded.inc
+
+let $MYSQLD_DATADIR= `select @@datadir`;
+let MYSQLD_DATADIR= $MYSQLD_DATADIR;
+
+SET GLOBAL audit_log_flush=ON;
+--remove_file $MYSQLD_DATADIR/test_audit.log
+SET GLOBAL audit_log_flush=ON;
+
+--source include/audit_log_events.inc
+
+--move_file $MYSQLD_DATADIR/test_audit.log $MYSQLD_DATADIR/test_audit_old.log
+set global audit_log_flush= ON;
+perl;
+  eval "use XML::Parser; 1" or exit 0;
+  $p = new XML::Parser;
+  $p->parsefile($ENV{'MYSQLD_DATADIR'} . '/test_audit_old.log');
+EOF
+--remove_file $MYSQLD_DATADIR/test_audit.log
+--remove_file $MYSQLD_DATADIR/test_audit_old.log
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_rotate-master.opt b/mysql-wsrep-5.6/mysql-test/t/audit_log_rotate-master.opt
new file mode 100644
index 00000000..dd3e5bb6
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_rotate-master.opt
@@ -0,0 +1,8 @@
+$AUDIT_LOG_OPT
+$AUDIT_LOG_LOAD
+--audit_log_file=test_audit.log
+--audit_log_format=JSON
+--audit_log_strategy=SEMISYNCHRONOUS
+--audit_log_rotate_on_size=4096
+--audit_log_buffer_size=5000
+--audit_log_rotations=10
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_rotate.test b/mysql-wsrep-5.6/mysql-test/t/audit_log_rotate.test
new file mode 100644
index 00000000..f719af9f
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_rotate.test
@@ -0,0 +1,69 @@
+--source include/not_embedded.inc
+
+let $MYSQLD_DATADIR= `select @@datadir`;
+let MYSQLD_DATADIR= $MYSQLD_DATADIR;
+
+--echo #
+--echo # Rotate with "rotations" and "size" given as startup options
+--echo #
+
+--disable_result_log
+--disable_query_log
+--source include/audit_log_events.inc
+--source include/audit_log_events.inc
+--source include/audit_log_events.inc
+--source include/audit_log_events.inc
+--enable_query_log
+--enable_result_log
+
+perl;
+  eval "use JSON qw(decode_json); 1" or exit 0;
+  my @files = glob ($ENV{'MYSQLD_DATADIR'} . "/test_audit.log.[0-9][0-9]");
+  foreach (@files) {
+    open my $file, $_ or die "Could not open log: $!";
+    while (my $line = <$file>) {
+        decode_json($line);
+    }
+    close $file;
+  }
+  die "Rotation doesn't work!" unless scalar(@files) > 1
+EOF
+
+--echo success
+
+--echo #
+--echo # PS-4950: Invalid audit log file size when audit_log_rotations is changed during runtime
+--echo #
+
+SET @audit_log_rotations_orig = @@audit_log_rotations;
+SET @audit_log_rotate_on_size_orig = @@audit_log_rotate_on_size;
+SET GLOBAL audit_log_rotations = 3;
+SET GLOBAL audit_log_rotate_on_size = 4096;
+
+--remove_files_wildcard $MYSQLD_DATADIR test_audit.log.*
+
+--disable_result_log
+--disable_query_log
+--source include/audit_log_events.inc
+--source include/audit_log_events.inc
+--source include/audit_log_events.inc
+--source include/audit_log_events.inc
+--enable_query_log
+--enable_result_log
+
+perl;
+  my @files = glob ($ENV{'MYSQLD_DATADIR'} . "/test_audit.log.[0-9][0-9]");
+  foreach (@files) {
+    my $size = -s $_;
+    print $_;
+    die "Files are too small!" unless $size >= 4096;
+  }
+  die "Too many rotations!" unless scalar(@files) <= 3;
+EOF
+
+SET GLOBAL audit_log_rotations = @audit_log_rotations_orig;
+SET GLOBAL audit_log_rotate_on_size = @audit_log_rotate_on_size_orig;
+
+--remove_files_wildcard $MYSQLD_DATADIR test_audit.log*
+
+--echo success
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_startup-master.opt b/mysql-wsrep-5.6/mysql-test/t/audit_log_startup-master.opt
new file mode 100644
index 00000000..60755382
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_startup-master.opt
@@ -0,0 +1,2 @@
+$AUDIT_LOG_OPT
+$AUDIT_LOG_LOAD
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_startup.test b/mysql-wsrep-5.6/mysql-test/t/audit_log_startup.test
new file mode 100644
index 00000000..3becc388
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_startup.test
@@ -0,0 +1,56 @@
+# Bug 1641910: Trying to set audit_log_exclude_accounts crashes server.
+
+call mtr.add_suppression("Plugin 'audit_log' init function returned error.");
+call mtr.add_suppression("Plugin 'audit_log' registration as a AUDIT failed.");
+
+--source include/shutdown_mysqld.inc
+--let $start_mysqld_params = --audit_log_exclude_accounts='user@localhost'
+--source include/start_mysqld.inc
+--source include/wait_until_connected_again.inc
+
+SET GLOBAL audit_log_exclude_accounts='info@localhost';
+
+--source include/shutdown_mysqld.inc
+--let $start_mysqld_params = --audit_log_include_accounts='user@localhost'
+--source include/start_mysqld.inc
+--source include/wait_until_connected_again.inc
+
+SET GLOBAL audit_log_include_accounts='info@localhost';
+
+--source include/shutdown_mysqld.inc
+--let $start_mysqld_params = --audit_log_exclude_commands='alter_table'
+--source include/start_mysqld.inc
+--source include/wait_until_connected_again.inc
+
+SET GLOBAL audit_log_exclude_commands='insert';
+
+--source include/shutdown_mysqld.inc
+--let $start_mysqld_params = --audit_log_include_commands='alter_table'
+--source include/start_mysqld.inc
+--source include/wait_until_connected_again.inc
+
+SET GLOBAL audit_log_include_commands='insert';
+
+--source include/shutdown_mysqld.inc
+--let $start_mysqld_params = --audit_log_exclude_accounts='user@localhost' --audit_log_include_accounts='user@localhost'
+--source include/start_mysqld.inc
+--source include/wait_until_connected_again.inc
+
+# there should be no audit_log% variables shown
+SHOW VARIABLES LIKE 'audit_log%';
+
+--source include/shutdown_mysqld.inc
+--let $start_mysqld_params = --audit_log_exclude_commands='delete' --audit_log_include_commands='delete'
+--source include/start_mysqld.inc
+--source include/wait_until_connected_again.inc
+
+# there should be no audit_log% variables shown
+SHOW VARIABLES LIKE 'audit_log%';
+
+--source include/shutdown_mysqld.inc
+--let $start_mysqld_params = --audit_log_exclude_accounts='user@localhost' --audit_log_file=./directory/file
+--source include/start_mysqld.inc
+--source include/wait_until_connected_again.inc
+
+# there should be no audit_log% variables shown
+SHOW VARIABLES LIKE 'audit_log%';
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_syslog-master.opt b/mysql-wsrep-5.6/mysql-test/t/audit_log_syslog-master.opt
new file mode 100644
index 00000000..c93b7541
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_syslog-master.opt
@@ -0,0 +1,7 @@
+$AUDIT_LOG_OPT
+$AUDIT_LOG_LOAD
+--audit-log-format=CSV
+--audit_log_handler=SYSLOG
+--audit_log_syslog_ident=test_audit
+--audit_log_syslog_facility=LOG_AUTH
+--audit_log_syslog_priority=LOG_INFO
diff --git a/mysql-wsrep-5.6/mysql-test/t/audit_log_syslog.test b/mysql-wsrep-5.6/mysql-test/t/audit_log_syslog.test
new file mode 100644
index 00000000..24927fa2
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/audit_log_syslog.test
@@ -0,0 +1,3 @@
+--source include/not_embedded.inc
+
+--source include/audit_log_events.inc
diff --git a/mysql-wsrep-5.6/mysql-test/t/events_1.test b/mysql-wsrep-5.6/mysql-test/t/events_1.test
index bf5a356c..7093180d 100644
--- a/mysql-wsrep-5.6/mysql-test/t/events_1.test
+++ b/mysql-wsrep-5.6/mysql-test/t/events_1.test
@@ -67,7 +67,7 @@ drop event event2;
 CREATE EVENT event_starts_test ON SCHEDULE EVERY 10 SECOND COMMENT "" DO SELECT 1;
 SELECT interval_field, interval_value, body FROM mysql.event WHERE db='events_test' AND name='event_starts_test';
 SELECT execute_at IS NULL, starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test';
-ALTER EVENT event_starts_test ON SCHEDULE AT '2020-02-02 20:00:02';
+ALTER EVENT event_starts_test ON SCHEDULE AT date_add(now(), interval 5 day);
 SELECT execute_at IS NULL, starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test';
 ALTER EVENT event_starts_test COMMENT "non-empty comment";
 SELECT execute_at IS NULL, starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test';
@@ -75,7 +75,7 @@ ALTER EVENT event_starts_test COMMENT "";
 SELECT execute_at IS NULL, starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test';
 DROP EVENT event_starts_test;
 
-CREATE EVENT event_starts_test ON SCHEDULE EVERY 20 SECOND STARTS '2020-02-02 20:00:02' ENDS '2022-02-02 20:00:02' DO SELECT 2;
+CREATE EVENT event_starts_test ON SCHEDULE EVERY 20 SECOND STARTS date_add(now(), interval 5 day) ENDS date_add(now(), interval 10 day) DO SELECT 2;
 SELECT execute_at IS NULL, starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test';
 ALTER EVENT event_starts_test COMMENT "non-empty comment";
 SELECT execute_at IS NULL, starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test';
diff --git a/mysql-wsrep-5.6/mysql-test/t/events_bugs.test b/mysql-wsrep-5.6/mysql-test/t/events_bugs.test
index 3a840aed..44516be6 100644
--- a/mysql-wsrep-5.6/mysql-test/t/events_bugs.test
+++ b/mysql-wsrep-5.6/mysql-test/t/events_bugs.test
@@ -216,11 +216,11 @@ create event e_55 on schedule at 20000101000000 do drop table t;
 show events;
 
 --error ER_PARSE_ERROR
-create event e_55 on schedule at 20200101000000 starts 10000101000000 do drop table t;
+create event e_55 on schedule at 20380101000000 starts 10000101000000 do drop table t;
 --error ER_PARSE_ERROR
-create event e_55 on schedule at 20200101000000 ends 10000101000000 do drop table t;
+create event e_55 on schedule at 20380101000000 ends 10000101000000 do drop table t;
 --error ER_PARSE_ERROR
-create event e_55 on schedule at 20200101000000 starts 10000101000000 ends 10000101000000 do drop table t;
+create event e_55 on schedule at 20380101000000 starts 10000101000000 ends 10000101000000 do drop table t;
 --error ER_WRONG_VALUE
 create event e_55 on schedule every 10 hour starts 10000101000000 do drop table t;
 
@@ -723,7 +723,7 @@ SHOW EVENTS;
 
 # This will update event time zone.
 SET TIME_ZONE= '-03:00';
-ALTER EVENT e1 ON SCHEDULE EVERY 1 DAY ENDS '2030-01-03 00:00:00'
+ALTER EVENT e1 ON SCHEDULE EVERY 1 DAY ENDS '2038-01-03 00:00:00'
   ON COMPLETION PRESERVE DISABLE;
 SHOW EVENTS;
 
@@ -1033,7 +1033,7 @@ SET GLOBAL READ_ONLY = 1;
 --echo
 
 --error ER_OPTION_PREVENTS_STATEMENT
-CREATE EVENT e1 ON SCHEDULE AT '2020-01-01 00:00:00' DO SET @a = 1;
+CREATE EVENT e1 ON SCHEDULE AT '2038-01-01 00:00:00' DO SET @a = 1;
 
 --echo
 
@@ -1057,7 +1057,7 @@ DROP EVENT e1;
 
 --echo
 
-CREATE EVENT e1 ON SCHEDULE AT '2020-01-01 00:00:00' DO SET @a = 1;
+CREATE EVENT e1 ON SCHEDULE AT '2038-01-01 00:00:00' DO SET @a = 1;
 
 --echo
 
diff --git a/mysql-wsrep-5.6/mysql-test/t/flush_read_lock.test b/mysql-wsrep-5.6/mysql-test/t/flush_read_lock.test
index 8527cea3..1f393f86 100644
--- a/mysql-wsrep-5.6/mysql-test/t/flush_read_lock.test
+++ b/mysql-wsrep-5.6/mysql-test/t/flush_read_lock.test
@@ -1496,6 +1496,7 @@ let $skip_3rd_check= ;
 --echo # 31.d.I) SET PASSWORD is incompatible with FTWRL as it changes data.
 create user mysqltest_u1;
 let $statement= set password for 'mysqltest_u1' = password('');
+let $waitfor= SET PASSWORD FOR `mysqltest_u1`@`%`=;
 let $cleanup_stmt1= ;
 --echo # Skip last part of compatibility testing as our helper debug
 --echo # sync-point doesn't work for SET statements.
diff --git a/mysql-wsrep-5.6/mysql-test/t/func_str.test b/mysql-wsrep-5.6/mysql-test/t/func_str.test
index cebf670c..b89799be 100644
--- a/mysql-wsrep-5.6/mysql-test/t/func_str.test
+++ b/mysql-wsrep-5.6/mysql-test/t/func_str.test
@@ -1745,3 +1745,20 @@ do concat('a',concat_ws('a', 0x2859, 'a' ,
 --echo #
 --echo # End of 5.6 tests
 --echo #
+
+--echo #
+--echo # Bug 31413167 - PLEASE BACKPORT FIX FOR BUG 31320716 TO 5.6
+--echo #
+
+# expect empty string and not NULL
+SELECT @var:=CONCAT('');
+SELECT @var:=CONCAT_WS('','');
+
+# shouldn't cause an assertion to fail
+SET NAMES utf8;
+CREATE TABLE t(a INT) engine=innodb;
+INSERT INTO t VALUES(1);
+SELECT 1 FROM t WHERE WEIGHT_STRING(CONCAT_WS('1',''));
+SELECT 1 FROM t WHERE WEIGHT_STRING(CONCAT('',''));
+SET NAMES DEFAULT;
+DROP TABLE t;
\ No newline at end of file
diff --git a/mysql-wsrep-5.6/mysql-test/t/grant4.test b/mysql-wsrep-5.6/mysql-test/t/grant4.test
index 24fe5fc3..dbcb4a19 100644
--- a/mysql-wsrep-5.6/mysql-test/t/grant4.test
+++ b/mysql-wsrep-5.6/mysql-test/t/grant4.test
@@ -103,10 +103,8 @@ GRANT SHOW VIEW, SELECT ON v3 to mysqltest_u1@localhost;
 connection con1;
 use mysqltest_db1;
 --echo ** Connect as restricted user mysqltest_u1.
---echo ** SELECT FROM INFORMATION_SCHEMA.STATISTICS will succeed because any privileges will do (authentication is enough).
-#
-# this result is wrong. reported as bug#34104
-#
+--echo # The user does not have table level grants on table t5. Hence cannot get
+--echo # information about it from INFORMATION_SCHEMA.STATISTICS
 SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE table_name='t5';
 #
 # Bug27145 EXTRA_ACL trouble
diff --git a/mysql-wsrep-5.6/mysql-test/t/insert_debug-master.opt b/mysql-wsrep-5.6/mysql-test/t/insert_debug-master.opt
new file mode 100644
index 00000000..824f656c
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/insert_debug-master.opt
@@ -0,0 +1 @@
+--innodb_autoinc_lock_mode=2
diff --git a/mysql-wsrep-5.6/mysql-test/t/insert_debug.test b/mysql-wsrep-5.6/mysql-test/t/insert_debug.test
new file mode 100644
index 00000000..b2b2925b
--- /dev/null
+++ b/mysql-wsrep-5.6/mysql-test/t/insert_debug.test
@@ -0,0 +1,52 @@
+source include/have_debug.inc;
+source include/have_debug_sync.inc;
+
+SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
+
+connect (con1, localhost, root,,);
+SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
+
+connection default;
+
+let $conn0_id= `SELECT CONNECTION_ID()`;
+
+CREATE TABLE t1(c1 VARCHAR(10) NOT NULL, c2 VARCHAR(10) NOT NULL, c3 VARCHAR(10) NOT NULL);
+INSERT INTO t1(c1, c2, c3) VALUES('A1','B1','IT1'), ('A2','B2','IT1'), ('A3','B3','IT1'), ('A4','B4','IT1'), ('A5','B5','IT1'), ('A6','B6','IT1'), ('A7','B7','IT1');
+
+CREATE TABLE t2(c1 VARCHAR(10) NOT NULL, c2 VARCHAR(10) NOT NULL, c3 VARCHAR(10) NOT NULL);
+INSERT INTO t2(c1, c2, c3) VALUES ('A3','B3','IT2'), ('A2','B2','IT2'), ('A4','B4','IT2'), ('A5','B5','II2');
+
+CREATE TABLE result(id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, c1 VARCHAR(10) NOT NULL, c2 VARCHAR(10),
+c3 VARCHAR(10), update_count INT DEFAULT 0, UNIQUE KEY uniq_idx (c1,c2), PRIMARY KEY (id)) ENGINE = innodb;
+
+# Insert one row from 't1' into the 'result' table and wait on a debug sync
+# point. The next insert statement from an session 2 inserts values that would
+# lead to unique key clash, when this insert resumes.
+# The subsequent inserts of this statement(after resume) will fail because of a
+# clash with the unique index, and are expected to update the row which clashes
+# with the unique key.
+# Without the fix for bug#30194841 a stale auto increment value, would cause a
+# collision with existing auto increment column value and ends up updating that
+# colliding row, instead of the row colliding with the unique index.
+SET DEBUG_SYNC = "ha_write_row_end WAIT_FOR flushed EXECUTE 1";
+send INSERT INTO result(c1, c2, c3) SELECT * FROM t1 ON DUPLICATE KEY UPDATE c2=t1.c2, c3='UT1', update_count=update_count+1;
+
+# While session 1 is waiting (after one insert), insert rows that will cause a clash
+# with the inserts of session 1 on the unique key.
+connection con1;
+
+# Wait for the session 1 to hit the debug sync point.
+let $wait_condition=SELECT 1 FROM information_schema.processlist WHERE id = $conn0_id AND state LIKE '%ha_write_row_end%';
+--source include/wait_condition.inc
+
+INSERT INTO result(c1, c2, c3) SELECT * FROM t2 ON DUPLICATE KEY UPDATE c2=t2.c2, c3='UT2', update_count=update_count+1;
+
+# Signal to resume the insert statement in session 1
+SET DEBUG_SYNC = "now SIGNAL flushed";
+connection default;
+reap;
+SELECT * FROM result;
+
+DROP TABLE t1;
+DROP TABLE t2;
+DROP TABLE result;
diff --git a/mysql-wsrep-5.6/mysql-test/t/openssl_1.test b/mysql-wsrep-5.6/mysql-test/t/openssl_1.test
index 960efee9..e6daacd7 100644
--- a/mysql-wsrep-5.6/mysql-test/t/openssl_1.test
+++ b/mysql-wsrep-5.6/mysql-test/t/openssl_1.test
@@ -13,11 +13,22 @@ drop table if exists t1;
 create table t1(f1 int);
 insert into t1 values (5);
 
+connect (con0,localhost,root,,,,,SSL);
+connection con0;
+let $cipher= query_get_value("SHOW STATUS like 'Ssl_cipher'", Value, 1);
+let $cipher_val= "$cipher";
+connection default;
+disconnect con0;
+
 grant select on test.* to ssl_user1@localhost require SSL;
-grant select on test.* to ssl_user2@localhost require cipher "DHE-RSA-AES256-SHA";
-grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=Client";
-grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=Client" ISSUER "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=CA";
-grant select on test.* to ssl_user5@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "xxx";
+--replace_regex $ALLOWED_CIPHERS_REGEX
+--eval grant select on test.* to ssl_user2@localhost require cipher $cipher_val;
+--replace_regex $ALLOWED_CIPHERS_REGEX
+--eval grant select on test.* to ssl_user3@localhost require cipher $cipher_val AND SUBJECT "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=Client";
+--replace_regex $ALLOWED_CIPHERS_REGEX
+--eval grant select on test.* to ssl_user4@localhost require cipher $cipher_val AND SUBJECT "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=Client" ISSUER "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=CA";
+--replace_regex $ALLOWED_CIPHERS_REGEX
+--eval grant select on test.* to ssl_user5@localhost require cipher $cipher_val AND SUBJECT "xxx";
 flush privileges;
 
 connect (con1,localhost,ssl_user1,,,,,SSL);
@@ -30,6 +41,7 @@ connect (con5,localhost,ssl_user5,,,,,SSL);
 
 connection con1;
 # Check ssl turned on
+--replace_regex $ALLOWED_CIPHERS_REGEX
 SHOW STATUS LIKE 'Ssl_cipher';
 select * from t1;
 --error ER_TABLEACCESS_DENIED_ERROR
@@ -37,6 +49,7 @@ delete from t1;
 
 connection con2;
 # Check ssl turned on
+--replace_regex $ALLOWED_CIPHERS_REGEX
 SHOW STATUS LIKE 'Ssl_cipher';
 select * from t1;
 --error ER_TABLEACCESS_DENIED_ERROR
@@ -44,6 +57,7 @@ delete from t1;
 
 connection con3;
 # Check ssl turned on
+--replace_regex $ALLOWED_CIPHERS_REGEX
 SHOW STATUS LIKE 'Ssl_cipher';
 select * from t1;
 --error ER_TABLEACCESS_DENIED_ERROR
@@ -51,6 +65,7 @@ delete from t1;
 
 connection con4;
 # Check ssl turned on
+--replace_regex $ALLOWED_CIPHERS_REGEX
 SHOW STATUS LIKE 'Ssl_cipher';
 select * from t1;
 --error ER_TABLEACCESS_DENIED_ERROR
@@ -113,7 +128,6 @@ drop table t1;
 #
 # Bug#21611 Slave can't connect when master-ssl-cipher specified
 # - Apparently selecting a cipher doesn't work at all
-# - Usa a cipher that both yaSSL and OpenSSL supports
 #
 --exec echo "SHOW STATUS LIKE 'Ssl_cipher'; exit;" > $MYSQLTEST_VARDIR/tmp/test.sql
 --exec $MYSQL_TEST --ssl-cipher=DHE-RSA-AES256-SHA < $MYSQLTEST_VARDIR/tmp/test.sql 2>&1
@@ -125,6 +139,7 @@ drop table t1;
 # verification of servers certificate by setting both ca certificate
 # and ca path to NULL
 #
+--replace_regex $ALLOWED_CIPHERS_REGEX
 --exec $MYSQL --ssl --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem -e "SHOW STATUS LIKE 'ssl_Cipher'" 2>&1
 --echo End of 5.0 tests
 
@@ -211,11 +226,9 @@ DROP TABLE t1;
 #           YaSSL to crash the server.
 #
 
-# Common ciphers to openssl and yassl
---exec $MYSQL --host=localhost -e "SHOW STATUS LIKE 'Ssl_cipher';" --ssl-cipher=DHE-RSA-AES256-SHA
---exec $MYSQL --host=localhost -e "SHOW STATUS LIKE 'Ssl_cipher';" --ssl-cipher=EDH-RSA-DES-CBC3-SHA
---exec $MYSQL --host=localhost -e "SHOW STATUS LIKE 'Ssl_cipher';" --ssl-cipher=AES256-SHA
---exec $MYSQL --host=localhost -e "SHOW STATUS LIKE 'Ssl_cipher';" --ssl-cipher=RC4-SHA
+--exec $MYSQL --host=localhost -e "SHOW STATUS LIKE 'Ssl_cipher';" --ssl-mode=REQUIRED --ssl-cipher=DHE-RSA-AES256-SHA
+--exec $MYSQL --host=localhost -e "SHOW STATUS LIKE 'Ssl_cipher';" --ssl-mode=REQUIRED --ssl-cipher=DHE-RSA-AES128-SHA
+--exec $MYSQL --host=localhost -e "SHOW STATUS LIKE 'Ssl_cipher';" --ssl-mode=REQUIRED --ssl-cipher=AES256-SHA
 --disable_query_log
 --disable_result_log
 
@@ -251,6 +264,7 @@ select 'is still running; no cipher request crashed the server' as result from d
 GRANT SELECT ON test.* TO bug42158@localhost REQUIRE X509;
 FLUSH PRIVILEGES;
 connect(con1,localhost,bug42158,,,,,SSL);
+--replace_regex $ALLOWED_CIPHERS_REGEX
 SHOW STATUS LIKE 'Ssl_cipher';
 disconnect con1;
 connection default;
diff --git a/mysql-wsrep-5.6/mysql-test/t/partition.test b/mysql-wsrep-5.6/mysql-test/t/partition.test
index e4f999f0..62ea6464 100644
--- a/mysql-wsrep-5.6/mysql-test/t/partition.test
+++ b/mysql-wsrep-5.6/mysql-test/t/partition.test
@@ -2519,3 +2519,19 @@ ALTER TABLE t ADD COLUMN r INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD UNIQUE
 KEY (r,b), ALGORITHM=INPLACE, LOCK=SHARED;
 SELECT * FROM t;
 DROP TABLE t;
+
+--echo #
+--echo # Bug #25207522: INCORRECT ORDER-BY BEHAVIOR ON A PARTITIONED TABLE
+--echo # WITH A COMPOSITE PREFIX INDEX
+--echo #
+CREATE TABLE t(  id int unsigned NOT NULL,
+        data varchar(2) DEFAULT NULL,
+        KEY data_idx (data(1),id)
+        ) DEFAULT CHARSET=utf8
+        /*!50100 PARTITION BY RANGE (id)
+        (PARTITION p10 VALUES LESS THAN (10) ,
+         PARTITION p20 VALUES LESS THAN (20) ) */;
+
+INSERT INTO t VALUES (6, 'ab'), (4, 'ab'), (5, 'ab'), (16, 'ab'), (14, 'ab'), (15, 'ab'), (5, 'ac'), (15, 'aa') ;
+SELECT id FROM t WHERE data = 'ab' ORDER BY id ASC;
+DROP TABLE t;
diff --git a/mysql-wsrep-5.6/mysql-test/t/plugin_auth_sha256_tls.test b/mysql-wsrep-5.6/mysql-test/t/plugin_auth_sha256_tls.test
index f99df8a1..eadc64a8 100644
--- a/mysql-wsrep-5.6/mysql-test/t/plugin_auth_sha256_tls.test
+++ b/mysql-wsrep-5.6/mysql-test/t/plugin_auth_sha256_tls.test
@@ -2,6 +2,7 @@
 --source include/have_ssl.inc
 
 connect (ssl_con,localhost,root,,,,,SSL);
+--replace_regex $ALLOWED_CIPHERS_REGEX
 SHOW STATUS LIKE 'Ssl_cipher';
 
 CREATE USER 'kristofer' IDENTIFIED WITH 'sha256_password';
diff --git a/mysql-wsrep-5.6/mysql-test/t/ssl-sha512.test b/mysql-wsrep-5.6/mysql-test/t/ssl-sha512.test
index f90c4b2b..5de89a95 100644
--- a/mysql-wsrep-5.6/mysql-test/t/ssl-sha512.test
+++ b/mysql-wsrep-5.6/mysql-test/t/ssl-sha512.test
@@ -4,7 +4,6 @@ CREATE USER u1@localhost IDENTIFIED BY 'secret';
 GRANT SELECT ON test.* TO u1@localhost REQUIRE SSL;
  
 --replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
---exec $MYSQL -uu1 -psecret -h127.0.0.1 --ssl-ca=$MYSQL_TEST_DIR/std_data/ca-sha512.pem --ssl-cipher=EDH-RSA-DES-CBC3-SHA test -e "SHOW VARIABLES like '%ssl%';"
+--exec $MYSQL -uu1 -psecret -h127.0.0.1 --ssl-ca=$MYSQL_TEST_DIR/std_data/ca-sha512.pem --ssl-cipher=DHE-RSA-AES256-SHA test -e "SHOW VARIABLES like '%ssl%';"
 
 DROP USER u1@localhost;
-
diff --git a/mysql-wsrep-5.6/mysql-test/t/ssl.test b/mysql-wsrep-5.6/mysql-test/t/ssl.test
index ea8be396..f4a219e9 100644
--- a/mysql-wsrep-5.6/mysql-test/t/ssl.test
+++ b/mysql-wsrep-5.6/mysql-test/t/ssl.test
@@ -11,6 +11,7 @@
 connect (ssl_con,localhost,root,,,,,SSL);
 
 # Check ssl turned on
+--replace_regex $ALLOWED_CIPHERS_REGEX
 SHOW STATUS LIKE 'Ssl_cipher';
 
 # Check ssl expiration
@@ -21,6 +22,7 @@ SHOW STATUS LIKE 'Ssl_server_not_after';
 -- source include/common-tests.inc
 
 # Check ssl turned on
+--replace_regex $ALLOWED_CIPHERS_REGEX
 SHOW STATUS LIKE 'Ssl_cipher';
 
 connection default;
diff --git a/mysql-wsrep-5.6/mysql-test/t/ssl_8k_key.test b/mysql-wsrep-5.6/mysql-test/t/ssl_8k_key.test
index d94c2fc9..553fb39a 100644
--- a/mysql-wsrep-5.6/mysql-test/t/ssl_8k_key.test
+++ b/mysql-wsrep-5.6/mysql-test/t/ssl_8k_key.test
@@ -4,6 +4,7 @@
 #
 # Bug#29784 YaSSL assertion failure when reading 8k key.
 #
+--replace_regex $ALLOWED_CIPHERS_REGEX
 --exec $MYSQL --ssl --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem -e "SHOW STATUS LIKE 'ssl_Cipher'" 2>&1
 
 ##  This test file is for testing encrypted communication only, not other
diff --git a/mysql-wsrep-5.6/mysql-test/t/ssl_ca.test b/mysql-wsrep-5.6/mysql-test/t/ssl_ca.test
index bc6ef557..732f745b 100644
--- a/mysql-wsrep-5.6/mysql-test/t/ssl_ca.test
+++ b/mysql-wsrep-5.6/mysql-test/t/ssl_ca.test
@@ -10,6 +10,7 @@
 --exec $MYSQL --ssl-ca=$MYSQL_TEST_DIR/std_data/wrong-crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem test -e "SHOW STATUS LIKE 'Ssl_cipher'" 2>&1
 
 --echo # try to connect with correct '--ssl-ca' path : should connect
+--replace_regex $ALLOWED_CIPHERS_REGEX
 --exec $MYSQL --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem test -e "SHOW STATUS LIKE 'Ssl_cipher'"
 
 --echo #
@@ -21,12 +22,15 @@
 
 --echo # try to connect with '--ssl-ca' option using tilde home directoy
 --echo # path substitution : should connect
+--replace_regex $ALLOWED_CIPHERS_REGEX
 --exec $MYSQL --ssl-ca=$mysql_test_dir_path/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem test -e "SHOW STATUS LIKE 'Ssl_cipher'"
 
 --echo # try to connect with '--ssl-key' option using tilde home directoy
 --echo # path substitution : should connect
+--replace_regex $ALLOWED_CIPHERS_REGEX
 --exec $MYSQL --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$mysql_test_dir_path/std_data/crl-client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/crl-client-cert.pem test -e "SHOW STATUS LIKE 'Ssl_cipher'"
 
 --echo # try to connect with '--ssl-cert' option using tilde home directoy
 --echo # path substitution : should connect
+--replace_regex $ALLOWED_CIPHERS_REGEX
 --exec $MYSQL --ssl-ca=$MYSQL_TEST_DIR/std_data/crl-ca-cert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/crl-client-key.pem --ssl-cert=$mysql_test_dir_path/std_data/crl-client-cert.pem test -e "SHOW STATUS LIKE 'Ssl_cipher'"
diff --git a/mysql-wsrep-5.6/mysql-test/t/ssl_compress.test b/mysql-wsrep-5.6/mysql-test/t/ssl_compress.test
index 2cb4c0d6..7187ef7a 100644
--- a/mysql-wsrep-5.6/mysql-test/t/ssl_compress.test
+++ b/mysql-wsrep-5.6/mysql-test/t/ssl_compress.test
@@ -12,6 +12,7 @@
 connect (ssl_compress_con,localhost,root,,,,,SSL COMPRESS);
 
 # Check ssl turned on
+--replace_regex $ALLOWED_CIPHERS_REGEX
 SHOW STATUS LIKE 'Ssl_cipher';
 
 # Check compression turned on
@@ -21,6 +22,7 @@ SHOW STATUS LIKE 'Compression';
 -- source include/common-tests.inc
 
 # Check ssl turned on
+--replace_regex $ALLOWED_CIPHERS_REGEX
 SHOW STATUS LIKE 'Ssl_cipher';
 
 # Check compression turned on
diff --git a/mysql-wsrep-5.6/mysql-test/t/ssl_verify_identity.test b/mysql-wsrep-5.6/mysql-test/t/ssl_verify_identity.test
index 28c96c88..e53f65ac 100644
--- a/mysql-wsrep-5.6/mysql-test/t/ssl_verify_identity.test
+++ b/mysql-wsrep-5.6/mysql-test/t/ssl_verify_identity.test
@@ -22,12 +22,12 @@
 --cat_file $MYSQLTEST_VARDIR/tmp/bug24732452_stderr
 
 --echo ### Trying to connect with ssl-mode as REQUIRED. This should establish an encrypted connection.
---replace_result ECDHE-RSA-AES128-GCM-SHA256 SSL_CIPHER DHE-RSA-AES128-GCM-SHA256 SSL_CIPHER DHE-RSA-AES256-SHA SSL_CIPHER ECDHE-RSA-AES128-SHA256 SSL_CIPHER
+--replace_regex $ALLOWED_CIPHERS_REGEX
 --exec $MYSQL --ssl-mode=REQUIRED --ssl-ca=$MYSQL_TEST_DIR/std_data/ca-cert-verify-san.pem  --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert-verify-san.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key-verify-san.pem test -e "SHOW STATUS LIKE 'Ssl_cipher'" 2> $MYSQLTEST_VARDIR/tmp/bug24732452_stderr
 --cat_file $MYSQLTEST_VARDIR/tmp/bug24732452_stderr
 
 --echo ### Trying to connect with ssl-verify-server-cert option. This should establish an encrypted connection.
---replace_result ECDHE-RSA-AES128-GCM-SHA256 SSL_CIPHER DHE-RSA-AES128-GCM-SHA256 SSL_CIPHER DHE-RSA-AES256-SHA SSL_CIPHER ECDHE-RSA-AES128-SHA256 SSL_CIPHER
+--replace_regex $ALLOWED_CIPHERS_REGEX
 --exec $MYSQL --ssl-verify-server-cert --ssl-ca=$MYSQL_TEST_DIR/std_data/ca-cert-verify-san.pem  --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert-verify-san.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key-verify-san.pem test -e "SHOW STATUS LIKE 'Ssl_cipher'" 2> $MYSQLTEST_VARDIR/tmp/bug24732452_stderr
 --cat_file $MYSQLTEST_VARDIR/tmp/bug24732452_stderr
 
@@ -40,12 +40,12 @@ let SEARCH_FILE= $MYSQLTEST_VARDIR/tmp/bug24732452_stderr;
 --source include/search_pattern_in_file.inc
 
 --echo ### Trying to connect with ssl-verify-server-cert option and hostname as localhost. This should establish an encrypted connection as localhost is present in Alternative Subject Name in the certificate.
---replace_result ECDHE-RSA-AES128-GCM-SHA256 SSL_CIPHER DHE-RSA-AES128-GCM-SHA256 SSL_CIPHER DHE-RSA-AES256-SHA SSL_CIPHER ECDHE-RSA-AES128-SHA256 SSL_CIPHER
+--replace_regex $ALLOWED_CIPHERS_REGEX
 --exec $MYSQL --host=localhost --ssl-verify-server-cert --ssl-ca=$MYSQL_TEST_DIR/std_data/ca-cert-verify-san.pem  --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert-verify-san.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key-verify-san.pem test -e "SHOW STATUS LIKE 'Ssl_cipher'" 2> $MYSQLTEST_VARDIR/tmp/bug24732452_stderr
 --cat_file $MYSQLTEST_VARDIR/tmp/bug24732452_stderr
 
 --echo ### Trying to connect with ssl-verify-server-cert option and hostname as 127.0.0.1. This should establish an encrypted connection as localhost is present in Alternative Subject Name in the certificate.
---replace_result ECDHE-RSA-AES128-GCM-SHA256 SSL_CIPHER DHE-RSA-AES128-GCM-SHA256 SSL_CIPHER DHE-RSA-AES256-SHA SSL_CIPHER ECDHE-RSA-AES128-SHA256 SSL_CIPHER
+--replace_regex $ALLOWED_CIPHERS_REGEX
 --exec $MYSQL --host=127.0.0.1 --ssl-verify-server-cert --ssl-ca=$MYSQL_TEST_DIR/std_data/ca-cert-verify-san.pem  --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert-verify-san.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key-verify-san.pem test -e "SHOW STATUS LIKE 'Ssl_cipher'" 2> $MYSQLTEST_VARDIR/tmp/bug24732452_stderr
 --cat_file $MYSQLTEST_VARDIR/tmp/bug24732452_stderr
 
diff --git a/mysql-wsrep-5.6/mysql-test/t/symlink_windows.test b/mysql-wsrep-5.6/mysql-test/t/symlink_windows.test
index 1373ae80..4a4a78b1 100644
--- a/mysql-wsrep-5.6/mysql-test/t/symlink_windows.test
+++ b/mysql-wsrep-5.6/mysql-test/t/symlink_windows.test
@@ -1,15 +1,21 @@
 # Copyright (c) 2012, Oracle and/or its affiliates. All rights
 # reserved.
 #
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; version 2 of
-# the License.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysql-test/valgrind.supp b/mysql-wsrep-5.6/mysql-test/valgrind.supp
index ee5b4039..39c06f7b 100644
--- a/mysql-wsrep-5.6/mysql-test/valgrind.supp
+++ b/mysql-wsrep-5.6/mysql-test/valgrind.supp
@@ -1,14 +1,20 @@
-# Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
 #
-# This program 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; version 2
-# of the License.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Library General Public License for more details.
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License, version 2.0, for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
@@ -1224,3 +1230,24 @@ g   codership/mysql-wsrep/issues#176
    fun:_Z11mysqld_mainiPPc
    fun:main
 }
+
+{
+   OpenSSL libstdc++ version 5 / three
+   Memcheck:Leak
+   match-leak-kinds: reachable
+   fun:malloc
+   obj:*/libstdc++.so*
+   fun:call_init.part.0
+   fun:call_init
+   fun:_dl_init
+}
+
+{
+   Memory leak in dlerror
+   Memcheck:Leak
+   match-leak-kinds: reachable
+   fun:malloc
+   fun:vasprintf
+   fun:asprintf
+   fun:dlerror
+}
diff --git a/mysql-wsrep-5.6/mysys/CMakeLists.txt b/mysql-wsrep-5.6/mysys/CMakeLists.txt
index 2e8f0010..b8a6214c 100644
--- a/mysql-wsrep-5.6/mysys/CMakeLists.txt
+++ b/mysql-wsrep-5.6/mysys/CMakeLists.txt
@@ -1,14 +1,21 @@
-# Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
@@ -36,6 +43,13 @@ SET(MYSYS_SOURCES  array.c charset-def.c charset.c checksum.c
 				my_atomic.c my_getncpus.c
 				my_rdtsc.c waiting_threads.c psi_noop.c)
 
+MY_CHECK_C_COMPILER_FLAG("-Wdeprecated-declarations" HAVE_DEPRECATED_DECLARATIONS)
+IF(HAVE_DEPRECATED_DECLARATIONS)
+  # 'ftime' is deprecated
+  ADD_COMPILE_FLAGS(my_rdtsc.c
+    COMPILE_FLAGS "-Wno-deprecated-declarations")
+ENDIF()
+
 IF (WIN32)
  SET (MYSYS_SOURCES ${MYSYS_SOURCES} my_winthread.c my_wincond.c my_winerr.c my_winfile.c my_windac.c my_conio.c)
 ENDIF()
diff --git a/mysql-wsrep-5.6/mysys/array.c b/mysql-wsrep-5.6/mysys/array.c
index 0a320085..ff80bcb0 100644
--- a/mysql-wsrep-5.6/mysys/array.c
+++ b/mysql-wsrep-5.6/mysys/array.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/base64.c b/mysql-wsrep-5.6/mysys/base64.c
index 3deafeab..75f74858 100644
--- a/mysql-wsrep-5.6/mysys/base64.c
+++ b/mysql-wsrep-5.6/mysys/base64.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/charset-def.c b/mysql-wsrep-5.6/mysys/charset-def.c
index 0c95d840..97b39057 100644
--- a/mysql-wsrep-5.6/mysys/charset-def.c
+++ b/mysql-wsrep-5.6/mysys/charset-def.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/charset.c b/mysql-wsrep-5.6/mysys/charset.c
index 9d9a4ce6..3c669426 100644
--- a/mysql-wsrep-5.6/mysys/charset.c
+++ b/mysql-wsrep-5.6/mysys/charset.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/checksum.c b/mysql-wsrep-5.6/mysys/checksum.c
index 87f3056c..d17955f6 100644
--- a/mysql-wsrep-5.6/mysys/checksum.c
+++ b/mysql-wsrep-5.6/mysys/checksum.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/errors.c b/mysql-wsrep-5.6/mysys/errors.c
index 2209a8a3..651862b4 100644
--- a/mysql-wsrep-5.6/mysys/errors.c
+++ b/mysql-wsrep-5.6/mysys/errors.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/hash.c b/mysql-wsrep-5.6/mysys/hash.c
index 15a50083..998fea7e 100644
--- a/mysql-wsrep-5.6/mysys/hash.c
+++ b/mysql-wsrep-5.6/mysys/hash.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/lf_alloc-pin.c b/mysql-wsrep-5.6/mysys/lf_alloc-pin.c
index 0bf2f36c..6915220b 100644
--- a/mysql-wsrep-5.6/mysys/lf_alloc-pin.c
+++ b/mysql-wsrep-5.6/mysys/lf_alloc-pin.c
@@ -2,13 +2,25 @@
 /* Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/lf_dynarray.c b/mysql-wsrep-5.6/mysys/lf_dynarray.c
index 0a68b7cd..9b340090 100644
--- a/mysql-wsrep-5.6/mysys/lf_dynarray.c
+++ b/mysql-wsrep-5.6/mysys/lf_dynarray.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/lf_hash.c b/mysql-wsrep-5.6/mysys/lf_hash.c
index c800a4fb..ba16a19b 100644
--- a/mysql-wsrep-5.6/mysys/lf_hash.c
+++ b/mysql-wsrep-5.6/mysys/lf_hash.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2006, 2017, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/list.c b/mysql-wsrep-5.6/mysys/list.c
index fb46120d..faf40085 100644
--- a/mysql-wsrep-5.6/mysys/list.c
+++ b/mysql-wsrep-5.6/mysys/list.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_arr_appstr.c b/mysql-wsrep-5.6/mysys/mf_arr_appstr.c
index 71d4ad0a..000e2b66 100644
--- a/mysql-wsrep-5.6/mysys/mf_arr_appstr.c
+++ b/mysql-wsrep-5.6/mysys/mf_arr_appstr.c
@@ -2,13 +2,25 @@
    Use is subject to license terms
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_cache.c b/mysql-wsrep-5.6/mysys/mf_cache.c
index 10c410e0..da358c40 100644
--- a/mysql-wsrep-5.6/mysys/mf_cache.c
+++ b/mysql-wsrep-5.6/mysys/mf_cache.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_dirname.c b/mysql-wsrep-5.6/mysys/mf_dirname.c
index 569293f5..30a242f0 100644
--- a/mysql-wsrep-5.6/mysys/mf_dirname.c
+++ b/mysql-wsrep-5.6/mysys/mf_dirname.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_fn_ext.c b/mysql-wsrep-5.6/mysys/mf_fn_ext.c
index 47fc67ca..ced06264 100644
--- a/mysql-wsrep-5.6/mysys/mf_fn_ext.c
+++ b/mysql-wsrep-5.6/mysys/mf_fn_ext.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_format.c b/mysql-wsrep-5.6/mysys/mf_format.c
index 6865926a..c385a1da 100644
--- a/mysql-wsrep-5.6/mysys/mf_format.c
+++ b/mysql-wsrep-5.6/mysys/mf_format.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_getdate.c b/mysql-wsrep-5.6/mysys/mf_getdate.c
index e3ac2e3f..26b3d060 100644
--- a/mysql-wsrep-5.6/mysys/mf_getdate.c
+++ b/mysql-wsrep-5.6/mysys/mf_getdate.c
@@ -2,13 +2,25 @@
    Use is subject to license terms.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_iocache.c b/mysql-wsrep-5.6/mysys/mf_iocache.c
index 015acf2c..7afb7494 100644
--- a/mysql-wsrep-5.6/mysys/mf_iocache.c
+++ b/mysql-wsrep-5.6/mysys/mf_iocache.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_iocache2.c b/mysql-wsrep-5.6/mysys/mf_iocache2.c
index 72d9783b..e2510330 100644
--- a/mysql-wsrep-5.6/mysys/mf_iocache2.c
+++ b/mysql-wsrep-5.6/mysys/mf_iocache2.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_keycache.c b/mysql-wsrep-5.6/mysys/mf_keycache.c
index b6758316..9a7b7254 100644
--- a/mysql-wsrep-5.6/mysys/mf_keycache.c
+++ b/mysql-wsrep-5.6/mysys/mf_keycache.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_keycaches.c b/mysql-wsrep-5.6/mysys/mf_keycaches.c
index cdc66b75..daeaf125 100644
--- a/mysql-wsrep-5.6/mysys/mf_keycaches.c
+++ b/mysql-wsrep-5.6/mysys/mf_keycaches.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_loadpath.c b/mysql-wsrep-5.6/mysys/mf_loadpath.c
index 812c3895..01cdf05e 100644
--- a/mysql-wsrep-5.6/mysys/mf_loadpath.c
+++ b/mysql-wsrep-5.6/mysys/mf_loadpath.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_pack.c b/mysql-wsrep-5.6/mysys/mf_pack.c
index 5e90948f..fe3a2bcb 100644
--- a/mysql-wsrep-5.6/mysys/mf_pack.c
+++ b/mysql-wsrep-5.6/mysys/mf_pack.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_path.c b/mysql-wsrep-5.6/mysys/mf_path.c
index 725cf278..9a88d4ea 100644
--- a/mysql-wsrep-5.6/mysys/mf_path.c
+++ b/mysql-wsrep-5.6/mysys/mf_path.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_qsort.c b/mysql-wsrep-5.6/mysys/mf_qsort.c
index 56e1fbd1..03508804 100644
--- a/mysql-wsrep-5.6/mysys/mf_qsort.c
+++ b/mysql-wsrep-5.6/mysys/mf_qsort.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_qsort2.c b/mysql-wsrep-5.6/mysys/mf_qsort2.c
index f54cdac9..eee84739 100644
--- a/mysql-wsrep-5.6/mysys/mf_qsort2.c
+++ b/mysql-wsrep-5.6/mysys/mf_qsort2.c
@@ -2,13 +2,25 @@
    Use is subject to license terms
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_radix.c b/mysql-wsrep-5.6/mysys/mf_radix.c
index aa112df0..184d5567 100644
--- a/mysql-wsrep-5.6/mysys/mf_radix.c
+++ b/mysql-wsrep-5.6/mysys/mf_radix.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_same.c b/mysql-wsrep-5.6/mysys/mf_same.c
index ed3b7434..aa68442c 100644
--- a/mysql-wsrep-5.6/mysys/mf_same.c
+++ b/mysql-wsrep-5.6/mysys/mf_same.c
@@ -2,13 +2,25 @@
    Use is subject to license terms
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_sort.c b/mysql-wsrep-5.6/mysys/mf_sort.c
index b2c58c26..66b04128 100644
--- a/mysql-wsrep-5.6/mysys/mf_sort.c
+++ b/mysql-wsrep-5.6/mysys/mf_sort.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_soundex.c b/mysql-wsrep-5.6/mysys/mf_soundex.c
index c32c454f..ec64748a 100644
--- a/mysql-wsrep-5.6/mysys/mf_soundex.c
+++ b/mysql-wsrep-5.6/mysys/mf_soundex.c
@@ -2,13 +2,25 @@
    Use is subject to license terms
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_tempdir.c b/mysql-wsrep-5.6/mysys/mf_tempdir.c
index 4a6978d4..5befb828 100644
--- a/mysql-wsrep-5.6/mysys/mf_tempdir.c
+++ b/mysql-wsrep-5.6/mysys/mf_tempdir.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_tempfile.c b/mysql-wsrep-5.6/mysys/mf_tempfile.c
index eaab5388..e694cd86 100644
--- a/mysql-wsrep-5.6/mysys/mf_tempfile.c
+++ b/mysql-wsrep-5.6/mysys/mf_tempfile.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_unixpath.c b/mysql-wsrep-5.6/mysys/mf_unixpath.c
index 05df11ed..ae846bdb 100644
--- a/mysql-wsrep-5.6/mysys/mf_unixpath.c
+++ b/mysql-wsrep-5.6/mysys/mf_unixpath.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mf_wcomp.c b/mysql-wsrep-5.6/mysys/mf_wcomp.c
index 5e4a6891..e881646e 100644
--- a/mysql-wsrep-5.6/mysys/mf_wcomp.c
+++ b/mysql-wsrep-5.6/mysys/mf_wcomp.c
@@ -2,13 +2,25 @@
    Use is subject to license terms
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mulalloc.c b/mysql-wsrep-5.6/mysys/mulalloc.c
index 91360543..aa800ec0 100644
--- a/mysql-wsrep-5.6/mysys/mulalloc.c
+++ b/mysql-wsrep-5.6/mysys/mulalloc.c
@@ -2,13 +2,25 @@
    Use is subject to license terms
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_access.c b/mysql-wsrep-5.6/mysys/my_access.c
index e963866f..5df0ffff 100644
--- a/mysql-wsrep-5.6/mysys/my_access.c
+++ b/mysql-wsrep-5.6/mysys/my_access.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_alarm.c b/mysql-wsrep-5.6/mysys/my_alarm.c
index 582088d8..107b0041 100644
--- a/mysql-wsrep-5.6/mysys/my_alarm.c
+++ b/mysql-wsrep-5.6/mysys/my_alarm.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_alloc.c b/mysql-wsrep-5.6/mysys/my_alloc.c
index e689fb35..71459464 100644
--- a/mysql-wsrep-5.6/mysys/my_alloc.c
+++ b/mysql-wsrep-5.6/mysys/my_alloc.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_atomic.c b/mysql-wsrep-5.6/mysys/my_atomic.c
index d8f83d35..6f1d7ce8 100644
--- a/mysql-wsrep-5.6/mysys/my_atomic.c
+++ b/mysql-wsrep-5.6/mysys/my_atomic.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_bit.c b/mysql-wsrep-5.6/mysys/my_bit.c
index d36f52bb..545fe1b1 100644
--- a/mysql-wsrep-5.6/mysys/my_bit.c
+++ b/mysql-wsrep-5.6/mysys/my_bit.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_bitmap.c b/mysql-wsrep-5.6/mysys/my_bitmap.c
index d9ecd35e..8f126ff3 100644
--- a/mysql-wsrep-5.6/mysys/my_bitmap.c
+++ b/mysql-wsrep-5.6/mysys/my_bitmap.c
@@ -2,13 +2,25 @@
    Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_chsize.c b/mysql-wsrep-5.6/mysys/my_chsize.c
index 08250366..24ff357d 100644
--- a/mysql-wsrep-5.6/mysys/my_chsize.c
+++ b/mysql-wsrep-5.6/mysys/my_chsize.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_compare.c b/mysql-wsrep-5.6/mysys/my_compare.c
index 1c9da674..1d3d4fa5 100644
--- a/mysql-wsrep-5.6/mysys/my_compare.c
+++ b/mysql-wsrep-5.6/mysys/my_compare.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_compress.c b/mysql-wsrep-5.6/mysys/my_compress.c
index c04ef9e4..8b71df70 100644
--- a/mysql-wsrep-5.6/mysys/my_compress.c
+++ b/mysql-wsrep-5.6/mysys/my_compress.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_conio.c b/mysql-wsrep-5.6/mysys/my_conio.c
index 208b3e34..d0ee4aea 100644
--- a/mysql-wsrep-5.6/mysys/my_conio.c
+++ b/mysql-wsrep-5.6/mysys/my_conio.c
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_copy.c b/mysql-wsrep-5.6/mysys/my_copy.c
index 84d19c87..6eeb073e 100644
--- a/mysql-wsrep-5.6/mysys/my_copy.c
+++ b/mysql-wsrep-5.6/mysys/my_copy.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_crc32.c b/mysql-wsrep-5.6/mysys/my_crc32.c
index 2893d35a..3089d6ed 100644
--- a/mysql-wsrep-5.6/mysys/my_crc32.c
+++ b/mysql-wsrep-5.6/mysys/my_crc32.c
@@ -2,13 +2,20 @@
    Use is subject to license terms
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_create.c b/mysql-wsrep-5.6/mysys/my_create.c
index 2e4e8eb1..8232be98 100644
--- a/mysql-wsrep-5.6/mysys/my_create.c
+++ b/mysql-wsrep-5.6/mysys/my_create.c
@@ -2,13 +2,25 @@
    Use is subject to license terms.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_delete.c b/mysql-wsrep-5.6/mysys/my_delete.c
index 46bcc494..e16b1c2f 100644
--- a/mysql-wsrep-5.6/mysys/my_delete.c
+++ b/mysql-wsrep-5.6/mysys/my_delete.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_div.c b/mysql-wsrep-5.6/mysys/my_div.c
index 808f0a96..d27293f0 100644
--- a/mysql-wsrep-5.6/mysys/my_div.c
+++ b/mysql-wsrep-5.6/mysys/my_div.c
@@ -2,13 +2,25 @@
    Use is subject to license terms
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_error.c b/mysql-wsrep-5.6/mysys/my_error.c
index b1f57ba6..c7c81ce8 100644
--- a/mysql-wsrep-5.6/mysys/my_error.c
+++ b/mysql-wsrep-5.6/mysys/my_error.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_file.c b/mysql-wsrep-5.6/mysys/my_file.c
index ba7095d0..86b62314 100644
--- a/mysql-wsrep-5.6/mysys/my_file.c
+++ b/mysql-wsrep-5.6/mysys/my_file.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_fopen.c b/mysql-wsrep-5.6/mysys/my_fopen.c
index e3a933a0..e0e52dbd 100644
--- a/mysql-wsrep-5.6/mysys/my_fopen.c
+++ b/mysql-wsrep-5.6/mysys/my_fopen.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_fstream.c b/mysql-wsrep-5.6/mysys/my_fstream.c
index 26b6c451..a5fc49ae 100644
--- a/mysql-wsrep-5.6/mysys/my_fstream.c
+++ b/mysql-wsrep-5.6/mysys/my_fstream.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_gethwaddr.c b/mysql-wsrep-5.6/mysys/my_gethwaddr.c
index 32b2593f..af0ccd83 100644
--- a/mysql-wsrep-5.6/mysys/my_gethwaddr.c
+++ b/mysql-wsrep-5.6/mysys/my_gethwaddr.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_getncpus.c b/mysql-wsrep-5.6/mysys/my_getncpus.c
index 34257ffa..623343dd 100644
--- a/mysql-wsrep-5.6/mysys/my_getncpus.c
+++ b/mysql-wsrep-5.6/mysys/my_getncpus.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_getpagesize.c b/mysql-wsrep-5.6/mysys/my_getpagesize.c
index f459ec3b..6d27fc41 100644
--- a/mysql-wsrep-5.6/mysys/my_getpagesize.c
+++ b/mysql-wsrep-5.6/mysys/my_getpagesize.c
@@ -2,13 +2,25 @@
    Use is subject to license terms
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_getsystime.c b/mysql-wsrep-5.6/mysys/my_getsystime.c
index 5c52f41d..60e47400 100644
--- a/mysql-wsrep-5.6/mysys/my_getsystime.c
+++ b/mysql-wsrep-5.6/mysys/my_getsystime.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_getwd.c b/mysql-wsrep-5.6/mysys/my_getwd.c
index 121e0849..70bbd25a 100644
--- a/mysql-wsrep-5.6/mysys/my_getwd.c
+++ b/mysql-wsrep-5.6/mysys/my_getwd.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_handler_errors.h b/mysql-wsrep-5.6/mysys/my_handler_errors.h
index f3d43acb..ef080e11 100644
--- a/mysql-wsrep-5.6/mysys/my_handler_errors.h
+++ b/mysql-wsrep-5.6/mysys/my_handler_errors.h
@@ -1,16 +1,28 @@
 #ifndef MYSYS_MY_HANDLER_ERRORS_INCLUDED
 #define MYSYS_MY_HANDLER_ERRORS_INCLUDED
 
-/* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2008, 2020, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software Foundation,
@@ -94,7 +106,8 @@ static const char *handler_error_messages[]=
   "FTS query exceeds result cache memory limit",
   "Temporary file write failure",
   "Operation not allowed when innodb_forced_recovery > 0",
-  "Too many words in a FTS phrase or proximity search"
+  "Too many words in a FTS phrase or proximity search",
+  "Too many nested sub-expressions in a full-text search"
 };
 
 extern void my_handler_error_register(void);
diff --git a/mysql-wsrep-5.6/mysys/my_init.c b/mysql-wsrep-5.6/mysys/my_init.c
index c9c3a6ca..68362899 100644
--- a/mysql-wsrep-5.6/mysys/my_init.c
+++ b/mysql-wsrep-5.6/mysys/my_init.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_largepage.c b/mysql-wsrep-5.6/mysys/my_largepage.c
index 59f815a9..d3d3ff12 100644
--- a/mysql-wsrep-5.6/mysys/my_largepage.c
+++ b/mysql-wsrep-5.6/mysys/my_largepage.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_lib.c b/mysql-wsrep-5.6/mysys/my_lib.c
index f4d0ebed..7e3a47e4 100644
--- a/mysql-wsrep-5.6/mysys/my_lib.c
+++ b/mysql-wsrep-5.6/mysys/my_lib.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_libwrap.c b/mysql-wsrep-5.6/mysys/my_libwrap.c
index 28081f64..f2c2370e 100644
--- a/mysql-wsrep-5.6/mysys/my_libwrap.c
+++ b/mysql-wsrep-5.6/mysys/my_libwrap.c
@@ -2,13 +2,20 @@
    Use is subject to license terms
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_lock.c b/mysql-wsrep-5.6/mysys/my_lock.c
index 3c0e8ab5..3de308e1 100644
--- a/mysql-wsrep-5.6/mysys/my_lock.c
+++ b/mysql-wsrep-5.6/mysys/my_lock.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_lockmem.c b/mysql-wsrep-5.6/mysys/my_lockmem.c
index 3e27564f..515bdb64 100644
--- a/mysql-wsrep-5.6/mysys/my_lockmem.c
+++ b/mysql-wsrep-5.6/mysys/my_lockmem.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_malloc.c b/mysql-wsrep-5.6/mysys/my_malloc.c
index e441a425..feba812c 100644
--- a/mysql-wsrep-5.6/mysys/my_malloc.c
+++ b/mysql-wsrep-5.6/mysys/my_malloc.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_memmem.c b/mysql-wsrep-5.6/mysys/my_memmem.c
index e15dedfd..83b2db93 100644
--- a/mysql-wsrep-5.6/mysys/my_memmem.c
+++ b/mysql-wsrep-5.6/mysys/my_memmem.c
@@ -2,13 +2,25 @@
    Use is subject to license terms
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_mess.c b/mysql-wsrep-5.6/mysys/my_mess.c
index b7f175b5..437efe06 100644
--- a/mysql-wsrep-5.6/mysys/my_mess.c
+++ b/mysql-wsrep-5.6/mysys/my_mess.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_mkdir.c b/mysql-wsrep-5.6/mysys/my_mkdir.c
index 48c56b15..1c8e2101 100644
--- a/mysql-wsrep-5.6/mysys/my_mkdir.c
+++ b/mysql-wsrep-5.6/mysys/my_mkdir.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_mmap.c b/mysql-wsrep-5.6/mysys/my_mmap.c
index acd4862e..fa272be6 100644
--- a/mysql-wsrep-5.6/mysys/my_mmap.c
+++ b/mysql-wsrep-5.6/mysys/my_mmap.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_once.c b/mysql-wsrep-5.6/mysys/my_once.c
index 7efb017a..e3a8e58f 100644
--- a/mysql-wsrep-5.6/mysys/my_once.c
+++ b/mysql-wsrep-5.6/mysys/my_once.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_open.c b/mysql-wsrep-5.6/mysys/my_open.c
index 38a65c6f..c32cd5bf 100644
--- a/mysql-wsrep-5.6/mysys/my_open.c
+++ b/mysql-wsrep-5.6/mysys/my_open.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_pread.c b/mysql-wsrep-5.6/mysys/my_pread.c
index c36893f3..bda3e48f 100644
--- a/mysql-wsrep-5.6/mysys/my_pread.c
+++ b/mysql-wsrep-5.6/mysys/my_pread.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_pthread.c b/mysql-wsrep-5.6/mysys/my_pthread.c
index 6de19c55..16392b0f 100644
--- a/mysql-wsrep-5.6/mysys/my_pthread.c
+++ b/mysql-wsrep-5.6/mysys/my_pthread.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_quick.c b/mysql-wsrep-5.6/mysys/my_quick.c
index 2d5e9fb9..937f48ec 100644
--- a/mysql-wsrep-5.6/mysys/my_quick.c
+++ b/mysql-wsrep-5.6/mysys/my_quick.c
@@ -2,13 +2,25 @@
    Use is subject to license terms.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_rdtsc.c b/mysql-wsrep-5.6/mysys/my_rdtsc.c
index 028c7f81..b76e8365 100644
--- a/mysql-wsrep-5.6/mysys/my_rdtsc.c
+++ b/mysql-wsrep-5.6/mysys/my_rdtsc.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
+
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
+
+  Without limiting anything contained in the foregoing, this file,
+  which is part of C Driver for MySQL (Connector/C), is also subject to the
+  Universal FOSS Exception, version 1.0, a copy of which can be found at
+  http://oss.oracle.com/licenses/universal-foss-exception.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_read.c b/mysql-wsrep-5.6/mysys/my_read.c
index 18d2f3b0..1fc73ad9 100644
--- a/mysql-wsrep-5.6/mysys/my_read.c
+++ b/mysql-wsrep-5.6/mysys/my_read.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_redel.c b/mysql-wsrep-5.6/mysys/my_redel.c
index 1ce758b4..861cdb5c 100644
--- a/mysql-wsrep-5.6/mysys/my_redel.c
+++ b/mysql-wsrep-5.6/mysys/my_redel.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_rename.c b/mysql-wsrep-5.6/mysys/my_rename.c
index b56044d0..aebf81d4 100644
--- a/mysql-wsrep-5.6/mysys/my_rename.c
+++ b/mysql-wsrep-5.6/mysys/my_rename.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_seek.c b/mysql-wsrep-5.6/mysys/my_seek.c
index 6f652802..87e13c29 100644
--- a/mysql-wsrep-5.6/mysys/my_seek.c
+++ b/mysql-wsrep-5.6/mysys/my_seek.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_sleep.c b/mysql-wsrep-5.6/mysys/my_sleep.c
index 52ae6af7..41598f39 100644
--- a/mysql-wsrep-5.6/mysys/my_sleep.c
+++ b/mysql-wsrep-5.6/mysys/my_sleep.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_static.c b/mysql-wsrep-5.6/mysys/my_static.c
index 5fc866fd..4210c2ef 100644
--- a/mysql-wsrep-5.6/mysys/my_static.c
+++ b/mysql-wsrep-5.6/mysys/my_static.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_static.h b/mysql-wsrep-5.6/mysys/my_static.h
index 52142dd2..da7a10ad 100644
--- a/mysql-wsrep-5.6/mysys/my_static.h
+++ b/mysql-wsrep-5.6/mysys/my_static.h
@@ -4,13 +4,25 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_symlink.c b/mysql-wsrep-5.6/mysys/my_symlink.c
index c27d2e00..515690d2 100644
--- a/mysql-wsrep-5.6/mysys/my_symlink.c
+++ b/mysql-wsrep-5.6/mysys/my_symlink.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_symlink2.c b/mysql-wsrep-5.6/mysys/my_symlink2.c
index ba724d05..c9627395 100644
--- a/mysql-wsrep-5.6/mysys/my_symlink2.c
+++ b/mysql-wsrep-5.6/mysys/my_symlink2.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_sync.c b/mysql-wsrep-5.6/mysys/my_sync.c
index a2b46474..bb0c6a1a 100644
--- a/mysql-wsrep-5.6/mysys/my_sync.c
+++ b/mysql-wsrep-5.6/mysys/my_sync.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_thr_init.c b/mysql-wsrep-5.6/mysys/my_thr_init.c
index 6eda795d..3a1b8a2a 100644
--- a/mysql-wsrep-5.6/mysys/my_thr_init.c
+++ b/mysql-wsrep-5.6/mysys/my_thr_init.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_timer_cycles.il b/mysql-wsrep-5.6/mysys/my_timer_cycles.il
index e655cad2..493069aa 100644
--- a/mysql-wsrep-5.6/mysys/my_timer_cycles.il
+++ b/mysql-wsrep-5.6/mysys/my_timer_cycles.il
@@ -2,13 +2,20 @@
    Use is subject to license terms.
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
+
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_wincond.c b/mysql-wsrep-5.6/mysys/my_wincond.c
index 1de4fcad..a4a3ae4d 100644
--- a/mysql-wsrep-5.6/mysys/my_wincond.c
+++ b/mysql-wsrep-5.6/mysys/my_wincond.c
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_windac.c b/mysql-wsrep-5.6/mysys/my_windac.c
index b2936a8b..0987c8b4 100644
--- a/mysql-wsrep-5.6/mysys/my_windac.c
+++ b/mysql-wsrep-5.6/mysys/my_windac.c
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_winerr.c b/mysql-wsrep-5.6/mysys/my_winerr.c
index 15f52dd7..51632cbc 100644
--- a/mysql-wsrep-5.6/mysys/my_winerr.c
+++ b/mysql-wsrep-5.6/mysys/my_winerr.c
@@ -2,13 +2,20 @@
    Use is subject to license terms.
 
 This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; version 2 of the License.
+it under the terms of the GNU General Public License, version 2.0,
+as published by the Free Software Foundation.
+
+This program is also distributed with certain software (including
+but not limited to OpenSSL) that is licensed under separate terms,
+as designated in a particular file or component or in included license
+documentation.  The authors of MySQL hereby grant you an additional
+permission to link the program and your derivative works with the
+separately licensed software that they have included with MySQL.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+GNU General Public License, version 2.0, for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_winfile.c b/mysql-wsrep-5.6/mysys/my_winfile.c
index ad87bf71..31b928fe 100644
--- a/mysql-wsrep-5.6/mysys/my_winfile.c
+++ b/mysql-wsrep-5.6/mysys/my_winfile.c
@@ -1,13 +1,20 @@
 /* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
 
 This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; version 2 of the License.
+it under the terms of the GNU General Public License, version 2.0,
+as published by the Free Software Foundation.
+
+This program is also distributed with certain software (including
+but not limited to OpenSSL) that is licensed under separate terms,
+as designated in a particular file or component or in included license
+documentation.  The authors of MySQL hereby grant you an additional
+permission to link the program and your derivative works with the
+separately licensed software that they have included with MySQL.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+GNU General Public License, version 2.0, for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_winthread.c b/mysql-wsrep-5.6/mysys/my_winthread.c
index fcb6e57e..03f6966c 100644
--- a/mysql-wsrep-5.6/mysys/my_winthread.c
+++ b/mysql-wsrep-5.6/mysys/my_winthread.c
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/my_write.c b/mysql-wsrep-5.6/mysys/my_write.c
index 9cf2db0f..50fb48eb 100644
--- a/mysql-wsrep-5.6/mysys/my_write.c
+++ b/mysql-wsrep-5.6/mysys/my_write.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/mysys_priv.h b/mysql-wsrep-5.6/mysys/mysys_priv.h
index 05b18df9..7ab56f3b 100644
--- a/mysql-wsrep-5.6/mysys/mysys_priv.h
+++ b/mysql-wsrep-5.6/mysys/mysys_priv.h
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/psi_noop.c b/mysql-wsrep-5.6/mysys/psi_noop.c
index 0fb54888..29fe0d22 100644
--- a/mysql-wsrep-5.6/mysys/psi_noop.c
+++ b/mysql-wsrep-5.6/mysys/psi_noop.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
+
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
+
+  Without limiting anything contained in the foregoing, this file,
+  which is part of C Driver for MySQL (Connector/C), is also subject to the
+  Universal FOSS Exception, version 1.0, a copy of which can be found at
+  http://oss.oracle.com/licenses/universal-foss-exception.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software Foundation,
diff --git a/mysql-wsrep-5.6/mysys/ptr_cmp.c b/mysql-wsrep-5.6/mysys/ptr_cmp.c
index 66e70d73..7de8ba0c 100644
--- a/mysql-wsrep-5.6/mysys/ptr_cmp.c
+++ b/mysql-wsrep-5.6/mysys/ptr_cmp.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/queues.c b/mysql-wsrep-5.6/mysys/queues.c
index bace6816..1f213b36 100644
--- a/mysql-wsrep-5.6/mysys/queues.c
+++ b/mysql-wsrep-5.6/mysys/queues.c
@@ -1,13 +1,25 @@
-/* Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
@@ -251,10 +263,20 @@ int queue_insert_safe(register QUEUE *queue, uchar *element)
 uchar *queue_remove(register QUEUE *queue, uint idx)
 {
   uchar *element;
+  my_bool use_downheap;
+
   DBUG_ASSERT(idx < queue->max_elements);
+  /*
+    If we remove the top element in the queue, we use _downheap else queue_fix
+    to maintain the heap property.
+  */
+  use_downheap = (idx == 0);
   element= queue->root[++idx];  /* Intern index starts from 1 */
   queue->root[idx]= queue->root[queue->elements--];
-  _downheap(queue, idx);
+  if (use_downheap)
+    _downheap(queue, idx);
+  else
+    queue_fix(queue);
   return element;
 }
 
@@ -668,6 +690,71 @@ static void benchmark_test()
   delete_queue(queue);
 }
 
+/**
+  Bug#30301356 - SOME EVENTS ARE DELAYED AFTER DROPPING EVENT
+
+  Test that ensures heap property is not violated if we remove an
+  element from an interior node. In the below test, we remove the
+  element 90 at index 6 in the array. After 90 is removed, the
+  parent node's of the deleted node violates the heap property
+  with the queue_remove function. We need to ensure the heap
+  property is satisfied by call queue_fix after removal from an
+  interior node in the queue_remove() function.
+*/
+
+// Element comparator for comparison of elements in heap.
+static int element_comparator(void *null_arg MY_ATTRIBUTE((unused)), uchar *lhs, uchar *rhs)
+{
+  int lkey = *(int *)lhs;
+  int rkey = *(int *)rhs;
+
+  return (lkey < rkey ? -1 : (lkey > rkey ? 1 : 0));
+}
+
+static my_bool is_tree_heap(uint index, QUEUE *queue)
+{
+  uint left, right;
+
+  if (index > queue->elements) return TRUE;
+  left = 2 * index;
+  right = 2 * index + 1;
+
+  if (left <= queue->elements &&
+      element_comparator(NULL, queue->root[index], queue->root[left]) == 1)
+    return FALSE;
+
+  if (left <= queue->elements &&
+      element_comparator(NULL, queue->root[index], queue->root[right]) == 1)
+    return FALSE;
+
+  return is_tree_heap(left, queue) && is_tree_heap(right, queue);
+}
+
+// Check if queue is a valid heap
+static my_bool is_queue_valid(QUEUE *queue)
+{
+  unsigned i;
+
+  for(i = 0; i <= queue->elements; i++)
+    if (queue->root[i] == NULL) return FALSE;
+
+  return is_tree_heap(1, queue);
+}
+
+static void remove_queue_element_test()
+{
+  QUEUE queue;
+  int keys[11] = {60, 65, 84, 75, 80, 85, 90, 95, 100, 105, 82};
+  int i;
+  init_queue(&queue, 11, 0, 0, element_comparator, NULL);
+  for (i = 0; i < 11; i++)
+    queue_insert(&queue, (uchar*)&keys[i]);
+  assert(is_queue_valid(&queue));
+  queue_remove(&queue, 6);
+  assert(is_queue_valid(&queue));
+  delete_queue(&queue);
+}
+
 int main()
 {
   int i, add= 1;
@@ -684,6 +771,7 @@ int main()
       return -1;
   }
   benchmark_test();
+  remove_queue_element_test();
   printf("OK\n");
   return 0;
 }
diff --git a/mysql-wsrep-5.6/mysys/stacktrace.c b/mysql-wsrep-5.6/mysys/stacktrace.c
index 16014e5e..112d146c 100644
--- a/mysql-wsrep-5.6/mysys/stacktrace.c
+++ b/mysql-wsrep-5.6/mysys/stacktrace.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/string.c b/mysql-wsrep-5.6/mysys/string.c
index 870963ab..9d66c61c 100644
--- a/mysql-wsrep-5.6/mysys/string.c
+++ b/mysql-wsrep-5.6/mysys/string.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/test_charset.c b/mysql-wsrep-5.6/mysys/test_charset.c
index 49e25b8d..9799e9dc 100644
--- a/mysql-wsrep-5.6/mysys/test_charset.c
+++ b/mysql-wsrep-5.6/mysys/test_charset.c
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/test_dir.c b/mysql-wsrep-5.6/mysys/test_dir.c
index f8df541c..9b626666 100644
--- a/mysql-wsrep-5.6/mysys/test_dir.c
+++ b/mysql-wsrep-5.6/mysys/test_dir.c
@@ -2,13 +2,20 @@
    Use is subject to license terms
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/test_xml.c b/mysql-wsrep-5.6/mysys/test_xml.c
index 87967197..24d9cf63 100644
--- a/mysql-wsrep-5.6/mysys/test_xml.c
+++ b/mysql-wsrep-5.6/mysys/test_xml.c
@@ -2,13 +2,20 @@
    Use is subject to license terms
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/testhash.c b/mysql-wsrep-5.6/mysys/testhash.c
index daff98d1..6dd00c0e 100644
--- a/mysql-wsrep-5.6/mysys/testhash.c
+++ b/mysql-wsrep-5.6/mysys/testhash.c
@@ -1,13 +1,20 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/thr_alarm.c b/mysql-wsrep-5.6/mysys/thr_alarm.c
index a3d13a59..f2ab131b 100644
--- a/mysql-wsrep-5.6/mysys/thr_alarm.c
+++ b/mysql-wsrep-5.6/mysys/thr_alarm.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/thr_lock.c b/mysql-wsrep-5.6/mysys/thr_lock.c
index 86743c47..f7f076ea 100644
--- a/mysql-wsrep-5.6/mysys/thr_lock.c
+++ b/mysql-wsrep-5.6/mysys/thr_lock.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/thr_mutex.c b/mysql-wsrep-5.6/mysys/thr_mutex.c
index 3f7bd4fc..7324a7aa 100644
--- a/mysql-wsrep-5.6/mysys/thr_mutex.c
+++ b/mysql-wsrep-5.6/mysys/thr_mutex.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/thr_rwlock.c b/mysql-wsrep-5.6/mysys/thr_rwlock.c
index df21a603..077b7e99 100644
--- a/mysql-wsrep-5.6/mysys/thr_rwlock.c
+++ b/mysql-wsrep-5.6/mysys/thr_rwlock.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/tree.c b/mysql-wsrep-5.6/mysys/tree.c
index 82078cb1..64467a8a 100644
--- a/mysql-wsrep-5.6/mysys/tree.c
+++ b/mysql-wsrep-5.6/mysys/tree.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/typelib.c b/mysql-wsrep-5.6/mysys/typelib.c
index fc6bf9cf..39e70204 100644
--- a/mysql-wsrep-5.6/mysys/typelib.c
+++ b/mysql-wsrep-5.6/mysys/typelib.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys/waiting_threads.c b/mysql-wsrep-5.6/mysys/waiting_threads.c
index f1468d69..354af58f 100644
--- a/mysql-wsrep-5.6/mysys/waiting_threads.c
+++ b/mysql-wsrep-5.6/mysys/waiting_threads.c
@@ -1,13 +1,25 @@
 /* Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys_ssl/CMakeLists.txt b/mysql-wsrep-5.6/mysys_ssl/CMakeLists.txt
index bcf8177a..779d1fc0 100644
--- a/mysql-wsrep-5.6/mysys_ssl/CMakeLists.txt
+++ b/mysql-wsrep-5.6/mysys_ssl/CMakeLists.txt
@@ -1,14 +1,21 @@
-# Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
@@ -21,29 +28,7 @@ IF(SSL_DEFINES)
 ADD_DEFINITIONS(${SSL_DEFINES})
 ENDIF()
 
-# We do RESTRICT_SYMBOL_EXPORTS(yassl) elsewhere.
-# In order to get correct symbol visibility, these files
-# must be compiled with "-fvisibility=hidden"
-IF(WITH_SSL STREQUAL "bundled" AND HAVE_VISIBILITY_HIDDEN)
-  SET_SOURCE_FILES_PROPERTIES(
-    crypt_genhash_impl.cc
-    my_aes.cc
-    my_md5.cc
-    my_sha1.cc
-    my_sha2.cc
-    PROPERTIES COMPILE_FLAGS "-fvisibility=hidden")
-ENDIF()
-
-IF(WITH_SSL STREQUAL "bundled")
-  SET(MYSYS_AES_IMPLEMENTATION my_aes_yassl.cc)
-  if (HAVE_VISIBILITY_HIDDEN)
-    SET_SOURCE_FILES_PROPERTIES(
-      my_aes_yassl.cc
-      PROPERTIES COMPILE_FLAGS "-fvisibility=hidden")
-  ENDIF()
-ELSE()
-  SET(MYSYS_AES_IMPLEMENTATION my_aes_openssl.cc)
-ENDIF()
+SET(MYSYS_AES_IMPLEMENTATION my_aes_openssl.cc)
 
 SET(MYSYS_SSL_SOURCES
     crypt_genhash_impl.cc
@@ -51,7 +36,6 @@ SET(MYSYS_SSL_SOURCES
     my_getopt.cc
     my_aes.cc
     my_sha1.cc
-    my_sha2.cc
     my_md5.cc
     my_rnd.cc
     my_murmur3.cc
@@ -60,6 +44,10 @@ SET(MYSYS_SSL_SOURCES
 
 ADD_CONVENIENCE_LIBRARY(mysys_ssl ${MYSYS_SSL_SOURCES})
 TARGET_LINK_LIBRARIES(mysys_ssl dbug strings ${SSL_LIBRARIES} ${ZLIB_LIBRARY})
+TARGET_LINK_LIBRARIES(mysys_ssl ${CMAKE_THREAD_LIBS_INIT})
+IF(WIN32)
+  TARGET_LINK_LIBRARIES(mysys_ssl crypt32)
+ENDIF()
 DTRACE_INSTRUMENT(mysys_ssl)
 
 IF(MSVC)
diff --git a/mysql-wsrep-5.6/mysys_ssl/crypt_genhash_impl.cc b/mysql-wsrep-5.6/mysys_ssl/crypt_genhash_impl.cc
index 53a24b94..24e4fb14 100644
--- a/mysql-wsrep-5.6/mysys_ssl/crypt_genhash_impl.cc
+++ b/mysql-wsrep-5.6/mysys_ssl/crypt_genhash_impl.cc
@@ -1,13 +1,25 @@
-/* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
@@ -19,58 +31,18 @@
 
 #ifdef HAVE_OPENSSL
 
-#ifdef HAVE_YASSL
-#include 
-#include 
-#else
 #include 
 #include 
-#endif
-
 #include "crypt_genhash_impl.h"
-
-/* Pre VS2010 compilers doesn't support stdint.h */
-#ifdef HAVE_STDINT_H
 #include 
-#else
-#ifndef uint32_t
-typedef unsigned long uint32_t;
-#endif
-#ifndef uint8_t
-typedef unsigned char uint8_t;
-#endif
-#endif // !HAVE_STDINT_H
-
 #include 
 #include 
 
-
-
-#ifndef HAVE_YASSL
 #define	DIGEST_CTX	SHA256_CTX
 #define	DIGESTInit	SHA256_Init
 #define	DIGESTUpdate	SHA256_Update
 #define	DIGESTFinal	SHA256_Final
 #define	DIGEST_LEN	SHA256_DIGEST_LENGTH
-#else
-#define DIGEST_CTX TaoCrypt::SHA256
-#define DIGEST_LEN 32
-void DIGESTInit(DIGEST_CTX *ctx)
-{
-  ctx->Init();
-}
-
-void DIGESTUpdate(DIGEST_CTX *ctx, const void *plaintext, int len)
-{
-  ctx->Update((const TaoCrypt::byte *)plaintext, len);
-}
-
-void DIGESTFinal(void *txt, DIGEST_CTX *ctx)
-{
-  ctx->Final((TaoCrypt::byte *)txt);
-}
-
-#endif // HAVE_YASSL
 
 static const char crypt_alg_magic[] = "$5";
 
@@ -441,11 +413,7 @@ extern "C"
 void generate_user_salt(char *buffer, int buffer_len)
 {
   char *end= buffer + buffer_len - 1;
-#ifdef HAVE_YASSL
-  yaSSL::RAND_bytes((unsigned char *) buffer, buffer_len);
-#else
   RAND_bytes((unsigned char *) buffer, buffer_len);
-#endif
       
   /* Sequence must be a legal UTF8 string */
   for (; buffer < end; buffer++)
diff --git a/mysql-wsrep-5.6/mysys_ssl/my_aes.cc b/mysql-wsrep-5.6/mysys_ssl/my_aes.cc
index f5ebe8bd..1c5d6e88 100644
--- a/mysql-wsrep-5.6/mysys_ssl/my_aes.cc
+++ b/mysql-wsrep-5.6/mysys_ssl/my_aes.cc
@@ -1,13 +1,25 @@
-/* Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
 
  This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; version 2 of the License.
+ it under the terms of the GNU General Public License, version 2.0,
+ as published by the Free Software Foundation.
+
+ This program is also distributed with certain software (including
+ but not limited to OpenSSL) that is licensed under separate terms,
+ as designated in a particular file or component or in included license
+ documentation.  The authors of MySQL hereby grant you an additional
+ permission to link the program and your derivative works with the
+ separately licensed software that they have included with MySQL.
+
+ Without limiting anything contained in the foregoing, this file,
+ which is part of C Driver for MySQL (Connector/C), is also subject to the
+ Universal FOSS Exception, version 1.0, a copy of which can be found at
+ http://oss.oracle.com/licenses/universal-foss-exception.
 
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
+ GNU General Public License, version 2.0, for more details.
 
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
@@ -32,7 +44,7 @@
 
   @param key        [in]       Key to use for real key creation
   @param key_length [in]       Length of the key
-  @param rkey       [out]      Real key (used by OpenSSL/YaSSL)
+  @param rkey       [out]      Real key (used by OpenSSL)
   @param opmode     [out]      encryption mode
 */
 
diff --git a/mysql-wsrep-5.6/mysys_ssl/my_aes_impl.h b/mysql-wsrep-5.6/mysys_ssl/my_aes_impl.h
index 2e18b2ea..85f1755e 100644
--- a/mysql-wsrep-5.6/mysys_ssl/my_aes_impl.h
+++ b/mysql-wsrep-5.6/mysys_ssl/my_aes_impl.h
@@ -1,13 +1,25 @@
 /* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
 
 This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; version 2 of the License.
+it under the terms of the GNU General Public License, version 2.0,
+as published by the Free Software Foundation.
+
+This program is also distributed with certain software (including
+but not limited to OpenSSL) that is licensed under separate terms,
+as designated in a particular file or component or in included license
+documentation.  The authors of MySQL hereby grant you an additional
+permission to link the program and your derivative works with the
+separately licensed software that they have included with MySQL.
+
+Without limiting anything contained in the foregoing, this file,
+which is part of C Driver for MySQL (Connector/C), is also subject to the
+Universal FOSS Exception, version 1.0, a copy of which can be found at
+http://oss.oracle.com/licenses/universal-foss-exception.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+GNU General Public License, version 2.0, for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys_ssl/my_aes_openssl.cc b/mysql-wsrep-5.6/mysys_ssl/my_aes_openssl.cc
index fa3c0162..c108801a 100644
--- a/mysql-wsrep-5.6/mysys_ssl/my_aes_openssl.cc
+++ b/mysql-wsrep-5.6/mysys_ssl/my_aes_openssl.cc
@@ -1,13 +1,25 @@
-/* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
 
 This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; version 2 of the License.
+it under the terms of the GNU General Public License, version 2.0,
+as published by the Free Software Foundation.
+
+This program is also distributed with certain software (including
+but not limited to OpenSSL) that is licensed under separate terms,
+as designated in a particular file or component or in included license
+documentation.  The authors of MySQL hereby grant you an additional
+permission to link the program and your derivative works with the
+separately licensed software that they have included with MySQL.
+
+Without limiting anything contained in the foregoing, this file,
+which is part of C Driver for MySQL (Connector/C), is also subject to the
+Universal FOSS Exception, version 1.0, a copy of which can be found at
+http://oss.oracle.com/licenses/universal-foss-exception.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+GNU General Public License, version 2.0, for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
@@ -108,33 +120,49 @@ int my_aes_encrypt(const unsigned char *source, uint32 source_length,
                    const unsigned char *key, uint32 key_length,
                    enum my_aes_opmode mode, const unsigned char *iv)
 {
-  EVP_CIPHER_CTX ctx;
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+  EVP_CIPHER_CTX stack_ctx;
+  EVP_CIPHER_CTX *ctx= &stack_ctx;
+#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */
+  EVP_CIPHER_CTX *ctx= EVP_CIPHER_CTX_new();
+#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */
   const EVP_CIPHER *cipher= aes_evp_type(mode);
   int u_len, f_len;
   /* The real key to be used for encryption */
   unsigned char rkey[MAX_AES_KEY_LENGTH / 8];
-  my_aes_create_key(key, key_length, rkey, mode);
 
-  if (!cipher || (EVP_CIPHER_iv_length(cipher) > 0 && !iv))
+  my_aes_create_key(key, key_length, rkey, mode);
+  if (!ctx || !cipher || (EVP_CIPHER_iv_length(cipher) > 0 && !iv))
     return MY_AES_BAD_DATA;
 
-  if (!EVP_EncryptInit(&ctx, cipher, rkey, iv))
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+  EVP_CIPHER_CTX_init(ctx);
+#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */
+
+  if (!EVP_EncryptInit(ctx, cipher, rkey, iv))
     goto aes_error;                             /* Error */
-  if (!EVP_CIPHER_CTX_set_padding(&ctx, 1))
+  if (!EVP_CIPHER_CTX_set_padding(ctx, 1))
     goto aes_error;                             /* Error */
-  if (!EVP_EncryptUpdate(&ctx, dest, &u_len, source, source_length))
+  if (!EVP_EncryptUpdate(ctx, dest, &u_len, source, source_length))
     goto aes_error;                             /* Error */
-
-  if (!EVP_EncryptFinal(&ctx, dest + u_len, &f_len))
+  if (!EVP_EncryptFinal(ctx, dest + u_len, &f_len))
     goto aes_error;                             /* Error */
 
-  EVP_CIPHER_CTX_cleanup(&ctx);
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+  EVP_CIPHER_CTX_cleanup(ctx);
+#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */
+  EVP_CIPHER_CTX_free(ctx);
+#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */
   return u_len + f_len;
 
 aes_error:
   /* need to explicitly clean up the error if we want to ignore it */
   ERR_clear_error();
-  EVP_CIPHER_CTX_cleanup(&ctx);
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+  EVP_CIPHER_CTX_cleanup(ctx);
+#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */
+  EVP_CIPHER_CTX_free(ctx);
+#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */
   return MY_AES_BAD_DATA;
 }
 
@@ -144,8 +172,12 @@ int my_aes_decrypt(const unsigned char *source, uint32 source_length,
                    const unsigned char *key, uint32 key_length,
                    enum my_aes_opmode mode, const unsigned char *iv)
 {
-
-  EVP_CIPHER_CTX ctx;
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+  EVP_CIPHER_CTX stack_ctx;
+  EVP_CIPHER_CTX *ctx= &stack_ctx;
+#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */
+  EVP_CIPHER_CTX *ctx= EVP_CIPHER_CTX_new();
+#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */
   const EVP_CIPHER *cipher= aes_evp_type(mode);
   int u_len, f_len;
 
@@ -153,27 +185,37 @@ int my_aes_decrypt(const unsigned char *source, uint32 source_length,
   unsigned char rkey[MAX_AES_KEY_LENGTH / 8];
 
   my_aes_create_key(key, key_length, rkey, mode);
-  if (!cipher || (EVP_CIPHER_iv_length(cipher) > 0 && !iv))
+  if (!ctx || !cipher || (EVP_CIPHER_iv_length(cipher) > 0 && !iv))
     return MY_AES_BAD_DATA;
 
-  EVP_CIPHER_CTX_init(&ctx);
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+  EVP_CIPHER_CTX_init(ctx);
+#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */
 
-  if (!EVP_DecryptInit(&ctx, aes_evp_type(mode), rkey, iv))
+  if (!EVP_DecryptInit(ctx, aes_evp_type(mode), rkey, iv))
     goto aes_error;                             /* Error */
-  if (!EVP_CIPHER_CTX_set_padding(&ctx, 1))
+  if (!EVP_CIPHER_CTX_set_padding(ctx, 1))
     goto aes_error;                             /* Error */
-  if (!EVP_DecryptUpdate(&ctx, dest, &u_len, source, source_length))
+  if (!EVP_DecryptUpdate(ctx, dest, &u_len, source, source_length))
     goto aes_error;                             /* Error */
-  if (!EVP_DecryptFinal_ex(&ctx, dest + u_len, &f_len))
+  if (!EVP_DecryptFinal_ex(ctx, dest + u_len, &f_len))
     goto aes_error;                             /* Error */
 
-  EVP_CIPHER_CTX_cleanup(&ctx);
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+  EVP_CIPHER_CTX_cleanup(ctx);
+#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */
+  EVP_CIPHER_CTX_free(ctx);
+#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */
   return u_len + f_len;
 
 aes_error:
   /* need to explicitly clean up the error if we want to ignore it */
   ERR_clear_error();
-  EVP_CIPHER_CTX_cleanup(&ctx);
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+  EVP_CIPHER_CTX_cleanup(ctx);
+#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */
+  EVP_CIPHER_CTX_free(ctx);
+#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */
   return MY_AES_BAD_DATA;
 }
 
diff --git a/mysql-wsrep-5.6/mysys_ssl/my_aes_yassl.cc b/mysql-wsrep-5.6/mysys_ssl/my_aes_yassl.cc
deleted file mode 100644
index f20d132a..00000000
--- a/mysql-wsrep-5.6/mysys_ssl/my_aes_yassl.cc
+++ /dev/null
@@ -1,240 +0,0 @@
-/* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; version 2 of the License.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA */
-
-#include 
-#include 
-#include 
-#include "my_aes_impl.h"
-
-#include "aes.hpp"
-#include "openssl/ssl.h"
-/** AES block size is fixed to be 128 bits for CBC and ECB */
-#define MY_AES_BLOCK_SIZE 16
-
-
-/* keep in sync with enum my_aes_opmode in my_aes.h */
-const char *my_aes_opmode_names[]=
-{
-  "aes-128-ecb",
-  "aes-192-ecb",
-  "aes-256-ecb",
-  "aes-128-cbc",
-  "aes-192-cbc",
-  "aes-256-cbc",
-  NULL /* needed for the type enumeration */
-};
-
-
-/* keep in sync with enum my_aes_opmode in my_aes.h */
-static uint my_aes_opmode_key_sizes_impl[]=
-{
-  128 /* aes-128-ecb */,
-  192 /* aes-192-ecb */,
-  256 /* aes-256-ecb */,
-  128 /* aes-128-cbc */,
-  192 /* aes-192-cbc */,
-  256 /* aes-256-cbc */,
-};
-
-uint *my_aes_opmode_key_sizes= my_aes_opmode_key_sizes_impl;
-
-
-template 
-class MyCipherCtx
-{
-public:
-  MyCipherCtx(enum my_aes_opmode mode) : m_mode(mode)
-  {
-    switch (m_mode)
-    {
-    case my_aes_128_ecb:
-    case my_aes_192_ecb:
-    case my_aes_256_ecb:
-      m_need_iv= false;
-      break;
-    default:
-      m_need_iv= true;
-      break;
-    }
-  }
-
-  bool SetKey(const unsigned char *key, uint block_size,
-              const unsigned char *iv)
-  {
-    if (m_need_iv)
-    {
-      if (!iv)
-        return TRUE;
-      cbc.SetKey(key, block_size, iv);
-    }
-    else
-      ecb.SetKey(key, block_size);
-    return false;
-  }
-
-  void Process(unsigned char *dest, const unsigned char * source,
-               uint block_size)
-  {
-    if (m_need_iv)
-      cbc.Process(dest, source, block_size);
-    else
-      ecb.Process(dest, source, block_size);
-  }
-
-  bool needs_iv() const
-  {
-    return m_need_iv;
-  }
-
-private:
-  /* we initialize the two classes to avoid dynamic allocation */
-  TaoCrypt::BlockCipher ecb;
-  TaoCrypt::BlockCipher cbc;
-  enum my_aes_opmode m_mode;
-  bool m_need_iv;
-};
-
-
-int my_aes_encrypt(const unsigned char *source, uint32 source_length,
-                   unsigned char *dest,
-                   const unsigned char *key, uint32 key_length,
-                   enum my_aes_opmode mode, const unsigned char *iv)
-{
-  MyCipherCtx enc(mode);
-
-  /* 128 bit block used for padding */
-  unsigned char block[MY_AES_BLOCK_SIZE];
-  uint num_blocks;                               /* number of complete blocks */
-  uint i;
-  /* predicted real key size */
-  const uint key_size= my_aes_opmode_key_sizes[mode] / 8;
-  /* The real key to be used for encryption */
-  unsigned char rkey[MAX_AES_KEY_LENGTH / 8];
-
-  my_aes_create_key(key, key_length, rkey, mode);
-
-  if (enc.SetKey(rkey, key_size, iv))
-    return MY_AES_BAD_DATA;
-
-  num_blocks= source_length / MY_AES_BLOCK_SIZE;
-
-  /* Encode all complete blocks */
-  for (i = num_blocks; i > 0;
-       i--, source+= MY_AES_BLOCK_SIZE, dest+= MY_AES_BLOCK_SIZE)
-       enc.Process(dest, source, MY_AES_BLOCK_SIZE);
-
-  /*
-  Re-implement standard PKCS padding for the last block.
-  Pad the last incomplete data block (even if empty) with bytes
-  equal to the size of extra padding stored into that last packet.
-  This also means that there will always be one more block,
-  even if the source data size is dividable by the AES block size.
-  */
-  unsigned char pad_len=
-    MY_AES_BLOCK_SIZE - (source_length - MY_AES_BLOCK_SIZE * num_blocks);
-  memcpy(block, source, MY_AES_BLOCK_SIZE - pad_len);
-  memset(block + MY_AES_BLOCK_SIZE - pad_len, pad_len, pad_len);
-
-  enc.Process(dest, block, MY_AES_BLOCK_SIZE);
-
-  /* we've added a block */
-  num_blocks+= 1;
-
-  return (int) (MY_AES_BLOCK_SIZE * num_blocks);
-}
-
-
-int my_aes_decrypt(const unsigned char *source, uint32 source_length,
-                   unsigned char *dest,
-                   const unsigned char *key, uint32 key_length,
-                   enum my_aes_opmode mode, const unsigned char *iv)
-{
-  MyCipherCtx dec(mode);
-  /* 128 bit block used for padding */
-  uint8 block[MY_AES_BLOCK_SIZE];
-  uint32 num_blocks;                               /* Number of complete blocks */
-  int i;
-  /* predicted real key size */
-  const uint key_size= my_aes_opmode_key_sizes[mode] / 8;
-  /* The real key to be used for decryption */
-  unsigned char rkey[MAX_AES_KEY_LENGTH / 8];
-
-  my_aes_create_key(key, key_length, rkey, mode);
-  dec.SetKey(rkey, key_size, iv);
-
-  num_blocks= source_length / MY_AES_BLOCK_SIZE;
-
-  /*
-  Input size has to be a multiple of the AES block size.
-  And, due to the standard PKCS padding, at least one block long.
-  */
-  if ((source_length != num_blocks * MY_AES_BLOCK_SIZE) || num_blocks == 0)
-    return MY_AES_BAD_DATA;
-
-  /* Decode all but the last block */
-  for (i= num_blocks - 1; i > 0;
-       i--, source+= MY_AES_BLOCK_SIZE, dest+= MY_AES_BLOCK_SIZE)
-       dec.Process(dest, source, MY_AES_BLOCK_SIZE);
-
-  /* unwarp the standard PKCS padding */
-  dec.Process(block, source, MY_AES_BLOCK_SIZE);
-
-  /* Use last char in the block as size */
-  uint8 pad_len = block[MY_AES_BLOCK_SIZE - 1];
-
-  if (pad_len > MY_AES_BLOCK_SIZE)
-    return MY_AES_BAD_DATA;
-  /* We could also check whole padding but we do not really need this */
-
-  memcpy(dest, block, MY_AES_BLOCK_SIZE - pad_len);
-  return MY_AES_BLOCK_SIZE * num_blocks - pad_len;
-}
-
-/**
- Get size of buffer which will be large enough for encrypted data
-
- SYNOPSIS
-  my_aes_get_size()
- @param source_length  [in] Length of data to be encrypted
- @param mode           encryption mode
-
- @return Size of buffer required to store encrypted data
-*/
-
-int my_aes_get_size(uint32 source_length, my_aes_opmode opmode)
-{
-  return MY_AES_BLOCK_SIZE * (source_length / MY_AES_BLOCK_SIZE)
-    + MY_AES_BLOCK_SIZE;
-}
-
-
-/**
-  Return true if the AES cipher and block mode requires an IV
-
-  SYNOPSIS
-  my_aes_needs_iv()
-  @param mode           encryption mode
-
-  @retval TRUE   IV needed
-  @retval FALSE  IV not needed
-*/
-
-my_bool my_aes_needs_iv(my_aes_opmode opmode)
-{
-  MyCipherCtx enc(opmode);
-
-  return enc.needs_iv() ? TRUE : FALSE;
-}
-
diff --git a/mysql-wsrep-5.6/mysys_ssl/my_default.cc b/mysql-wsrep-5.6/mysys_ssl/my_default.cc
index 35467c15..37a04f2f 100644
--- a/mysql-wsrep-5.6/mysys_ssl/my_default.cc
+++ b/mysql-wsrep-5.6/mysys_ssl/my_default.cc
@@ -1,13 +1,25 @@
 /* Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys_ssl/my_default_priv.h b/mysql-wsrep-5.6/mysys_ssl/my_default_priv.h
index 9c55d477..a92bd868 100644
--- a/mysql-wsrep-5.6/mysys_ssl/my_default_priv.h
+++ b/mysql-wsrep-5.6/mysys_ssl/my_default_priv.h
@@ -1,13 +1,25 @@
 /* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
 
   This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
+  it under the terms of the GNU General Public License, version 2.0,
+  as published by the Free Software Foundation.
+
+  This program is also distributed with certain software (including
+  but not limited to OpenSSL) that is licensed under separate terms,
+  as designated in a particular file or component or in included license
+  documentation.  The authors of MySQL hereby grant you an additional
+  permission to link the program and your derivative works with the
+  separately licensed software that they have included with MySQL.
+
+  Without limiting anything contained in the foregoing, this file,
+  which is part of C Driver for MySQL (Connector/C), is also subject to the
+  Universal FOSS Exception, version 1.0, a copy of which can be found at
+  http://oss.oracle.com/licenses/universal-foss-exception.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+  GNU General Public License, version 2.0, for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software Foundation,
diff --git a/mysql-wsrep-5.6/mysys_ssl/my_getopt.cc b/mysql-wsrep-5.6/mysys_ssl/my_getopt.cc
index 5ef6213d..05e2c5be 100644
--- a/mysql-wsrep-5.6/mysys_ssl/my_getopt.cc
+++ b/mysql-wsrep-5.6/mysys_ssl/my_getopt.cc
@@ -1,13 +1,25 @@
 /* Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software Foundation,
diff --git a/mysql-wsrep-5.6/mysys_ssl/my_md5.cc b/mysql-wsrep-5.6/mysys_ssl/my_md5.cc
index 1ef0b421..120db641 100644
--- a/mysql-wsrep-5.6/mysys_ssl/my_md5.cc
+++ b/mysql-wsrep-5.6/mysys_ssl/my_md5.cc
@@ -1,13 +1,25 @@
-/* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software Foundation,
@@ -18,25 +30,13 @@
   @file
 
   @brief
-  Wrapper functions for OpenSSL and YaSSL. Also provides a Compatibility layer
-  to make available YaSSL's MD5 implementation.
+  Wrapper functions for OpenSSL.
 */
 
 #include 
 #include 
 
-#if defined(HAVE_YASSL)
-#include "my_config.h"
-#include "md5.hpp"
-
-static void my_md5_hash(char *digest, const char *buf, int len)
-{
-  TaoCrypt::MD5 hasher;
-  hasher.Update((TaoCrypt::byte *) buf, len);
-  hasher.Final((TaoCrypt::byte *) digest);
-}
-
-#elif defined(HAVE_OPENSSL)
+#if defined(HAVE_OPENSSL)
 #include 
 
 static void my_md5_hash(unsigned char* digest, unsigned const char *buf, int len)
@@ -47,7 +47,7 @@ static void my_md5_hash(unsigned char* digest, unsigned const char *buf, int len
   MD5_Final (digest, &ctx);
 }
 
-#endif /* HAVE_YASSL */
+#endif /* HAVE_OPENSSL */
 
 /**
     Wrapper function to compute MD5 message digest.
@@ -60,11 +60,9 @@ static void my_md5_hash(unsigned char* digest, unsigned const char *buf, int len
 */
 void compute_md5_hash(char *digest, const char *buf, int len)
 {
-#if defined(HAVE_YASSL)
-  my_md5_hash(digest, buf, len);
-#elif defined(HAVE_OPENSSL)
+#if defined(HAVE_OPENSSL)
   my_md5_hash((unsigned char*)digest, (unsigned const char*)buf, len);
-#endif /* HAVE_YASSL */
+#endif /* HAVE_OPENSSL */
 }
 #ifdef WITH_WSREP
 void *wsrep_md5_init()
diff --git a/mysql-wsrep-5.6/mysys_ssl/my_murmur3.cc b/mysql-wsrep-5.6/mysys_ssl/my_murmur3.cc
index 82dccb61..eb2e2951 100644
--- a/mysql-wsrep-5.6/mysys_ssl/my_murmur3.cc
+++ b/mysql-wsrep-5.6/mysys_ssl/my_murmur3.cc
@@ -1,13 +1,25 @@
 /* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
diff --git a/mysql-wsrep-5.6/mysys_ssl/my_rnd.cc b/mysql-wsrep-5.6/mysys_ssl/my_rnd.cc
index 19fd37ed..587ef6ab 100644
--- a/mysql-wsrep-5.6/mysys_ssl/my_rnd.cc
+++ b/mysql-wsrep-5.6/mysys_ssl/my_rnd.cc
@@ -1,14 +1,26 @@
 /*
-   Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
+   Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
@@ -16,22 +28,14 @@
 
 #include 
 
-#if defined(HAVE_YASSL)
-
-#if defined(YASSL_PREFIX)
-#define RAND_bytes yaRAND_bytes
-#endif /* YASSL_PREFIX */
-
-#include 
-
-#elif defined(HAVE_OPENSSL)
+#if defined(HAVE_OPENSSL)
 #include 
 #include 
-#endif /* HAVE_YASSL */
+#endif /* HAVE_OPENSSL */
 
 
 /*
-  A wrapper to use OpenSSL/yaSSL PRNGs.
+  A wrapper to use OpenSSL PRNGs.
 */
 
 #ifdef __cplusplus
@@ -68,12 +72,7 @@ int
 my_rand_buffer(unsigned char *buffer, size_t buffer_size)
 {
   int rc;
-#if defined(HAVE_YASSL) /* YaSSL */
-  rc= yaSSL::RAND_bytes(buffer, buffer_size);
-
-  if (!rc)
-    return 1;
-#elif defined(HAVE_OPENSSL)
+#if defined(HAVE_OPENSSL)
   rc= RAND_bytes(buffer, buffer_size);
 
   if (!rc)
@@ -89,7 +88,7 @@ my_rand_buffer(unsigned char *buffer, size_t buffer_size)
 
 
 /**
-  Generate a random number using the OpenSSL/yaSSL supplied
+  Generate a random number using the OpenSSL supplied
   random number generator if available.
 
   @param rand_st [INOUT] Structure used for number generation
diff --git a/mysql-wsrep-5.6/mysys_ssl/my_sha1.cc b/mysql-wsrep-5.6/mysys_ssl/my_sha1.cc
index 1c4bf7c9..ddcd7321 100644
--- a/mysql-wsrep-5.6/mysys_ssl/my_sha1.cc
+++ b/mysql-wsrep-5.6/mysys_ssl/my_sha1.cc
@@ -1,13 +1,25 @@
-/* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
+   it under the terms of the GNU General Public License, version 2.0,
+   as published by the Free Software Foundation.
+
+   This program is also distributed with certain software (including
+   but not limited to OpenSSL) that is licensed under separate terms,
+   as designated in a particular file or component or in included license
+   documentation.  The authors of MySQL hereby grant you an additional
+   permission to link the program and your derivative works with the
+   separately licensed software that they have included with MySQL.
+
+   Without limiting anything contained in the foregoing, this file,
+   which is part of C Driver for MySQL (Connector/C), is also subject to the
+   Universal FOSS Exception, version 1.0, a copy of which can be found at
+   http://oss.oracle.com/licenses/universal-foss-exception.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU General Public License, version 2.0, for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software Foundation,
@@ -18,54 +30,13 @@
   @file
 
   @brief
-  Wrapper functions for OpenSSL, YaSSL implementations. Also provides a
-  Compatibility layer to make available YaSSL's SHA1 implementation.
+  Wrapper functions for OpenSSL implementations.
 */
 
 #include 
 #include 
 
-#if defined(HAVE_YASSL)
-#include "sha.hpp"
-
-/**
-  Compute SHA1 message digest using YaSSL.
-
-  @param digest [out]  Computed SHA1 digest
-  @param buf    [in]   Message to be computed
-  @param len    [in]   Length of the message
-
-  @return              void
-*/
-void mysql_sha1_yassl(uint8 *digest, const char *buf, int len)
-{
-  TaoCrypt::SHA hasher;
-  hasher.Update((const TaoCrypt::byte *) buf, len);
-  hasher.Final ((TaoCrypt::byte *) digest);
-}
-
-/**
-  Compute SHA1 message digest for two messages in order to
-  emulate sha1(msg1, msg2) using YaSSL.
-
-  @param digest [out]  Computed SHA1 digest
-  @param buf1   [in]   First message
-  @param len1   [in]   Length of first message
-  @param buf2   [in]   Second message
-  @param len2   [in]   Length of second message
-
-  @return              void
-*/
-void mysql_sha1_multi_yassl(uint8 *digest, const char *buf1, int len1,
-                            const char *buf2, int len2)
-{
-  TaoCrypt::SHA hasher;
-  hasher.Update((const TaoCrypt::byte *) buf1, len1);
-  hasher.Update((const TaoCrypt::byte *) buf2, len2);
-  hasher.Final((TaoCrypt::byte *) digest);
-}
-
-#elif defined(HAVE_OPENSSL)
+#if defined(HAVE_OPENSSL)
 #include 
 
 int mysql_sha1_reset(SHA_CTX *context)
@@ -87,7 +58,7 @@ int mysql_sha1_result(SHA_CTX *context,
     return SHA1_Final(Message_Digest, context);
 }
 
-#endif /* HAVE_YASSL */
+#endif /* HAVE_OPENSSL */
 
 /**
   Wrapper function to compute SHA1 message digest.
@@ -100,15 +71,13 @@ int mysql_sha1_result(SHA_CTX *context,
 */
 void compute_sha1_hash(uint8 *digest, const char *buf, int len)
 {
-#if defined(HAVE_YASSL)
-  mysql_sha1_yassl(digest, buf, len);
-#elif defined(HAVE_OPENSSL)
+#if defined(HAVE_OPENSSL)
   SHA_CTX sha1_context;
 
   mysql_sha1_reset(&sha1_context);
   mysql_sha1_input(&sha1_context, (const uint8 *) buf, len);
   mysql_sha1_result(&sha1_context, digest);
-#endif /* HAVE_YASSL */
+#endif /* HAVE_OPENSSL */
 }
 
 
@@ -127,15 +96,13 @@ void compute_sha1_hash(uint8 *digest, const char *buf, int len)
 void compute_sha1_hash_multi(uint8 *digest, const char *buf1, int len1,
                              const char *buf2, int len2)
 {
-#if defined(HAVE_YASSL)
-  mysql_sha1_multi_yassl(digest, buf1, len1, buf2, len2);
-#elif defined(HAVE_OPENSSL)
+#if defined(HAVE_OPENSSL)
   SHA_CTX sha1_context;
 
   mysql_sha1_reset(&sha1_context);
   mysql_sha1_input(&sha1_context, (const uint8 *) buf1, len1);
   mysql_sha1_input(&sha1_context, (const uint8 *) buf2, len2);
   mysql_sha1_result(&sha1_context, digest);
-#endif /* HAVE_YASSL */
+#endif /* HAVE_OPENSSL */
 }
 
diff --git a/mysql-wsrep-5.6/mysys_ssl/my_sha2.cc b/mysql-wsrep-5.6/mysys_ssl/my_sha2.cc
deleted file mode 100644
index 00200337..00000000
--- a/mysql-wsrep-5.6/mysys_ssl/my_sha2.cc
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; version 2 of the License.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
-
-
-/**
-  @file
-  A compatibility layer to our built-in SSL implementation, to mimic the
-  oft-used external library, OpenSSL.
-*/
-
-#include 
-#include 
-
-#ifdef HAVE_YASSL
-
-/*
-  If TaoCrypt::SHA512 or ::SHA384 are not defined (but ::SHA256 is), it's
-  probably that neither of config.h's SIZEOF_LONG or SIZEOF_LONG_LONG are
-  64 bits long.  At present, both OpenSSL and YaSSL require 64-bit integers
-  for SHA-512.  (The SIZEOF_* definitions come from autoconf's config.h .)
-*/
-
-#  define GEN_YASSL_SHA2_BRIDGE(size) \
-unsigned char* SHA##size(const unsigned char *input_ptr, size_t input_length, \
-               char unsigned *output_ptr) {                         \
-  TaoCrypt::SHA##size hasher;                                       \
-                                                                    \
-  hasher.Update(input_ptr, input_length);                           \
-  hasher.Final(output_ptr);                                         \
-  return(output_ptr);                                               \
-}
-
-
-/**
-  @fn SHA512
-  @fn SHA384
-  @fn SHA256
-  @fn SHA224
-
-  Instantiate an hash object, fill in the cleartext value, compute the digest,
-  and extract the result from the object.
-  
-  (Generate the functions.  See similar .h code for the prototypes.)
-*/
-#  ifndef OPENSSL_NO_SHA512
-GEN_YASSL_SHA2_BRIDGE(512);
-GEN_YASSL_SHA2_BRIDGE(384);
-#  else
-#    warning Some SHA2 functionality is missing.  See OPENSSL_NO_SHA512.
-#  endif
-GEN_YASSL_SHA2_BRIDGE(256);
-GEN_YASSL_SHA2_BRIDGE(224);
-
-#  undef GEN_YASSL_SHA2_BRIDGE
-
-#endif /* HAVE_YASSL */
diff --git a/mysql-wsrep-5.6/packaging/WiX/CMakeLists.txt b/mysql-wsrep-5.6/packaging/WiX/CMakeLists.txt
index e2bf5919..38d1561b 100644
--- a/mysql-wsrep-5.6/packaging/WiX/CMakeLists.txt
+++ b/mysql-wsrep-5.6/packaging/WiX/CMakeLists.txt
@@ -1,14 +1,21 @@
-# Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2020, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
@@ -19,19 +26,14 @@ ENDIF()
 
 FIND_PATH(WIX_DIR heat.exe
    $ENV{WIX_DIR}/bin
+   $ENV{WIX_DIR}
    $ENV{ProgramFiles}/wix/bin
-  "$ENV{ProgramFiles}/Windows Installer XML v3/bin"
-  "$ENV{ProgramFiles}/Windows Installer XML v3.5/bin"
-  "$ENV{ProgramFiles}/WiX Toolset V3.6/bin"
-  "$ENV{ProgramFiles}/WiX Toolset V3.8/bin"
+   "$ENV{ProgramFiles}/WiX Toolset V3.8/bin"
+   "$ENV{ProgramFiles}/WiX Toolset V3.8"
+   "$ENV{ProgramFiles}/WiX Toolset V3.10/bin"
+   "$ENV{ProgramFiles}/WiX Toolset V3.10"
 )
 
-IF(NOT WIX_DIR)
-  FIND_PATH(WIX_DIR heat.exe
-    "$ENV{ProgramFiles}/WiX Toolset V3.10/bin"
-  )
-ENDIF()
-
 IF(NOT WIX_DIR)
   IF(NOT _WIX_DIR_CHECKED)
     SET(_WIX_DIR_CHECKED 1 CACHE INTERNAL "")
@@ -81,22 +83,18 @@ FIND_PROGRAM(CANDLE_EXECUTABLE candle ${WIX_DIR})
 FIND_PROGRAM(LIGHT_EXECUTABLE light ${WIX_DIR})
 
 # WiX wants the license text as rtf; if there is no rtf license, 
-# we create a fake one from the plain text COPYING file.
-IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/COPYING.rtf")
- SET(COPYING_RTF "${CMAKE_CURRENT_SOURCE_DIR}/COPYING.rtf")
+# we create a fake one from the plain text LICENSE file.
+IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.rtf")
+ SET(LICENSE_RTF "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.rtf")
 ELSE()
-  IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../../LICENSE.mysql")
-    SET(LICENSE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/../../LICENSE.mysql")
-  ELSE()
-    SET(LICENSE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/../../COPYING")
-  ENDIF()
+  SET(LICENSE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/../../LICENSE")
   FILE(READ ${LICENSE_FILE} CONTENTS)
   STRING(REGEX REPLACE "\n" "\\\\par\n" CONTENTS "${CONTENTS}")
   STRING(REGEX REPLACE "\t" "\\\\tab" CONTENTS "${CONTENTS}")
-  FILE(WRITE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.rtf" "{\\rtf1\\ansi\\deff0{\\fonttbl{\\f0\\fnil\\fcharset0 Courier New;}}\\viewkind4\\uc1\\pard\\lang1031\\f0\\fs15")
-  FILE(APPEND "${CMAKE_CURRENT_BINARY_DIR}/COPYING.rtf" "${CONTENTS}")
-  FILE(APPEND "${CMAKE_CURRENT_BINARY_DIR}/COPYING.rtf" "\n}\n")
-  SET(COPYING_RTF "${CMAKE_CURRENT_BINARY_DIR}/COPYING.rtf")
+  FILE(WRITE "${CMAKE_CURRENT_BINARY_DIR}/LICENSE.rtf" "{\\rtf1\\ansi\\deff0{\\fonttbl{\\f0\\fnil\\fcharset0 Courier New;}}\\viewkind4\\uc1\\pard\\lang1031\\f0\\fs15")
+  FILE(APPEND "${CMAKE_CURRENT_BINARY_DIR}/LICENSE.rtf" "${CONTENTS}")
+  FILE(APPEND "${CMAKE_CURRENT_BINARY_DIR}/LICENSE.rtf" "\n}\n")
+  SET(LICENSE_RTF "${CMAKE_CURRENT_BINARY_DIR}/LICENSE.rtf")
 ENDIF()
 SET(CPACK_WIX_CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/CPackWixConfig.cmake)
 SET(CPACK_WIX_INCLUDE "${CMAKE_CURRENT_BINARY_DIR}/mysql_server_extra.wxs;${CMAKE_CURRENT_SOURCE_DIR}/custom_ui.wxs")
diff --git a/mysql-wsrep-5.6/packaging/WiX/CPackWixConfig.cmake b/mysql-wsrep-5.6/packaging/WiX/CPackWixConfig.cmake
index d6ae5e0b..ce04ca60 100644
--- a/mysql-wsrep-5.6/packaging/WiX/CPackWixConfig.cmake
+++ b/mysql-wsrep-5.6/packaging/WiX/CPackWixConfig.cmake
@@ -1,14 +1,21 @@
 # Copyright (c) 2010, 2019, Oracle and/or its affiliates. All rights reserved.
 # 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
diff --git a/mysql-wsrep-5.6/packaging/WiX/create_msi.cmake.in b/mysql-wsrep-5.6/packaging/WiX/create_msi.cmake.in
index 72914ae6..83da580e 100644
--- a/mysql-wsrep-5.6/packaging/WiX/create_msi.cmake.in
+++ b/mysql-wsrep-5.6/packaging/WiX/create_msi.cmake.in
@@ -1,14 +1,21 @@
-# Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
-# 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# Copyright (c) 2010, 2019, Oracle and/or its affiliates. All rights reserved.
 # 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License, version 2.0,
+# as published by the Free Software Foundation.
+#
+# This program is also distributed with certain software (including
+# but not limited to OpenSSL) that is licensed under separate terms,
+# as designated in a particular file or component or in included license
+# documentation.  The authors of MySQL hereby grant you an additional
+# permission to link the program and your derivative works with the
+# separately licensed software that they have included with MySQL.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License, version 2.0, for more details.
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
@@ -26,7 +33,7 @@ SET(MINOR_VERSION "@MINOR_VERSION@")
 SET(PATCH_VERSION "@PATCH_VERSION@")
 SET(CMAKE_SIZEOF_VOID_P @CMAKE_SIZEOF_VOID_P@)
 SET(MANUFACTURER "@MANUFACTURER@")
-SET(COPYING_RTF "@COPYING_RTF@")
+SET(LICENSE_RTF "@LICENSE_RTF@")
 SET(CPACK_WIX_CONFIG "@CPACK_WIX_CONFIG@")
 SET(CPACK_WIX_INCLUDE "@CPACK_WIX_INCLUDE@")
 
diff --git a/mysql-wsrep-5.6/packaging/WiX/custom_ui.wxs b/mysql-wsrep-5.6/packaging/WiX/custom_ui.wxs
index 25265d7d..2d6932b9 100644
--- a/mysql-wsrep-5.6/packaging/WiX/custom_ui.wxs
+++ b/mysql-wsrep-5.6/packaging/WiX/custom_ui.wxs
@@ -2,17 +2,24 @@
          xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
 
 
@@ -200,7 +207,7 @@
     
     
+      Value="@LICENSE_RTF@"/>
 
     
     
diff --git a/mysql-wsrep-5.6/packaging/WiX/mysql_server_extra.wxs.in b/mysql-wsrep-5.6/packaging/WiX/mysql_server_extra.wxs.in
index 8730521a..9ea8fafe 100644
--- a/mysql-wsrep-5.6/packaging/WiX/mysql_server_extra.wxs.in
+++ b/mysql-wsrep-5.6/packaging/WiX/mysql_server_extra.wxs.in
@@ -4,15 +4,22 @@