From 417c3b9e774c38e34b30773a69bb46516df3566b Mon Sep 17 00:00:00 2001 From: John Wellbelove Date: Fri, 13 Aug 2021 16:32:43 +0100 Subject: [PATCH] Expanded compiled variants for scripts --- .github/workflows/clang.yml | 8 +- .github/workflows/gcc.yml | 4 +- .github/workflows/vs2019.yml | 4 +- .gitignore | 1 + include/etl/bip_buffer_spsc_atomic.h | 4 +- include/etl/fsm.h | 20 +- include/etl/generators/fsm_generator.h | 16 +- .../etl/generators/message_router_generator.h | 59 + include/etl/message_router.h | 267 + support/Release notes.txt | 6 +- test/CMakeLists.txt | 5 + test/codeblocks/.gitignore | 5 - test/codeblocks/ETL.cbp | 670 - test/codeblocks/ETLcpp03.cbp | 338 - test/codeblocks/random.csv | 16384 ---------------- test/runsanitychecks.sh | 143 +- test/runtests.sh | 52 +- test/sanity-check/c++03/CMakeLists.txt | 5 + test/sanity-check/c++03/etl_profile.h | 23 + test/sanity-check/c++11/CMakeLists.txt | 5 + test/sanity-check/c++11/etl_profile.h | 23 + test/sanity-check/c++14/CMakeLists.txt | 5 + test/sanity-check/c++14/etl_profile.h | 23 + test/sanity-check/c++17/CMakeLists.txt | 5 + test/sanity-check/c++17/etl_profile.h | 23 + test/test_message_router.cpp | 3 +- test/vs2019/etl.sln | 54 +- test/vs2019/etl.vcxproj | 5222 ++--- 28 files changed, 3420 insertions(+), 19957 deletions(-) delete mode 100644 test/codeblocks/.gitignore delete mode 100644 test/codeblocks/ETL.cbp delete mode 100644 test/codeblocks/ETLcpp03.cbp delete mode 100644 test/codeblocks/random.csv diff --git a/.github/workflows/clang.yml b/.github/workflows/clang.yml index 013c6e36..ccb83d49 100644 --- a/.github/workflows/clang.yml +++ b/.github/workflows/clang.yml @@ -22,7 +22,7 @@ jobs: sudo apt-get install -y "clang-9" "lldb-9" "lld-9" "clang-format-9" export CC=clang-9 export CXX=clang++-9 - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF ./ + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF ./ clang --version make @@ -41,7 +41,7 @@ jobs: - name: Build run: | - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF ./ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF ./ gcc --version make @@ -62,7 +62,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF ./ + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF ./ clang --version make @@ -83,7 +83,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF ./ + cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF ./ clang --version make diff --git a/.github/workflows/gcc.yml b/.github/workflows/gcc.yml index ceb234f1..33732a6f 100644 --- a/.github/workflows/gcc.yml +++ b/.github/workflows/gcc.yml @@ -18,7 +18,7 @@ jobs: - name: Build run: | - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF ./ + cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF ./ gcc --version make @@ -37,7 +37,7 @@ jobs: - name: Build run: | - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF ./ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF ./ gcc --version make diff --git a/.github/workflows/vs2019.yml b/.github/workflows/vs2019.yml index 30c3b9ad..67088ccd 100644 --- a/.github/workflows/vs2019.yml +++ b/.github/workflows/vs2019.yml @@ -21,7 +21,7 @@ jobs: - name: Build run: | - cmake -G "Visual Studio 16 2019" -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF ./ + cmake -G "Visual Studio 16 2019" -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF ./ MSBuild.exe -version MSBuild.exe etl.sln @@ -43,7 +43,7 @@ jobs: - name: Build run: | - cmake -G "Visual Studio 16 2019" -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF ./ + cmake -G "Visual Studio 16 2019" -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF ./ MSBuild.exe -version MSBuild.exe etl.sln diff --git a/.gitignore b/.gitignore index 3797ca0d..86910334 100644 --- a/.gitignore +++ b/.gitignore @@ -322,3 +322,4 @@ test/vs2019/cmake-build test/vs2019/Debug MSVC - No STL - Built-ins test/vs2019/Test1 test/vs2019/Test2 +test/vs2019/Debug MSVC - Force C++03 diff --git a/include/etl/bip_buffer_spsc_atomic.h b/include/etl/bip_buffer_spsc_atomic.h index d6426868..ed47b7cc 100644 --- a/include/etl/bip_buffer_spsc_atomic.h +++ b/include/etl/bip_buffer_spsc_atomic.h @@ -500,9 +500,7 @@ namespace etl /// Default constructor. //************************************************************************* bip_buffer_spsc_atomic() - : buffer() - , base_t(reinterpret_cast(&buffer[0]), RESERVED_SIZE) - + : base_t(reinterpret_cast(&buffer[0]), RESERVED_SIZE) { } diff --git a/include/etl/fsm.h b/include/etl/fsm.h index df724384..96b08650 100644 --- a/include/etl/fsm.h +++ b/include/etl/fsm.h @@ -491,8 +491,10 @@ namespace etl etl::fsm_state_id_t number_of_states; ///< The number of states. }; +//************************************************************************************************* +// For C++17 and above. +//************************************************************************************************* #if ETL_CPP17_SUPPORTED && !defined(ETL_FSM_FORCE_CPP03) // For C++17 and above - //*************************************************************************** // The definition for all types. //*************************************************************************** @@ -563,17 +565,18 @@ namespace etl } } }; - -#else // For C++03, C++11 & C++14 - +#else +//************************************************************************************************* +// For C++14 and below. +//************************************************************************************************* //*************************************************************************** // The definition for all 16 message types. //*************************************************************************** template + typename T1 = void, typename T2 = void, typename T3 = void, typename T4 = void, + typename T5 = void, typename T6 = void, typename T7 = void, typename T8 = void, + typename T9 = void, typename T10 = void, typename T11 = void, typename T12 = void, + typename T13 = void, typename T14 = void, typename T15 = void, typename T16 = void> class fsm_state : public ifsm_state { public: @@ -1497,7 +1500,6 @@ namespace etl return p_parent ? p_parent->process_event(message) : static_cast(this)->on_event_unknown(message); } }; - #endif } diff --git a/include/etl/generators/fsm_generator.h b/include/etl/generators/fsm_generator.h index 131e8018..fb748c63 100644 --- a/include/etl/generators/fsm_generator.h +++ b/include/etl/generators/fsm_generator.h @@ -517,8 +517,10 @@ namespace etl etl::fsm_state_id_t number_of_states; ///< The number of states. }; +//************************************************************************************************* +// For C++17 and above. +//************************************************************************************************* #if ETL_CPP17_SUPPORTED && !defined(ETL_FSM_FORCE_CPP03) // For C++17 and above - //*************************************************************************** // The definition for all types. //*************************************************************************** @@ -589,9 +591,10 @@ namespace etl } } }; - -#else // For C++03, C++11 & C++14 - +#else +//************************************************************************************************* +// For C++14 and below. +//************************************************************************************************* /*[[[cog import cog ################################################ @@ -603,11 +606,11 @@ namespace etl cog.outl("template " % Handlers) + cog.outl("typename T%s = void>" % Handlers) cog.outl("class fsm_state : public ifsm_state") cog.outl("{") cog.outl("public:") @@ -778,7 +781,6 @@ namespace etl cog.outl("};") ]]]*/ /*[[[end]]]*/ - #endif } diff --git a/include/etl/generators/message_router_generator.h b/include/etl/generators/message_router_generator.h index 082ce2eb..d0658c34 100644 --- a/include/etl/generators/message_router_generator.h +++ b/include/etl/generators/message_router_generator.h @@ -77,6 +77,7 @@ cog.outl("//******************************************************************** #include "nullptr.h" #include "placement_new.h" #include "successor.h" +#include "type_traits.h" namespace etl { @@ -307,6 +308,9 @@ namespace etl destination.receive(message); } +//************************************************************************************************* +// For C++17 and above. +//************************************************************************************************* #if ETL_CPP17_SUPPORTED && !defined(ETL_MESSAGE_ROUTER_FORCE_CPP03) //*************************************************************************** // The definition for all message types. @@ -352,6 +356,19 @@ namespace etl } } + template ::value, int>::type = 0> + void receive(const TMessage& msg) + { + if constexpr (etl::is_one_of::value) + { + static_cast(this)->on_receive(static_cast(msg)); + } + else + { + static_cast(this)->on_receive_unknown(msg); + } + } + //********************************************** using imessage_router::accepts; @@ -410,6 +427,9 @@ namespace etl } }; #else +//************************************************************************************************* +// For C++14 and below. +//************************************************************************************************* /*[[[cog import cog ################################################ @@ -479,6 +499,25 @@ namespace etl cog.outl(" }") cog.outl(" }") cog.outl("") + cog.outl(" template ") + cog.outl(" void receive(const TMessage& msg, typename etl::enable_if::value, int>::type = 0)") + cog.outl(" {") + cog.out(" if ETL_IF_CONSTEXPR (etl::is_one_of::value)" % int(Handlers)) + cog.outl(" {") + cog.outl(" static_cast(this)->on_receive(static_cast(msg));") + cog.outl(" }") + cog.outl(" else") + cog.outl(" {") + cog.outl(" static_cast(this)->on_receive_unknown(msg);") + cog.outl(" }") + cog.outl(" }") + cog.outl("") cog.outl(" //**********************************************") cog.outl(" using imessage_router::accepts;") cog.outl("") @@ -599,6 +638,26 @@ namespace etl cog.outl(" }") cog.outl(" }") cog.outl("") + cog.outl(" template ") + cog.outl(" void receive(const TMessage& msg, typename etl::enable_if::value, int>::type = 0)") + cog.outl(" {") + cog.out(" if ETL_IF_CONSTEXPR (etl::is_one_of::value)" % n) + cog.outl(" {") + cog.outl(" static_cast(this)->on_receive(static_cast(msg));") + cog.outl(" }") + cog.outl(" else") + cog.outl(" {") + cog.outl(" static_cast(this)->on_receive_unknown(msg);") + cog.outl(" }") + cog.outl(" }") + cog.outl("") + cog.outl("") cog.outl(" //**********************************************") cog.outl(" using imessage_router::accepts;") cog.outl("") diff --git a/include/etl/message_router.h b/include/etl/message_router.h index 03b12b8f..59022915 100644 --- a/include/etl/message_router.h +++ b/include/etl/message_router.h @@ -65,6 +65,7 @@ SOFTWARE. #include "nullptr.h" #include "placement_new.h" #include "successor.h" +#include "type_traits.h" namespace etl { @@ -295,6 +296,9 @@ namespace etl destination.receive(message); } +//************************************************************************************************* +// For C++17 and above. +//************************************************************************************************* #if ETL_CPP17_SUPPORTED && !defined(ETL_MESSAGE_ROUTER_FORCE_CPP03) //*************************************************************************** // The definition for all message types. @@ -340,6 +344,19 @@ namespace etl } } + template ::value, int>::type = 0> + void receive(const TMessage& msg) + { + if constexpr (etl::is_one_of::value) + { + static_cast(this)->on_receive(static_cast(msg)); + } + else + { + static_cast(this)->on_receive_unknown(msg); + } + } + //********************************************** using imessage_router::accepts; @@ -398,6 +415,9 @@ namespace etl } }; #else +//************************************************************************************************* +// For C++14 and below. +//************************************************************************************************* //*************************************************************************** // The definition for all 16 message types. //*************************************************************************** @@ -466,6 +486,22 @@ namespace etl } } + template + void receive(const TMessage& msg, typename etl::enable_if::value, int>::type = 0) + { + if ETL_IF_CONSTEXPR (etl::is_one_of::value) + { + static_cast(this)->on_receive(static_cast(msg)); + } + else + { + static_cast(this)->on_receive_unknown(msg); + } + } + //********************************************** using imessage_router::accepts; @@ -568,6 +604,23 @@ namespace etl } } + template + void receive(const TMessage& msg, typename etl::enable_if::value, int>::type = 0) + { + if ETL_IF_CONSTEXPR (etl::is_one_of::value) + { + static_cast(this)->on_receive(static_cast(msg)); + } + else + { + static_cast(this)->on_receive_unknown(msg); + } + } + + //********************************************** using imessage_router::accepts; @@ -669,6 +722,23 @@ namespace etl } } + template + void receive(const TMessage& msg, typename etl::enable_if::value, int>::type = 0) + { + if ETL_IF_CONSTEXPR (etl::is_one_of::value) + { + static_cast(this)->on_receive(static_cast(msg)); + } + else + { + static_cast(this)->on_receive_unknown(msg); + } + } + + //********************************************** using imessage_router::accepts; @@ -769,6 +839,23 @@ namespace etl } } + template + void receive(const TMessage& msg, typename etl::enable_if::value, int>::type = 0) + { + if ETL_IF_CONSTEXPR (etl::is_one_of::value) + { + static_cast(this)->on_receive(static_cast(msg)); + } + else + { + static_cast(this)->on_receive_unknown(msg); + } + } + + //********************************************** using imessage_router::accepts; @@ -867,6 +954,22 @@ namespace etl } } + template + void receive(const TMessage& msg, typename etl::enable_if::value, int>::type = 0) + { + if ETL_IF_CONSTEXPR (etl::is_one_of::value) + { + static_cast(this)->on_receive(static_cast(msg)); + } + else + { + static_cast(this)->on_receive_unknown(msg); + } + } + + //********************************************** using imessage_router::accepts; @@ -964,6 +1067,22 @@ namespace etl } } + template + void receive(const TMessage& msg, typename etl::enable_if::value, int>::type = 0) + { + if ETL_IF_CONSTEXPR (etl::is_one_of::value) + { + static_cast(this)->on_receive(static_cast(msg)); + } + else + { + static_cast(this)->on_receive_unknown(msg); + } + } + + //********************************************** using imessage_router::accepts; @@ -1060,6 +1179,22 @@ namespace etl } } + template + void receive(const TMessage& msg, typename etl::enable_if::value, int>::type = 0) + { + if ETL_IF_CONSTEXPR (etl::is_one_of::value) + { + static_cast(this)->on_receive(static_cast(msg)); + } + else + { + static_cast(this)->on_receive_unknown(msg); + } + } + + //********************************************** using imessage_router::accepts; @@ -1155,6 +1290,22 @@ namespace etl } } + template + void receive(const TMessage& msg, typename etl::enable_if::value, int>::type = 0) + { + if ETL_IF_CONSTEXPR (etl::is_one_of::value) + { + static_cast(this)->on_receive(static_cast(msg)); + } + else + { + static_cast(this)->on_receive_unknown(msg); + } + } + + //********************************************** using imessage_router::accepts; @@ -1248,6 +1399,21 @@ namespace etl } } + template + void receive(const TMessage& msg, typename etl::enable_if::value, int>::type = 0) + { + if ETL_IF_CONSTEXPR (etl::is_one_of::value) + { + static_cast(this)->on_receive(static_cast(msg)); + } + else + { + static_cast(this)->on_receive_unknown(msg); + } + } + + //********************************************** using imessage_router::accepts; @@ -1340,6 +1506,21 @@ namespace etl } } + template + void receive(const TMessage& msg, typename etl::enable_if::value, int>::type = 0) + { + if ETL_IF_CONSTEXPR (etl::is_one_of::value) + { + static_cast(this)->on_receive(static_cast(msg)); + } + else + { + static_cast(this)->on_receive_unknown(msg); + } + } + + //********************************************** using imessage_router::accepts; @@ -1430,6 +1611,21 @@ namespace etl } } + template + void receive(const TMessage& msg, typename etl::enable_if::value, int>::type = 0) + { + if ETL_IF_CONSTEXPR (etl::is_one_of::value) + { + static_cast(this)->on_receive(static_cast(msg)); + } + else + { + static_cast(this)->on_receive_unknown(msg); + } + } + + //********************************************** using imessage_router::accepts; @@ -1519,6 +1715,21 @@ namespace etl } } + template + void receive(const TMessage& msg, typename etl::enable_if::value, int>::type = 0) + { + if ETL_IF_CONSTEXPR (etl::is_one_of::value) + { + static_cast(this)->on_receive(static_cast(msg)); + } + else + { + static_cast(this)->on_receive_unknown(msg); + } + } + + //********************************************** using imessage_router::accepts; @@ -1606,6 +1817,20 @@ namespace etl } } + template + void receive(const TMessage& msg, typename etl::enable_if::value, int>::type = 0) + { + if ETL_IF_CONSTEXPR (etl::is_one_of::value) + { + static_cast(this)->on_receive(static_cast(msg)); + } + else + { + static_cast(this)->on_receive_unknown(msg); + } + } + + //********************************************** using imessage_router::accepts; @@ -1692,6 +1917,20 @@ namespace etl } } + template + void receive(const TMessage& msg, typename etl::enable_if::value, int>::type = 0) + { + if ETL_IF_CONSTEXPR (etl::is_one_of::value) + { + static_cast(this)->on_receive(static_cast(msg)); + } + else + { + static_cast(this)->on_receive_unknown(msg); + } + } + + //********************************************** using imessage_router::accepts; @@ -1777,6 +2016,20 @@ namespace etl } } + template + void receive(const TMessage& msg, typename etl::enable_if::value, int>::type = 0) + { + if ETL_IF_CONSTEXPR (etl::is_one_of::value) + { + static_cast(this)->on_receive(static_cast(msg)); + } + else + { + static_cast(this)->on_receive_unknown(msg); + } + } + + //********************************************** using imessage_router::accepts; @@ -1861,6 +2114,20 @@ namespace etl } } + template + void receive(const TMessage& msg, typename etl::enable_if::value, int>::type = 0) + { + if ETL_IF_CONSTEXPR (etl::is_one_of::value) + { + static_cast(this)->on_receive(static_cast(msg)); + } + else + { + static_cast(this)->on_receive_unknown(msg); + } + } + + //********************************************** using imessage_router::accepts; diff --git a/support/Release notes.txt b/support/Release notes.txt index 06259d00..96da5e05 100644 --- a/support/Release notes.txt +++ b/support/Release notes.txt @@ -1,6 +1,10 @@ =============================================================================== 20.16.0 -Added C++17 variadic versions of etl::message_router ans etl::fsm +Added C++17 variadic versions of etl::message_router and etl::fsm + +=============================================================================== +20.15.1 +Fixed etl::fsm C++03 template definition that was corrupted in 20.10.0 Fixed meson.build =============================================================================== diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 022d6608..e42d70b2 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -22,6 +22,11 @@ if (ETL_USER_DEFINED_TYPE_TRAITS) add_definitions(-DETL_USER_DEFINED_TYPE_TRAITS) endif() +if (ETL_FORCE_TEST_CPP03) + message(STATUS "Compiling for C++03 tests") + add_definitions(-DETL_FORCE_TEST_CPP03) +endif() + if(NOT UnitTest++_FOUND) # Add unittest-cpp as an ExternalProject include(cmake/unit-test_external_project.cmake) diff --git a/test/codeblocks/.gitignore b/test/codeblocks/.gitignore deleted file mode 100644 index bb6d6ef9..00000000 --- a/test/codeblocks/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -random_*.csv -/ETL.depend -/ETL.layout -*.depend -*.layout diff --git a/test/codeblocks/ETL.cbp b/test/codeblocks/ETL.cbp deleted file mode 100644 index e6572c4b..00000000 --- a/test/codeblocks/ETL.cbp +++ /dev/null @@ -1,670 +0,0 @@ - - - - - - diff --git a/test/codeblocks/ETLcpp03.cbp b/test/codeblocks/ETLcpp03.cbp deleted file mode 100644 index e3806608..00000000 --- a/test/codeblocks/ETLcpp03.cbp +++ /dev/null @@ -1,338 +0,0 @@ - - - - - - diff --git a/test/codeblocks/random.csv b/test/codeblocks/random.csv deleted file mode 100644 index 54a664ee..00000000 --- a/test/codeblocks/random.csv +++ /dev/null @@ -1,16384 +0,0 @@ -18335,488 -18335,488 -47239,65462 -17951,744 -33487,53187 -30695,12296 -52647,7958 -21171,9972 -54118,31273 -46257,13778 -55259,57944 -56800,31703 -30628,20740 -35403,20159 -7368,26980 -47205,2392 -22430,7022 -36594,16677 -57927,35059 -37649,64669 -10192,14279 -11637,15438 -39058,37530 -5153,23587 -22190,5868 -3128,20276 -27682,6200 -53699,14797 -16635,39022 -22034,12 -40323,29302 -46957,53727 -21950,37140 -19888,26585 -50245,61593 -14746,38233 -31002,17966 -43220,63277 -22625,28405 -25549,64569 -43807,27194 -24588,20943 -1706,47518 -47388,38408 -51051,36104 -55066,391 -39855,20879 -21164,26722 -35347,42598 -37377,60772 -63506,27459 -62522,15371 -21295,8971 -1530,25628 -20142,13838 -58177,26380 -24286,7759 -62910,62486 -24568,15872 -16383,32756 -58255,56744 -6848,50051 -24288,49872 -56447,1138 -23644,6433 -15787,44664 -5452,93 -25231,3464 -32097,38868 -35615,50101 -46938,33479 -62052,40067 -64546,16653 -38393,5502 -63609,54185 -35197,28351 -23973,50197 -42139,13019 -16661,11430 -21483,47947 -22497,18993 -17327,41275 -63907,15716 -334,31871 -40648,32919 -63226,30087 -44343,36879 -45385,65433 -60535,1739 -64406,51913 -40897,50936 -36835,2897 -39988,39118 -2734,35945 -45531,23402 -9527,59139 -34915,34286 -6503,58485 -29027,34363 -42225,61326 -33882,56492 -61740,28068 -15741,33886 -5309,24129 -36750,64860 -1509,20985 -43022,46077 -40844,1307 -55771,33968 -31087,42950 -41924,42251 -42149,13594 -45945,18751 -50430,9748 -23480,60985 -55934,22839 -49999,57722 -53180,10602 -38410,41728 -35746,61513 -14202,37580 -3041,45681 -21284,42734 -41497,39909 -59612,14355 -21372,59214 -60633,20232 -65120,27866 -18439,17598 -47290,1439 -30312,49338 -43243,20596 -25781,29967 -33742,28731 -49041,46888 -16766,60871 -55488,11890 -39436,18728 -37593,10858 -54575,57192 -34495,63688 -22244,52455 -46446,2875 -31821,35217 -18993,40155 -35110,36713 -19930,2345 -45988,29059 -61257,44144 -15671,22141 -63150,56224 -23400,59015 -24628,48104 -42266,31396 -47267,16444 -14087,28133 -52575,26742 -25471,8496 -4913,51501 -21574,62011 -26729,51656 -43184,33818 -41765,10391 -2018,21984 -55351,19218 -23253,2653 -26703,45647 -18280,41971 -46470,31967 -31951,16806 -50384,18128 -16836,12725 -29356,46394 -54685,19101 -24230,16133 -1809,42905 -52054,56243 -20853,16104 -17169,33 -63945,33302 -18701,16957 -62064,50545 -59325,19456 -16177,30045 -32110,12703 -33096,6528 -6081,55384 -6786,390 -7559,564 -3527,14454 -7399,47566 -35480,1193 -9858,59821 -42663,61092 -55892,23027 -49183,2558 -29845,46928 -36000,29501 -44053,40610 -4707,35307 -35706,1923 -3110,57204 -34670,39678 -41943,56645 -12016,16749 -22660,44493 -1325,10786 -22388,38482 -63595,49859 -12780,12694 -38757,19800 -7693,40312 -8997,44475 -56924,34348 -35667,64359 -49903,8896 -13607,62322 -20173,26778 -26051,892 -9079,40385 -57746,800 -40733,3817 -31394,30950 -3123,18611 -8910,27003 -65294,10744 -32564,52835 -16665,43230 -30346,41237 -12277,29093 -22109,24522 -56662,33291 -16275,13508 -24361,32900 -8287,13867 -9313,34500 -22769,12819 -7036,48483 -27730,50948 -16075,40622 -24776,33422 -58042,2453 -11906,56100 -59465,18614 -30001,35260 -10954,54467 -11309,17009 -15859,61466 -45654,32635 -56993,64044 -64300,22592 -36331,5025 -35791,53631 -29,7464 -61349,50420 -12178,30396 -46419,54583 -27926,64443 -53724,48058 -26591,17754 -29221,6572 -33645,5989 -20302,12466 -55450,58639 -56555,32528 -29552,59456 -28437,37684 -25555,35669 -18670,31436 -33229,41900 -40328,34368 -27966,44678 -29571,62537 -27924,61651 -40540,9370 -59992,34459 -64092,2975 -10140,32259 -26083,37866 -22097,13528 -19564,35029 -21448,41303 -36057,43922 -47454,41482 -58878,56296 -37131,24732 -29133,60954 -9245,42570 -48329,34537 -19322,47111 -20037,33393 -6772,39660 -65008,63276 -20300,46449 -53096,23275 -30061,19422 -50171,51029 -55824,24933 -30902,4584 -20406,306 -51682,39446 -26387,62538 -12132,438 -64807,23869 -20718,58739 -9567,37761 -45704,52238 -4749,35749 -31865,50259 -49112,8077 -43106,61691 -34996,64998 -17256,27675 -16449,35383 -35311,14965 -29588,18182 -45224,9229 -62110,34220 -29452,15496 -15246,56326 -53201,47046 -65483,5866 -22341,54574 -29822,13337 -19126,60767 -27495,38016 -27680,31134 -10374,47572 -53286,24522 -18162,23404 -47527,45785 -25591,22631 -56731,41487 -30740,7261 -7744,49574 -6915,60760 -62996,880 -2002,10563 -31269,64895 -28480,23637 -3620,2401 -25438,38548 -48182,47391 -10285,6592 -5515,20596 -4129,3398 -18412,45153 -44113,38810 -45888,2450 -10288,28327 -57324,17574 -61432,48994 -1753,30257 -24434,62463 -15529,49691 -2092,1415 -29114,27256 -1309,16098 -39187,13782 -56429,62026 -61971,30280 -50545,24582 -3346,14596 -29525,10085 -48909,42753 -30741,30039 -42855,2540 -57067,5147 -35588,58572 -26598,44820 -937,32974 -53883,56371 -38512,26531 -28225,11031 -15780,17478 -9975,46707 -43289,57185 -17610,28240 -2723,56847 -52242,9517 -12417,38565 -52485,34167 -47150,1532 -59061,56093 -5274,61931 -47623,36566 -19848,57874 -25489,24018 -22169,8845 -51508,139 -39547,54444 -47506,58492 -41048,4639 -15250,14720 -24366,46171 -6563,9036 -2740,25680 -25592,9631 -35835,26810 -52929,5732 -16422,64418 -15488,2672 -32157,38227 -44888,8765 -45128,47139 -54476,7763 -60644,20147 -64864,32712 -46692,26192 -39677,41135 -12653,53421 -41033,31084 -9543,39748 -30062,28548 -29465,51705 -51773,33655 -15537,15442 -7176,8596 -37353,14870 -25643,57680 -15101,45321 -35260,61014 -16239,50337 -45041,62980 -46957,30955 -23244,34847 -20636,30259 -20421,15805 -36706,25330 -1750,55026 -18916,48421 -2081,20249 -9513,46339 -45615,12482 -23894,62663 -14523,6527 -63053,15592 -56947,16221 -41218,55999 -39254,19536 -63826,57287 -63334,15981 -20805,45982 -29832,8567 -23646,6256 -10997,45828 -8123,33637 -574,37363 -21875,63870 -2507,1890 -52419,51063 -38470,33208 -21097,11927 -36846,52572 -53620,16669 -48978,37053 -57367,19004 -25869,6241 -18351,59784 -58319,62264 -52988,26359 -64010,51506 -58041,14385 -37107,52715 -58971,22380 -22954,51684 -62146,50303 -52688,8523 -50330,64993 -45689,53163 -56243,10586 -22304,49294 -33237,32420 -11829,39585 -46286,60358 -28438,64775 -16235,58605 -16023,64183 -40817,6036 -37206,53258 -50090,29947 -21016,53717 -18084,60925 -31344,1215 -24948,25757 -40569,25671 -42100,12276 -32560,9347 -8359,43874 -21493,27781 -28932,52747 -14108,29345 -9403,46095 -24975,6418 -57995,10940 -13513,48507 -240,52497 -45606,55166 -21753,6059 -38727,45835 -11320,25878 -52618,8220 -51453,7824 -34654,17085 -26502,63894 -36696,8420 -30415,14375 -30685,29869 -32456,32056 -57685,64624 -50109,32502 -12794,20435 -25585,44295 -19168,40820 -29234,59024 -43549,38627 -29470,4855 -21310,56143 -24434,61856 -21169,62039 -14545,53004 -5187,24403 -61201,18098 -18803,35051 -59898,15808 -61057,15312 -275,16172 -56577,25221 -64855,41460 -30079,15808 -31476,31542 -62646,51265 -5863,57089 -40283,23187 -29140,42362 -58093,9054 -61643,34317 -2699,57015 -28966,40584 -51501,45051 -60737,14077 -37035,58806 -309,55624 -5017,16456 -61150,30385 -43708,43464 -46520,18473 -1713,60624 -39205,39871 -5863,32357 -52895,44737 -33179,55232 -57858,17776 -7280,51236 -15511,65337 -25411,35841 -3883,14806 -16515,50156 -37253,6572 -18294,59378 -24015,9264 -54753,42138 -34647,8423 -64460,35528 -46264,44807 -13478,64429 -35337,7523 -7795,36705 -19262,20051 -51677,18668 -62335,9327 -1338,10698 -8981,31316 -43367,54043 -23783,34783 -5368,7468 -30853,1403 -53752,43322 -64300,8561 -13107,20425 -55053,32221 -54726,53360 -26983,63557 -7916,19956 -7100,52813 -45168,24121 -41130,334 -13946,41855 -21355,9944 -51170,39739 -38252,30664 -41470,59284 -5116,9739 -30494,14240 -49905,48725 -15779,3825 -16965,21598 -30206,62104 -39142,15167 -48349,34948 -10106,57817 -46852,7070 -60368,49653 -22168,47591 -54396,47557 -10950,44657 -39936,2238 -6077,13778 -44733,21802 -43979,3870 -18785,19157 -48697,17551 -1018,58353 -37339,44227 -32519,5906 -23631,61157 -44417,11304 -3477,52775 -28197,913 -42506,21666 -5568,39882 -27071,11225 -15687,63081 -25090,33139 -33565,15195 -20019,21052 -14566,56017 -3895,48332 -46125,59193 -20653,36624 -22192,32559 -17241,19784 -40496,40554 -5056,7049 -608,52282 -56654,35043 -35114,38783 -15661,44164 -29963,6981 -19013,49426 -60041,56233 -48245,60665 -18786,55838 -51585,59766 -45645,39049 -22590,895 -56686,2308 -42932,23218 -62924,57283 -55307,5300 -33537,16916 -50388,29021 -63733,6419 -31950,58506 -46647,14126 -14359,36745 -34257,50208 -17489,33323 -36731,19597 -34351,24181 -3990,11011 -54424,8746 -40688,44749 -48527,52510 -54552,4291 -54708,61267 -64969,61667 -33531,61694 -17816,44137 -62159,61739 -28760,37445 -6712,46422 -1630,48344 -25412,25879 -38068,60613 -44362,30274 -18299,34062 -32157,6826 -34647,30589 -57883,44728 -38417,2871 -13012,24344 -16873,62366 -25015,65337 -62606,62041 -11452,6480 -39927,41804 -26627,62711 -54213,6129 -24902,11050 -55293,20050 -8159,25301 -23952,32890 -25942,43044 -30194,9346 -62659,31647 -39315,44121 -18213,49847 -50363,41219 -52168,46707 -43817,4608 -39480,45202 -22047,17974 -6784,15691 -37738,26588 -32371,6507 -55525,23532 -47823,65058 -3190,12474 -62352,7246 -42398,18377 -13566,23713 -2847,299 -50834,38416 -26159,14915 -26923,32354 -24740,16846 -29461,7757 -24178,27940 -46095,50332 -3638,17175 -36801,44521 -5284,60008 -26632,34923 -47516,5721 -14816,60188 -45058,28470 -20960,23221 -65293,9123 -30453,34420 -4869,10846 -61486,54942 -59722,13797 -45824,38421 -10732,13441 -33348,48645 -63394,51234 -28389,63574 -7672,50973 -33479,51719 -4215,14377 -33593,30521 -56414,44599 -59004,22868 -29538,26097 -25461,39698 -65442,4322 -55567,54481 -14608,16098 -39356,50119 -31203,21987 -11565,53370 -46762,65216 -49030,49031 -23552,42515 -11803,44630 -61781,53149 -15409,9074 -32037,22759 -60779,23991 -2093,27320 -55533,14756 -23483,62940 -16621,23806 -56554,51499 -59230,19439 -50173,22017 -17771,29048 -22862,1211 -7261,43504 -34513,23877 -45049,34633 -35366,65006 -40500,22133 -61001,25607 -23120,42900 -1124,22658 -34503,34756 -41139,59874 -21583,61624 -52758,13138 -6928,11232 -21927,62433 -27160,18052 -10324,55220 -31356,6491 -38184,57386 -30796,47694 -27878,55364 -50109,2609 -20700,43607 -32855,1168 -45294,42135 -40936,6852 -55766,49472 -6271,8738 -19093,36072 -28595,24295 -47297,28696 -34415,59230 -21394,58830 -7781,2597 -51936,22937 -26928,19131 -33896,5024 -63824,26865 -43722,48022 -50169,8669 -55342,54045 -56389,4921 -48550,33454 -30390,44242 -8442,53771 -4826,11921 -57013,21583 -37713,13164 -18307,27690 -30515,8684 -31121,17336 -44596,60247 -7575,39508 -37260,49663 -25351,24288 -43575,38759 -51571,38526 -34432,10560 -32738,6675 -40068,46153 -55785,22628 -57347,6463 -36731,62461 -3105,59418 -48551,42582 -42862,39747 -7570,2396 -56732,22657 -54162,15980 -405,21150 -6083,19065 -59231,16611 -18871,52151 -53892,35254 -31373,3282 -65040,49528 -55280,20036 -13161,13942 -25617,3578 -30309,62041 -6194,50229 -38985,41808 -10558,17172 -38014,45324 -27448,36354 -61007,16300 -37079,2877 -40230,49878 -59871,3679 -41071,53715 -50147,12604 -60479,42244 -31136,43785 -48016,14525 -18101,41579 -39525,19721 -41614,23271 -60157,60925 -14398,22832 -23940,23403 -37647,18879 -13518,14184 -55534,27288 -11211,22554 -61832,23787 -10660,41077 -5211,6130 -8037,4299 -56809,24425 -28574,9662 -46970,42433 -15430,59638 -35800,10237 -10667,30044 -15971,62642 -33584,5768 -12934,21019 -20774,941 -1906,36394 -60169,33189 -5994,52599 -27368,50215 -33449,61580 -55380,10096 -60876,32343 -1235,42518 -12110,60591 -28723,25928 -15255,43177 -18056,25380 -59351,2029 -250,16655 -7533,30023 -42138,40878 -61293,41116 -54058,15407 -47133,65338 -31417,14392 -27917,18343 -62576,2852 -3454,29991 -1819,10582 -54767,39549 -18168,56301 -28877,353 -34286,12765 -12038,10078 -53343,3922 -4693,49438 -60515,30573 -51330,63869 -3062,5279 -52462,56135 -26215,36314 -13236,55126 -34933,53429 -17056,8289 -299,31031 -15195,5814 -20229,36225 -26893,52597 -44543,10655 -11402,20454 -6981,51949 -46409,51500 -64030,23971 -42272,2704 -1716,18367 -58147,27662 -52694,30305 -35216,37295 -59395,37701 -39918,28675 -34343,15699 -53345,48639 -1636,41186 -31321,15134 -6426,44602 -7624,54967 -7238,26608 -16363,21102 -32438,40214 -64155,55665 -5928,15397 -7457,20207 -8058,3127 -6804,10759 -57468,21991 -59684,64727 -64097,37801 -23427,6312 -60790,12984 -30534,11183 -29590,34387 -49866,38889 -20692,18955 -55922,973 -61964,58648 -44555,49504 -21909,30177 -33752,17210 -47862,50421 -33214,4695 -6625,29439 -597,43743 -49004,12968 -39526,52284 -5440,25878 -51684,58083 -63369,8735 -51560,12723 -35553,20728 -55995,30547 -61916,24784 -26034,35795 -39572,32470 -35620,40852 -42681,27899 -51165,65350 -38622,10146 -3082,50484 -41027,37207 -52261,43474 -5526,15641 -56484,57805 -17129,45770 -20027,49902 -52368,12019 -47206,2514 -18174,61632 -31835,57758 -21113,41887 -207,4443 -35594,53761 -44653,25235 -48019,26125 -42286,24537 -32200,29577 -41564,13487 -2049,12973 -29012,15525 -15820,24624 -46335,41987 -64585,7678 -21853,60776 -23093,45550 -2192,42748 -22027,37505 -7145,23127 -22010,52877 -40631,32613 -65499,22574 -32447,11630 -2875,9446 -41633,63777 -11300,16379 -37897,25321 -26917,35453 -21345,32632 -14713,22903 -308,48492 -19932,43051 -3492,55093 -31266,36263 -42711,55444 -46193,1022 -7234,24668 -22876,43062 -41269,9501 -40173,34742 -35023,17198 -45756,32990 -30389,18322 -5520,26436 -47979,28372 -63554,48458 -23031,38216 -31417,37214 -30285,42416 -5090,29208 -27067,18751 -19984,64894 -18994,63650 -12512,15402 -57561,2638 -14645,22246 -31834,183 -37866,62809 -22705,58191 -8986,6796 -51871,21817 -42578,56590 -61375,29490 -16492,60161 -64378,6903 -16320,56039 -62295,21541 -27721,34933 -50725,48847 -39155,47778 -21020,38597 -37019,15931 -36294,13254 -31825,40644 -8361,9785 -54207,27245 -1041,60735 -50317,50787 -18494,22864 -62944,11310 -38145,19090 -48629,58892 -32427,41779 -45565,13437 -5211,11067 -29595,44142 -24772,38643 -14677,58564 -42049,43881 -16180,64084 -21138,46970 -11466,30636 -46002,53951 -44392,47646 -40427,45852 -24142,5094 -54904,33906 -43918,36701 -40092,36677 -21608,12527 -19329,61343 -65375,46769 -63019,58778 -58602,57223 -28827,18163 -61546,5116 -48739,26148 -49726,14024 -38431,54721 -57462,37215 -64352,8305 -28775,6291 -57979,20279 -111,33756 -47623,18656 -12887,20970 -55072,39735 -5649,5063 -49973,58898 -30932,20992 -16358,20252 -38179,49588 -52200,25117 -61348,35374 -1233,35699 -18041,47239 -13800,10215 -43625,11775 -23535,18345 -42009,28796 -22191,22626 -12507,41180 -36211,50581 -11124,28061 -32727,4663 -40185,8181 -56373,30451 -9953,37934 -57905,3158 -8252,50838 -43950,5363 -53601,42319 -32124,61581 -10878,61480 -28146,62605 -12082,40124 -24788,64979 -18245,15053 -64591,39116 -62481,42520 -9037,56720 -41589,50491 -35826,53541 -55426,49638 -56702,8745 -59671,6337 -14208,22724 -3135,6338 -11618,22373 -41416,43599 -37756,60981 -2918,56330 -43878,60565 -53549,24364 -49781,34575 -14483,224 -27396,37726 -14231,12872 -32126,6697 -38493,57744 -26960,15690 -17018,9193 -51367,42571 -14013,22678 -43667,22432 -35148,25677 -21668,1346 -61119,59378 -38798,33099 -38431,58722 -1884,56513 -46424,17661 -41125,30699 -1705,43510 -9428,3947 -17650,22639 -57235,36476 -24171,32682 -15516,21523 -22118,32685 -42833,27882 -2685,7129 -12639,2678 -61026,15516 -63037,20255 -45357,28217 -29149,50229 -6854,48678 -8746,19042 -25586,60067 -40501,50933 -14004,50878 -62099,39174 -2082,14868 -20593,65164 -59281,32170 -41704,15886 -21564,32296 -38924,54949 -25905,23754 -41873,22699 -45986,47336 -38095,38000 -12345,52371 -8816,12649 -52641,39187 -14610,17689 -33851,34400 -12055,42643 -65148,31894 -60646,54440 -52670,1829 -55634,18905 -29874,22992 -5286,38241 -29371,44186 -35929,5277 -47623,50568 -33034,32423 -63700,32440 -44910,59998 -45728,3609 -53468,52410 -31911,47184 -35639,38781 -54878,59513 -57248,42538 -33563,41948 -32571,35249 -53675,38668 -12617,14250 -48153,18640 -13250,21799 -8967,61174 -53213,41691 -48995,59265 -49415,47234 -6607,61454 -3648,41307 -50004,16394 -20118,13755 -22315,16424 -48159,21351 -23273,23618 -6297,30521 -26605,11902 -63562,18239 -18450,38484 -15314,33899 -22721,27625 -50932,7509 -18561,28161 -2453,47799 -64357,40227 -15936,15011 -60983,28264 -21153,30342 -9564,2637 -22421,5212 -54152,46312 -20367,48805 -11135,56899 -59842,32222 -44126,28147 -37042,6235 -16762,46975 -45624,29810 -58741,43511 -56218,15530 -29336,24982 -27353,897 -45091,25244 -51010,52373 -24833,57824 -13777,21560 -14999,56326 -26067,62954 -30512,39619 -25462,50331 -12422,45250 -25605,32241 -30806,56836 -38384,25588 -43238,22457 -18272,32810 -7179,32955 -50986,6132 -21673,2160 -39095,11229 -13043,47766 -39315,22564 -62680,64737 -65164,33390 -45701,17165 -56313,11571 -46565,40363 -35945,14767 -41603,25172 -41897,58048 -22632,39753 -30506,37580 -36379,23839 -31693,35264 -56977,32217 -27217,59257 -45563,1895 -58039,52128 -42295,40953 -50376,2603 -5391,16766 -49468,37419 -64056,20454 -27127,42902 -40937,58489 -13995,8398 -61814,55656 -47029,58939 -42103,14962 -10224,7941 -1072,44093 -3667,16231 -47650,64404 -27496,27543 -50121,39007 -46754,24852 -59628,35549 -11306,61383 -25097,866 -31827,43523 -33530,38260 -28905,49531 -37516,42407 -39969,32925 -28935,59587 -30726,5825 -23553,44637 -58058,65165 -43151,59591 -23553,51334 -7052,52659 -40333,26178 -8148,20137 -48987,52715 -30718,29646 -6069,33253 -1721,1434 -48689,6096 -57136,2497 -15192,44048 -63031,61988 -3482,10097 -26965,48742 -25285,51309 -3494,32927 -52065,27612 -21908,11802 -59468,26108 -37362,28201 -57801,25332 -26335,17862 -61382,10310 -45367,50512 -8110,753 -3094,19366 -8964,43221 -4486,27126 -26917,27390 -19028,38217 -54527,19179 -41303,32361 -20712,18423 -23084,27040 -31832,34083 -48358,53325 -28488,62794 -31278,50480 -59867,19240 -17079,1506 -13212,16019 -50037,53273 -217,42858 -51960,53456 -7540,60347 -59273,45753 -3627,16319 -38361,59939 -47166,31003 -9118,53835 -39565,15235 -61371,24778 -38547,46342 -34641,46877 -47497,14869 -12884,28443 -39940,2236 -39085,10555 -37908,32339 -35660,32601 -19341,44452 -17841,61811 -53757,23901 -37531,65122 -50594,30646 -15542,53747 -106,50110 -19740,845 -20517,25763 -52641,41965 -57041,41766 -26084,45015 -65480,27846 -11002,14425 -32838,55580 -9469,54452 -26376,23674 -37187,57346 -50825,20003 -51079,13327 -48346,60210 -4382,22636 -13665,18830 -44507,37401 -44722,38842 -57984,47428 -33879,49197 -8561,47434 -34643,11093 -33182,27445 -28993,61882 -33032,17955 -15331,7108 -56202,32847 -42528,38926 -5751,61162 -20070,41272 -2819,45282 -51916,43551 -48398,6628 -47050,58579 -11419,4782 -61562,36124 -31956,6180 -15133,21167 -36610,45657 -25336,19824 -53653,43888 -3961,49792 -47573,37788 -20643,37450 -34733,62096 -47128,31761 -37360,59104 -39223,27636 -31502,40270 -48717,29463 -32529,37113 -18210,36511 -32639,8342 -29722,1933 -34253,6070 -45545,56898 -13319,37766 -28605,42436 -43515,2239 -35751,3079 -32420,35239 -14861,2385 -20652,58031 -46170,12489 -122,39979 -64032,32814 -21560,38695 -28045,39303 -2961,41510 -42676,770 -34433,5606 -5066,687 -36848,43216 -59552,38346 -39629,46555 -22766,39796 -27315,199 -11592,4623 -58647,56302 -46100,56140 -33482,10712 -15269,32922 -21863,48555 -44233,64448 -37162,29388 -37753,28160 -43313,48034 -57344,36765 -43899,1260 -58342,34739 -62846,38531 -16517,22876 -23852,54489 -47530,868 -16238,10225 -51351,61191 -41689,3621 -32232,43700 -50501,58437 -55745,54787 -14542,61674 -9455,61113 -41677,1091 -24282,30768 -46683,44105 -8486,56408 -45990,20605 -18111,23296 -56900,25699 -56452,34704 -32215,1895 -64526,64417 -14680,681 -36103,31096 -34746,51320 -32207,50416 -38623,39522 -39032,56875 -45077,15648 -26064,58872 -64547,50631 -10019,1100 -59229,7390 -9432,17371 -18976,41376 -16990,55859 -37327,12732 -34158,49250 -10505,65109 -3077,55305 -48966,61408 -52035,23912 -53419,14853 -61093,62002 -31956,26960 -43470,52530 -5092,64679 -8746,30744 -19011,36838 -64003,17317 -5964,44067 -20293,9993 -20512,57510 -34003,60237 -48194,27327 -29319,63053 -23414,51686 -33998,8059 -62870,3279 -64499,15135 -31050,4033 -28278,44928 -32971,33025 -22969,62009 -11687,42934 -13267,3062 -7184,3918 -41641,6596 -33914,65076 -4300,12158 -32300,8677 -22283,35149 -37590,40571 -37967,29414 -20598,5492 -64626,48735 -22595,60126 -34134,49495 -33705,39466 -44814,53458 -6937,54979 -2557,18694 -39388,21407 -45563,52289 -45291,6991 -28945,46806 -22631,15009 -50838,50665 -42809,38059 -59380,28000 -515,52155 -34840,57445 -64052,59399 -42132,27055 -14117,58815 -57523,62545 -60568,62451 -35521,62299 -56150,45875 -13340,7911 -30326,22671 -36793,43126 -27702,19077 -2125,4882 -52151,43909 -52240,20001 -14838,47981 -61679,47014 -15467,59594 -25438,58467 -34629,14865 -45018,22121 -63567,18891 -13953,10317 -43302,48365 -34572,49156 -23524,36552 -26951,35320 -63098,16225 -27267,9934 -529,13502 -17348,5452 -39359,23707 -14384,19680 -10327,43944 -6057,24057 -52988,9617 -30850,61046 -50580,27788 -1842,23230 -15166,13223 -42702,2232 -50127,51979 -8097,53413 -27018,64903 -60844,5726 -11519,59928 -25058,33480 -20906,31762 -2295,51507 -52055,10198 -38381,49182 -46813,8484 -55449,60399 -46331,46772 -42301,12584 -23473,20074 -1858,29700 -41695,48133 -43879,63539 -41874,14221 -41559,50298 -61999,43512 -46677,42011 -10480,16568 -23667,8550 -35355,2103 -52328,55579 -36199,15676 -46968,47101 -1371,55488 -43480,63080 -11672,62843 -39731,11088 -50311,60028 -60635,18121 -47569,47040 -33277,35177 -47811,3676 -25631,42384 -1371,60363 -30713,20556 -36764,14758 -33805,47037 -57086,54861 -14998,26457 -20084,61732 -31374,53839 -15007,59955 -57569,19155 -36422,64014 -6132,50229 -31875,62185 -17328,10421 -19122,62320 -13947,45469 -27267,6197 -63214,44557 -56435,27137 -60321,10927 -28188,4080 -61329,47960 -13231,48507 -56325,42719 -59553,36078 -32389,8703 -50493,16141 -27104,45589 -40897,51368 -42446,47719 -11758,41996 -29806,62593 -44589,28431 -27202,36895 -21199,17138 -16036,21644 -31689,44240 -47016,34659 -45896,39828 -26907,63400 -309,15884 -35861,15415 -37017,52762 -60137,27450 -12736,12112 -35389,13127 -1434,44376 -51826,50086 -4406,31472 -9308,54131 -29079,35623 -20136,1499 -53087,31688 -28834,44140 -40098,42213 -50026,3886 -33886,3833 -39527,59122 -37461,21442 -62929,34129 -48975,64816 -34510,36848 -18895,12892 -50687,52418 -64008,11556 -5582,53144 -29370,31361 -6190,4098 -46277,50069 -44327,44436 -12526,23704 -51381,50610 -34610,8183 -32172,11395 -15441,39710 -34026,45402 -1138,27758 -47546,56517 -19318,22428 -14744,53207 -14095,33877 -30993,3036 -18089,27432 -39000,29907 -31797,21165 -3923,58378 -13577,3179 -39406,10602 -22129,1528 -61126,38570 -19165,35785 -22184,37773 -12394,62001 -57866,7906 -32542,463 -45637,47808 -12669,19771 -53679,27759 -45522,9392 -36218,39690 -48128,6191 -16384,36222 -13936,21142 -5137,27121 -55681,14604 -41189,17674 -37242,51526 -17945,22207 -6136,61345 -25898,51624 -6670,64252 -51304,17479 -11714,13308 -47751,50233 -64578,10521 -43478,42834 -19090,43710 -46590,33754 -23730,399 -17780,4632 -56664,41937 -17538,38903 -35934,42194 -63092,56147 -42790,38027 -49431,34274 -4338,56843 -42812,13692 -45171,13462 -30064,42245 -36763,2269 -63838,29841 -9757,50934 -51758,13344 -64727,36699 -12969,759 -18113,4514 -27146,55027 -40508,39319 -41690,59560 -38537,45097 -49409,28521 -46823,18588 -33607,41219 -11115,33128 -15482,33617 -61995,14259 -57152,54192 -30880,55104 -3757,22825 -8840,62104 -38486,34008 -58801,54332 -61643,45079 -55951,61159 -16875,19211 -61181,15759 -9061,13774 -12555,30042 -32426,16263 -20996,61593 -56779,56674 -43280,37371 -5409,56228 -62168,48978 -42208,24087 -27553,17776 -59362,1696 -25608,41006 -21948,21907 -30669,41184 -5476,57236 -50474,26354 -22047,10405 -48728,19291 -58844,58031 -39661,2444 -3400,38647 -25779,2601 -16384,27218 -36910,54669 -38591,28137 -36786,13439 -23804,32294 -26346,44223 -4134,23645 -28140,15568 -7901,43527 -42407,6814 -60140,32574 -57943,3895 -33300,2672 -21411,58592 -49325,18651 -1596,59008 -19055,55863 -14577,55635 -59928,36292 -15855,31990 -21698,65110 -48186,28978 -12318,30771 -4254,62871 -12582,54450 -13090,31103 -31210,15894 -6299,40482 -46784,14740 -65129,29058 -50267,24348 -60864,36411 -37210,11317 -49407,38022 -54993,21989 -28316,52095 -38722,60929 -26098,20611 -54795,12344 -49954,35080 -1216,61929 -8605,61242 -59445,21032 -39907,41010 -58100,63334 -29235,17368 -242,51134 -10504,44784 -16228,2730 -24738,18528 -20918,3662 -32295,13593 -53893,43103 -60713,6106 -59985,48339 -6583,57079 -47758,39860 -15989,22987 -37978,43690 -15837,15133 -32096,33739 -21888,33803 -63504,8430 -29050,44844 -54397,32990 -8851,60816 -54645,42573 -6488,29181 -4046,49900 -7942,34147 -65520,22990 -30339,59579 -36959,47644 -54779,58940 -36007,53809 -55330,56256 -27084,12390 -64309,9629 -11356,11466 -31186,46594 -30773,1676 -60486,18640 -40091,65108 -9886,60507 -43975,62942 -8319,4856 -33782,33909 -23926,36699 -49135,37882 -31962,11144 -59559,43811 -1468,28412 -47591,3952 -59623,26084 -57872,28431 -48664,64887 -39073,35657 -61479,46346 -8807,58562 -11820,52462 -53255,8310 -27989,54211 -14489,43861 -26942,41319 -21687,20915 -52508,22237 -49037,29044 -23939,59204 -13487,57401 -41956,26474 -11543,968 -33000,45453 -9585,26478 -41867,32462 -54990,50993 -15136,13043 -38314,56068 -58241,19967 -35906,30380 -40444,10378 -45392,42450 -57018,41502 -38170,41255 -44763,64469 -48016,9714 -21684,680 -14549,36483 -31458,15216 -44194,15373 -22204,59857 -20776,191 -45280,54759 -49705,15221 -35218,26623 -61393,31247 -25624,63701 -39251,39013 -14923,27996 -27117,57219 -48825,13782 -12834,62444 -33916,337 -9179,45480 -53550,23255 -40984,20623 -62290,4564 -29250,22687 -16103,34984 -59505,19906 -20363,33119 -59076,47744 -44476,55127 -5939,44947 -58939,35765 -1517,13538 -2097,10556 -17343,25891 -58775,10519 -37700,60611 -46609,9400 -38416,25591 -24511,47367 -43727,29370 -55006,20719 -34793,9271 -1346,10707 -59171,31349 -28179,55418 -9442,61892 -2041,2127 -15137,60465 -8565,20849 -24645,2032 -34876,21661 -6532,39538 -63244,19240 -29943,31706 -61369,57364 -11017,34283 -40985,57745 -33872,22930 -12290,24360 -22855,37999 -46024,44084 -52532,9872 -55198,55796 -46398,4812 -13791,20188 -3095,30915 -46370,7321 -43590,51260 -28104,48029 -8880,3364 -9072,30116 -54592,64967 -23222,3021 -55601,7353 -62594,37518 -49624,5050 -61492,5936 -5391,53533 -34437,4572 -31259,18261 -59840,6301 -49027,21521 -47280,19241 -59854,13400 -2616,3558 -36962,25844 -43476,37417 -6143,53698 -56844,1299 -60694,11591 -37421,3054 -22288,17221 -48783,50382 -5943,31164 -47600,3005 -42685,15064 -1167,59320 -44766,21125 -11303,2914 -22132,11185 -16351,9694 -55072,30304 -46351,25453 -45070,50692 -3450,1690 -50980,8697 -64752,12230 -52915,9204 -23110,16525 -6081,38743 -63900,53405 -51287,58494 -63731,49731 -46244,42556 -49208,7501 -36377,51347 -51839,48701 -65432,43641 -40703,51615 -61463,38558 -62759,49668 -36731,61050 -8972,50088 -38384,43570 -59412,28183 -32604,17351 -2921,56947 -16957,16091 -30829,15913 -37065,29128 -25321,5747 -51992,63799 -53981,24027 -21935,6024 -11489,44053 -34215,54436 -62135,63248 -18488,47703 -62204,33117 -3408,2597 -6490,30425 -65287,56888 -5290,43651 -26822,30033 -14160,33512 -56489,9428 -37220,21320 -50704,18113 -62412,59119 -42136,60671 -31255,57517 -34800,38153 -22307,56269 -57250,226 -19191,63739 -14079,8209 -54030,63043 -14562,38304 -12650,56355 -63184,26149 -424,49338 -45056,65071 -47539,44611 -6757,39461 -47629,2073 -16327,36458 -23918,38982 -40124,18132 -28641,50943 -47193,23004 -14841,504 -29749,52447 -15887,64408 -8762,5170 -22046,26846 -39195,6802 -48019,9003 -25416,60760 -52097,46460 -38840,47673 -32433,11949 -32091,3279 -63554,47503 -6409,27012 -33367,17757 -5364,23436 -25670,52479 -32005,17366 -5942,9135 -29252,34729 -9060,31524 -10703,57640 -57821,48676 -59575,19301 -16565,55581 -36146,60486 -58,13739 -11447,62923 -9418,19579 -57285,30364 -1924,37461 -25062,61646 -53521,60184 -48604,14440 -26023,19453 -5982,27623 -13915,37481 -29611,8496 -51656,5471 -14797,39645 -4663,63839 -44908,56395 -29821,30426 -47290,15154 -41365,76 -28538,49703 -51437,44055 -4397,61029 -18924,24005 -9110,58062 -51244,47985 -10477,47739 -6005,9839 -24576,729 -47803,58870 -33537,19320 -10736,31893 -62433,32458 -53638,1276 -63492,54170 -13749,54515 -2800,3996 -37395,56984 -21109,48035 -47015,43172 -21226,62371 -30946,62900 -62314,6858 -29408,9016 -33289,52322 -48179,22568 -37046,18577 -27483,30642 -21256,37959 -10220,50275 -54601,31069 -15902,57939 -31579,60388 -9398,22813 -64017,12730 -42840,5603 -25607,33190 -58867,59660 -45819,1016 -32259,62553 -40048,23872 -15532,1892 -7585,17551 -7155,14581 -10962,5539 -38467,901 -48075,46362 -15990,5459 -63328,38013 -6729,37534 -25473,7592 -19606,11491 -17643,7631 -59380,54173 -51994,44346 -59719,54236 -52731,46570 -26179,22155 -16571,41471 -57298,53442 -19406,5733 -23134,39881 -42985,40210 -13582,58432 -2875,852 -16893,41700 -29964,54910 -32086,64800 -60790,52383 -321,63489 -41522,36956 -40000,26672 -24029,10655 -45612,22950 -60376,15750 -61416,34271 -44218,42079 -3454,30020 -2473,21225 -43945,65145 -47490,42423 -18147,29684 -56521,50181 -40024,18771 -56341,13182 -27826,47608 -52508,2589 -62859,35150 -42627,16899 -60032,5803 -43242,62067 -7778,21297 -43008,49356 -52629,4177 -48178,6863 -31034,58075 -52492,43353 -1375,15786 -38256,63433 -2374,25745 -30580,53195 -62767,7173 -51300,23483 -54523,58321 -3382,36424 -33148,61153 -20555,40072 -64519,7207 -6063,53151 -2952,12036 -17283,29660 -15085,13525 -28490,63498 -43706,13573 -2515,41224 -56145,50190 -20937,46670 -58371,20906 -18558,34888 -29193,29514 -53151,523 -16257,7513 -10607,30452 -17161,37014 -49643,5770 -7794,15434 -42628,59010 -28316,1498 -33881,30260 -64649,11081 -25152,45595 -1851,25221 -1155,27159 -46676,64055 -57605,13983 -9008,26189 -44112,24577 -49567,52604 -57578,36267 -46515,40640 -11843,63816 -55248,18651 -32421,50016 -38362,75 -21731,37398 -55239,35504 -49541,59381 -2785,1728 -59475,41829 -42396,41598 -54636,23928 -7321,20386 -65427,26518 -46047,59567 -36024,23148 -5602,33060 -52922,62862 -62913,21014 -20294,51948 -13267,53958 -43409,46 -43732,19908 -28441,7497 -6104,32282 -56787,36554 -23630,61524 -45490,28506 -17270,4345 -12568,35763 -31897,41850 -21557,17217 -61878,33149 -32176,12321 -29944,6831 -58349,56253 -27087,3909 -34472,46148 -42973,34613 -17396,54040 -40531,46204 -20508,16504 -18106,5699 -42654,8200 -45563,47671 -60658,36185 -58467,58549 -40115,56351 -9935,26890 -26970,20040 -5492,11303 -37548,39400 -11958,15228 -51249,5884 -36643,21467 -5097,58763 -29891,64793 -41890,7810 -29226,17127 -62345,64931 -56050,42831 -6236,63631 -45232,27420 -37923,4710 -9834,44674 -9059,1775 -30560,51478 -63174,36670 -64549,34621 -17008,14824 -60100,34393 -17385,15610 -61738,48650 -45175,23450 -65511,4937 -7299,38555 -22036,2572 -3534,17310 -46717,55779 -41802,4229 -19317,36032 -30964,17894 -42692,11125 -61988,33569 -1354,34670 -22489,57073 -35689,32724 -59337,46831 -28787,44712 -1745,52021 -9276,51233 -18141,9761 -58714,8394 -36720,42493 -38775,57875 -60850,42600 -36440,61789 -36151,28049 -8294,15031 -2117,60560 -64797,30971 -23302,13763 -8960,33506 -59619,50204 -58237,29902 -33130,41411 -44692,43963 -32233,49570 -51727,47275 -35770,23410 -61042,3477 -20986,38972 -58947,16417 -50709,48458 -16911,2191 -25280,36844 -47043,50649 -41359,19359 -58703,60852 -14123,33710 -6352,21077 -15072,51996 -20915,44326 -37644,47354 -30534,59933 -7291,29836 -13067,13683 -62745,59281 -36501,8524 -8030,30113 -21817,4967 -63536,34109 -7445,13332 -19205,9702 -37052,1877 -25539,29847 -988,44904 -54777,6935 -63880,5473 -2931,44114 -4647,3555 -40763,42115 -36521,39438 -57029,24799 -41494,20439 -48403,8575 -14282,49338 -59281,14463 -22675,18467 -8760,58242 -8398,28709 -37572,26355 -13288,27317 -56560,8707 -20594,37149 -51499,62082 -13873,19114 -56339,15932 -33840,39408 -55392,632 -2042,7608 -50110,74 -54752,3119 -15723,28301 -47674,53224 -43203,44610 -51182,20218 -64048,17515 -63274,28360 -5060,2695 -44273,33601 -45700,33715 -41298,10795 -48026,42326 -37694,57769 -36313,39511 -63580,21752 -5959,12383 -10288,48814 -36898,23575 -62349,15991 -48961,22815 -50452,17771 -62789,21366 -13365,11587 -61557,5021 -35659,48393 -58764,8087 -52520,15916 -48614,7427 -37345,51608 -17737,17328 -56159,53964 -56914,7293 -14515,36018 -50636,13067 -37864,36634 -12095,17619 -38269,51413 -7226,50029 -47581,55949 -5259,48894 -60003,23307 -4597,23140 -44336,44237 -5173,27516 -16625,34133 -15594,45276 -32428,21946 -14420,27679 -30176,63213 -28211,65385 -36604,5114 -58460,21125 -14348,65290 -64150,34228 -56943,30216 -14944,6733 -47925,35615 -46772,49169 -54415,42978 -45192,65007 -22041,57788 -4593,38708 -2585,3768 -36981,42548 -26198,43559 -37403,38640 -18145,53899 -40126,36362 -50424,18572 -9410,63989 -65144,54749 -57391,46620 -36114,45682 -10923,32468 -25276,18430 -13731,61161 -26668,56018 -61905,21551 -23537,4907 -26769,17817 -38103,57300 -14539,46202 -40883,57567 -34626,58847 -57470,64684 -28650,29510 -26577,64671 -50225,33802 -28248,27295 -9226,61790 -22602,51209 -47975,47243 -47043,13322 -45529,21680 -64913,40468 -58472,12354 -16691,31018 -57188,64409 -9805,3405 -62379,51062 -35979,60003 -17362,12590 -58501,4443 -49484,33146 -18717,33492 -8856,28728 -53337,61490 -5456,42429 -48251,55995 -19327,148 -26253,26607 -53581,29316 -32709,24850 -56621,35788 -56184,10922 -39408,29190 -26809,5318 -3873,20299 -60350,53225 -51525,56737 -50257,17263 -41930,29962 -15846,538 -63394,54632 -56579,3588 -60065,32046 -48913,36919 -30687,32141 -20406,25678 -60159,65029 -1219,5667 -1417,53603 -52688,49406 -36388,18079 -2707,16344 -38638,10870 -47386,18281 -42317,14337 -20651,24468 -37140,42153 -44912,21929 -25680,36245 -41409,47743 -24014,31995 -53520,37742 -48832,6702 -20247,43153 -5606,32758 -36743,44204 -34945,16580 -61997,14338 -47303,56376 -17106,28273 -59561,61993 -9259,50125 -25520,55817 -42086,3620 -59914,31526 -59787,49688 -31955,13046 -34015,33766 -25444,58127 -40169,11306 -28346,63160 -8442,24449 -58340,53924 -8463,28694 -47052,17606 -6718,56428 -3026,31712 -36908,12056 -45895,51223 -16155,54359 -22976,11485 -52763,42535 -63712,16002 -12038,45081 -20372,24713 -31869,445 -60118,49737 -21783,47169 -57374,27879 -34271,13026 -8305,30440 -2180,12112 -33404,45473 -40805,14196 -22487,59457 -23829,51403 -9944,50244 -13754,42183 -17682,42291 -17803,56258 -2750,12293 -11619,58353 -8103,988 -12407,23169 -31311,39800 -5043,17901 -17609,7109 -38119,47783 -45412,32865 -10353,43307 -15260,46614 -4222,58903 -15970,16165 -56467,34410 -43500,48968 -65527,11414 -57454,7727 -24005,50279 -21796,12602 -17232,47800 -52212,10913 -59600,37325 -65287,55857 -46376,19818 -36152,56796 -10441,14177 -32583,17880 -9885,6695 -23185,56401 -4612,13106 -59230,46658 -34603,10047 -13036,38723 -20052,38323 -51139,19947 -41201,44547 -28953,26066 -18479,64054 -17916,46410 -34630,52884 -27422,35009 -14997,21180 -52366,19588 -55447,27624 -54702,48417 -56403,62427 -21121,59341 -41635,35972 -54001,23832 -57644,19857 -5904,36789 -3722,51248 -23520,31614 -8910,27154 -13452,47609 -60466,5871 -16910,14282 -19605,9893 -5930,30067 -37430,39170 -56595,13454 -6030,40224 -55519,40581 -64964,25921 -16871,62055 -11886,17466 -15728,63463 -44768,15641 -33546,19089 -57625,5022 -49505,1968 -11602,51611 -1882,34747 -15122,12265 -63818,41373 -3775,28314 -50041,35996 -32310,49657 -51960,42010 -26905,25157 -28409,7143 -47365,61613 -22074,30066 -59178,31681 -64914,6315 -44660,55554 -46723,62051 -64258,13620 -39030,30284 -40379,3522 -8674,13519 -29838,27233 -23381,5605 -4186,29348 -32858,48775 -32556,12002 -32667,64944 -58356,57191 -31305,458 -17450,41326 -37570,50235 -54298,693 -34030,40344 -40577,14161 -50679,40805 -2088,45509 -53091,31694 -12739,43997 -31155,30615 -24370,7927 -64431,13169 -64671,23679 -55391,25811 -25511,49818 -58033,7634 -17137,21314 -16044,45711 -32173,15898 -25699,44819 -47583,20531 -11100,6469 -24104,37550 -22659,27655 -29628,38600 -54693,33776 -6108,49281 -15696,14691 -52682,128 -48710,39404 -257,1164 -35234,29805 -32562,7616 -33373,39756 -30194,27243 -629,64844 -7662,10437 -33690,6325 -28759,29163 -9173,37753 -24039,29185 -63967,41943 -51113,47967 -49044,42957 -11824,28271 -30002,49093 -4855,1460 -58071,30301 -55860,31258 -9087,48861 -50584,28535 -46204,58208 -58863,14253 -25953,33150 -7278,17016 -11569,23194 -12723,45721 -5993,39668 -13127,19680 -4846,12037 -10063,28625 -4056,2201 -21938,45528 -32368,47528 -32476,2056 -61966,2967 -36984,55428 -23319,60949 -48923,16584 -42517,59241 -34057,33451 -35439,9809 -60995,12641 -50898,27174 -39739,41564 -63455,43241 -61113,43097 -41895,17971 -26052,1012 -40620,16917 -269,42267 -23431,45269 -56091,41541 -51169,57110 -55809,22047 -40330,62026 -10022,35313 -16651,57735 -63317,62476 -60183,12294 -27622,65114 -44513,43688 -62105,55846 -31919,37239 -43360,18331 -17450,28646 -49763,24089 -19606,4917 -51248,24267 -42640,7262 -22398,21500 -30131,39164 -16004,36036 -26612,7874 -1828,43159 -28357,25414 -17872,21501 -4472,16765 -34506,15902 -60938,16779 -37792,24563 -59168,64345 -28604,43568 -19946,31743 -62994,56265 -49249,18092 -9293,45573 -31265,22728 -5665,35923 -65141,57363 -65045,59863 -49066,49426 -37531,49729 -10358,31963 -12988,64602 -24898,50439 -5460,14533 -19122,46552 -527,5370 -51493,48843 -49535,571 -57457,1622 -14526,58417 -36300,15788 -62211,40013 -28698,11664 -50922,12971 -37663,15257 -43245,49207 -43085,24053 -38915,58803 -9500,53800 -22277,12137 -60654,32391 -1362,25379 -64571,49136 -11613,21228 -29356,19275 -35216,47355 -43386,47735 -46652,53528 -44324,44578 -64044,61077 -25637,56855 -16661,912 -18958,11330 -49728,16832 -31400,18220 -33830,49638 -64691,56371 -28586,39259 -64232,47566 -34763,50103 -32127,46437 -26909,5144 -37893,3053 -35550,24408 -58545,34130 -64170,26474 -2282,6191 -46605,34215 -57316,47291 -26082,56507 -9181,16498 -13828,14207 -63680,11897 -14418,62591 -3651,61190 -17560,19942 -23738,34012 -606,32300 -61530,38579 -25206,30903 -24325,21615 -33964,17079 -13682,6208 -63632,325 -42346,47543 -49439,60145 -8072,6642 -9575,17576 -6859,37619 -35176,34858 -51285,49991 -2556,53548 -45374,19791 -41414,5612 -21313,24638 -62355,33687 -55887,18577 -8816,7949 -48254,32507 -56945,43876 -58751,16475 -4784,40739 -34519,7057 -35891,2575 -12828,41660 -45134,49574 -5970,21380 -38804,26295 -57464,37240 -41347,31943 -23237,2792 -46214,62162 -34419,53043 -20108,11632 -13597,25366 -19037,58134 -14400,60386 -20196,7703 -8262,56802 -45149,4479 -1584,52695 -37031,31612 -64586,36737 -9011,47991 -4357,38657 -11917,11352 -5738,36476 -52615,9971 -26366,2592 -65376,17129 -55086,56726 -10190,10419 -35736,58065 -45680,292 -19306,8560 -4801,13614 -10312,35047 -38085,53615 -48241,2679 -45529,7458 -11819,40204 -57660,61040 -39561,25653 -25519,2252 -56718,5416 -2090,24611 -52615,40072 -51093,47503 -19859,38112 -64127,15607 -60774,32255 -31632,64952 -8501,41269 -24196,24780 -59709,58774 -39350,40643 -40040,53114 -57835,24596 -48285,42500 -6737,56749 -36731,3391 -40209,10440 -32133,35989 -40028,62734 -41831,32771 -65340,32734 -59069,32690 -24923,60672 -58124,3689 -46072,23344 -55768,38925 -59620,14207 -10976,56835 -4996,55521 -62343,12710 -471,54999 -6389,7792 -42434,51694 -31012,58596 -22453,61364 -45130,29975 -35443,50731 -9285,59475 -64505,25037 -27169,6232 -11943,9885 -16412,39796 -35659,17878 -57595,55827 -2054,65015 -51123,34549 -48756,64707 -42273,34847 -36964,29057 -56870,43129 -7833,26594 -36081,60946 -16335,20165 -20305,14244 -29998,4658 -53277,50411 -49459,17632 -30823,58675 -47459,64042 -48735,49431 -25129,52054 -35093,62690 -55403,42596 -34095,26582 -58327,25323 -39359,18652 -5079,10262 -19975,58708 -19778,54131 -41190,59134 -48145,62672 -25370,29718 -17195,14237 -34115,17720 -24350,33485 -7136,39003 -12447,56497 -49747,34315 -20118,6928 -18141,39593 -25798,63928 -22242,34576 -54618,60939 -44929,43069 -43024,6603 -47186,65289 -55265,37985 -48240,3804 -54233,20254 -29214,39419 -34079,15915 -47945,65437 -33198,57370 -5473,1982 -62003,49626 -55990,10884 -18164,20722 -14799,12688 -54326,5308 -21914,59267 -33909,30055 -63461,3447 -10088,27648 -45975,743 -26558,2686 -141,15220 -44046,20862 -16068,41479 -30974,55737 -50524,23313 -54305,51032 -58779,14188 -59651,61338 -55247,33279 -29676,19002 -58459,40562 -36366,5716 -11709,9117 -56780,27567 -43679,24769 -56839,52862 -40798,62429 -5953,11695 -16539,23766 -17612,4457 -36437,24662 -16712,6290 -14463,60733 -59674,26137 -41809,41243 -40917,13532 -6240,24784 -21292,33227 -40493,31374 -18694,38416 -25944,27196 -5523,192 -41205,11920 -42599,41663 -45051,916 -39813,50644 -46904,4301 -42392,49625 -46962,52096 -43976,41744 -32903,19214 -41365,33018 -15449,1952 -3145,23067 -43310,44663 -60707,28337 -46526,41090 -20481,45612 -61919,18055 -7711,52400 -49870,48508 -23311,5277 -41711,64550 -57145,8691 -64341,13529 -10111,39402 -51810,14157 -59570,10024 -64160,41749 -55825,47405 -17854,19925 -7268,51517 -31582,40814 -41997,33395 -2220,58555 -11341,14160 -23107,25937 -9131,37526 -54619,14670 -16518,24817 -27947,10002 -20916,48838 -34913,15542 -51254,17706 -49431,18835 -13820,9393 -23677,34822 -24354,61971 -16724,64825 -45215,56187 -15183,3674 -17215,16613 -1782,56718 -26510,2664 -48115,4585 -1540,20167 -27185,13735 -5265,26573 -33162,36208 -5171,6394 -51728,49339 -18626,34308 -52801,54443 -36469,10537 -59683,25931 -16993,9662 -53775,60187 -42343,28941 -56731,60637 -29984,27875 -26943,28014 -7615,28568 -64998,58062 -1262,44450 -25001,61960 -33154,14555 -5487,42029 -13804,54081 -47185,30163 -9021,63567 -53146,9072 -60278,28559 -29920,53299 -36280,39284 -59414,42579 -59998,54839 -35311,45532 -43603,50912 -13167,25082 -21468,37377 -55902,27384 -56700,18179 -27905,50531 -63630,42920 -49670,6907 -37841,29051 -33689,17115 -22848,62706 -48743,9350 -32424,6348 -40467,36346 -47076,52742 -51433,36929 -1565,64118 -32695,57411 -3125,18407 -34508,32034 -56917,41476 -18346,11993 -23868,57089 -51896,12268 -38239,18016 -18567,1310 -26820,11349 -23309,44831 -59130,25649 -20776,851 -13774,56498 -51534,21037 -5634,23077 -58585,55392 -55398,44199 -33664,23434 -45594,9810 -42455,43319 -51617,32132 -25183,29516 -46827,60787 -30079,26478 -35718,65410 -29872,25579 -56796,13424 -49729,65232 -50640,28805 -48098,49609 -33561,57171 -30197,63978 -45936,62732 -10973,33556 -45931,8581 -58323,50894 -10850,9890 -23050,60348 -54149,57525 -61078,57513 -8095,22144 -2500,41315 -17951,5635 -15079,34595 -16229,14247 -12433,43413 -48334,45231 -3175,3952 -50689,2568 -15875,46345 -31695,13894 -5315,59924 -60167,60169 -58215,44645 -30922,56648 -1121,33941 -45051,13965 -15182,4527 -25690,15303 -30243,6847 -43813,44136 -49341,8278 -42292,18688 -26206,63167 -62388,47252 -12219,10023 -29969,28239 -38986,34139 -30922,27872 -42664,65271 -54935,48801 -23333,7708 -29075,50344 -46830,19823 -42520,9619 -58856,53858 -45226,3572 -43172,27843 -36795,8335 -43057,56032 -36139,54887 -61806,10393 -65011,4099 -38189,30555 -4675,6569 -58576,19185 -17599,5951 -29991,45300 -3868,58951 -43848,47979 -22013,34966 -24790,34376 -14722,311 -54279,4431 -15111,33892 -28095,852 -383,42278 -13045,37296 -27232,64178 -25408,29707 -7415,28933 -5043,14892 -39203,50414 -20420,4475 -38868,8971 -20414,33375 -46909,53125 -30524,3288 -22208,46370 -8433,60950 -47634,6621 -45937,60436 -50621,13015 -2501,17163 -28087,58607 -50925,56614 -3623,38674 -15191,53313 -57507,58413 -25598,48623 -16911,52217 -24198,39917 -41120,40969 -52410,15189 -40053,29833 -28277,65168 -51794,62661 -12555,19453 -4775,53003 -42382,1534 -11231,47746 -27980,39900 -20062,57714 -61330,37394 -11900,24418 -8614,10110 -61388,42217 -46900,25964 -61228,1274 -4976,5799 -40271,19832 -55683,63081 -5922,39433 -24572,58953 -57480,12427 -36664,8373 -34186,59546 -41150,10533 -65082,50304 -38313,38749 -47668,31853 -42757,56138 -49602,54212 -23434,53727 -689,63267 -64033,54308 -22703,45897 -17850,45469 -38463,26814 -63773,42873 -51519,20821 -17700,11968 -7245,57776 -34210,43792 -55590,49137 -10432,896 -60148,56348 -61844,62527 -47677,34706 -55052,56846 -35262,40004 -11691,34660 -64439,17168 -13229,37152 -55281,4383 -19807,56793 -34765,27567 -56401,51970 -8559,12542 -25441,47809 -57459,8515 -19020,65257 -33614,48248 -37653,8659 -55286,43051 -38908,10754 -18789,48848 -53159,62078 -37987,44134 -24425,22980 -54989,20417 -23641,9301 -39071,55657 -19877,49394 -41711,13926 -21389,464 -55809,57339 -58110,25610 -46920,45977 -41715,37080 -26442,6194 -8780,29002 -18159,52236 -35478,43628 -37969,16075 -1319,52941 -55186,45316 -36580,12020 -27761,64095 -21465,56409 -15155,15620 -42212,45275 -4405,2318 -35738,58578 -22739,9862 -31022,2735 -51674,56520 -53657,42492 -48733,9819 -15301,30917 -12135,54775 -50292,37674 -32814,60045 -36338,19124 -47774,16149 -9720,51726 -33626,4689 -61888,19576 -8028,33634 -29101,63797 -1440,37022 -36274,55319 -57140,47965 -41056,50698 -49057,61227 -18865,57260 -27533,57224 -7667,41343 -42601,15770 -48722,57866 -2566,59199 -52818,31006 -17118,23584 -1633,36699 -16001,24593 -27807,15236 -2757,59180 -30560,27361 -20177,51474 -47599,56781 -7072,16725 -33229,13935 -10996,49331 -12248,25799 -60586,46637 -23195,1143 -48972,25214 -58432,24150 -34802,5739 -62014,7469 -3047,17756 -16468,12423 -781,42384 -17758,18936 -9620,1238 -45668,14641 -48448,2959 -40426,10267 -36960,59331 -11960,56645 -18710,45988 -22998,43721 -22221,50705 -11602,53202 -63049,47778 -1476,24085 -58635,19351 -27293,40092 -9111,54442 -21969,12130 -46267,13480 -59453,54967 -47455,51245 -51544,41298 -59337,17867 -19127,31286 -53631,52329 -14617,62068 -55797,23046 -44962,63956 -36658,59007 -23195,1941 -7907,725 -33733,10289 -11515,34417 -11054,36669 -31811,29013 -10287,18538 -12167,62159 -41361,47387 -43878,9677 -2083,26754 -62478,47703 -44628,53442 -21306,20619 -23363,39248 -8070,5833 -22044,20038 -26381,15960 -36252,62684 -64799,58 -26918,32184 -31505,44723 -62086,18530 -47953,36744 -20218,5264 -8829,60095 -29945,57666 -11722,14760 -33388,29925 -2194,30484 -38089,52263 -20759,34360 -24149,43532 -17382,694 -63084,14890 -19993,63577 -27631,327 -32849,46216 -41884,39071 -37128,24865 -9835,17820 -38062,65155 -34155,10150 -49385,8257 -63776,61259 -25428,19082 -46610,1638 -49840,56651 -64313,51440 -35787,3975 -14518,30469 -42709,37347 -7067,16404 -18479,49229 -1439,58061 -54219,32481 -33720,3021 -33020,61695 -45616,55030 -45869,48468 -34865,59406 -12406,10609 -10769,46733 -13649,38689 -13202,59749 -20616,51767 -27886,43480 -48604,51896 -53687,47518 -58230,61036 -32906,52455 -39866,4436 -50199,13611 -31509,51663 -45666,56226 -2718,49118 -7006,54218 -11487,26592 -35043,3099 -55377,47346 -10583,64211 -43936,32941 -5362,29253 -56784,12677 -46049,60084 -45962,43553 -5918,22815 -47855,6500 -63496,22709 -39363,42103 -6344,59792 -28018,29889 -10494,16481 -48695,50806 -6824,21577 -21999,8951 -31927,24697 -19993,53601 -4387,48754 -14878,57588 -60668,50147 -3452,20201 -16735,40334 -29040,28713 -52479,8811 -53694,60857 -56114,42824 -34553,42001 -61342,3073 -17419,27816 -29507,28692 -28276,16965 -11705,64173 -13553,23563 -47692,10572 -37046,37753 -20262,1074 -8884,30775 -1999,37998 -5384,55203 -44074,19983 -6469,53694 -12034,8106 -11708,3089 -12469,31605 -45118,14186 -45012,32748 -14607,23539 -22156,19630 -4088,52905 -64860,51138 -3207,35890 -38555,17076 -29688,27600 -9981,50083 -29363,40227 -22504,35804 -24926,59333 -62510,40022 -3333,50020 -16469,27468 -19993,43953 -16617,20414 -51372,60350 -57551,24008 -62053,60392 -29756,27803 -46645,7835 -36139,15010 -9521,58300 -13834,7315 -46585,46559 -53466,21406 -11257,25878 -25645,49227 -9991,62730 -65201,25494 -31861,56113 -43376,30761 -44459,64352 -55120,59283 -6071,60219 -48476,50498 -27542,24406 -1116,55099 -3741,59020 -260,3031 -59534,28488 -19215,65252 -26564,19706 -31244,41868 -58161,32315 -26308,41519 -51428,27802 -10897,63057 -7575,41412 -269,30753 -55622,24321 -13493,16731 -43092,63536 -25112,64841 -61712,34913 -10824,39654 -60739,28463 -839,43340 -24179,20055 -30644,48423 -31520,36567 -24423,57086 -41759,37562 -63150,55946 -33020,50802 -17194,51866 -43774,63894 -61432,62230 -44750,58903 -52142,35653 -22415,2361 -45309,4513 -16280,63638 -41140,49132 -18394,3924 -2460,54447 -17725,61368 -1840,43442 -1078,11954 -44678,37163 -9019,39874 -1952,52578 -13202,48433 -48488,26381 -50670,62541 -3057,519 -45398,11327 -44080,38838 -37379,18405 -28570,20243 -49910,44439 -4355,50507 -46372,42196 -43762,12402 -41345,41759 -39063,15534 -38472,51663 -60612,41857 -29291,49398 -2780,42060 -35198,64224 -4333,54618 -43594,21626 -11195,11213 -53483,21937 -41263,59139 -27152,46535 -27613,37464 -31037,61947 -30289,8408 -46095,40036 -25626,34428 -20389,61873 -17196,10137 -16493,16007 -6871,62942 -55977,56987 -31000,30887 -60858,61339 -22410,5041 -11895,6614 -7429,34309 -5315,48012 -36854,8444 -12181,62209 -53001,2614 -36689,29815 -62261,20395 -19525,32955 -57286,52191 -44103,61701 -6283,11025 -47610,25262 -8966,33460 -60793,64020 -59615,51438 -59866,46166 -42992,6794 -9353,8793 -703,19582 -9934,51322 -13658,36486 -56009,51083 -9296,40923 -2352,37201 -13236,29674 -64145,59119 -28738,20935 -8974,48015 -57325,46680 -58872,8212 -36961,58114 -49158,16513 -55693,12241 -57295,36933 -9058,34347 -8780,39755 -44365,28694 -13538,61564 -14122,63190 -54067,49867 -41650,58915 -43272,12355 -672,65425 -6030,14589 -14810,19570 -10538,64860 -4347,51738 -46928,43435 -24925,31128 -18836,47108 -12807,35385 -25839,63696 -62494,46782 -43697,54203 -55144,38113 -46353,48976 -11322,46183 -35217,46139 -20121,49392 -49810,43653 -11982,27611 -15884,48929 -58777,21653 -3084,47907 -38058,27792 -692,41089 -25643,35398 -10873,33587 -47888,563 -57450,64727 -49986,23014 -60204,43280 -32445,5361 -39773,45726 -9869,48471 -51212,34835 -49639,49566 -26926,31178 -34342,45407 -44843,33122 -14029,31232 -36257,7830 -16510,14619 -48853,4265 -42803,18145 -22225,2111 -12806,31818 -41492,20544 -22079,32547 -31270,11051 -34755,57918 -44352,56590 -17910,22022 -63883,21377 -41622,50917 -26361,16199 -10579,49539 -28251,28395 -55810,358 -45185,33034 -19358,31054 -49678,4824 -43295,42146 -4856,50666 -38383,8224 -62194,26196 -36650,43784 -53154,2161 -54823,15870 -58712,25821 -35342,18330 -24850,60614 -5088,33048 -30026,44494 -48790,65428 -56608,229 -3255,22473 -36694,42994 -5922,3059 -12503,989 -644,38757 -8065,63102 -55082,27428 -31337,31598 -64592,45945 -33264,35381 -62940,35670 -35411,44007 -48373,34396 -38854,1327 -4809,30609 -54352,44018 -62623,3861 -22901,26384 -28462,52398 -16128,56887 -49913,31956 -17690,8757 -11340,62125 -25151,61413 -42647,14828 -41279,24849 -31957,8933 -31569,37350 -17545,19589 -48347,6653 -4210,29660 -5418,57834 -25014,62113 -46826,1448 -55039,10761 -52935,35658 -42216,50461 -12297,59733 -3777,9076 -24236,7938 -6486,40381 -41297,44473 -829,29879 -24490,16051 -54240,6514 -5660,45919 -24690,60777 -7098,21091 -41078,93 -51894,33301 -38209,31320 -1322,10742 -46308,3265 -23760,50742 -21588,20702 -36400,64167 -3397,44310 -41396,26441 -16674,23517 -24026,29098 -9226,38890 -6741,16156 -19433,36223 -15373,58340 -58908,37879 -49674,1518 -1263,11547 -47420,52228 -46957,16889 -6383,62276 -11412,41371 -50915,5533 -39045,58212 -14387,49339 -29982,46756 -4482,3330 -35759,7688 -6166,70 -62388,43840 -280,12440 -25647,52454 -2821,65324 -57446,7627 -14795,41982 -29921,12498 -22168,82 -31523,55374 -18537,57042 -47760,5861 -4565,23950 -25801,24476 -59023,52863 -59273,23461 -50574,62219 -24391,11924 -39206,12699 -21243,56876 -30115,39358 -4173,43610 -50988,44179 -54789,43962 -3876,15581 -49554,48575 -37748,17341 -4256,21476 -25230,51754 -57221,44509 -47976,9090 -54319,37672 -26809,23418 -62373,8713 -33093,3132 -53490,47916 -5558,64376 -47551,24956 -49840,64292 -47277,15793 -32481,41222 -30011,51182 -46382,8205 -36293,14426 -65142,46276 -6086,64654 -46759,8234 -1675,36858 -1042,29560 -10432,29375 -58931,20521 -31060,62890 -34900,38209 -18574,59812 -49572,23853 -25485,44099 -18737,31523 -29718,49756 -1650,25705 -42749,33385 -4969,15391 -30153,49088 -59125,9600 -8120,42634 -61413,52142 -4121,58429 -10179,39601 -17707,19405 -30323,25962 -30794,23397 -46702,33978 -44617,55639 -6734,18844 -44310,51244 -42175,2192 -6044,47232 -59325,28444 -39771,9818 -12199,42412 -58033,4890 -229,50749 -43937,27343 -17738,27667 -51410,55663 -52384,15900 -24910,49622 -2995,54811 -49575,46036 -9555,10664 -54006,49327 -31942,4406 -28693,53026 -34528,9242 -63821,10169 -42568,22107 -49557,10609 -52057,16714 -11512,35186 -36303,40054 -29685,27522 -40512,45448 -27295,5642 -36370,30749 -60616,43858 -46682,8931 -35295,46907 -54478,59761 -40184,61724 -20617,14151 -28624,30860 -25574,27728 -33903,40025 -51845,10112 -55551,35849 -27953,18620 -28613,44504 -19458,58456 -42703,51240 -38682,45919 -26733,58005 -42588,60665 -59519,41578 -58659,50372 -54214,9899 -56768,14649 -55427,42924 -32474,36181 -19439,34844 -8645,64 -14264,24574 -21345,21511 -42928,3117 -20814,14853 -8120,30853 -24572,18506 -37338,49282 -31574,26213 -10156,61881 -15627,30177 -14139,2994 -27519,5167 -65074,25540 -61879,40695 -62607,46352 -63556,56887 -20600,25545 -47442,55476 -19061,25128 -19520,13866 -53810,62634 -49072,57282 -39700,16333 -826,51672 -63411,41034 -30042,32154 -5237,58269 -18369,60726 -20931,24144 -6109,19551 -231,56367 -10166,37072 -44382,3488 -39492,35366 -54750,56934 -25182,55471 -63863,5639 -34057,9873 -25280,19826 -33300,11201 -19301,38040 -46620,37824 -63345,42752 -61732,26456 -8052,47286 -28412,52656 -30376,30804 -61824,49085 -36452,21194 -41514,63480 -23090,24257 -43616,40306 -21976,645 -44174,42350 -13282,7618 -49717,5459 -13944,15381 -21074,57284 -10941,48803 -32325,34506 -18318,58001 -45923,25640 -21460,15009 -37950,47076 -18410,29742 -5570,34189 -38630,38580 -38752,31555 -55444,61305 -31310,6853 -25288,17751 -20266,32617 -23015,41551 -48063,35142 -61117,13138 -29562,51542 -52136,27486 -53159,46015 -15236,41508 -22071,7326 -873,32882 -28363,34700 -53228,57271 -60201,3082 -41798,50293 -25143,14892 -44840,50242 -6898,18408 -43426,31658 -62626,61878 -19256,25163 -32909,49215 -20431,29204 -38942,41893 -38877,16590 -10933,41909 -57083,61320 -27125,25931 -26338,52753 -2895,12712 -18060,1540 -29019,466 -9714,707 -43842,14429 -36655,38724 -11135,64609 -2251,47918 -27386,39142 -53003,432 -47559,5612 -34793,254 -34132,61445 -15198,52110 -60336,12430 -64821,16586 -10538,27515 -15791,11106 -20499,58325 -42105,39508 -22496,7460 -30099,18962 -6193,8836 -51667,4824 -34794,33200 -54342,1717 -54472,53700 -13175,39577 -3726,63637 -29707,9049 -24573,3300 -10066,52977 -31449,21409 -58178,42389 -5205,18881 -48918,45095 -2337,20348 -17499,51247 -52851,24855 -64627,19667 -6184,50079 -41853,29580 -10663,5272 -24019,19881 -22939,34935 -19898,18853 -52017,63853 -25538,1321 -16896,54854 -41490,60148 -43549,20093 -31784,13875 -28871,53563 -59720,16801 -4054,294 -44909,58686 -24410,27965 -44900,48931 -12481,46664 -15125,40539 -42315,22118 -49527,33937 -32369,6370 -25550,27413 -39313,38842 -32868,16718 -21229,4548 -45258,32926 -48839,35117 -27391,7440 -40481,30996 -61371,30428 -57404,15889 -3083,39777 -39919,11490 -32251,59981 -2264,13242 -37045,5983 -56803,15087 -886,60617 -12010,27153 -55848,31735 -1392,57939 -32488,47179 -15246,16865 -32357,40539 -54711,40035 -52323,35856 -58286,25128 -46997,48702 -10576,2102 -5306,23644 -63381,19223 -35564,14072 -28411,40216 -30275,33451 -12962,26826 -1998,57060 -63538,50271 -45410,18492 -9833,6316 -47753,6132 -31362,122 -63084,17618 -10938,63568 -26820,48066 -18098,16131 -28774,56679 -3723,10623 -27337,36384 -56127,3219 -11119,41854 -33856,6049 -17979,4782 -37471,35810 -6121,30204 -6200,33346 -56684,20328 -38635,517 -48763,46768 -31558,21191 -14094,407 -18746,9252 -25662,56150 -18046,17715 -53846,48638 -3162,54854 -45278,65276 -10005,51157 -33506,39144 -6031,32264 -59453,14182 -23439,25259 -25254,25047 -18234,31692 -12197,62995 -25789,30873 -32577,4202 -40860,10467 -23231,7221 -26537,22221 -61649,18187 -28366,21317 -11922,12987 -11955,22005 -59932,1073 -46528,20163 -18365,52964 -31552,10427 -33625,27779 -4159,58854 -44016,55352 -13754,58298 -51892,54351 -12536,1322 -28514,50671 -13166,25802 -7438,42683 -58816,55133 -47115,49719 -8410,7501 -64826,34268 -28968,908 -10746,18562 -31429,7016 -57774,47893 -60189,45421 -10221,12889 -14097,61323 -42686,24532 -58683,22412 -1074,65279 -49198,62593 -25432,26176 -54442,11368 -36822,60316 -28364,968 -15008,13734 -15631,31819 -16592,18197 -1836,9320 -58389,3760 -27486,2663 -17263,52868 -21281,25677 -23156,47061 -61389,57627 -7414,1711 -32866,48443 -5279,26720 -65382,40336 -30117,6223 -53715,51743 -38615,62758 -47843,36473 -41576,24828 -51122,34108 -25098,57386 -45686,54018 -59173,20809 -21351,37071 -23710,16500 -10856,49982 -27641,35276 -58573,53348 -29715,40109 -4377,58259 -3030,63913 -8686,23631 -58843,21117 -831,8929 -7292,42901 -23880,29206 -35588,34669 -39053,23530 -63116,6935 -60348,57860 -30669,53428 -55897,6712 -29,28966 -26598,47357 -21472,5251 -17342,5410 -17668,20334 -64717,63782 -40763,41011 -13074,64386 -48796,33610 -8940,52957 -37446,18239 -1183,9273 -33451,15436 -50335,10321 -63372,44638 -38830,12354 -42581,64693 -6314,14793 -13410,26596 -11607,23284 -31382,15531 -44300,21489 -38966,64028 -13332,59957 -49545,56340 -19081,2534 -33673,64727 -65265,49585 -2854,19551 -14722,30204 -19608,64857 -54984,18160 -51985,64552 -26931,43975 -60294,20781 -41950,13797 -60964,54390 -34262,40551 -20669,13879 -1208,41290 -6258,37659 -22279,42322 -10583,25826 -3674,15146 -44201,56055 -1756,26689 -35656,60926 -2735,27685 -41457,47535 -52605,35027 -42161,24910 -16898,21897 -31513,27627 -16222,9990 -38735,42356 -27841,30912 -37688,38700 -63368,34982 -57063,10785 -39287,8684 -49591,58367 -51018,34049 -64009,58354 -29241,65481 -19184,14787 -33875,13339 -64969,57017 -50464,10931 -39148,35671 -20477,64114 -457,13198 -37633,64539 -47053,62814 -28162,19076 -38379,37867 -59713,34683 -20027,34112 -24828,15839 -43932,11559 -44338,27799 -8258,12429 -2519,56116 -59843,46837 -1098,32570 -35205,38629 -50612,27021 -51834,29066 -4414,5649 -2440,10340 -51851,21697 -7067,5324 -33949,55841 -7993,28644 -96,54678 -1039,18688 -20226,10248 -21220,7170 -17277,12000 -23566,21895 -64297,53411 -63607,37553 -10223,60215 -44918,46685 -60194,47481 -42462,63854 -366,29474 -9220,44861 -56216,48532 -48910,64835 -59049,64073 -13060,54491 -31358,52430 -56838,55175 -23947,57348 -2581,58957 -57512,9207 -34201,2335 -43587,13607 -31171,36111 -14461,12525 -21300,42986 -29908,11313 -56762,11148 -64127,24272 -22508,7057 -6426,49402 -62711,25920 -43463,47232 -62474,38060 -919,47541 -7806,61191 -22416,17616 -43992,32366 -43233,27478 -1188,3601 -43256,30642 -22199,54157 -49002,23887 -46704,3685 -58559,51198 -63435,53312 -52734,65200 -22281,32799 -48715,49847 -55734,41374 -18107,16180 -21032,880 -40316,1102 -5918,38410 -60754,39342 -31524,48837 -50647,10434 -30339,59290 -40692,42334 -52936,64737 -49968,38561 -7817,60517 -43198,13654 -25189,42937 -64797,32155 -13914,24308 -19476,60511 -3280,63126 -6980,3142 -34801,50283 -65274,50967 -52927,21784 -32682,1006 -14289,41810 -35242,64155 -16630,29908 -43305,36073 -32404,43547 -20003,34886 -21773,9038 -29160,52828 -62168,41379 -37199,47276 -36201,13193 -56678,1546 -50921,48982 -20517,1786 -34827,34107 -63534,10645 -65458,42082 -12153,43819 -50028,29683 -37498,24751 -50210,10831 -27363,29095 -42126,62052 -34457,52091 -8037,52261 -33360,36969 -41331,17550 -17303,40870 -41643,37578 -28295,49223 -16258,64105 -44514,21906 -31536,51214 -29299,46752 -19088,62510 -6508,44590 -26188,58970 -38950,16540 -16925,30608 -56871,32677 -54975,9296 -49190,38811 -47497,6989 -61294,42263 -21623,9261 -47596,41160 -18444,784 -55852,14903 -5370,38024 -10522,43293 -26907,48478 -18186,68 -46559,64001 -59565,52259 -33503,30068 -63034,9213 -23068,35268 -43482,25017 -57322,29199 -3032,41950 -11346,10159 -61111,47192 -710,23140 -2423,30625 -18380,15435 -35643,63151 -53896,45523 -59389,27350 -65383,54486 -56734,883 -49877,41539 -35766,4793 -31513,49770 -64747,8478 -38242,680 -42019,29188 -62141,45185 -3941,24140 -18164,64709 -55325,58693 -1147,54422 -57925,12201 -63450,37737 -22884,15271 -7733,50848 -47477,47749 -3705,53104 -56550,20017 -34827,49297 -10413,60314 -15213,30308 -12493,2658 -24044,4066 -22400,19292 -29273,28535 -15194,36964 -10868,63837 -4600,42342 -12004,15524 -60293,32368 -30348,27857 -43895,22519 -17642,41911 -46264,24335 -19515,21351 -10135,254 -38779,64511 -25908,38637 -56439,56314 -6313,58680 -33682,35495 -55393,64377 -60037,23945 -35378,48880 -32532,26752 -30163,19732 -37089,64286 -4177,63580 -24673,28432 -62676,60755 -33480,27158 -16108,19890 -36831,20705 -3396,53973 -41684,65395 -55175,43126 -44489,52890 -9460,15652 -56805,49315 -17976,24447 -44813,29458 -61897,22394 -38583,28688 -52718,20334 -26364,37976 -11183,5695 -36954,50459 -38106,31731 -14343,8339 -25633,34438 -33757,14881 -20864,58340 -36715,48830 -60142,12287 -65335,45214 -11113,65534 -48557,64192 -39464,38710 -16432,48300 -25575,17888 -33571,22915 -1803,18407 -56398,39579 -49990,49081 -4539,21394 -42598,54546 -8034,56715 -19935,3404 -228,34192 -13593,22665 -30939,31597 -34752,38459 -14015,9102 -41535,61199 -9331,29309 -12057,48143 -1684,39831 -31216,47275 -6894,16316 -49656,10054 -19587,38304 -38457,34552 -53293,18247 -6620,23505 -57645,39646 -25829,46573 -14337,22167 -7473,51116 -62018,6333 -35758,11999 -51206,15018 -50483,4259 -60718,34628 -55425,54196 -20348,61347 -14580,20289 -58539,4617 -36537,52987 -29968,11406 -28247,31425 -35432,54707 -1513,28866 -48065,62202 -47943,56340 -27137,18583 -53077,47063 -53757,9362 -17416,18638 -28748,49252 -49722,64273 -60106,3639 -6800,28275 -53481,26589 -64888,2546 -38253,7273 -9803,48196 -18123,5312 -27519,63296 -61373,64893 -27612,39863 -39719,36686 -2004,8673 -33718,31204 -57253,61540 -49204,40124 -28014,48829 -57323,41343 -48155,61358 -28184,14266 -21820,53028 -24689,33018 -13322,57237 -13090,24588 -60,30343 -21680,22485 -45272,64246 -11804,54069 -41800,60241 -10147,23300 -48232,56467 -59070,40871 -24849,9230 -13886,38439 -30907,11071 -59888,17195 -57604,12483 -24257,17182 -33901,44040 -64798,19219 -42852,18454 -17795,38784 -5953,60371 -45243,8915 -14346,19313 -8891,40214 -63374,13157 -51763,59308 -24883,31307 -10870,44538 -22447,29797 -59557,38555 -48878,58200 -9870,28152 -41909,32780 -54235,31848 -29612,37583 -40766,42844 -45129,22831 -12399,29722 -35996,44649 -58802,17508 -10444,52049 -47633,56485 -37743,54719 -58143,5399 -63795,54305 -53123,25168 -1055,56703 -3593,60492 -5865,13220 -29226,65071 -40971,46701 -37631,6135 -60059,13056 -24226,62097 -50450,61724 -48752,50385 -37284,33525 -47758,62028 -18289,28635 -42241,13876 -64443,20162 -58698,29878 -22311,3192 -48689,32354 -4835,56367 -60978,34787 -35340,11513 -21040,52536 -9339,49967 -5072,6498 -58140,22722 -52654,50812 -49752,35563 -12479,4506 -5956,49629 -3383,53017 -65224,54487 -26007,25239 -56851,45541 -27967,45857 -62900,28308 -65138,16728 -6116,56725 -46262,12726 -1012,28704 -29201,62944 -21335,9963 -56768,11284 -49905,48073 -25432,60605 -42899,21342 -62762,62610 -53036,27869 -53137,45016 -1642,33171 -50419,44303 -65208,59311 -48065,26943 -20889,51866 -32300,60159 -30585,27037 -30610,24702 -56713,23012 -48188,11091 -47631,50868 -40301,12105 -61249,35249 -31207,7979 -64897,65284 -48480,65281 -3116,54553 -27685,39326 -61637,61081 -43132,50142 -6336,15941 -29630,17517 -23398,19353 -52297,58251 -35061,3922 -35386,14220 -5607,34980 -54030,33677 -43742,1636 -42483,20221 -4124,12371 -4045,43044 -23016,63379 -37398,6235 -1963,28391 -19134,36295 -53745,33754 -14506,35510 -54703,32979 -60108,55225 -31117,26463 -60020,63081 -58424,32245 -13054,36678 -44311,31095 -48804,1860 -4224,55033 -18623,26955 -31825,25497 -53269,58651 -5780,47968 -50961,63826 -19710,61879 -48048,53656 -26677,9115 -8071,4000 -52576,13472 -6098,6886 -54328,57657 -26193,19751 -22747,30266 -40023,60640 -28301,53111 -59646,1290 -30,30548 -27899,14516 -52891,7162 -44367,14140 -9375,59723 -16079,61125 -13182,34419 -49506,55 -49976,55778 -3531,45546 -45227,30924 -11831,53010 -8372,15109 -45042,62351 -28972,25982 -24387,54626 -50453,21748 -5458,55089 -47528,20097 -52592,38499 -27781,11408 -25282,59894 -44204,1689 -30016,11013 -58052,11693 -24157,24350 -40914,56472 -27875,51081 -52856,53731 -41663,11407 -8229,60453 -46862,58235 -59647,11038 -59767,55239 -50413,6803 -18717,42101 -3756,36634 -10271,9272 -18885,5292 -50410,9232 -17422,13290 -41281,1366 -13283,20802 -64555,19542 -26388,9689 -33642,31349 -48734,21124 -33440,21598 -6697,28056 -60054,20446 -7789,46654 -59804,21093 -9717,24996 -28074,4361 -40042,56882 -59383,49052 -30012,14644 -25543,15003 -44289,13054 -28186,36105 -11492,60459 -21492,38081 -39282,10451 -57279,18422 -19682,63948 -57026,10580 -29039,60391 -8976,44660 -41240,30169 -53872,56385 -48330,743 -22039,33392 -26708,21345 -48259,48467 -28701,10500 -35489,44486 -14116,16093 -47638,8638 -13557,59202 -60744,15335 -42087,20501 -63686,64501 -25456,40951 -22251,881 -59383,50660 -51232,17193 -6320,63528 -13616,14669 -42778,6258 -43948,65037 -35411,1916 -53024,24501 -19941,44704 -25098,37602 -61908,24334 -26873,61145 -48468,37179 -14271,5892 -4059,16853 -36226,47231 -27143,34041 -6749,22686 -3435,16465 -45788,6752 -18670,34623 -53472,53139 -61895,36594 -22560,3321 -49906,56525 -33644,16610 -4625,41315 -16530,5635 -35253,14082 -57392,60566 -52686,59916 -36308,53898 -27462,58362 -52129,19929 -6070,8447 -59074,25673 -49304,7519 -59566,50608 -50271,10151 -48488,65135 -49786,56492 -9953,43003 -45985,3048 -9280,23725 -57855,43957 -36777,47598 -42875,41847 -26097,43430 -53443,52564 -8507,47291 -30305,6256 -59065,33983 -65394,24942 -18592,12448 -23960,20251 -783,12975 -43495,14600 -17386,2087 -39006,57814 -61948,50662 -44244,65337 -59998,6862 -5135,10025 -15271,21414 -15519,21843 -21442,12773 -63460,15357 -30882,26522 -45690,26328 -3227,47932 -55473,31824 -43684,62078 -42554,23324 -54060,54670 -41999,7766 -44917,2574 -53973,30945 -31019,1518 -31534,3326 -10477,24236 -21192,43915 -60622,55036 -50397,13533 -44771,39053 -45292,27845 -55811,11365 -63940,48047 -30968,32524 -41171,24865 -56311,50435 -64308,38085 -62462,11045 -30488,52483 -53185,51443 -32061,43092 -28440,15495 -44259,42964 -2806,3094 -47792,48375 -1955,47949 -33148,33681 -39849,19106 -12082,9987 -62739,43099 -4810,10404 -18322,12699 -29913,32664 -43352,17527 -64715,16573 -11862,54753 -30667,56419 -16807,39904 -46637,28722 -2317,36934 -20146,45029 -51951,27202 -45283,12723 -34602,63807 -22369,65060 -10510,12050 -30051,43129 -62024,19999 -8663,17824 -62050,16487 -55346,40223 -31620,551 -19541,11316 -29465,19558 -43928,9589 -40203,57435 -35370,183 -50704,65061 -9464,39690 -55488,3287 -60484,9982 -64083,19365 -33380,22160 -12513,21943 -61990,9386 -6419,61590 -12635,16902 -50354,33827 -26860,7329 -19596,54901 -57330,51514 -57695,38918 -54441,52558 -54254,32659 -58211,24306 -64708,6721 -58865,11781 -62165,57625 -35990,35223 -55196,64122 -49315,61851 -50189,59835 -14134,6948 -45622,33782 -590,14715 -15765,2109 -31337,40515 -3265,59556 -55830,22531 -23181,37718 -64600,48219 -35413,44269 -38699,62736 -55147,4344 -57280,44646 -9650,62566 -11318,46567 -1897,49650 -24089,54066 -40591,52577 -24131,7925 -64150,15492 -31519,51631 -33194,40578 -8171,43484 -31094,62240 -46136,64484 -12920,49225 -45082,28637 -39901,4121 -29988,62773 -32788,23485 -2868,21649 -28726,51091 -26703,46354 -30507,11495 -14499,7794 -14007,9866 -1590,35479 -772,30215 -49605,62290 -55088,39664 -30603,4979 -17758,23951 -29037,63566 -19645,28413 -29645,63666 -24137,56098 -50531,43520 -47444,29708 -44848,1091 -6601,2164 -9921,15813 -27901,49437 -60785,64352 -32334,21586 -13676,51850 -51015,248 -21416,52309 -14018,62779 -58358,33625 -41326,36814 -56197,38206 -18068,47312 -19469,11365 -52013,61848 -54385,53802 -30516,17061 -6566,39270 -20020,8612 -2269,42133 -18508,19009 -44161,40968 -36400,52916 -27990,34985 -32842,60320 -12511,62957 -9248,52933 -1600,40819 -48887,23719 -23588,24065 -24150,15087 -17870,5073 -64549,48078 -36481,6136 -49724,4054 -35106,23622 -30968,51043 -23557,13951 -34945,22312 -9211,59554 -27079,31730 -34288,31602 -11798,49378 -49313,12278 -45812,26394 -44486,12885 -8403,37612 -2949,37455 -10455,57057 -64972,5941 -33180,21383 -53087,29605 -4846,32403 -19091,5323 -28981,37438 -17909,3937 -54435,47068 -22746,24068 -38008,49334 -20293,13497 -26349,5397 -28876,36034 -34768,15054 -10285,45856 -46868,64671 -47477,3433 -7799,6862 -3723,19954 -60746,34646 -53319,2856 -46013,34328 -27851,9191 -31307,15214 -2331,5265 -13002,30840 -43752,13562 -22212,59825 -1845,59326 -37721,62574 -23595,19152 -5164,38344 -38698,22621 -11724,64236 -14757,35350 -49406,22540 -19122,29360 -17121,32479 -42185,20610 -7046,40492 -29148,12509 -8055,57392 -29976,43465 -3282,26759 -55619,14863 -41392,61586 -14155,30239 -21242,13362 -23985,55106 -20561,63287 -9057,57574 -16112,30394 -23698,35329 -13781,37704 -24338,56320 -17171,37438 -22966,32892 -23811,16056 -54297,46825 -62247,3732 -5501,59496 -9124,34953 -30636,55706 -55931,7665 -3568,1754 -210,37619 -6243,51773 -24494,22105 -22364,29583 -23724,50604 -29777,31265 -18228,58600 -6439,28448 -36056,11856 -2244,25307 -10567,34286 -43067,4693 -415,63372 -33841,14569 -51194,21489 -22760,12227 -14832,58540 -64970,52135 -30510,62403 -23849,43087 -43955,16567 -22008,33377 -47009,19670 -55714,22262 -60860,4330 -56487,15468 -12623,28794 -37913,52561 -33840,10113 -32515,14769 -14536,4567 -30128,50510 -47794,5630 -57920,22264 -31025,39146 -31086,60070 -6197,55016 -56422,563 -45422,9393 -52546,21375 -37226,15436 -57696,20039 -35723,53323 -13594,16425 -38486,7346 -64907,61482 -54005,22756 -64317,23837 -9100,24297 -18884,64652 -48923,44067 -50497,22616 -14639,35223 -17871,57202 -39748,43752 -38760,55460 -25467,35556 -24499,42813 -6196,45757 -30138,16325 -32795,57000 -31588,28081 -13716,44603 -62363,6131 -33134,63479 -56203,21905 -41080,61276 -28534,46080 -54629,56236 -1860,45199 -19456,62064 -54476,6668 -20858,8282 -36984,60145 -27899,40410 -51411,43025 -7095,20777 -56,10069 -34163,40258 -24315,53673 -52735,17668 -49857,23345 -26945,2173 -49349,4381 -29299,37946 -31097,32771 -27313,12089 -40269,721 -57772,1007 -62316,31689 -64131,34052 -4430,9063 -49431,25997 -1496,7877 -26028,27233 -44486,40283 -39895,64013 -25694,9632 -1755,37911 -1169,9893 -64441,54524 -22707,21832 -25888,22495 -38275,33229 -59181,19202 -49373,11261 -42568,63969 -54298,5234 -62709,1641 -447,33093 -55328,38531 -27394,50099 -7423,38069 -60669,45787 -21474,27842 -27061,430 -17718,15984 -64844,35329 -31241,49759 -23069,56693 -60902,53816 -25454,5532 -52095,55697 -51967,16307 -2813,24407 -27537,51628 -11130,52184 -11645,33748 -30744,29226 -46128,38555 -11280,3498 -14825,30174 -55670,33300 -62376,30421 -7405,15359 -35464,20797 -9754,59212 -10823,37128 -25025,57949 -63104,9109 -19210,17696 -47049,14832 -9516,26583 -40569,8512 -24620,48656 -60104,52610 -52876,62786 -23983,32979 -10774,51922 -60713,62880 -28534,13961 -36973,26419 -48028,50499 -15089,51086 -40515,16649 -61969,18348 -49926,51917 -46443,37145 -24782,50909 -11627,29414 -26357,18686 -14594,31412 -45278,2238 -9201,64382 -47275,18166 -61370,58723 -963,62480 -51771,12695 -11207,22619 -18681,49512 -54361,21836 -53631,21019 -19536,31576 -22105,55614 -5024,43463 -13325,7797 -3030,40360 -49164,29424 -51935,5387 -47008,16428 -28672,16182 -36425,43018 -55766,22218 -37895,26651 -674,1352 -43629,7089 -3717,18950 -35387,7996 -15595,18396 -5771,59851 -36046,11563 -25594,55164 -11219,23590 -60353,55855 -28218,1043 -58790,16778 -64394,26448 -45125,41022 -3115,60916 -29332,9997 -29979,15256 -60108,41658 -3090,63437 -31345,3051 -38008,2534 -63850,43945 -64075,50392 -28336,34910 -10926,10935 -49430,48768 -57927,30706 -1735,47506 -25779,33838 -47384,38679 -27465,40450 -57634,53144 -60707,25584 -38431,39602 -26765,34927 -59236,60868 -59595,7516 -56935,4572 -42991,23536 -48969,18705 -37479,19789 -47353,31003 -54722,62470 -34092,9382 -58257,10097 -50454,54694 -48143,5026 -26576,32772 -16858,17649 -42303,393 -38072,23747 -869,19074 -7251,23010 -30607,11749 -43465,59285 -59975,60081 -3804,16586 -38490,62594 -7709,3243 -18664,43801 -24019,3416 -677,26250 -41378,26746 -17464,30595 -50610,31922 -64156,38688 -49309,10450 -13420,41541 -36150,13746 -25639,59539 -55266,29709 -11061,23885 -40849,33394 -1721,13370 -10134,13127 -64195,7769 -35387,34666 -25019,46601 -58196,14254 -35041,29805 -12676,28677 -63415,60775 -63802,42166 -60818,16186 -6041,1512 -31873,37873 -19264,3011 -32543,26041 -11350,15580 -48633,5191 -36561,20972 -9727,4064 -4013,15885 -57830,59582 -36538,55633 -4034,4762 -18804,7524 -1913,49855 -11980,4421 -57219,58864 -44049,37447 -21833,13749 -6061,47599 -42242,15630 -17527,33257 -12384,30845 -34296,20220 -30834,60224 -44182,1138 -59917,2026 -7586,35768 -3040,22906 -22371,6177 -5795,40726 -53480,49153 -53220,58084 -29733,47826 -21689,38434 -51457,58598 -32299,65220 -15907,59633 -52076,4334 -12370,22470 -64844,39315 -16187,22893 -49553,49563 -9322,6099 -23740,17281 -13614,47828 -1393,20266 -3054,4983 -38992,33827 -63509,20920 -19818,55081 -33570,4462 -2629,36886 -1573,25403 -17543,25998 -18624,63245 -35226,39254 -55153,19806 -4662,15071 -26268,56208 -32306,48722 -16153,26375 -36700,41955 -21296,2254 -25056,55479 -2907,28862 -5893,30131 -41588,9386 -7450,63196 -61580,34738 -19169,23301 -52177,55717 -39648,60988 -44149,23318 -49365,53100 -52538,9177 -19675,58328 -65075,5939 -33342,42926 -50888,18758 -15528,59697 -27764,5756 -27631,3716 -50848,12349 -9713,2255 -51660,5766 -48701,51663 -24795,18247 -4412,41290 -7860,25809 -37503,26569 -56511,14144 -22997,30066 -20568,24807 -37799,29971 -57669,48263 -4525,64788 -12646,45374 -51217,36894 -37516,54254 -37658,62896 -1208,42453 -59391,37934 -21065,23498 -16421,41664 -48316,45131 -56903,32309 -9567,51684 -11769,64764 -9378,52016 -10699,13542 -1132,19293 -15438,16097 -24093,63790 -45094,32865 -13936,48094 -16269,46476 -421,20221 -6686,52727 -58559,16976 -44697,55871 -49466,1236 -25735,17067 -21946,61459 -43750,46840 -13030,22673 -50308,45232 -46124,26241 -33846,45791 -25028,2537 -15412,29547 -13300,28809 -61092,49682 -21269,28049 -42148,62384 -2910,60063 -26776,7571 -58750,62144 -22756,57331 -52071,15028 -17369,515 -62812,27329 -57354,63613 -60434,36164 -16179,10788 -22004,63744 -24037,20650 -42336,22937 -11400,11402 -35333,7247 -29202,3017 -44271,51308 -11210,28057 -47544,5149 -26744,52687 -46429,18738 -58083,21227 -2129,54823 -10619,9551 -41123,19584 -48043,58019 -23796,5378 -62973,2172 -63371,62253 -60789,1552 -43377,13376 -29389,62797 -54014,58660 -64841,24702 -18097,33939 -13722,41934 -28211,29947 -37683,17670 -46600,6573 -4127,24967 -38710,57970 -2065,21419 -28938,248 -33827,35304 -44434,27943 -63329,15974 -1728,20656 -43672,42337 -42672,30193 -7511,45762 -38828,28360 -51591,27277 -39151,46695 -17449,17841 -42299,11668 -8671,61073 -37494,7698 -50064,41598 -34465,2271 -18698,6337 -37689,24674 -31213,28569 -13071,17416 -20841,62659 -47257,48489 -42715,18761 -15232,52374 -45833,46344 -36556,61477 -3364,64111 -5518,53059 -58136,24827 -1942,55131 -63070,18956 -65224,61448 -62478,56738 -26289,55089 -20607,39877 -30327,11362 -33296,12299 -63824,49822 -50549,45004 -53950,58888 -35283,16976 -26244,49784 -53546,4519 -21233,22059 -53690,64552 -9079,12068 -11443,37567 -3074,1301 -45131,56740 -50591,26820 -33542,31015 -18200,2392 -48994,64425 -32372,45146 -7887,43046 -30470,6135 -29093,60274 -44614,603 -23727,9630 -47273,25634 -16955,37382 -24757,5255 -35215,12124 -57382,52540 -15653,61568 -8322,3022 -7303,61124 -56151,41411 -33667,18954 -11906,37768 -3127,5957 -10509,65157 -20132,29912 -13506,59011 -35279,15130 -6260,58495 -5199,65533 -18028,23425 -14273,8469 -771,21059 -27510,58303 -63530,46901 -27377,29385 -56653,50568 -9252,7196 -43909,10738 -11771,53599 -22355,60139 -7998,12728 -64094,18613 -42534,20480 -23581,48067 -11288,32427 -52918,27067 -34769,42432 -55671,26864 -24690,50381 -42503,20326 -48826,4326 -36700,63292 -39208,48312 -53638,49873 -7672,26179 -33522,52212 -4263,27087 -30757,5014 -15754,12045 -32606,56863 -45083,61561 -31825,23263 -14006,3363 -65213,22965 -56412,52263 -56155,11579 -4703,58503 -58965,4317 -63710,9241 -27767,38199 -40959,30440 -42703,34900 -60114,57053 -340,11129 -22324,25946 -49439,8863 -53639,24711 -24401,33060 -28056,12514 -58200,18071 -60220,51220 -59782,5368 -7856,29737 -43629,31355 -57623,57190 -6609,48690 -58692,3912 -39365,46864 -29173,14660 -35035,49048 -24857,32358 -11948,21189 -64276,45467 -64053,33421 -56309,46534 -57655,3583 -32616,64717 -41805,22400 -28322,63776 -12823,24797 -6688,58694 -27083,57376 -64477,11174 -7311,63897 -61328,63265 -37128,41906 -51228,13502 -58774,55202 -65083,14633 -27080,43502 -35982,65488 -53732,2140 -62620,36192 -32731,38036 -33532,3708 -43527,38978 -64508,5312 -34383,3949 -4597,468 -63670,40093 -8625,33037 -51443,48314 -5110,64783 -43788,49659 -24894,58709 -12162,12944 -41270,60121 -53711,25189 -28954,22092 -63595,46421 -5604,9478 -33673,39600 -43238,47855 -30425,28208 -63220,12942 -35936,24655 -12458,29619 -64627,59049 -33890,27341 -2059,41448 -13138,14253 -25502,33286 -9420,32351 -59859,24159 -7344,39936 -59496,19990 -53487,19988 -58112,6293 -45773,23286 -48774,3992 -55206,15096 -45656,31838 -39581,26386 -5344,39182 -60171,6791 -2216,58790 -22271,29844 -15764,59965 -18405,37054 -3059,3294 -24781,817 -38295,27838 -25693,59772 -49756,22585 -54074,57025 -65308,28010 -26885,48426 -41992,39483 -57148,14196 -53908,38346 -44577,15866 -20278,35563 -12097,51115 -16061,60038 -51390,22355 -34432,24481 -26171,43961 -11609,32566 -49397,42345 -16557,35508 -58770,2146 -8775,2946 -32130,25766 -31799,26303 -3677,22761 -39546,1027 -58714,62684 -48999,42382 -37811,33678 -1762,54757 -55853,11819 -15078,50365 -30014,1678 -2964,8228 -42548,54372 -30844,32718 -32726,35063 -4211,6358 -54712,57779 -27084,51048 -55215,44267 -41146,8740 -35459,31449 -3713,3201 -40716,10341 -12205,10335 -55290,54759 -37805,17846 -17715,44372 -20923,41966 -31680,30088 -63584,10938 -21751,25191 -40146,25441 -36297,54536 -56633,46420 -29215,57978 -63001,58694 -27353,23227 -26081,46275 -5923,38417 -64027,22397 -22956,17628 -24888,57163 -59130,16744 -59147,25154 -21684,20545 -60795,40899 -28181,13592 -1890,33185 -16576,45780 -42012,12066 -28421,30957 -14627,1269 -18063,20849 -28775,56581 -57527,14609 -29324,34426 -56114,26720 -31282,10743 -26027,2914 -58141,30014 -20262,21454 -24411,56687 -41620,33957 -190,41233 -42041,3405 -65410,54570 -48222,56037 -12732,45151 -63896,3224 -55325,38536 -44159,26299 -21485,34634 -54709,28526 -20773,34454 -65416,58859 -39545,44235 -5121,43913 -65342,3569 -4505,62583 -64876,31186 -41795,60642 -30529,40207 -8819,56036 -42794,16852 -64458,1943 -62588,6031 -48539,757 -5102,31309 -6886,46809 -53648,49355 -59895,37952 -50710,23894 -2616,40392 -60076,1947 -52159,5162 -40524,17592 -30100,13121 -52219,20053 -39816,42238 -45365,21924 -35719,57028 -49270,45635 -668,64542 -36034,8808 -50100,52573 -22075,13922 -20620,29640 -65500,56823 -60970,55777 -50566,41132 -6920,51957 -16366,63917 -41532,49758 -35167,6393 -22832,28270 -6598,52035 -5742,4095 -8865,61773 -38837,26105 -19735,54913 -59708,16572 -45886,27812 -25121,51005 -34157,52021 -41865,35718 -26208,215 -59532,21000 -14210,35885 -1102,4882 -12627,53866 -42260,8668 -35478,2462 -3506,51275 -63327,3895 -37027,1039 -2372,48610 -12417,20312 -25008,51206 -62145,32388 -40572,25935 -40610,51139 -48940,42373 -12240,62230 -12271,41203 -3646,19967 -6912,9321 -56579,27437 -29844,7999 -55362,57257 -3476,60842 -9717,45856 -6505,42708 -12034,40234 -51314,52257 -63083,15034 -25015,41028 -2474,58680 -15160,48945 -59001,49953 -14557,3642 -9408,60815 -14627,58928 -50306,21113 -29713,4676 -49635,22908 -42272,37321 -19755,62577 -20550,36278 -40917,57672 -32933,48120 -35792,10785 -33083,64332 -61781,53701 -36231,4972 -19964,45753 -630,29515 -56134,41406 -5872,14682 -53818,34156 -5330,64077 -65393,6745 -40781,3684 -32420,44057 -23488,30470 -11578,19442 -5986,21802 -44258,29035 -29455,29994 -51305,57438 -59881,52150 -19921,24021 -65075,34245 -17318,46102 -53576,32706 -3753,2286 -39303,61963 -45654,52513 -27097,51109 -49730,1025 -42922,19733 -39188,37186 -24593,33234 -47864,16328 -53454,49716 -47171,50081 -25746,564 -41016,26840 -39753,15230 -23453,63358 -8252,61397 -23931,23988 -39289,56787 -23963,42806 -61466,45533 -12474,9830 -1439,22665 -47226,43449 -21016,17739 -10746,18587 -55510,50618 -15311,44706 -50841,53914 -37138,11093 -8872,8201 -10027,42221 -51030,43456 -54685,7464 -26703,49489 -63724,41130 -45711,63759 -24799,38175 -23137,57314 -17022,11137 -31577,45948 -945,9581 -38719,49459 -19249,70 -26906,13791 -63102,50272 -31624,45150 -45079,29247 -19891,2371 -1087,36356 -23928,19634 -46477,7196 -34733,22604 -32848,32436 -37805,44792 -43070,30356 -35714,58912 -47690,27215 -62398,5202 -63687,60666 -60836,27857 -43865,36935 -24513,47735 -56848,29247 -10142,10203 -31901,62502 -9729,56756 -20142,35190 -42835,57297 -59087,57217 -59255,45333 -10959,63950 -42885,48585 -59745,26236 -59487,6492 -64842,32391 -27740,38889 -14531,32498 -63220,11096 -2965,57428 -45427,22560 -63964,48064 -38787,52580 -53380,27931 -58287,3449 -65489,20288 -53966,5622 -25109,11923 -35997,10823 -57445,21699 -13840,9482 -60152,42841 -5540,24624 -18781,8502 -4856,63302 -22442,50006 -5488,53534 -54104,42780 -14228,4842 -1661,16654 -54122,38157 -31876,19758 -51974,12390 -26981,22232 -44727,44866 -59657,32505 -28189,53694 -30055,49396 -17961,24736 -11410,18565 -16573,9480 -39833,63859 -20601,12797 -25087,567 -40246,17312 -55452,26223 -18779,2557 -12346,10784 -48914,23758 -47240,36929 -48724,37082 -27095,63301 -59812,43136 -32499,41688 -27879,50080 -9197,17148 -4636,53871 -40041,14687 -51273,25000 -47044,30692 -61998,54089 -16723,5990 -38599,3254 -53956,61472 -24564,57512 -5214,58378 -6482,48348 -23894,59885 -25003,16053 -53570,22274 -28479,65157 -15791,31695 -59603,14492 -32304,32210 -3496,54907 -11592,50581 -35750,34332 -61150,33378 -14464,23999 -18187,53794 -59965,20460 -20587,38180 -37560,47578 -46272,900 -21268,16096 -35822,44687 -23251,25834 -39744,19919 -36767,47173 -10031,5219 -25701,63033 -44194,42122 -60394,53309 -28069,40179 -9309,7422 -23302,23316 -38512,31177 -4596,60577 -63967,51763 -30818,40091 -39253,52597 -41468,59276 -53585,45893 -62553,29774 -11740,46649 -35113,35397 -17346,16310 -65300,23722 -3912,34096 -57309,55186 -39454,39996 -43610,59979 -33003,64656 -33240,13994 -60410,38006 -53621,45570 -35076,43462 -53794,30565 -55411,17117 -34355,56546 -39229,14317 -10684,58586 -37119,51693 -841,12747 -23090,65212 -45844,57072 -4358,3814 -8094,16818 -25035,24096 -46938,26620 -23775,1413 -26515,58819 -17831,28151 -37099,28026 -5079,51129 -3014,46529 -7162,4608 -11571,37316 -23077,20073 -65225,20455 -15995,15711 -36422,64105 -7971,55847 -25290,54124 -54310,13250 -248,46721 -20594,28938 -45651,2256 -52659,60744 -51046,18986 -7793,45803 -17567,24402 -52294,8933 -40550,20821 -44756,42688 -3912,63155 -65380,23992 -4397,32106 -41601,15302 -17330,28613 -50834,52881 -7876,22554 -3749,20250 -30621,63989 -56800,18405 -56558,35711 -20499,15916 -38421,57403 -11171,30652 -19255,30119 -18078,54018 -9689,28295 -55895,6933 -62658,42767 -49873,30235 -37546,19636 -1975,43072 -26849,33899 -16038,37837 -63463,10354 -9415,56290 -5399,43908 -46204,31891 -54449,23429 -3170,61010 -45517,50239 -55383,41654 -32310,17390 -9715,12336 -64574,53086 -29209,50979 -53113,63019 -20010,37765 -37585,15647 -8763,38937 -33883,16603 -47925,59752 -47006,11025 -15421,37859 -54586,28911 -41629,10240 -11748,8623 -26812,17406 -19073,4318 -39159,10605 -27227,35800 -43506,61303 -23297,4424 -11437,31802 -12223,32361 -14834,37556 -16721,29023 -56828,59779 -8392,43050 -37803,25825 -1055,64157 -13142,24048 -42750,46765 -14311,61257 -48058,26352 -27860,51444 -42592,17166 -36528,58639 -17973,30453 -32649,58193 -2960,54366 -58589,35340 -1930,9034 -12114,50762 -38752,57524 -24446,52504 -24249,7800 -45936,48634 -12164,62100 -50953,44491 -42650,63154 -30965,35674 -64838,40555 -18511,5762 -56429,6231 -10801,11505 -40368,15777 -39285,15999 -8571,4464 -9940,58469 -6498,36068 -3514,51118 -53130,26031 -47516,2321 -38584,35694 -54656,22136 -1722,65007 -11480,48752 -28146,61189 -64,15232 -50270,1937 -1684,14398 -3300,33895 -9003,60629 -49642,32520 -453,17068 -54309,60088 -50436,58165 -7388,13084 -54415,39877 -26161,46814 -6845,44167 -17746,1980 -62221,26327 -45849,21977 -52033,4807 -27293,62777 -12469,6575 -39103,42213 -15137,22875 -14505,45273 -34306,285 -29352,3079 -40462,30630 -18360,29051 -39330,56434 -23612,61637 -30722,12950 -35296,22099 -15472,48463 -13152,63544 -17510,33951 -45966,36835 -64609,34473 -18172,53824 -9930,61302 -19782,39026 -59798,46262 -53137,50580 -40655,39904 -57127,47693 -22828,50700 -9922,62383 -53227,28523 -24267,54381 -16759,29487 -29206,52111 -13765,14838 -65076,18464 -20605,56091 -33706,51935 -29605,30374 -41165,37580 -52084,35276 -17181,45090 -56613,13336 -39921,15817 -52766,14806 -11277,23835 -26188,60980 -44586,11610 -10290,26029 -39571,25415 -57177,55029 -55144,35388 -40284,57539 -30549,7739 -25533,39292 -17357,33983 -2720,29838 -24575,9227 -10866,11279 -35153,61747 -19942,6180 -8090,30118 -3770,13192 -64206,48438 -25158,4148 -39459,38869 -51097,30127 -62291,51244 -49922,51467 -42087,2295 -55343,18827 -54813,26530 -50839,55288 -60225,39953 -57477,61911 -5035,103 -52807,34293 -52195,63017 -529,12207 -65229,17708 -52570,40375 -2971,10618 -13512,4957 -50349,14572 -19187,45586 -6914,17033 -37921,46878 -47603,46119 -11761,27257 -19827,50855 -26284,49578 -4492,59802 -60542,31864 -2571,14089 -11617,37771 -49761,47538 -40763,21653 -39022,46019 -61699,4044 -58775,19514 -42699,51631 -37951,3393 -63392,17875 -10960,10610 -56454,1340 -44871,5962 -64678,7310 -35813,51414 -812,27536 -53064,46474 -54015,14785 -46546,20877 -32115,20113 -28582,22475 -46254,28905 -11898,8393 -57474,56840 -8866,20312 -47592,9828 -5742,40099 -24785,25130 -2004,32950 -27588,22885 -64228,51710 -34409,62251 -10557,5310 -55630,30260 -46095,21518 -65307,10370 -58823,49871 -58240,55358 -587,48556 -23321,29969 -10835,61926 -25564,39026 -11930,60847 -27687,25159 -40350,3664 -23591,317 -27430,58901 -33630,28388 -12882,32178 -3834,17958 -58709,3132 -54575,42898 -61029,1481 -44893,39404 -23522,4388 -20633,44525 -57587,53291 -19824,36795 -61461,31928 -46130,57480 -49072,690 -9854,34202 -47920,11632 -65511,43140 -37094,15483 -65255,29351 -53949,13286 -62516,48890 -32997,32990 -54985,47193 -5947,24702 -64829,36645 -17438,53461 -50073,25698 -53362,43514 -41605,53862 -37210,59756 -25073,33448 -50442,19969 -42598,25691 -62401,45742 -8634,40503 -25644,42380 -21092,28687 -30316,45134 -49163,52601 -55844,6260 -34353,34576 -31658,50128 -51343,52198 -58190,41775 -5926,61100 -32067,42782 -32778,2852 -27953,15330 -60105,49235 -9650,2196 -43532,61647 -16533,60000 -8901,44493 -17856,43339 -42213,25818 -9690,55068 -23771,60978 -6581,11405 -43741,53337 -24722,9844 -25427,30779 -34997,2147 -62949,20610 -28684,25276 -47292,64668 -59804,27034 -12301,11843 -8853,38930 -50254,63116 -31642,29669 -51055,22197 -64800,42335 -6204,57502 -6633,16391 -47757,43624 -64577,33379 -20590,47808 -19934,54025 -62279,18787 -61571,27711 -42301,62680 -7072,35072 -51013,61963 -60622,25790 -35338,8714 -47982,11809 -63037,34789 -19038,27918 -29692,56447 -25086,31151 -59609,52480 -22706,23917 -31032,45717 -32290,20172 -61957,60398 -34598,44987 -30707,59795 -22879,10973 -49969,46643 -4541,53262 -40236,45685 -19452,59762 -5110,3623 -42930,56755 -32100,18491 -31135,15997 -26167,63308 -29377,41915 -31067,59881 -38619,60651 -18782,60447 -41420,6048 -43347,48623 -32392,27539 -23987,39488 -41567,20982 -38423,2429 -22084,46230 -39839,32767 -2226,3854 -27944,59852 -29994,2479 -8232,43422 -34960,63746 -40700,49831 -51830,8911 -24347,42863 -55695,33381 -1084,57241 -31257,54226 -13942,9954 -37775,53814 -22026,26269 -36123,60435 -60506,25890 -13416,16850 -32460,3820 -31354,43109 -46424,56059 -29081,62277 -33044,34530 -15466,58596 -49936,20641 -15646,64218 -47504,59362 -11204,1283 -15990,51882 -49768,55404 -21543,53137 -19183,62400 -39079,55847 -60783,7757 -47395,24146 -52205,48289 -7082,53827 -29618,51068 -36048,17788 -41189,33229 -35735,11465 -42251,19421 -32520,6677 -59211,17036 -32240,51281 -30604,20864 -44668,60800 -65412,43914 -59229,3240 -53292,11637 -8863,26634 -56309,23165 -33914,47969 -51940,30791 -11671,39152 -30102,12503 -42936,47861 -32680,62127 -38576,33746 -48816,13014 -8665,13598 -3288,36072 -26114,41725 -27592,42658 -53325,40955 -46200,853 -48168,63559 -36258,9773 -56914,6923 -33406,52554 -34804,49727 -46850,10539 -2890,12939 -37852,58243 -47571,54840 -42348,23617 -31061,27471 -43462,64039 -11936,16054 -42997,24771 -20280,50082 -53134,46877 -15088,61316 -21607,2191 -46595,31482 -4792,25238 -52209,26437 -46765,26586 -9730,28427 -45652,614 -12622,1487 -4320,9635 -24824,7996 -3456,14241 -38083,26739 -25001,22989 -54328,8199 -2206,14597 -12015,13188 -51363,56268 -35101,40590 -20398,63448 -37390,31017 -17468,28716 -38587,42414 -1541,5651 -23816,36341 -42377,11999 -12350,5037 -64820,11333 -60517,37469 -52876,51442 -3673,30081 -56667,33593 -18117,15927 -16063,30377 -7116,40618 -23469,24879 -8182,54764 -58425,64267 -21025,57512 -52950,28314 -13271,37365 -60220,21687 -57243,57592 -61065,496 -1431,9952 -33784,1541 -47681,39586 -55939,61498 -17781,51302 -2772,10349 -51082,15782 -38290,54466 -17335,19125 -18650,35653 -29371,38312 -2992,43704 -516,54400 -24319,13571 -5294,49179 -26461,19041 -11552,13526 -47712,64474 -55229,21475 -59941,50679 -63772,46096 -28964,2975 -5754,9327 -30020,33919 -17660,6632 -19191,12748 -38347,52877 -14988,28450 -41956,1351 -24122,8286 -41150,39168 -4782,49996 -37353,4071 -28563,52322 -4985,8263 -54744,2878 -54083,52626 -55387,9172 -60652,46326 -46295,12363 -47432,47991 -46886,57271 -9910,8873 -42808,49618 -21984,14435 -23628,2951 -24542,31828 -18172,29606 -56631,1351 -41619,59053 -34319,47329 -34253,2502 -62810,16625 -44505,37821 -45756,32577 -7775,26072 -12383,17778 -42930,846 -52037,6229 -11982,23816 -48084,4079 -22219,19858 -21986,8344 -11496,61980 -45874,20878 -15610,11905 -2913,11704 -51120,59339 -57410,3385 -19522,63357 -696,49609 -40204,34514 -16912,51252 -12343,9546 -57385,35540 -426,30685 -57266,61597 -41488,14630 -30344,26709 -19076,16503 -30704,46058 -56735,10065 -54890,14037 -4397,48878 -16372,40976 -56611,4331 -35835,44794 -27740,9761 -29988,3091 -33146,43973 -64253,27776 -15298,48756 -44358,49706 -60584,63229 -27058,64360 -21255,19554 -46729,2995 -25436,15590 -50162,21460 -54650,57322 -34928,32351 -31566,61496 -64157,31570 -30001,18204 -21668,48819 -18146,58926 -37029,45631 -57647,30054 -51610,34576 -6800,24377 -16930,18233 -56034,18538 -7247,37648 -23794,16675 -9979,14072 -63667,42016 -22912,43030 -53040,28587 -13701,10433 -26532,21359 -18904,28006 -11385,973 -36410,53665 -13881,23582 -1097,56072 -8410,35681 -49724,23224 -44935,11870 -3213,37332 -99,55504 -49126,36810 -37817,52119 -17942,40828 -51033,46076 -17052,16253 -13049,26059 -49872,6041 -59674,53932 -37470,19327 -29187,51073 -42948,4293 -30815,45170 -12935,3351 -35283,43689 -42548,5987 -772,58370 -58701,61372 -52138,15593 -46192,48312 -8378,20812 -25035,7746 -59961,55879 -58397,60129 -52189,10949 -9727,50260 -58916,57879 -15658,23705 -40289,49179 -43779,14396 -43954,45471 -1795,57136 -57346,43729 -46721,61229 -6612,14982 -33055,975 -48834,45340 -53216,45538 -7194,19172 -33600,9303 -60825,33762 -1144,40062 -48270,11463 -60405,34192 -19446,23752 -6493,7085 -57635,64152 -3364,31238 -33690,47538 -36871,56296 -35349,41891 -2436,37288 -46088,2460 -9656,62520 -1808,60486 -2685,14977 -47135,25799 -33277,46387 -62151,43565 -49776,60938 -9767,59386 -42417,6761 -479,13546 -8024,20286 -45688,54957 -3425,47066 -50268,31271 -31050,6404 -15706,31067 -21722,26745 -34300,8513 -41570,373 -25851,18571 -64797,22221 -59599,65354 -59468,54361 -17620,61062 -25294,32066 -39381,17947 -22353,16348 -2587,37883 -19161,36969 -18076,2419 -35025,21302 -61483,26422 -26610,34638 -10784,65201 -2064,64546 -54162,41116 -11948,49404 -33740,50501 -35401,43324 -19968,41877 -24915,11833 -26376,28441 -38578,29373 -21527,62031 -62241,27847 -33967,3389 -62052,41736 -24283,48907 -28042,35767 -2927,59805 -53542,58126 -38388,38494 -30163,59176 -54635,46973 -23168,63509 -30528,11917 -30348,8750 -21409,5672 -781,20780 -3808,22620 -13331,418 -2783,45939 -7403,2567 -64145,53529 -37704,42000 -54622,52868 -7092,15339 -7368,62585 -19361,12145 -30204,18475 -3783,45038 -15158,11469 -8170,49470 -19483,3857 -16616,29136 -57714,25163 -24746,38781 -58241,55952 -59420,37529 -31325,10040 -12152,30074 -58410,185 -59987,18973 -64693,13282 -16861,57909 -45325,37900 -15807,30538 -44083,24048 -40050,48301 -36309,21508 -23229,35797 -43448,55968 -26859,19162 -9511,64748 -53207,21505 -19929,54860 -42326,65155 -31467,51834 -57009,14530 -7537,1013 -21387,32348 -59636,16847 -19079,55217 -39929,41120 -54825,36635 -55658,31828 -58234,45752 -16125,58605 -53781,42777 -30315,65253 -33539,60516 -50836,5311 -35859,16413 -8642,52393 -56788,28967 -17037,50197 -48281,62839 -56182,46956 -49825,35322 -58600,12823 -64427,41402 -1215,36547 -11943,23696 -41539,12884 -10016,64594 -16690,53495 -62796,40733 -19613,9794 -45377,51188 -25078,22490 -59808,34816 -23119,55571 -13167,47808 -40069,57246 -38760,10340 -39278,46257 -24859,27995 -33019,48883 -1932,45844 -61285,51348 -43086,48681 -32743,6027 -53030,14980 -32245,12463 -53103,53667 -971,18813 -65252,13184 -27349,52987 -5770,9611 -58682,62072 -45333,52663 -64422,53139 -54791,42127 -27265,14444 -54103,2714 -28067,13686 -23234,33954 -63475,28967 -14703,44178 -50385,35681 -52770,62929 -47548,15885 -57904,40527 -49781,38574 -61838,5757 -31311,38998 -6867,58576 -58706,52051 -19668,11971 -24435,3713 -59027,54350 -5601,5775 -27644,52861 -53264,48882 -14269,5310 -16865,27477 -46701,22342 -7745,56929 -1400,24871 -29252,41003 -25641,16329 -28050,37007 -47852,52497 -13703,55608 -1260,16887 -19696,20719 -12589,52880 -3,11396 -29682,15288 -8958,10418 -51654,13585 -58548,23781 -42402,6325 -24226,11172 -38965,11133 -25259,28589 -23931,40863 -42686,41329 -8435,17024 -4303,15925 -34525,50330 -43057,15437 -20606,17115 -26387,12385 -38096,3134 -62220,51693 -55330,9377 -45443,4901 -56276,62944 -22993,25196 -8097,60838 -14643,14854 -10664,61486 -21046,22754 -13104,45927 -21158,7909 -44107,8958 -18311,28846 -33145,21268 -11029,10510 -25511,37476 -6128,19825 -5495,41551 -13848,62400 -23920,32909 -29892,32994 -22576,46937 -59085,28939 -44285,54306 -23808,29276 -13224,62252 -43644,14977 -20478,55762 -37637,42279 -6463,21489 -59662,29779 -38576,20364 -53300,14892 -10543,452 -29783,10768 -31557,23219 -37727,15131 -27794,43690 -50390,8814 -55702,9094 -21779,1387 -28411,32143 -45305,59637 -23733,23494 -9526,26399 -37314,64823 -28116,62836 -29623,12743 -63935,43508 -25402,28513 -27802,24684 -55252,45802 -2651,3029 -31865,40329 -19217,61219 -23984,35069 -19652,47943 -25283,639 -27645,60843 -38908,28594 -59893,22696 -10378,53893 -37678,36616 -62920,2053 -61152,9247 -37680,46214 -23270,34545 -38582,6043 -31958,29048 -22242,40357 -21898,57669 -42736,5460 -5756,57178 -63680,18753 -48326,46877 -20116,4088 -33994,56640 -14262,64070 -10914,63185 -29435,48887 -34122,65464 -21743,20778 -34607,47914 -37236,38823 -27993,33529 -46878,6900 -47606,61577 -46894,2995 -240,49082 -30817,61400 -27590,1646 -29551,22812 -532,29027 -31576,50394 -24733,2734 -46866,41712 -10469,21729 -29727,21859 -20852,3910 -33204,53192 -16292,1739 -8775,44376 -46712,60011 -63471,40189 -60479,24162 -55294,41174 -47071,65350 -56998,52054 -32961,19141 -42638,56930 -21252,12658 -57485,10694 -22589,64576 -30219,28238 -56042,9090 -2445,4144 -39614,44006 -51527,24236 -13293,43135 -24413,25469 -14932,26672 -57221,22179 -52224,9975 -54221,39832 -20830,53044 -30035,10500 -35992,57365 -2508,24 -19218,711 -26728,44804 -29098,19542 -24946,59483 -51580,13763 -50160,61611 -56506,62038 -45707,6997 -4582,20604 -47840,2862 -11220,38951 -8412,22595 -54135,28878 -45837,62087 -40348,40235 -16552,35925 -62678,12931 -14124,5157 -21627,31950 -11660,4149 -40142,37222 -56982,25346 -36318,11453 -17726,13055 -18466,35418 -14487,62688 -43502,62144 -30025,33250 -23733,43978 -37288,1725 -63019,3997 -56219,13842 -40683,32100 -31530,55977 -7861,17585 -28321,64721 -19766,33337 -58377,37801 -28490,8619 -36315,20512 -27038,4227 -16528,4686 -36422,32775 -17359,9395 -40103,9228 -6767,41849 -1160,18146 -9297,19910 -3503,22879 -62224,35853 -64020,23367 -10507,51209 -37851,61859 -33537,1160 -19201,41868 -10733,28606 -10828,60885 -44089,13124 -31482,15000 -23351,20021 -59015,7323 -64970,6956 -49278,1925 -44888,55165 -57560,51487 -42134,39774 -47427,36724 -39101,62482 -20975,31876 -3784,27940 -17557,7915 -21253,7467 -62091,45114 -51696,35262 -9282,17008 -2618,30226 -17682,33598 -24480,47144 -27661,7530 -16726,47580 -49051,61638 -1541,24492 -14531,65409 -54228,59412 -52072,15638 -18737,1718 -35968,264 -51083,29291 -64304,47193 -9010,3970 -30478,1192 -46306,43460 -43034,59956 -19435,50411 -47170,62136 -57409,31371 -53561,59282 -3383,12043 -14167,16662 -62499,33152 -2423,65300 -4461,36997 -8760,31214 -1168,47732 -22631,20830 -53851,52717 -44878,3666 -1299,41225 -31471,57397 -31712,38392 -37334,56194 -42879,62215 -54628,7155 -17531,35725 -31084,64360 -26358,33426 -39625,9804 -61729,57795 -14029,30352 -35808,28852 -11190,55694 -21773,33243 -6634,45302 -35187,54775 -40769,40877 -36721,58073 -29465,33719 -33331,43425 -4890,11325 -13540,37947 -21188,37799 -34013,52849 -48034,5523 -31854,15099 -37961,7763 -5709,62568 -11429,44347 -53461,26048 -25512,5879 -28644,3618 -12119,34195 -51295,54833 -18419,23866 -27710,14307 -60981,26401 -64830,54944 -38834,64248 -63231,9787 -9686,6244 -5106,60658 -32505,17987 -49410,47316 -3436,21578 -34790,40564 -62671,62641 -17858,31982 -61542,35475 -56442,55018 -4713,1215 -3412,34969 -54854,11054 -33911,49379 -9890,32486 -16930,40669 -44753,58261 -46463,50517 -57346,44981 -58038,35359 -30729,31381 -10419,23268 -26668,48509 -3635,30491 -31863,11146 -48870,5418 -53862,44822 -9681,25448 -33807,39640 -13844,5792 -60781,46980 -8389,14110 -45509,8446 -11544,60032 -30256,42104 -19770,41201 -21364,13165 -43525,34313 -28686,12065 -44808,26587 -24589,16893 -44834,5723 -7477,45844 -2893,49518 -30093,25274 -2011,46525 -44685,7973 -49482,40410 -24299,27526 -64858,47004 -45653,61389 -50054,38590 -35060,3428 -64610,39824 -45203,40637 -28951,26819 -17185,14183 -65191,36616 -50178,51671 -2858,50212 -4446,26281 -15073,57236 -16138,4846 -9254,24348 -14244,22180 -17312,64462 -60979,40604 -55979,20677 -8987,22665 -56646,40970 -23864,19498 -42657,20571 -52020,54471 -31661,63003 -39898,28805 -26321,19724 -1278,24205 -46865,39343 -27467,22975 -25103,33584 -45176,5120 -3436,2115 -32319,26922 -559,4798 -36975,43128 -53297,13501 -56078,46086 -61384,13707 -40105,6803 -46256,57237 -2375,36602 -47457,52447 -65063,41660 -4964,9022 -57913,41244 -38769,16531 -28539,11734 -12428,61190 -23179,50274 -37309,19899 -18752,40004 -59300,29429 -16197,34736 -17528,38978 -36197,36859 -2206,33453 -8682,30148 -35426,25563 -5402,17954 -57291,26255 -41975,62981 -29208,26830 -29769,43170 -7568,1801 -14891,33433 -6263,21406 -12817,31942 -56400,32202 -49255,35157 -54381,63902 -1513,9491 -38939,38307 -56033,26485 -8452,44894 -31040,46270 -45517,59722 -38517,54127 -3502,46726 -35069,8388 -23635,55455 -47586,47228 -32331,22788 -62438,44469 -36666,62511 -13523,14160 -28128,57920 -19955,65117 -38633,30566 -41760,47075 -28344,11262 -35736,9574 -35850,21126 -7623,3804 -54548,46940 -38054,31423 -2234,23613 -64660,32514 -41129,4656 -20435,9643 -52013,23591 -36294,63162 -21561,14269 -36415,43459 -13877,59695 -39821,11365 -45286,8528 -54118,54514 -21343,63012 -5989,21358 -63790,10371 -4787,13316 -47144,35794 -1845,4762 -60234,61759 -23761,39441 -9186,10811 -65036,59981 -55702,10975 -46346,12690 -22685,36461 -27969,52469 -31981,39043 -65015,39796 -34915,3905 -18514,30142 -57660,58184 -14462,47322 -48072,6313 -54758,48814 -17338,5635 -63024,16213 -44265,41744 -54047,17605 -42435,34069 -44371,50921 -31985,20635 -26024,60397 -6264,37926 -45971,13276 -59986,18617 -25810,45345 -52499,19647 -48298,494 -21803,57747 -3186,31137 -30660,2795 -37095,57956 -45894,59178 -20266,36428 -2759,47285 -40962,19539 -32234,27237 -55485,3180 -9530,24920 -20737,15539 -51500,27666 -12339,38017 -14622,49340 -28176,61663 -16001,7358 -63042,64675 -52056,8369 -51076,9551 -11207,33890 -26075,14935 -11858,48181 -152,34081 -15621,10618 -61186,25412 -28817,36079 -29013,14279 -52461,16041 -57737,59498 -19569,14748 -38885,12085 -60293,14332 -35779,3714 -51326,6736 -36488,37184 -44530,14243 -64969,26897 -20866,31482 -51240,10533 -28534,49421 -18646,20123 -38221,15480 -50926,21479 -44110,22451 -58487,35138 -22483,39502 -49393,23143 -38404,31145 -12350,20731 -58898,53593 -4628,39179 -60402,63423 -17281,34634 -64990,61466 -47193,28466 -24699,16734 -12490,51409 -30401,49507 -41878,58342 -40464,18038 -21967,32837 -40577,28093 -16652,60324 -32426,64914 -56492,4742 -15530,21784 -59539,52183 -42395,13303 -17547,13570 -19099,50888 -56131,64276 -26898,60111 -10547,30293 -36423,6894 -44791,29674 -50900,43658 -48984,39583 -64000,1302 -30899,6188 -57466,22179 -46921,52227 -65492,46342 -20089,40644 -49808,16972 -50352,31874 -15130,7812 -22674,13120 -56192,58970 -12188,7581 -49204,63213 -16200,52819 -44350,14014 -19359,6419 -18365,32907 -13161,45317 -6457,49411 -49020,8564 -61492,10849 -29932,61551 -41848,33672 -38104,7848 -32326,49068 -60691,46400 -63793,8575 -21633,58554 -37843,18475 -5581,8955 -10464,14798 -17988,47449 -37797,55763 -48046,52625 -28961,14237 -63532,47245 -50212,6424 -33798,20534 -45689,28352 -56416,14382 -18049,12135 -63033,48872 -62606,59170 -57293,8702 -41187,22256 -58427,14065 -35864,22980 -25488,55886 -36951,60250 -3494,41091 -34934,46988 -35453,12899 -3660,56143 -48243,37251 -64791,23087 -32715,61726 -46641,37072 -45430,46046 -36075,40561 -40252,56395 -3974,7043 -25908,58377 -55707,56407 -7626,47028 -45125,53312 -40231,35394 -5492,50150 -24583,64692 -19573,47315 -57611,47952 -22848,32024 -49395,64861 -42538,6324 -17078,22472 -41298,6919 -61163,63923 -51493,59505 -23648,15021 -55630,48424 -58792,45234 -7919,58810 -17908,25816 -1789,12787 -54519,30348 -40494,13385 -24452,19667 -42509,56744 -42899,28897 -48928,8592 -6443,24729 -55854,31999 -15640,38729 -15624,47920 -17682,39171 -58172,56180 -3625,36062 -36522,63182 -46607,52688 -5164,38314 -23863,5151 -24729,42893 -18369,43339 -1182,51775 -33931,29076 -33680,45742 -26668,47694 -48852,32762 -29311,47635 -41649,3660 -33870,42549 -35621,57359 -4096,7690 -48382,9943 -13143,32386 -12862,44196 -9396,19313 -35667,1572 -34732,16703 -22110,28927 -37476,12219 -35213,125 -45186,16699 -41031,20166 -61153,30663 -60065,38761 -29609,15793 -56950,1520 -16225,36278 -57508,26011 -21149,28550 -44237,4411 -44336,62454 -14119,65323 -53326,38004 -39248,15870 -39077,44667 -45503,30761 -51683,48626 -62051,49719 -5301,14822 -53769,44414 -4186,7475 -34776,55854 -6636,40819 -55915,29095 -3699,3901 -35486,51090 -21758,45413 -52787,39842 -15256,42656 -63246,32338 -34351,9505 -41781,20026 -46935,40257 -37704,3615 -37,36952 -17341,45215 -40661,52697 -25300,10779 -7346,6663 -56767,11582 -41780,34766 -41409,31819 -31658,36489 -10147,956 -12116,60711 -55063,12330 -48856,27033 -582,25356 -6929,48681 -35442,36360 -6474,60070 -61841,14467 -30704,44267 -54257,62876 -1338,61523 -44220,48305 -26875,1651 -19743,31619 -51837,22095 -59038,34182 -41684,35930 -39134,11876 -11933,29180 -7019,4178 -54614,17375 -878,33721 -58125,23328 -12066,26099 -61169,46219 -35559,29705 -4435,64022 -18807,30623 -64987,46808 -16728,52334 -60202,40671 -6736,41516 -7996,32243 -58970,8257 -55551,16276 -4043,10088 -1429,40895 -53235,44405 -1469,24689 -13225,12737 -56850,12374 -19101,29507 -15080,48217 -7588,29149 -3530,31552 -17761,55550 -33371,64733 -45300,39213 -49201,54680 -49679,13081 -32711,27881 -53530,10889 -28476,19063 -19509,12260 -42231,21449 -46805,49041 -41946,49148 -42643,37668 -59321,47215 -34264,12340 -6390,56467 -40561,2072 -42111,58506 -61550,15127 -25014,54117 -21124,54672 -1559,64616 -35169,55441 -25240,57190 -23179,2482 -44113,18258 -17796,55682 -64255,11095 -20069,33796 -32823,5735 -29682,54206 -60264,51167 -8564,1775 -44951,37319 -5520,27877 -32752,53350 -16435,596 -64656,6229 -50838,25505 -6293,44698 -55950,45348 -359,32540 -53308,17785 -30943,57938 -54930,24520 -57052,43388 -61093,63261 -51753,33967 -17518,23108 -55981,9412 -4108,27820 -55804,56109 -44497,41631 -39231,10900 -3100,21551 -13278,47107 -21008,32595 -48839,6510 -52660,12216 -44127,51069 -44342,16756 -4805,15596 -9895,50204 -64870,42627 -47678,39619 -20981,60495 -42385,8751 -56370,19413 -25324,15818 -28748,37922 -38494,64020 -60159,27605 -2260,21224 -17317,33709 -10955,16034 -21868,48050 -51957,58515 -54195,63706 -40586,58496 -44410,33851 -19782,43621 -54620,35033 -62559,30378 -17909,490 -2780,11752 -49581,36886 -32234,5134 -47319,39402 -46771,53747 -53673,6293 -14049,32724 -58213,22304 -27132,46062 -32715,11583 -40970,26068 -16827,37662 -25223,42360 -15371,24277 -537,26010 -648,62765 -15605,36264 -52320,20933 -49796,3948 -50893,47460 -22967,13479 -39507,1562 -58479,59588 -60324,15644 -42817,28410 -42209,31352 -54565,28048 -49657,31450 -34173,28085 -24855,51344 -41330,24580 -48707,61878 -49466,33711 -9337,24956 -30335,34863 -26244,58967 -28519,40123 -56548,34083 -55088,38394 -28072,61693 -41752,57669 -51948,54949 -45361,32172 -53668,10937 -5845,2351 -65505,8068 -42712,54785 -8900,7235 -32193,42831 -42455,41308 -54236,4082 -5035,20656 -25820,64459 -46694,26206 -58184,16692 -49655,21941 -63457,5899 -27332,38130 -28430,9649 -27139,27032 -29998,56171 -43312,175 -1266,34332 -43643,53668 -17975,9496 -20707,41152 -23544,48704 -61898,22130 -53187,28827 -54752,5458 -51079,27746 -48979,15814 -49429,49024 -39494,36925 -64477,17513 -60510,38374 -33927,36005 -37057,13498 -36354,11606 -45811,22214 -51728,20786 -32261,7964 -22515,37469 -49257,14958 -61859,35936 -359,19947 -41142,12266 -4991,1379 -4604,27805 -34641,40725 -27718,60998 -58188,53280 -35634,20549 -54565,1257 -6249,25273 -40538,55044 -34312,11404 -24815,37107 -21275,6237 -652,2430 -33421,29561 -5996,59607 -1573,49088 -52921,40211 -46124,4070 -3959,3488 -56007,58127 -21365,23621 -48873,9846 -55419,44732 -22898,52749 -51222,33765 -18664,61365 -37357,15260 -13570,29990 -36106,22148 -29933,13895 -60147,39628 -32949,36169 -63530,1701 -11214,59789 -17112,27978 -12609,47100 -13725,3750 -14300,24811 -49124,33484 -22113,27644 -61794,5133 -19359,49693 -9856,24012 -60043,49843 -58376,56705 -28469,13238 -38339,17107 -34501,937 -34888,21123 -64537,46620 -31170,13655 -868,20816 -16290,45580 -36926,17984 -26713,47809 -55903,39028 -15306,36226 -44361,38859 -64464,24838 -33925,19658 -12731,26209 -52664,54698 -14476,21409 -24564,57126 -33908,55717 -9021,53010 -60598,7195 -53320,36472 -53743,5299 -34346,52674 -26540,60708 -15904,57607 -59284,10243 -5773,53056 -36660,47993 -49865,2848 -8211,21583 -56875,54532 -26956,17404 -49542,12955 -15655,40809 -28568,33395 -33883,21541 -64450,59065 -48534,49425 -11424,1266 -2118,17165 -27311,64347 -50392,61018 -64503,56393 -57335,59221 -42779,13065 -21378,7816 -25106,6146 -23761,814 -61875,63574 -11085,24319 -13647,30851 -14840,40296 -55051,46375 -19767,38272 -6452,38342 -25150,62048 -18753,60861 -32219,36249 -53121,52148 -26901,11564 -59595,32831 -17099,2220 -48142,50420 -56202,46091 -31017,7372 -37789,31748 -18632,12581 -19232,5958 -8082,1550 -19501,27360 -58676,38166 -46209,57195 -39491,48066 -1782,33930 -374,43211 -7200,51569 -32460,36026 -37808,53696 -51575,38753 -33059,21906 -9595,48659 -8622,58417 -6728,15338 -28204,691 -24071,13302 -15614,42190 -49235,17814 -36852,22620 -1392,62272 -57246,26170 -58494,4127 -15390,36052 -39006,28820 -49137,37393 -63911,10711 -7348,530 -50278,20666 -60244,32130 -36292,3571 -17402,10680 -33892,4234 -33679,28378 -52041,35854 -30719,52696 -19292,46945 -14471,12504 -40755,9403 -8576,55193 -54422,10750 -3164,5936 -28704,44403 -17445,53437 -41119,38879 -63843,49227 -40657,62307 -6037,35567 -40380,29888 -52684,15859 -18349,13633 -40385,15077 -5073,11766 -48425,43684 -14326,43654 -22616,55074 -20749,52236 -20767,38479 -43979,1780 -43315,17083 -46917,4720 -8551,47565 -8582,45794 -43582,31865 -26820,51255 -38487,8420 -26632,8172 -13071,13747 -6190,26576 -12032,33394 -60560,2170 -9788,14024 -24356,34580 -17951,13191 -19189,27365 -54016,56452 -14687,30811 -43808,21811 -38560,13157 -39685,21501 -50069,57051 -28352,53554 -47860,47422 -53674,38487 -35827,50216 -17997,27126 -32450,65087 -53819,3794 -25944,25607 -27274,62978 -22425,3026 -13042,54730 -18709,53882 -29916,62964 -4274,5936 -34210,53827 -21487,50581 -21876,39321 -46173,57037 -11961,31866 -10208,37196 -30606,55919 -63729,3445 -3112,43858 -55495,32077 -12814,2512 -60491,65172 -48102,13227 -34307,57244 -22042,15153 -41994,40045 -6267,43770 -23486,44544 -27804,4536 -48177,4580 -40630,20248 -32112,20431 -25027,59490 -4655,10031 -24231,42143 -52714,37227 -61825,43969 -12546,63877 -240,41147 -34787,21155 -54423,43301 -13902,31947 -5913,38154 -54444,63241 -11802,60271 -23566,57708 -6958,35173 -41239,9502 -20281,59644 -63420,9813 -42725,43140 -48352,13092 -48894,14093 -35273,40222 -54581,35503 -19217,9188 -23729,43650 -27449,26963 -49046,214 -41446,22218 -24206,60680 -30779,31940 -22457,65173 -24095,960 -40183,52883 -28211,28517 -18804,6717 -60005,43289 -18124,45083 -30112,5581 -12868,23495 -11706,21547 -18206,10061 -55381,53346 -24796,10339 -22910,40913 -7536,11579 -33094,37363 -3348,64142 -18849,16795 -59939,25942 -9795,47789 -18958,40118 -41744,28712 -19019,26183 -16744,30550 -24772,15499 -16266,64082 -48586,56021 -46086,55636 -12486,17497 -50019,47766 -48891,14292 -60676,58383 -33307,5669 -56223,16726 -7283,9957 -138,61859 -28859,32655 -10480,50391 -26878,28603 -50034,47638 -9193,37067 -49813,51735 -41178,28243 -808,29571 -1438,61978 -46477,56584 -10519,2661 -54899,19476 -56471,65405 -46390,23220 -14573,10643 -11377,53705 -33453,13383 -37341,3253 -58168,59606 -37076,12385 -5838,20122 -31736,17535 -8196,47487 -1396,47256 -48030,64557 -23930,10237 -28574,64326 -29849,47188 -9953,61172 -20890,19805 -26061,12155 -44932,3096 -109,62750 -31003,45877 -55673,57058 -32108,24852 -30115,47919 -41279,25092 -3202,52705 -37445,54475 -51251,2341 -45694,15557 -27663,20386 -3740,6826 -3223,21311 -47725,62869 -17865,59396 -16203,24681 -28142,42232 -50839,60265 -62098,38030 -60525,18831 -12263,51638 -20192,32601 -27403,5709 -22737,60672 -56427,42740 -29739,39838 -7879,6296 -12640,22614 -31102,40974 -37763,31531 -62036,8839 -44297,35520 -55299,49980 -10202,43973 -27024,20227 -48954,15040 -53446,34720 -59925,53553 -12776,45467 -62395,44073 -56621,46207 -39386,32003 -51349,34188 -53110,44765 -53071,11264 -20869,4994 -41073,36060 -62468,63234 -56194,45510 -26574,34728 -19245,51838 -56046,7135 -16009,1628 -43529,20385 -15764,56934 -15067,32249 -58319,2112 -61050,22944 -50982,52798 -63299,43922 -23141,25373 -36059,45102 -49822,19456 -6279,56440 -61316,41175 -34677,40576 -20969,19415 -24754,64615 -59221,5040 -58737,10098 -27133,64226 -38125,8566 -42921,20211 -46097,8828 -51839,6196 -9100,57985 -53376,27500 -10901,50173 -4441,6339 -40819,46564 -28643,28565 -27927,63906 -35629,18765 -39717,30693 -37672,46766 -163,23990 -35032,19141 -21310,48650 -61734,37754 -12544,55409 -6493,23060 -28326,15395 -51415,12888 -27817,20369 -16232,51422 -60233,10889 -20629,27732 -51241,43110 -20600,40527 -7675,33295 -5057,63100 -14319,52028 -54303,51018 -34840,41171 -35435,6881 -22203,28050 -48976,44242 -9074,55631 -59364,56909 -26698,52714 -2743,47699 -34606,7964 -43451,36377 -32161,34545 -62201,46071 -49347,53067 -63197,63914 -10133,45991 -43310,1501 -34979,1684 -55321,13173 -42598,1519 -4156,36214 -6784,26589 -38770,44246 -46242,14602 -16251,10103 -32980,60087 -2988,36894 -46097,58820 -36815,61281 -55082,4846 -58608,1081 -33037,57794 -33831,18566 -42276,21868 -61081,38194 -5174,9360 -1502,1382 -41123,1498 -61717,49896 -32589,44214 -61559,29055 -25854,30787 -13347,48855 -10675,18720 -26205,25016 -54306,39125 -5746,45723 -30345,16522 -50045,44998 -37003,32980 -44770,12650 -65215,56114 -24818,354 -1456,19813 -48914,44640 -11466,19795 -25761,52485 -45998,25283 -2559,60751 -11790,21282 -41751,13836 -27528,11723 -12642,26123 -18932,15410 -7531,8694 -52795,24857 -10158,46058 -42050,2730 -23359,49053 -2570,21906 -61856,41601 -64308,15903 -52282,25768 -14621,64366 -57365,49250 -5610,39377 -54576,1115 -17735,21061 -238,56767 -42954,56787 -44415,36516 -31349,14997 -28608,51096 -4581,34228 -60040,60536 -53583,61978 -23536,29471 -56209,63777 -9569,43460 -65180,3729 -9905,45002 -45617,13266 -40670,25919 -23170,65495 -38573,2523 -17797,1852 -65132,11562 -16647,42351 -15328,16598 -16362,58319 -56787,10500 -16878,56307 -40924,38809 -42651,58243 -39280,50010 -48384,17125 -23467,19702 -62530,38960 -39290,26443 -34678,40314 -53455,60515 -55596,36932 -16356,52987 -30037,49233 -55986,52994 -5832,23582 -5499,53010 -39401,13633 -65294,41219 -30716,19172 -49830,32635 -59423,33124 -28765,54478 -49569,26442 -65160,24416 -38824,42551 -6232,17293 -38758,36829 -22270,31481 -55988,49116 -7148,44070 -53367,35657 -62930,27728 -1131,50055 -42939,20444 -4130,60712 -37073,16219 -15240,38243 -36850,27478 -6089,40183 -33497,22977 -1373,9128 -28098,14626 -54644,45734 -51263,57775 -38590,4591 -8281,48008 -56375,45190 -24021,41811 -49390,16454 -46314,34976 -15584,19751 -43415,8355 -6294,27476 -32275,16848 -59603,9522 -49925,1808 -29983,49157 -10463,44464 -8664,51610 -7132,14221 -53897,53164 -13899,28196 -61963,22725 -13136,31231 -53266,42162 -5598,37810 -54566,57473 -1756,28 -58731,3159 -60064,3093 -45290,511 -60170,18619 -43791,21073 -60350,31799 -43462,30510 -28052,44230 -12942,13071 -64466,26585 -9166,27785 -681,43472 -64226,55620 -37934,47681 -21202,44974 -19403,64792 -16016,57954 -61685,52571 -30400,33578 -55741,53038 -47417,27154 -24473,58852 -38053,26920 -63647,15119 -34186,44706 -44531,60324 -15004,33937 -46327,30723 -42905,44846 -41260,50271 -43954,30124 -46554,36134 -46779,42261 -50535,31097 -5509,7806 -58746,21944 -27548,34151 -46330,8312 -43546,4189 -28904,37873 -61123,4331 -9775,14716 -52300,32825 -56707,1620 -44439,57874 -9431,33451 -37766,58817 -30935,41927 -971,59895 -10389,45306 -59445,47598 -15558,23686 -8185,54741 -56824,46418 -24648,8116 -218,9193 -504,48032 -27812,1066 -49886,31368 -12865,24586 -22348,27887 -22166,24615 -21267,17508 -42924,64780 -12312,20619 -37971,3356 -63571,62863 -64783,4889 -30455,64196 -32405,42834 -27769,45262 -26282,21025 -62053,14250 -1269,24571 -34009,57519 -19679,52112 -33850,6622 -44361,58007 -45796,22999 -47107,58006 -30426,38372 -12291,26013 -50147,28706 -23263,54762 -2966,28182 -51827,19564 -62832,11882 -31399,22334 -9840,23107 -7369,48440 -6247,23510 -3244,29502 -21262,47866 -54245,21297 -28977,7228 -57580,15251 -49760,15987 -49144,8191 -57274,31782 -928,59023 -59803,42554 -41120,14440 -3716,31320 -55926,41589 -35299,12900 -23421,22101 -50822,54493 -25033,40858 -27198,22250 -31290,12907 -43145,43323 -113,27739 -36654,63956 -29938,50909 -15563,24925 -33454,44966 -52241,17504 -45978,11670 -28000,11136 -18738,54305 -47371,38745 -20204,38698 -28914,11232 -28,51143 -10233,2676 -59808,4518 -65235,21260 -48604,39525 -64456,53188 -38858,10019 -40397,30709 -46236,36293 -31841,42058 -63105,22422 -9419,53272 -11623,52326 -47048,42089 -46069,19357 -49068,22255 -19667,59710 -13174,8037 -51396,54942 -21845,26019 -34978,44071 -21912,11409 -46038,9570 -45989,4767 -5589,10170 -48666,22228 -59876,6577 -29871,33745 -19152,56775 -54648,55579 -6097,62684 -58470,57723 -32159,27572 -48598,34787 -1349,51571 -50557,23397 -29364,8243 -3787,31969 -44186,4278 -16497,12623 -18940,61108 -9507,27039 -49486,36383 -46603,8786 -36957,59295 -2737,47632 -50184,55714 -24074,24890 -57886,12172 -8527,37626 -33211,52560 -38056,53459 -35262,49211 -4721,23412 -8787,14947 -42607,24424 -58496,49392 -7919,1261 -58745,41288 -50912,43566 -34735,26456 -42655,31062 -33121,9305 -31534,45801 -15486,53788 -57148,8377 -59551,55464 -57674,3173 -7635,34001 -14265,4583 -37735,40094 -26167,19327 -58981,35778 -20498,58152 -11347,46782 -29111,54541 -24844,9328 -61078,21769 -21301,62015 -43319,45765 -19039,17003 -21729,52500 -31589,25376 -15972,20794 -1088,24616 -31018,65147 -64503,55423 -63483,54722 -37993,46412 -39910,23056 -32907,20851 -64753,8547 -64976,13798 -17166,32544 -647,681 -12407,18537 -28918,15564 -46829,45663 -30503,11557 -61497,47903 -62480,62902 -52862,35394 -65112,48158 -34763,7212 -8242,28596 -46767,53034 -32650,46186 -30752,58367 -52381,12205 -20770,19685 -26737,11869 -27721,2653 -60285,10603 -2467,60497 -60374,40113 -36465,59469 -46108,41333 -42293,9432 -29483,31734 -29657,38549 -48028,29205 -51795,62547 -43911,30676 -8619,19130 -56127,3616 -30634,60681 -53231,50088 -58565,17908 -62977,28793 -48850,23064 -41186,6257 -13028,44186 -7471,34882 -40560,57759 -33078,8092 -1323,7268 -11683,54486 -35417,45830 -33532,57851 -42037,9374 -18155,31377 -29631,41330 -47159,19053 -49649,61776 -62193,53676 -39132,59803 -38279,9631 -23534,28254 -49941,7522 -12700,43214 -49818,52839 -7631,50502 -53475,10049 -17642,46160 -31960,20765 -17070,28829 -52283,29071 -18397,57037 -53077,50164 -27769,57250 -48208,56967 -32119,45309 -35873,27360 -43996,61845 -29147,6511 -21001,3177 -42527,50110 -56067,39944 -49154,62319 -12493,60583 -15916,46787 -60423,16286 -25211,51980 -7892,53981 -27114,51058 -31822,18196 -31035,10816 -9076,49786 -24873,19496 -51524,56720 -62050,65240 -4277,19917 -44671,38706 -11697,3483 -23300,22566 -64567,11206 -22451,14454 -32703,25064 -43312,8932 -41155,33135 -44177,45034 -5017,60014 -51974,12477 -59468,30473 -35133,21042 -57173,58250 -34194,16800 -12899,34065 -38734,55041 -64071,61639 -4226,52656 -3229,50255 -51046,36017 -26979,54074 -9532,9297 -20740,21408 -38662,15423 -20008,6593 -47268,32411 -29327,25352 -63838,23992 -21544,30599 -31225,58887 -63143,47431 -2621,54909 -6390,39601 -31848,17176 -59499,63697 -50621,17962 -62870,33846 -45036,47923 -64217,51289 -1599,8634 -5151,5539 -59982,6187 -62938,63787 -25480,9903 -1511,42782 -34241,56445 -57446,46977 -16158,2852 -57092,26599 -44722,33925 -31224,9561 -7309,45059 -2145,59258 -37241,15362 -15351,2860 -21358,31056 -64652,37462 -47038,18711 -53594,63026 -45512,18151 -17035,8730 -54398,43394 -46017,16693 -26207,56234 -25071,35667 -4586,40157 -34407,38555 -54818,41741 -7172,22239 -38911,23422 -25030,53229 -41789,2965 -24054,64287 -45731,4546 -63519,64000 -21142,20601 -22200,44494 -19296,55113 -17817,40387 -54672,18900 -49453,17755 -6096,64481 -20803,52356 -24000,44321 -58246,2689 -21268,61565 -9101,9493 -54217,52089 -34406,2479 -38310,38724 -9354,21101 -62318,16662 -13444,3049 -35581,32264 -26905,10859 -19312,29591 -53426,41358 -27758,42379 -57944,13434 -11104,53448 -61515,4691 -14761,43241 -420,35764 -64392,7371 -16164,4429 -44804,60258 -63138,34907 -1292,64478 -6637,18705 -12239,9159 -20672,37248 -49904,55313 -35493,7196 -22626,3662 -43437,20853 -6816,26255 -41969,23035 -17886,23373 -30136,63308 -16544,28850 -50428,21039 -5743,61603 -53888,64153 -38418,30988 -44302,40240 -39292,33402 -22755,16974 -16334,27267 -10256,6398 -20673,8915 -35742,25651 -15691,33971 -64950,1852 -26394,31256 -12363,54789 -26437,55737 -45145,19840 -1498,4813 -28100,8593 -61964,35093 -49468,27608 -64285,55804 -64851,21822 -17718,31366 -8055,48805 -19839,1568 -41082,13578 -34667,34137 -62445,38131 -20209,1541 -39544,37831 -21905,31189 -8221,36529 -22219,34754 -18822,18517 -16604,55128 -43122,18734 -60853,65300 -50142,64164 -48618,58948 -54208,2723 -58551,8917 -62946,59119 -48693,13434 -54248,20084 -23933,49097 -11280,49821 -29107,34664 -12158,707 -60765,10378 -62607,60116 -59909,38393 -7477,20668 -38212,51808 -32412,51847 -32416,45904 -11965,56887 -41687,37696 -21651,13738 -11273,47125 -29599,5692 -29872,25908 -60609,8003 -59465,10478 -52152,52453 -27816,14074 -15964,57160 -61854,5466 -51925,21006 -21781,37860 -61862,54372 -10386,39514 -23365,44298 -5732,23701 -11414,54303 -57527,5702 -36781,41699 -63865,55718 -16178,32861 -45625,22693 -62270,39239 -58581,37568 -38822,13502 -32617,59980 -18606,35009 -47955,12563 -2381,35104 -44081,641 -24685,59470 -51422,49729 -53125,21060 -26649,42521 -17560,13618 -38023,64557 -31415,56675 -29139,58664 -8391,58843 -2813,43620 -46022,36425 -27150,57898 -25134,41391 -47864,3172 -7704,50645 -47341,37108 -18908,8605 -62667,49152 -27660,41053 -3180,51770 -49301,36527 -57882,64983 -37769,26489 -22157,5727 -52756,26563 -24231,45190 -55612,41658 -49308,16845 -32694,3720 -11553,1216 -51566,32975 -41440,41249 -7993,58991 -17424,61384 -14698,42901 -26298,53163 -42207,43406 -6311,36013 -54426,2230 -11717,53217 -51989,29660 -29584,45450 -54178,16628 -46806,20528 -37664,29601 -30214,42221 -13674,19145 -3170,50974 -41966,42036 -48341,36744 -22812,23388 -20445,33125 -14670,33562 -9188,36398 -50045,36892 -37601,27249 -18313,13745 -43114,19982 -17107,63495 -429,14442 -57740,9162 -20372,8202 -41398,53304 -14873,19682 -22588,18438 -47854,57474 -23282,8739 -60851,6890 -55161,60339 -39567,54689 -51341,47666 -24095,33657 -9370,2452 -44681,58822 -5501,49145 -23190,36598 -29867,486 -59953,54367 -63959,52859 -43353,34645 -49419,54518 -46286,39729 -1582,25316 -40993,47035 -49885,33774 -11745,18371 -28304,39342 -47815,57898 -3606,58644 -26036,55208 -27552,10455 -60355,31181 -4967,33067 -29349,25084 -19434,38894 -52915,19915 -21092,46541 -57886,61792 -33092,23206 -18814,48532 -6505,29505 -52915,53640 -33960,64869 -43983,15366 -65436,11278 -64357,61783 -60395,46231 -25397,12219 -40589,38055 -22951,44277 -23983,62189 -37472,37026 -46604,11367 -49118,15446 -60373,65178 -45504,15775 -32586,21625 -57682,10040 -3374,38021 -58582,1486 -31402,50035 -37421,57696 -52542,38036 -27171,36753 -47051,33184 -63232,62720 -6642,40593 -27622,40167 -4984,161 -24074,64949 -12188,9321 -11917,31880 -45663,56665 -40358,42256 -59958,64176 -22435,29345 -11938,20950 -8019,26552 -22645,48606 -15217,40868 -27531,9472 -38676,11488 -7320,15523 -3225,9482 -64124,56534 -8020,28279 -30164,6938 -42443,30661 -42308,28371 -38200,52055 -20233,48242 -61300,40723 -40477,46867 -65091,65259 -35229,41870 -17238,57702 -34765,20973 -41708,30289 -39910,42351 -25534,40840 -13103,59467 -31382,41183 -59535,24030 -38283,51576 -23492,62900 -14731,13083 -19868,6632 -31429,38269 -14917,25253 -13133,20478 -24568,4585 -19730,62849 -26648,12297 -61089,4219 -47492,50936 -8853,61350 -28695,28974 -64532,9112 -60998,59993 -46415,21113 -35859,43097 -24855,63690 -60086,36668 -22045,64366 -41957,51570 -29106,64064 -29689,11720 -52014,13260 -36792,58302 -24535,2421 -17979,21009 -45648,4213 -36569,22252 -25049,56767 -40835,44647 -317,8981 -41450,13736 -55394,21382 -42065,53990 -7408,31088 -21552,45514 -10934,55039 -757,57765 -31787,21338 -64875,12559 -4308,38198 -13638,31883 -52435,60650 -61419,52188 -39620,9062 -37046,48866 -100,5274 -13943,39589 -48572,32612 -62728,16979 -7887,16932 -62160,10571 -19080,12052 -22848,11247 -9787,43054 -62645,41194 -24248,34156 -57270,11031 -46104,22079 -14908,43816 -56019,30502 -43920,18055 -751,18184 -27271,4452 -27955,28653 -15177,2460 -64470,63663 -35289,25511 -11830,44458 -61071,46827 -10388,54706 -16827,44282 -9100,25878 -64050,32977 -50165,5238 -31894,30242 -6145,48589 -29475,4469 -722,54064 -48008,1264 -37445,49462 -14771,48454 -468,28861 -54494,23127 -63943,26280 -17634,42250 -25973,17201 -4574,58026 -10937,57748 -1677,46931 -22172,5591 -30748,21424 -57755,19306 -53870,1821 -16309,9977 -33390,26678 -63798,5545 -57951,15523 -29774,11456 -13965,5669 -5826,14846 -25763,23599 -24380,37633 -59488,52165 -30502,60355 -1934,59288 -42523,21197 -9653,1672 -31098,16460 -52830,36585 -9087,149 -16126,64852 -9187,36709 -17423,6249 -8830,34366 -47954,61391 -14456,20463 -26011,62491 -3377,14754 -34046,43008 -12092,1735 -29297,56254 -4437,11453 -53771,64644 -17533,33020 -3666,55269 -32761,8126 -32771,32127 -52268,10173 -47704,14772 -38227,23261 -8284,47171 -46699,1873 -51006,25217 -36836,1318 -12474,22602 -61663,50502 -9673,11507 -9588,53640 -48392,3054 -35383,6701 -58312,39825 -43389,56855 -32359,28187 -11613,19111 -3021,48523 -31046,3277 -27362,34922 -50850,41819 -57041,41 -54699,43598 -64901,46859 -14349,58937 -14154,56827 -34858,41338 -49220,49300 -8184,27374 -35289,59987 -12558,11677 -27838,7647 -23472,40228 -975,58707 -15021,32871 -63549,32968 -53329,27589 -32543,47210 -58292,42244 -9924,51406 -36849,3359 -3473,46244 -45974,18364 -51163,22003 -21415,61881 -60982,9679 -19271,29813 -10449,30705 -740,56443 -31745,33639 -41242,41314 -54033,27667 -6756,44234 -63188,1859 -15634,49995 -38461,35813 -8717,48231 -51123,25500 -11616,43842 -62908,29380 -23719,59003 -62346,41901 -49770,64288 -22943,37076 -1814,64614 -23991,27550 -56183,5669 -61727,27100 -3808,13965 -16063,46816 -47835,57481 -10163,37677 -62532,23306 -58276,7020 -52628,49710 -60,32353 -4626,41499 -18018,12294 -45736,52095 -39186,40424 -28193,22604 -20761,36724 -61429,55191 -19637,25691 -8732,19066 -43023,4228 -54958,20273 -39301,43587 -2238,51815 -31245,52709 -12699,50060 -54930,13391 -56133,32526 -14499,30572 -34739,34972 -44065,48855 -42642,52903 -28637,27824 -22610,43720 -11507,50219 -3691,58631 -22249,51290 -39403,18304 -24487,17868 -33547,49767 -40996,33649 -23674,41915 -8206,12108 -42296,55566 -35878,49893 -41700,3673 -46360,23597 -57249,6305 -27222,23167 -36278,40711 -17378,58816 -56289,32057 -11657,52081 -6954,44638 -51954,36035 -49756,39759 -51037,20999 -29837,37585 -48710,53883 -52413,54133 -24279,21486 -28798,4045 -59394,51649 -18929,12090 -54864,4339 -55074,11138 -31171,63014 -13594,3433 -27377,43928 -19130,3117 -60811,33132 -7028,31097 -52675,11752 -38380,9997 -62974,40618 -28450,9172 -9687,60432 -38894,4823 -35587,58320 -1233,44862 -14622,24160 -55020,35753 -17205,6776 -43770,27960 -33005,24211 -8794,35944 -24939,42789 -21674,39307 -42212,11213 -11586,61022 -28314,11106 -5935,3162 -45799,35796 -58157,15622 -46091,39198 -5931,6928 -62909,40537 -53692,20393 -21854,734 -14294,13547 -37043,26265 -59108,36446 -33385,11814 -59614,36909 -24386,17041 -23801,42019 -59901,9076 -46290,3588 -2584,36846 -43835,33194 -19240,46783 -50322,5189 -7577,21579 -1094,14437 -60660,58443 -54384,50218 -35251,12808 -26257,61755 -58575,38049 -31915,20500 -52038,20792 -29252,33563 -32069,60006 -48549,59021 -46421,26741 -63751,29832 -27576,44660 -27642,23720 -63074,64094 -16545,24262 -48918,45285 -63876,38398 -38961,32 -56169,48639 -44804,43782 -14684,32532 -61575,27643 -45843,28109 -42512,5284 -15974,15347 -7316,11838 -9924,33249 -15957,58381 -58970,27940 -63991,29232 -17477,2216 -20127,48326 -53637,40899 -11657,42920 -22873,56289 -48398,23583 -52380,7572 -54330,30478 -23679,57709 -57639,59066 -17878,52255 -5455,8972 -54536,58926 -35567,52914 -22957,51296 -15009,25990 -21979,39419 -44397,64520 -28710,13850 -62523,20216 -3385,59584 -50101,19375 -35649,25744 -2696,15791 -49147,23901 -5849,20544 -12659,34493 -23096,3442 -41689,51557 -21924,52487 -41058,18374 -14065,50272 -28941,287 -47716,31165 -25964,39945 -450,38603 -38800,17021 -22338,39293 -35506,8202 -25051,5025 -4044,32198 -50594,57034 -46176,63964 -10304,41443 -5636,2494 -9429,39957 -43438,20962 -57037,59814 -13113,30388 -50048,7045 -58965,13050 -62722,49497 -36297,27816 -35778,33595 -17136,26688 -62498,43861 -28064,1963 -59181,57757 -36167,54179 -22561,21220 -57925,11575 -32739,3876 -50166,22296 -14190,6662 -28484,64145 -47792,37416 -56565,44789 -38498,17548 -12864,13074 -45339,38205 -41311,1136 -26970,5293 -18605,52274 -29528,2890 -10993,29778 -50009,39439 -14835,56032 -53602,12321 -38227,19925 -36748,45638 -47969,23025 -45530,13616 -34290,22413 -12897,34073 -38070,43832 -36887,57156 -63533,38112 -48319,17041 -54572,17652 -1772,51962 -31802,39941 -65171,58100 -19782,64442 -39201,55389 -41729,36199 -7294,10883 -32953,14056 -55321,59999 -41062,54671 -50718,53511 -18398,59747 -56590,13762 -33227,28858 -57182,64033 -9872,32783 -43796,24312 -64134,21 -2561,38391 -22633,61841 -61805,56920 -51412,47071 -11811,12769 -24480,4099 -9905,7883 -17829,19572 -57570,41457 -52805,9209 -53529,64792 -7331,62152 -60658,54665 -54208,25496 -6682,33894 -21278,62970 -15360,34910 -11129,2855 -12447,19162 -43221,39752 -21378,53047 -52646,4517 -22498,9421 -56748,57774 -41615,60756 -21761,49805 -8153,20766 -2463,41053 -30398,53730 -10216,28525 -61344,11066 -18841,19270 -41994,23017 -56991,42011 -22345,16749 -26230,6498 -69,10541 -64034,62571 -56571,39372 -30074,57254 -57294,9212 -34519,27889 -49264,1284 -15685,55666 -39558,48675 -43223,58185 -19299,61043 -64943,22007 -1038,29106 -61737,6465 -27218,36056 -13836,8346 -56960,38833 -50358,13810 -59635,62719 -33842,9260 -22505,23893 -18798,2982 -4196,58459 -55658,57770 -53462,59849 -25268,53681 -46203,4211 -54503,35110 -57869,27518 -33355,15991 -47075,11369 -62113,29801 -56922,48696 -17421,31311 -30350,2232 -9031,9318 -9153,60890 -63258,58319 -51661,62114 -53937,18581 -60866,3228 -21739,45140 -19521,42710 -43901,48245 -64232,59894 -44936,48817 -643,22725 -45670,33110 -40596,60786 -27606,24425 -25962,8110 -50192,55031 -59338,35061 -52312,41423 -5292,13564 -14419,59304 -38102,16522 -58399,16836 -24652,29192 -28094,3119 -2724,16087 -42548,54129 -65024,32657 -31939,8561 -56862,11408 -18831,59186 -52370,26606 -21782,10086 -30899,27108 -36429,40723 -32004,14095 -55169,55213 -36282,50342 -7683,42083 -63618,3051 -4052,45710 -23983,3980 -41030,25935 -17096,12202 -48872,41706 -41887,56716 -8440,54877 -36057,13159 -55168,61343 -43871,42535 -30004,25964 -12966,44683 -32286,32035 -31448,36499 -896,25368 -56292,52748 -52440,28203 -38113,15500 -12729,1418 -40290,50900 -14767,27502 -57544,32800 -50635,56839 -31259,64311 -25305,32770 -10026,26133 -51537,24097 -11766,57850 -42806,62414 -28191,23184 -19611,52339 -24116,34050 -4776,16579 -47981,10706 -32330,8738 -62628,19978 -24859,22486 -33062,40416 -9627,49812 -30041,59833 -5977,29877 -52166,60099 -12484,60444 -5591,58535 -63282,64258 -22481,35672 -59629,786 -56866,38656 -5381,34162 -19768,57023 -57622,62079 -31477,24362 -2130,1890 -54296,55432 -17448,22470 -17095,56924 -57324,48229 -50635,64975 -17648,54793 -19717,52177 -3224,38371 -61465,46291 -31710,62617 -52770,57756 -28400,22266 -35785,36763 -25673,58989 -8210,29336 -22580,54803 -25454,54206 -10753,26238 -30059,21510 -30662,59102 -52886,43615 -60508,65498 -33234,55031 -55500,63129 -57430,36348 -14125,3917 -23231,12532 -27821,2712 -43481,15407 -16164,61820 -37774,53450 -51847,56409 -15099,49085 -19805,23357 -47485,59619 -19861,65284 -43424,24462 -48699,24751 -51534,58963 -33230,39899 -9604,24293 -43110,61275 -60612,40949 -103,12605 -64144,52846 -61713,11710 -21567,59479 -37228,18680 -58590,46052 -16749,52929 -56318,20105 -24690,42633 -35019,35161 -31902,38793 -16757,1732 -35303,20910 -48586,40329 -10543,3277 -58991,14199 -25589,1502 -39393,4159 -56799,10787 -47376,22407 -28764,17148 -30986,4617 -33405,9102 -3249,22507 -14712,28575 -60009,59074 -6964,35392 -10881,56356 -24759,60399 -51223,13301 -60062,31883 -3306,38015 -34851,43086 -62664,40183 -2464,55158 -26308,18303 -19093,11016 -27330,53397 -14218,24230 -9321,22820 -14931,21969 -15258,17865 -58257,15466 -53916,56772 -45821,57039 -60523,4910 -19357,59796 -22859,15297 -40482,53328 -54051,57392 -28463,14859 -61807,37888 -34321,58964 -26645,63613 -63038,46449 -28929,25630 -26458,23332 -8735,45696 -671,32564 -41743,4872 -59426,13440 -61157,48294 -17911,29913 -45145,16047 -49994,31138 -1145,17287 -53528,48911 -29397,2521 -7244,55449 -1890,49975 -47711,43972 -48875,51198 -34284,3921 -59788,56211 -15238,48451 -13907,29893 -31331,56733 -29966,12270 -19977,32237 -31814,8264 -8198,14277 -31416,6453 -3923,4934 -44491,7083 -36391,44033 -23549,7343 -43997,2295 -48450,55999 -39559,11721 -33114,41703 -350,26229 -13008,43863 -23341,37477 -9590,12408 -1543,47642 -10744,55424 -58135,35462 -24640,47579 -58690,24045 -14625,22599 -44201,38948 -44945,51278 -11563,38378 -45934,2367 -32227,48309 -31954,35551 -61141,65028 -4226,25968 -8200,64237 -64855,8078 -31630,60283 -43531,50919 -53183,64498 -2890,61746 -50760,43301 -62650,37917 -5006,36945 -45699,52689 -44263,46269 -7386,22763 -51731,37524 -24034,23418 -3598,14539 -30267,63881 -33242,57892 -18805,65297 -44867,27527 -35461,65073 -19872,6298 -48881,51559 -34005,18950 -31934,35766 -41144,56472 -20919,27836 -3568,4728 -64191,30134 -65506,11487 -11846,61413 -1877,55037 -51602,3886 -41885,39101 -50102,47138 -63372,34020 -63260,24406 -51398,28548 -32232,38550 -26947,9989 -8035,15090 -19274,16495 -17031,61131 -62000,52444 -45892,1867 -30663,24288 -51699,38525 -56003,33182 -54309,43362 -27411,6912 -58126,23616 -43313,45814 -8904,32648 -23019,23487 -14354,1845 -1838,42952 -2211,42752 -55119,12474 -8516,32959 -10252,51288 -52944,46387 -64735,61540 -47591,38601 -37075,16648 -49853,7034 -5956,4358 -15419,61701 -50834,59112 -918,56961 -35358,11331 -40815,19947 -12613,1342 -58403,62834 -59990,7330 -59187,33063 -55482,54979 -44446,5349 -7303,54060 -35323,46632 -37078,9420 -29135,33887 -42376,57414 -59837,38516 -29408,41649 -42560,37114 -58557,52810 -28549,10412 -9812,48559 -63505,45185 -13875,63350 -33444,16356 -38705,55217 -30138,28189 -29173,10746 -36691,2294 -53491,10484 -14928,34335 -52715,17906 -65349,33433 -4205,50788 -4328,24553 -9234,50813 -38627,32782 -13837,6298 -36965,25554 -16066,62572 -19450,48872 -37182,1439 -39958,24617 -1109,63861 -54306,63847 -20508,82 -50968,1540 -46906,9633 -8548,1167 -24754,18490 -20201,12529 -49397,23221 -23471,57927 -36650,32427 -22865,34251 -23086,31546 -44097,28934 -24151,61630 -21952,4213 -62756,61795 -42683,7647 -51793,8566 -23836,48379 -65055,27020 -54117,45062 -46365,47606 -18362,49862 -39933,37848 -404,62262 -33984,54938 -30655,13711 -47053,45315 -15555,30289 -43680,1802 -9860,56687 -30110,9838 -8791,34753 -1960,20771 -51499,17735 -1141,20312 -57335,41527 -3793,33163 -59316,64830 -31425,41366 -58821,61266 -40338,35967 -17895,15600 -12444,16564 -14751,32872 -22162,46181 -29311,45862 -30034,60500 -25167,57858 -1883,20190 -21692,41628 -31521,50881 -29811,12449 -17025,35950 -25387,23074 -5096,60688 -54826,40731 -52861,41110 -9635,26409 -16541,22083 -27898,17707 -60252,42827 -8189,257 -2195,62987 -1358,2184 -39583,13112 -16777,2578 -27398,39051 -37677,3484 -22387,37396 -27711,34660 -18657,32725 -60072,20216 -3558,56156 -28937,63989 -51132,64350 -50008,38036 -45492,49129 -47111,36323 -40839,27454 -60127,31292 -56885,16680 -21714,52130 -48970,48190 -32187,41001 -19873,37 -41029,20240 -2756,9485 -43961,26297 -19003,809 -26602,52476 -23917,4721 -9010,3122 -15693,43004 -5310,35674 -55381,40839 -32223,10202 -22147,62722 -29239,34167 -52236,10879 -57435,57194 -29908,41872 -39326,4927 -49941,57928 -35068,25834 -3644,43314 -51094,62882 -6386,9689 -21265,46884 -16309,53286 -2227,39281 -3126,60716 -32117,27978 -55287,23855 -36847,46754 -56292,64395 -3740,44805 -21876,63475 -7759,39894 -27216,409 -25969,18986 -41813,27374 -33279,39142 -37289,36503 -62445,24244 -33130,47090 -10547,55176 -956,8299 -37588,1028 -58254,40810 -44365,35714 -6606,53678 -4757,34864 -59270,17670 -64197,63367 -10045,21087 -33430,19455 -32932,10614 -6771,44350 -3289,38762 -5887,18864 -36220,18771 -41040,28227 -1376,53571 -62169,33317 -34577,18516 -28749,56673 -54918,15449 -8406,61664 -4933,58483 -29392,33397 -48572,50113 -13951,7121 -16967,34927 -16830,54272 -44695,22868 -59944,15725 -10796,55253 -31957,10755 -26437,8085 -51303,64240 -45065,1351 -63162,35545 -30608,19347 -26730,11957 -57092,3236 -14187,45537 -18591,25718 -2406,45060 -1823,55246 -60347,31336 -33449,8857 -4154,11644 -57886,3572 -52755,295 -5738,48868 -60420,53609 -37281,3850 -50777,23339 -50662,40111 -38241,38575 -26473,33576 -7970,63176 -56411,6629 -5341,41181 -41367,37954 -26821,9659 -16372,48272 -65310,396 -39230,41710 -44313,52633 -42605,29071 -5614,5481 -57153,53848 -47049,59728 -15014,11112 -54517,48384 -46788,55340 -42845,7204 -36696,12558 -32397,16759 -2506,20451 -23192,41159 -63750,43571 -12335,43083 -24585,21194 -7855,60794 -50885,51006 -41817,40562 -28897,16817 -10921,8704 -22785,37637 -62466,54872 -34202,15718 -56219,52225 -39952,38083 -37087,20860 -18955,50304 -43620,6554 -3262,52515 -17361,36399 -29546,42921 -26672,40281 -48557,20713 -48033,61058 -15824,10235 -38317,26738 -54578,11895 -53923,10633 -28404,64058 -12694,22276 -39476,46335 -12534,16624 -31802,13223 -46524,29264 -55343,54637 -34462,29969 -54272,28612 -6452,57673 -13027,31339 -50598,27367 -17756,25367 -37993,49188 -25948,48057 -24677,34538 -279,29417 -15389,61342 -21820,28282 -47390,42038 -4534,44305 -58104,62047 -22089,29524 -21767,23941 -17318,38443 -64286,35109 -64443,13592 -15872,40308 -49144,18775 -30411,18706 -13240,50951 -59852,14074 -49643,14524 -46416,21176 -53217,4787 -9726,45508 -28713,65499 -10320,48739 -33417,41819 -4082,43010 -26179,6164 -33168,15746 -17157,64718 -64167,55016 -48814,14020 -62001,25247 -43683,48936 -50899,23859 -61144,4337 -19674,35763 -42494,15107 -41950,46337 -58814,49510 -38365,11456 -15889,52097 -45481,40408 -11565,60715 -4457,19832 -3431,47698 -58502,28153 -24356,30051 -42371,880 -31070,4910 -43820,10688 -42137,50954 -3788,9474 -19285,56727 -46710,32966 -25787,1077 -1078,46453 -2439,42113 -5813,3916 -15577,38813 -11295,17777 -46282,53011 -7665,54715 -14311,25423 -63206,64807 -62380,60004 -12247,60535 -31161,46469 -9822,28886 -50164,22764 -34828,18891 -11481,6097 -64030,60551 -3016,37086 -39098,19099 -1906,24605 -11007,48341 -11280,42292 -29599,25392 -51283,52428 -16762,41711 -61783,23223 -51629,4253 -22979,48058 -7871,58643 -41328,52457 -11403,21360 -30540,62596 -34043,21703 -17976,38851 -52743,41520 -8712,44347 -23080,32080 -7223,28300 -30178,36060 -10655,8621 -18114,11398 -65366,47010 -57389,64425 -45702,6078 -40653,11716 -44971,18808 -47646,45138 -17762,51954 -33914,41886 -61967,44187 -64237,44723 -9570,21189 -51077,62209 -50814,48385 -21487,44688 -39572,12107 -1180,12277 -4589,25861 -34546,1547 -32440,13301 -8473,32581 -51188,23638 -46498,58508 -33573,27943 -52648,18524 -59014,45438 -14792,36948 -16406,936 -32014,19716 -49052,64741 -62305,38925 -51177,4099 -60519,7148 -38494,40183 -19019,13165 -22416,29421 -25816,15809 -59473,62475 -22361,25288 -222,44079 -12653,5652 -58957,13757 -27926,56574 -21147,36078 -21572,31261 -61538,2695 -32251,61022 -2637,14416 -40443,34217 -58832,22901 -6395,54580 -47027,17953 -33951,63096 -56653,37489 -60963,55445 -28478,29266 -34386,61680 -27519,35973 -39305,60256 -31199,56929 -4009,57692 -26092,45912 -62643,61959 -62764,34032 -61259,9965 -46572,45133 -1925,18862 -39635,17990 -27795,21151 -21931,9962 -53951,31321 -29639,1491 -10391,40796 -54410,18742 -55451,41212 -9503,56722 -56840,40214 -16457,2246 -38803,48766 -45501,36714 -32963,51429 -37642,19557 -55275,13080 -61699,38108 -7380,60174 -315,30519 -52096,21770 -35902,17700 -36669,35537 -62428,37092 -63375,62862 -57776,20483 -55333,23349 -15405,28792 -34295,29106 -9959,38765 -43993,19192 -21693,43951 -52345,16888 -65062,11966 -11305,43682 -24942,47985 -55661,25301 -30393,17884 -63224,15423 -33303,9314 -5795,53265 -59538,56377 -54937,35683 -63259,57421 -63793,28007 -18056,52243 -47290,60399 -59794,49076 -53449,17587 -15929,8954 -48772,25634 -38277,26318 -65289,35472 -13278,8290 -38390,40144 -23222,26928 -18486,20924 -47873,22041 -43991,7565 -43682,13225 -8875,21193 -61387,37558 -60391,62745 -16954,25399 -45642,35426 -6920,49631 -9025,48180 -57406,57032 -63270,60278 -65328,25983 -42721,63774 -34518,7487 -45327,47890 -35771,28208 -42147,35791 -55818,13520 -35641,31516 -62981,17607 -296,39365 -18037,15664 -31013,52014 -9666,39862 -51381,29471 -16955,27452 -3295,34690 -6886,37439 -25796,62066 -55767,45398 -62442,37953 -63138,63200 -21824,51359 -10519,56637 -35795,48195 -10418,6572 -2714,44933 -6034,27865 -46593,14013 -46681,6047 -43583,30701 -3480,57481 -46374,43446 -25944,51403 -18920,22327 -63160,26610 -27291,32891 -46429,16648 -61689,43269 -63145,63399 -52281,18977 -63154,15703 -16289,31658 -6755,39074 -43376,34462 -34164,2753 -8706,20540 -29752,29218 -18309,61644 -16384,10185 -18460,55437 -39703,62738 -24136,60438 -52110,43959 -46008,60659 -21758,16552 -13597,17013 -58746,58484 -14828,54922 -57453,41935 -64318,31935 -61540,11444 -8302,42429 -30237,64034 -44009,58583 -30963,38512 -29099,11037 -52919,56820 -62193,12933 -17283,14625 -18188,23499 -1154,12586 -5688,4430 -472,24775 -45404,53857 -4875,20417 -6745,50660 -36254,52692 -6691,63956 -32876,59544 -61377,45758 -21416,30958 -40409,55804 -52808,50796 -38495,43180 -8211,34701 -60047,9681 -39918,29796 -57885,19614 -42079,61619 -64211,16497 -6192,29524 -5646,57312 -16401,37267 -61592,10557 -59212,60067 -56856,7672 -40917,28131 -28739,43481 -39623,60019 -33439,58417 -17274,12878 -19927,8611 -45643,62745 -1753,15365 -54617,60353 -8866,13363 -10328,52298 -64999,21337 -47337,8535 -58763,31977 -35226,5138 -44476,40609 -49605,16407 -2450,39242 -29615,34835 -5853,55737 -54929,50631 -14457,11942 -29302,35833 -31236,25806 -41439,57904 -47973,43162 -62873,38559 -1911,30901 -18090,11563 -38290,17099 -21378,8525 -9048,16017 -32314,13244 -53721,25082 -52194,7015 -1885,46115 -27795,19222 -42160,2869 -65061,1923 -9481,33341 -20798,18463 -10204,20467 -59941,23656 -40473,19376 -36419,37746 -49814,3956 -40657,39163 -60182,18016 -21075,5309 -19137,2956 -49591,15888 -31428,5298 -27019,54388 -35024,3506 -15577,18593 -16686,55668 -12194,27484 -24566,9257 -7303,37506 -32102,5876 -12836,45824 -64696,19467 -24526,60726 -54692,49918 -60114,45619 -16386,30231 -3406,8462 -29070,47617 -49523,38172 -38486,9824 -31930,3342 -12283,2269 -41594,55859 -12215,51844 -47381,65193 -26655,33269 -38832,9856 -47048,39652 -35950,43734 -23321,58940 -7239,644 -37356,38295 -46192,38251 -25716,19493 -32552,46620 -29534,5548 -12027,30903 -64661,35733 -30835,48535 -61232,52284 -10712,11930 -16423,27065 -34352,32509 -88,41932 -42578,13905 -63101,12593 -450,47726 -42411,6440 -3854,49568 -15671,25685 -7581,57223 -23956,38235 -25907,33840 -31631,13368 -51971,51733 -52841,14986 -60560,36153 -3638,26159 -3001,19096 -62145,61343 -12184,42854 -22947,18513 -42291,14245 -29028,46700 -35736,38399 -51192,4449 -24403,13884 -13424,11045 -60618,15117 -35030,36514 -14039,26122 -23623,50964 -20421,32363 -7590,32459 -7540,15042 -5840,12947 -35957,41369 -13128,40743 -47676,53959 -40991,577 -23708,45606 -61203,57782 -23257,57055 -44703,64260 -27388,18524 -7216,49834 -20441,58507 -32623,60129 -26750,53869 -54961,12752 -44370,5670 -19401,65069 -50854,58867 -58348,28738 -33605,64313 -31193,7470 -45392,33886 -12564,23681 -28586,6752 -35416,55696 -57356,64396 -47047,60379 -28217,62215 -32250,19714 -61046,9805 -35057,53997 -36571,51139 -50103,31387 -12272,63122 -36773,11440 -33517,58961 -16614,61016 -1229,26734 -6526,13678 -23726,17117 -44011,60989 -51038,27132 -40236,38933 -44646,9855 -56965,60342 -28721,44320 -23355,643 -65326,22498 -53617,51520 -18216,1756 -24308,37391 -38564,29223 -36432,25496 -55183,39153 -38253,12377 -38991,35664 -29739,34865 -27153,25664 -20171,19210 -43290,52802 -55808,49683 -47501,26051 -47978,58195 -14189,19020 -42875,56103 -34034,43193 -54588,14060 -9462,17095 -30218,9452 -46622,52547 -60103,43980 -61126,14564 -60348,9064 -63523,58674 -61376,36181 -27961,6305 -62711,53681 -29405,25217 -10720,30411 -59798,34778 -44122,34681 -57167,35808 -63029,48479 -8103,38077 -52251,34987 -44667,53384 -50845,5180 -24901,63003 -55806,10917 -26233,19250 -26604,25738 -52519,6044 -4661,9221 -54368,8745 -40630,38657 -16817,12028 -1927,40490 -22211,39483 -42769,26804 -9535,26623 -20362,33929 -23631,50499 -56507,5670 -12928,60361 -60096,51534 -64061,23539 -45797,3874 -7926,55898 -17698,23309 -62558,64899 -44958,39637 -39564,32245 -8897,5308 -61319,15705 -4895,57756 -13017,50134 -10262,11754 -54508,41486 -15785,16597 -63378,9891 -21983,48476 -55628,58666 -19291,4905 -44887,6513 -36315,54439 -50850,21526 -833,59707 -15570,56157 -54309,58797 -20039,30972 -33126,3806 -31179,58041 -22301,43756 -36847,41462 -7171,54935 -10123,13968 -13085,22706 -8427,37099 -19250,34001 -64544,13412 -59893,58340 -6814,2487 -18546,36255 -25725,53368 -2637,31421 -63062,59019 -33443,5018 -21959,60434 -29774,46112 -55483,41269 -41330,5278 -4134,7643 -10315,53232 -59393,12026 -22723,4150 -61780,2356 -19139,60569 -48350,5718 -17801,25757 -11953,36804 -33272,2769 -43537,1895 -16998,50662 -57630,55398 -43403,23117 -19769,42881 -21515,25943 -58356,20334 -17091,39356 -56686,59007 -47495,51063 -26766,29341 -61718,36716 -37957,3563 -19816,42973 -7472,19485 -17517,2926 -37725,13139 -7930,26032 -6724,45371 -31478,40914 -41138,52485 -33,2849 -16192,56404 -54804,53278 -60623,38139 -58464,51004 -21719,7366 -64400,55463 -12483,7562 -26114,34389 -44233,58632 -38747,48844 -23819,63782 -45693,27689 -28115,41816 -64873,55698 -10881,19819 -64108,46553 -38393,33751 -6560,25984 -15316,79 -6188,31725 -57664,39196 -58787,63129 -5981,26806 -36942,44071 -21041,36624 -27962,64763 -8508,10672 -38699,46256 -30286,57093 -4140,9076 -8821,54461 -41086,10054 -43931,38864 -49158,53945 -41974,45772 -16867,23711 -18851,39397 -49417,26486 -13002,34679 -2677,56159 -49054,32864 -8636,1363 -19720,52901 -3190,38781 -39213,31049 -49295,47562 -20002,32690 -49958,12166 -30282,39244 -27611,29863 -22042,44316 -7990,22410 -54556,39119 -12862,12464 -1123,57813 -9567,37433 -35732,50840 -6889,17075 -28117,27655 -14505,57380 -9861,30431 -999,49302 -52001,16439 -32660,3981 -51788,13125 -60055,35503 -9873,15133 -28350,40184 -12508,58743 -30815,8995 -63094,44005 -12224,4284 -21715,54035 -63490,2533 -49861,36206 -24655,18274 -44938,20748 -20011,7793 -58025,54083 -49166,21103 -63931,13583 -34649,44585 -35833,49200 -36245,28434 -11503,27978 -20313,45949 -58386,56750 -23675,469 -29982,55863 -24016,62713 -29606,4830 -51708,63322 -45160,21846 -30901,22802 -44511,20050 -39512,20860 -1672,55964 -33941,14155 -29414,19385 -24918,3098 -18758,51839 -7630,50684 -47628,35729 -57835,51089 -6484,7065 -41601,60022 -21562,34024 -10631,30110 -61518,12819 -9189,41774 -8448,34914 -33018,20509 -30146,60449 -47339,1102 -25684,33234 -25638,4631 -53923,51129 -37089,15329 -61604,63753 -25853,21331 -33081,12503 -49098,29102 -14760,45548 -23385,23925 -8979,62109 -25338,38169 -11071,12380 -32787,55667 -2849,57182 -51116,34446 -34718,44988 -2389,64707 -34874,50650 -24907,34486 -56781,53103 -62076,50549 -30297,50791 -55156,48858 -928,64135 -36178,59243 -58651,9089 -14696,33220 -48956,37140 -60378,19014 -6070,9352 -7002,26158 -50305,42677 -26880,31232 -45312,49118 -53831,44097 -6370,20851 -47666,6866 -5118,57306 -62837,32675 -40452,38116 -52989,43473 -5750,42114 -33541,41749 -1616,45237 -7732,6054 -38350,36560 -13706,4439 -61978,65071 -40639,12379 -4285,37272 -63374,6435 -57826,46417 -13951,13071 -51162,63953 -13820,32751 -27212,7304 -53037,52256 -50021,40110 -15198,63318 -7972,62113 -15279,32092 -16505,47622 -64155,25374 -61226,25771 -17785,54661 -27974,21812 -56438,8620 -32138,35176 -58600,41432 -35628,16561 -57916,33490 -28289,41835 -41016,46293 -53747,10467 -19574,22006 -7593,11587 -54110,12950 -26232,20846 -30420,62466 -21994,30366 -41305,17068 -17951,50317 -44997,36278 -13960,39230 -7948,9135 -22402,14700 -18219,7585 -23330,1660 -7590,2946 -18191,41053 -35964,37520 -44019,58134 -36373,40495 -44354,64796 -57142,15491 -33985,40760 -62265,54674 -22976,469 -14858,30865 -8952,34930 -59231,4620 -62518,60266 -62990,33201 -50642,31565 -64525,63177 -42523,46999 -9872,39372 -57584,61099 -18950,46523 -53582,25086 -6864,28802 -55089,17720 -56972,48776 -58250,24949 -57030,9194 -37027,23778 -46966,49434 -18944,1115 -1857,5302 -24575,33006 -36437,12204 -35865,32342 -23789,4132 -22245,38995 -43482,39239 -58023,58548 -39455,14460 -58879,42877 -50935,6454 -386,18673 -12469,40307 -36438,20038 -53480,53931 -60718,37522 -1124,34979 -5085,5110 -14164,41787 -24045,65083 -28350,5640 -9905,1464 -39195,53227 -26468,42927 -57406,30475 -12481,60756 -63747,54178 -60524,42391 -16925,34801 -3952,5572 -47725,45901 -14470,3520 -55414,898 -3439,2005 -28388,30745 -3030,41409 -61101,23514 -58279,20305 -51227,17800 -40464,24136 -20172,20018 -21492,19641 -26613,47992 -19717,51289 -2014,31534 -6245,7988 -60514,58543 -54853,27476 -38361,2640 -62222,14943 -25460,60893 -28150,44022 -27550,27316 -47096,44528 -14242,64975 -36626,42398 -33527,392 -6887,20002 -30042,14000 -4370,20112 -60785,23728 -56988,5949 -29266,43563 -38217,27246 -36039,31977 -42635,49023 -3201,14558 -49697,33305 -33411,19743 -32800,52449 -22183,57863 -26404,42554 -52221,4371 -21010,9947 -958,36486 -19921,45451 -17824,64374 -16224,53765 -38473,55797 -58821,7149 -49303,46578 -31310,3748 -29633,22009 -23114,28810 -2683,37435 -39837,48274 -26872,9703 -22509,31567 -54543,52342 -61540,62423 -23440,8878 -62864,48204 -25003,13291 -17490,38917 -41239,52122 -6346,44982 -45168,44203 -58933,64008 -53043,15940 -30339,53109 -40609,33629 -60974,36777 -6814,29532 -59958,11592 -49397,20930 -3367,24764 -2302,20077 -32252,64711 -1448,9275 -48796,31351 -16210,50258 -40091,24202 -62882,42577 -57918,61356 -2158,8214 -13362,49042 -50694,21961 -63417,55752 -12135,13122 -3862,38165 -33147,42898 -6354,9601 -32003,20468 -50573,60626 -35349,25003 -52447,45092 -37509,44288 -40583,2618 -46838,7614 -47129,26149 -26293,36556 -65095,46905 -32723,38693 -21699,10807 -51200,30212 -14409,44573 -24806,12677 -16419,1340 -21308,19793 -4170,61798 -18395,33667 -50399,97 -39138,1683 -15315,13522 -48072,9854 -33274,9116 -55952,2973 -23324,40088 -50872,10098 -40719,49231 -49296,28701 -37421,11618 -27667,63313 -2426,13747 -49166,47388 -25634,52432 -32046,9098 -21826,6239 -6026,25801 -9342,49254 -34166,44130 -31127,35774 -47479,1211 -50444,47474 -47206,26434 -49982,60697 -26040,5029 -9909,100 -41151,40304 -5499,12344 -28608,29138 -47148,18568 -9822,50215 -6365,5413 -49952,16197 -52649,63034 -13652,9530 -42214,33615 -4397,58236 -29099,35742 -63275,63072 -56764,42312 -2492,64841 -50430,8206 -51538,31687 -19807,6763 -17934,570 -45374,63170 -50455,5472 -21591,46471 -51888,56253 -13008,48674 -62792,50368 -29512,56278 -27103,43859 -40882,63235 -26292,22200 -24177,46519 -28880,58499 -13618,15623 -51294,12905 -37440,37098 -43008,55095 -18372,33015 -10828,17548 -8536,6942 -21768,29366 -38629,32307 -28352,44438 -5391,62879 -40318,32859 -60151,59326 -35334,54748 -34271,36931 -11432,6894 -25096,59577 -34236,60794 -51965,60106 -35414,46564 -38030,12247 -5343,33563 -26333,63002 -7101,16720 -52313,61219 -7194,56502 -56042,12282 -58086,36789 -529,64227 -11274,2206 -33158,25958 -7979,58586 -21374,1880 -17344,28993 -54938,6039 -20496,10395 -11492,34011 -21005,41549 -44828,62130 -52152,1086 -18708,12069 -9314,54617 -15761,15632 -3292,5188 -42012,7192 -63116,50569 -34190,23608 -52445,18387 -46086,11461 -2069,54172 -21125,21138 -62291,51027 -47178,32324 -5062,19978 -42303,65110 -56573,49466 -40615,54466 -58635,62138 -20619,38179 -11117,3073 -236,36024 -51653,52371 -44325,58070 -1389,22260 -53699,32924 -60446,7188 -53520,46555 -43610,5764 -17259,11500 -21308,26609 -31127,13590 -34012,27046 -44707,11029 -19041,5516 -41377,8925 -25182,5516 -47244,28711 -58377,37492 -18832,338 -43291,39434 -20764,50272 -45331,31396 -51719,2504 -8752,31400 -36118,50714 -25298,24410 -25237,30597 -33856,2082 -50662,40178 -6618,395 -61487,63809 -12446,28344 -58419,5169 -54040,30905 -457,39515 -35516,15144 -28991,13824 -23610,9914 -44442,40427 -4994,59272 -40646,23079 -23318,64169 -22114,13437 -55731,27942 -11436,62148 -45543,59541 -41574,29169 -64956,48239 -11949,54099 -53149,2423 -20373,1728 -9436,37393 -30349,28869 -46727,43301 -46499,59873 -24827,59131 -19131,43179 -4441,12058 -48315,19814 -37538,27391 -3951,29217 -63363,24876 -4477,27180 -34052,34197 -32523,28860 -55004,64337 -55607,19199 -32245,3281 -27031,55790 -2360,36488 -23210,63064 -14470,62329 -65400,52783 -49926,64518 -49407,29354 -33310,18729 -29628,21777 -9866,10186 -45545,28135 -7549,27042 -38355,49764 -12403,20118 -18199,41883 -3135,62909 -2734,29885 -33990,39980 -57883,31310 -51988,13360 -3476,1065 -27559,57328 -30340,16126 -27371,13762 -24942,44316 -39765,48957 -44355,58567 -55158,34684 -13108,60355 -35545,60523 -32186,36254 -52652,31902 -55102,44646 -1897,35340 -43959,13132 -32440,37306 -34304,53364 -27895,11385 -44332,56834 -2213,59410 -8455,59537 -51677,45666 -44567,52875 -60561,19854 -23175,51382 -44421,38261 -63271,35761 -2196,13204 -64023,63858 -21252,50966 -34586,60038 -39265,61349 -49011,25151 -61569,12357 -4400,35728 -28834,27013 -64939,62522 -38847,55110 -28803,22119 -15818,55344 -46157,56972 -45306,59551 -13313,36569 -59749,63576 -50978,33523 -17512,30796 -44459,45886 -46590,44930 -24141,7272 -22560,58562 -53933,35697 -54447,9353 -40180,39423 -13475,23663 -26412,1898 -11829,3602 -3846,23115 -55657,18250 -31811,32711 -59441,64121 -39785,57170 -47876,35874 -23286,4445 -35001,5607 -64300,752 -16818,26996 -63328,29467 -42115,28602 -39858,12954 -35785,13973 -15329,55961 -8031,33543 -45936,42474 -17995,64582 -52843,15960 -9099,61260 -32215,33326 -64524,29483 -45336,17462 -56483,61883 -33552,29450 -45208,40084 -40871,47654 -51821,61836 -21176,55988 -31323,60596 -30801,516 -42788,60929 -7699,14748 -47526,24068 -56158,547 -35654,62881 -56933,49835 -30990,34128 -29050,59723 -58598,57590 -17696,62185 -9194,28925 -13339,35272 -64065,25031 -35060,17713 -46536,61102 -50108,3270 -64376,25197 -16971,31330 -17973,19579 -20523,14527 -53578,17158 -20271,34995 -2474,32591 -19491,23621 -621,1278 -20583,8642 -18594,48827 -54819,58208 -47975,56993 -5817,62622 -29946,41523 -30913,31699 -56021,57718 -37855,29448 -1683,20797 -14821,2684 -37740,11507 -14695,54879 -9522,37512 -38039,48243 -3185,56541 -63284,54352 -21439,25943 -12458,25289 -51508,4849 -29832,22848 -14095,43462 -39239,49364 -36507,5920 -45631,54007 -33792,38774 -57277,46933 -12865,5034 -9069,16198 -310,16396 -2207,2011 -45971,38203 -26168,48079 -38574,56836 -31611,47952 -24505,43002 -1009,14985 -44292,56855 -21373,8718 -43142,52482 -29382,10192 -48304,25664 -8443,33686 -48069,55849 -10112,4423 -33264,5936 -12731,6198 -7982,36396 -24844,51863 -42908,19508 -19863,15930 -31128,37675 -24981,34927 -13384,64368 -13406,49955 -45738,52931 -2363,54820 -13951,57414 -14102,49298 -4015,57104 -23496,2168 -30856,9074 -15203,62692 -52928,31249 -23915,35752 -17991,47031 -45668,31678 -326,4065 -39028,4787 -8924,8240 -7375,38212 -21145,61584 -38891,8631 -47770,51264 -989,39268 -62712,15387 -54273,27326 -22829,47307 -24651,65227 -52228,11457 -5759,46255 -23099,31337 -37320,24551 -56459,60543 -14804,23158 -55791,52037 -21920,48901 -6697,63862 -43269,16071 -28153,9477 -42017,40979 -813,3533 -41984,39695 -62021,37438 -12386,54576 -2141,28047 -19800,6237 -64805,60742 -25773,38673 -17476,39392 -37114,35139 -61332,30506 -12520,41382 -60432,52008 -47905,12245 -16635,51563 -32539,65301 -25694,62325 -21952,475 -37658,52841 -39234,17675 -207,34564 -3130,5794 -27785,53041 -4881,4514 -13082,28754 -59912,59702 -2948,59692 -17587,7997 -14226,47542 -25178,37018 -13317,15220 -35478,52986 -54197,18435 -30622,28210 -4159,18316 -50652,14348 -53748,61728 -54267,35262 -65460,2468 -1550,32683 -10176,3267 -31695,22645 -31877,28527 -28604,40099 -52226,56835 -22308,53446 -3322,53237 -49109,23418 -33632,59179 -62409,32496 -63662,18023 -63803,1219 -35667,62115 -54307,51458 -57009,13986 -65165,9884 -30378,20966 -50360,668 -9324,17843 -18078,41500 -57664,15955 -36772,51818 -11506,35654 -8280,48569 -609,48190 -24339,10591 -8807,27500 -44957,31931 -25228,26733 -10261,35266 -35455,35419 -3019,37571 -57811,47013 -59076,27872 -4978,35371 -19719,8539 -41799,30371 -1782,65263 -25329,3214 -48513,16020 -53916,43493 -7083,33579 -46467,12783 -30524,44256 -343,20119 -56889,30099 -52350,16193 -11661,49191 -63909,52194 -35253,29046 -41158,32605 -24080,38962 -3407,40458 -17486,18581 -16319,62939 -49317,9739 -58904,51947 -9417,23244 -31254,60823 -33807,48075 -28810,8418 -57057,14869 -7632,11763 -64968,27014 -62535,16761 -63692,42103 -27423,58588 -31582,25605 -62528,61741 -31248,12379 -50797,23512 -42719,18807 -57689,31541 -9469,54194 -64797,12252 -58949,42546 -46587,31786 -45283,33151 -60358,50398 -27423,4177 -51251,64169 -28143,62628 -42940,4839 -1319,53653 -38394,48500 -34105,64310 -47733,41345 -59628,41954 -46181,7219 -38580,8695 -48990,15493 -3646,37646 -56139,52888 -13079,54412 -20826,22844 -54913,26362 -57844,22704 -33347,12588 -28739,43198 -13707,26072 -3719,21785 -15425,39872 -43070,12782 -425,39027 -50219,33672 -53080,52355 -20574,38422 -40912,19764 -60245,51672 -53461,14421 -31536,30653 -3809,39962 -26389,63773 -64638,45461 -32205,27387 -24830,31984 -27070,56617 -18490,46204 -10593,49039 -8878,28690 -22216,37601 -49184,8680 -12614,43414 -26798,2061 -2690,4255 -3588,28313 -30046,39445 -46484,4113 -38054,41926 -46085,11523 -35498,6328 -32803,45905 -27664,45705 -11213,4432 -63528,1846 -17655,53977 -27130,56087 -10092,15990 -33610,59387 -42818,11789 -64234,49663 -29158,12960 -39971,42872 -57829,54428 -21324,13796 -65211,51535 -65078,60946 -51578,30734 -14213,18645 -22506,24093 -17818,41665 -42321,5527 -33174,10554 -1954,43969 -39049,24897 -29316,53431 -226,28188 -15295,22139 -18210,53198 -3431,33391 -53401,27063 -23162,42621 -47823,27951 -59038,43325 -27460,31497 -27402,10605 -26041,21419 -28316,10604 -34453,34865 -1508,19151 -26190,25559 -18160,30661 -24842,48702 -31845,9663 -5290,24374 -3952,53635 -37590,32183 -62764,14454 -6479,57326 -18690,51060 -42916,2217 -20772,14177 -46761,61909 -34541,47233 -17268,7783 -63387,16946 -42066,33870 -43433,31312 -19563,48402 -22554,41936 -45954,39070 -5049,13071 -37619,63607 -9260,27952 -26583,9899 -26354,34826 -21051,11987 -55601,1717 -36025,15528 -26909,50305 -33268,63963 -32150,46510 -37314,46725 -31936,48894 -15651,42383 -55767,36874 -46065,27891 -2229,51608 -62552,1562 -41730,44055 -38933,18693 -63691,60038 -55838,48458 -6878,50167 -61220,1041 -60075,38722 -23633,53689 -26297,59208 -14228,10286 -33939,10113 -45093,59442 -62164,56611 -18206,15679 -28402,44274 -8159,55317 -9578,7438 -63748,34966 -64002,37763 -18727,29920 -40850,4507 -26134,4843 -7804,54531 -629,19361 -45201,32377 -54895,37916 -44102,6558 -46664,50296 -24142,46086 -17539,16830 -27860,60331 -45739,702 -53070,31083 -37804,26018 -56915,65522 -2960,31720 -16161,21777 -55446,58040 -54874,3943 -25015,18311 -16530,29647 -43326,54566 -795,3226 -21006,46487 -27262,46183 -36986,39656 -941,36846 -53174,5501 -30748,33535 -64617,712 -39097,58126 -21050,4285 -16627,54468 -21877,44360 -29852,32995 -31419,38797 -1133,39513 -15373,49733 -43293,63639 -43019,18131 -1149,17389 -46030,26673 -32898,44060 -28044,35301 -7579,22253 -22963,65109 -15903,1229 -50495,37003 -22494,15887 -480,51440 -26899,10279 -11052,25251 -37424,34702 -52064,45659 -42386,21059 -40092,62625 -50272,36403 -62178,2870 -51907,57057 -15988,33595 -20886,32803 -7081,18116 -42490,15423 -27798,3638 -31768,47738 -24906,55364 -26028,2226 -16351,49320 -49525,22748 -40461,6427 -29935,52513 -15192,65259 -62168,14088 -51884,28483 -23196,11128 -34265,61555 -18753,41645 -59958,34053 -50262,4012 -21995,64783 -35239,58815 -60238,26669 -55491,50219 -24314,22800 -39927,1104 -36463,21276 -29988,61717 -591,45158 -59291,48486 -49816,18284 -31985,63243 -63039,55172 -9278,36549 -34776,29331 -42020,686 -17949,43840 -11298,23952 -61663,22632 -25775,47204 -45440,44564 -45661,11520 -39989,38373 -51670,59277 -53623,27403 -4188,39985 -62008,50771 -13660,8489 -5060,19314 -40769,62805 -51022,6162 -35134,54263 -25694,60030 -38090,63670 -27695,30581 -46797,64438 -59851,13246 -59709,42263 -5562,53982 -55126,53154 -2488,12084 -19451,37555 -24120,53457 -16676,18548 -54636,36013 -60428,1045 -46032,20509 -55614,29890 -17901,64517 -54332,46371 -39632,19249 -31954,54252 -52148,3898 -57981,20697 -15036,57793 -60940,29855 -43192,17346 -52954,17765 -11189,30864 -25622,2712 -35358,28906 -41240,28508 -5095,13526 -20616,56155 -63455,29978 -25874,25868 -28619,52735 -14902,14401 -3418,15648 -45308,33477 -23846,24629 -12679,39188 -63078,14464 -13493,2101 -51890,62983 -28524,52994 -37456,23212 -21532,35376 -39817,42020 -4554,6341 -51741,20046 -3983,16039 -6350,10223 -21062,20973 -14423,25987 -1169,15723 -48320,49360 -19816,11831 -37067,55083 -56115,20436 -33711,3241 -19248,42918 -24465,7922 -54736,17038 -38558,7985 -19951,31164 -8026,36817 -47361,8497 -61266,60191 -23621,62879 -35211,40259 -60190,58213 -13466,45077 -43763,24866 -34274,40373 -43547,56610 -19201,31472 -2131,49922 -33817,30962 -61230,14596 -30486,40272 -839,7178 -56597,50906 -65234,46631 -50902,53556 -48086,13381 -16689,13542 -14950,8898 -60588,59482 -59194,54368 -24284,25485 -21033,33395 -15424,13788 -11349,12394 -3455,56599 -24047,15337 -52150,44093 -36093,63673 -34428,50010 -41528,37662 -63363,58574 -33909,58397 -2941,39082 -46823,48304 -24188,38127 -7650,9878 -40114,30256 -32077,60935 -57603,4519 -1740,54354 -11304,961 -25871,8466 -19292,17255 -22630,60914 -17022,15289 -20650,10394 -39970,28146 -27236,37010 -6802,58046 -44201,43742 -8527,13744 -55163,36285 -53979,25733 -28566,3032 -1389,20237 -37738,24318 -13135,5807 -53427,31566 -12654,24414 -6116,7530 -23811,61958 -50216,36619 -52122,2549 -35580,23168 -17494,59224 -35179,53404 -8797,432 -53300,58740 -11939,44624 -56003,39735 -44771,33130 -18142,25225 -54601,1738 -45296,39704 -458,21885 -25318,15642 -27942,53366 -33726,27825 -13706,20750 -8928,49320 -42145,34764 -42066,8842 -36795,27770 -24385,11460 -32494,50078 -37960,39764 -37644,41342 -30706,19158 -48389,59785 -2718,62658 -24929,49383 -16037,57166 -46269,19887 -23702,62747 -44788,39239 -30677,23644 -21248,61665 -11324,38416 -49646,16350 -62443,57658 -21824,39852 -12324,1561 -21261,44067 -47908,30105 -19592,65496 -25336,56521 -54281,60857 -19583,55414 -16685,24630 -54771,47191 -38572,16550 -4056,2987 -64379,36797 -17585,5702 -13591,21822 -39582,48260 -13992,38030 -64311,25955 -4553,61695 -46141,51958 -38742,39783 -49205,48261 -39577,15948 -21479,49436 -38652,52034 -42393,34503 -62012,11634 -17957,63760 -59899,22364 -15574,17377 -30676,50826 -20409,1948 -54945,17336 -50428,8405 -65504,31461 -23268,53595 -11546,31600 -285,2726 -62857,3615 -58438,55704 -24680,37318 -18350,24555 -31028,56990 -61398,60803 -13078,7940 -18093,45074 -12678,3870 -8256,233 -174,64041 -56247,38751 -57523,21010 -12868,23941 -8641,58140 -62501,34060 -44394,43503 -29492,37588 -28402,48385 -28206,23030 -41072,4462 -2598,58987 -49414,42311 -40163,8798 -53839,19216 -52288,6487 -45091,32076 -45173,4528 -48557,42429 -47615,10321 -64104,46048 -63002,20512 -61064,23657 -32105,11706 -34017,37542 -41902,24511 -53252,28896 -42998,30 -63089,33770 -37009,24712 -8033,52465 -54159,63416 -57442,41431 -3908,14444 -52716,53682 -65011,41917 -3074,19845 -11892,24932 -32259,7060 -38049,54717 -45497,2345 -37099,44499 -54366,37303 -24124,27570 -19111,26530 -56039,9858 -21083,9110 -50927,62106 -30731,59751 -20835,30401 -21338,34272 -51993,45207 -13769,47056 -45722,47493 -50398,62084 -37850,1721 -13315,57374 -41954,27815 -17326,20913 -58633,46103 -32927,24346 -63244,64018 -33523,2713 -39904,62929 -60865,11598 -45384,52277 -11278,29123 -33127,59083 -47660,54789 -26903,54863 -2522,61780 -9174,36425 -20886,134 -37858,21251 -47054,33612 -455,19223 -35747,28099 -22226,41813 -12500,16550 -34727,35404 -7679,27071 -54675,14914 -56308,20184 -1566,11832 -21649,56689 -11784,49269 -7172,20146 -8283,20304 -30127,44010 -20701,40196 -37760,28215 -53294,27999 -65064,11916 -35694,7542 -41884,60924 -5686,47836 -65009,61954 -21675,3968 -31094,39550 -38402,39981 -21192,14537 -47194,19534 -23553,10417 -16763,30979 -10941,35760 -5250,29821 -46437,47915 -47848,10040 -47727,23503 -41304,17698 -33972,43001 -50388,38212 -46388,56724 -48401,3068 -6450,25846 -22204,48061 -12821,58077 -20595,728 -39923,37916 -23549,39206 -39271,59423 -24569,63308 -22481,16449 -53374,17784 -39727,53964 -61907,29500 -38195,8747 -20038,57265 -54189,44885 -54716,34092 -14576,15984 -3021,59602 -22030,59851 -34912,63411 -54731,25966 -59553,34313 -3274,6167 -64805,12986 -27194,51838 -6765,63792 -17363,32138 -2234,28727 -43115,33465 -24401,37510 -25270,11635 -63591,23923 -35736,16148 -64522,15815 -29200,59934 -17558,17497 -45071,44475 -23646,53694 -7023,27389 -50588,57491 -33170,2044 -10008,23854 -18652,43493 -19265,25923 -51809,19001 -3074,29485 -45639,12676 -12287,13489 -48224,44000 -32224,49784 -31249,53308 -44915,45001 -23383,27655 -23902,48725 -23491,3465 -42199,45698 -62869,47022 -43273,3373 -20610,37506 -29527,4109 -21472,55269 -6962,25378 -12477,51863 -17309,14082 -61376,40193 -12532,6023 -65022,27242 -64276,54818 -56215,58726 -48902,32690 -7939,51829 -16547,44523 -44557,51839 -38675,25824 -42338,38811 -40098,64447 -19841,1139 -36316,36276 -51313,21167 -16222,4894 -22014,31351 -45148,21791 -63115,13336 -24952,52379 -25098,38600 -13515,10204 -4797,49863 -43526,28144 -37761,26735 -62157,8096 -32873,38828 -3158,4994 -57074,10771 -37299,38657 -56996,28051 -26496,63925 -1066,61540 -37220,49207 -36946,18053 -61865,36649 -36802,59117 -24156,39772 -326,35804 -13257,19461 -31876,5305 -26838,2667 -22041,35337 -20644,1714 -40139,22651 -10500,48690 -30988,65476 -61496,55586 -49970,7314 -12278,57881 -46515,16357 -42957,36737 -41954,45296 -32238,64141 -19952,30931 -28771,59024 -11717,52997 -41814,50891 -51100,10148 -13969,44728 -36824,35900 -12896,22916 -5976,31472 -20018,13670 -58247,7395 -49978,50224 -7974,6367 -3568,19266 -25325,34625 -3366,21899 -23175,54172 -60839,58452 -33703,45187 -26338,10026 -40189,12781 -18079,13331 -18244,7905 -42735,3034 -27903,32639 -42235,32102 -59470,26871 -5252,24067 -50155,4373 -9432,26417 -65379,17172 -41113,18606 -44755,19618 -9171,6389 -11980,30619 -52513,32398 -13978,39754 -23598,21098 -46046,31532 -21337,21580 -6043,3252 -38284,41013 -27034,50263 -14146,16354 -34674,64148 -57189,62099 -57921,47471 -19735,10108 -52881,3153 -65449,15135 -32711,64366 -20420,36238 -52874,17217 -10616,53573 -19496,143 -61245,4334 -7625,25284 -26315,23 -20890,4414 -10725,38787 -5346,62865 -62207,31641 -30829,1151 -3846,48769 -43264,21387 -27680,56660 -29007,31953 -4966,27314 -25374,37668 -45692,19950 -56724,26842 -14954,1697 -31870,50999 -43773,41092 -11066,22525 -5626,37285 -27261,54236 -5253,43371 -11959,8052 -8354,53807 -16844,63570 -52841,25546 -17687,10614 -43965,39807 -24677,64712 -47223,55982 -36900,11225 -10498,33483 -13931,53577 -60961,13013 -22951,49348 -8398,48960 -57039,15327 -28137,54098 -29822,45863 -38136,53754 -20504,55853 -34941,35201 -7641,43555 -53099,19806 -40284,11348 -48546,975 -31728,61948 -22716,8809 -55905,52306 -30589,6352 -51304,38407 -2052,38055 -8062,46796 -39521,14261 -56519,2725 -39505,691 -59076,50390 -53484,20346 -36429,64616 -18937,54259 -13885,35769 -3268,17566 -39347,57129 -62910,17558 -17512,54400 -54694,9703 -8726,62409 -4789,3727 -39111,9893 -40862,59441 -19312,17686 -11311,18872 -34655,29285 -8462,44247 -54278,35112 -56322,52699 -11124,58625 -10392,15940 -45537,22706 -45292,43895 -5471,56714 -4058,6242 -63204,30917 -41409,44288 -31861,11081 -33753,10284 -63709,39342 -54326,39607 -35306,24910 -1860,8832 -64281,59685 -52797,61242 -56639,6558 -15851,921 -10124,51202 -44106,26039 -8343,65333 -661,56777 -17559,5392 -47560,11481 -53708,18406 -47343,24442 -60603,40782 -23499,54868 -58755,2242 -3345,31499 -33315,40653 -6926,14951 -41976,20992 -16285,15066 -23436,3004 -55615,12494 -2612,58006 -49648,32989 -11226,32425 -15581,22189 -43380,39545 -19371,28936 -30814,11665 -15505,2723 -34270,8718 -38352,33098 -62267,42341 -46195,25527 -20092,50682 -59969,12540 -40822,35151 -26940,47169 -38345,25877 -59589,23245 -32870,18454 -35029,47402 -3093,61626 -53720,15601 -38955,48777 -43844,6748 -55438,11402 -42886,23901 -61863,36587 -7763,44481 -25058,45699 -12587,38873 -59334,18510 -8958,31116 -44744,37137 -16765,23667 -45950,44780 -84,49673 -33727,20423 -60124,25504 -6831,28650 -25113,1542 -24718,22706 -62802,50963 -53836,7897 -31399,8249 -38724,17595 -1384,60612 -23034,50387 -33045,19685 -51153,40042 -46481,53830 -39418,21261 -26813,34976 -50081,65474 -32703,62763 -14615,53255 -22482,63688 -31393,37564 -21684,60349 -39884,59527 -6330,7334 -59184,13528 -63786,54941 -46945,18084 -59974,54599 -28204,3233 -53538,14959 -13064,12466 -62120,46393 -50293,26422 -54321,44437 -50885,5436 -18775,18527 -42006,22070 -42579,5794 -251,58924 -56510,56471 -1100,34192 -43372,51247 -43211,44173 -24790,54970 -10070,58336 -14130,12569 -41895,16912 -59378,7276 -34692,18021 -13022,20096 -59902,34718 -16748,2849 -5400,25437 -18352,16780 -38068,6838 -56029,63649 -52395,25372 -22148,42968 -14249,46618 -49850,41632 -56177,48898 -44325,3675 -24163,63162 -29047,41385 -57867,50166 -3938,58908 -22655,11338 -12713,13280 -38514,59500 -37011,41107 -42678,10300 -9843,6797 -2512,49975 -32601,2404 -33583,65408 -19961,25664 -38966,26322 -57542,33079 -44585,22559 -36354,47091 -21708,61881 -27684,17870 -29988,18795 -447,14074 -24688,29653 -35865,27937 -35901,21111 -5896,30095 -4122,64162 -44088,41859 -24863,35510 -57499,24424 -49648,64753 -49616,55848 -40160,59894 -43695,12416 -44465,62662 -9296,4241 -14061,63363 -22196,51840 -37607,30845 -35980,16543 -59562,30749 -37062,11767 -37093,99 -41360,13120 -36090,37965 -46838,33801 -57048,8547 -8904,61315 -62690,52394 -43368,24301 -49092,9785 -53229,64936 -25119,35894 -11608,38151 -3160,14058 -55543,29288 -47539,56646 -48938,36104 -44120,18111 -44834,25464 -3223,46786 -3120,43649 -6711,48421 -13873,37729 -14028,41476 -6813,34012 -54673,21101 -42755,49504 -39939,41418 -6240,56321 -24281,44831 -46835,26434 -61566,42463 -36478,64227 -65021,42403 -56759,15112 -11979,38570 -63187,36326 -65339,16237 -21338,60937 -53065,39384 -7431,48002 -15385,26326 -18040,59635 -6642,52419 -18647,15990 -46953,24662 -37433,8027 -58553,13520 -26714,43803 -33332,13228 -36191,64067 -55621,36056 -65246,6453 -61321,41326 -44169,7211 -48295,28201 -36407,51696 -19043,28400 -22659,4841 -16629,44911 -59678,46806 -24253,35677 -38624,38177 -8487,16825 -53983,18919 -20882,55388 -61932,34482 -16897,31632 -60618,63935 -45693,18732 -62548,62041 -44656,32998 -54493,60189 -50737,28714 -18758,19672 -821,8973 -22994,54965 -31698,13340 -63586,33314 -27503,48424 -22444,50740 -54769,10359 -6525,31306 -8266,46556 -16839,27819 -7070,18900 -13553,1845 -60141,1698 -48649,5858 -37433,33913 -28942,29360 -11991,25906 -25334,36988 -540,63350 -8905,21495 -45593,62827 -39155,30463 -2100,40962 -41831,11930 -34813,13949 -43509,22410 -15073,57862 -58888,57857 -55114,1479 -41789,19531 -52565,62600 -47466,44758 -52192,31123 -37956,35932 -18005,41289 -4143,32011 -37525,30945 -5118,13703 -3501,31176 -39585,37474 -62977,51502 -23386,56693 -8581,39603 -4986,25343 -28038,28460 -43084,12357 -27216,26126 -44792,46173 -22940,18489 -8375,32391 -50426,16541 -55629,40147 -36217,8905 -37316,38393 -53935,47569 -2973,21682 -64585,52593 -11043,60344 -24026,6237 -11071,6 -35307,32516 -43530,38927 -20379,5163 -61237,3606 -39228,53314 -37501,10988 -21205,38615 -60259,42322 -23415,30308 -34162,46544 -21108,1589 -5118,8486 -53510,31856 -39708,36388 -27599,38766 -61105,17338 -21457,45315 -54551,16484 -40024,13896 -23419,15816 -25421,4354 -36870,60427 -58709,58225 -18163,62538 -48408,53660 -3284,44289 -54269,58858 -20467,59815 -53618,25817 -45718,24672 -9605,36275 -35878,61303 -57881,62351 -19278,7674 -13647,48231 -33497,19564 -153,34203 -51871,58576 -10873,28699 -18079,9358 -50833,26798 -54027,32811 -51969,54594 -22958,32964 -16804,32787 -43673,2540 -27093,30180 -4462,30868 -47361,60495 -35722,20990 -58733,29003 -44370,2177 -34403,43726 -38078,38646 -4072,54239 -45474,37400 -56091,63102 -21478,1765 -22,1099 -24811,20138 -64449,42102 -39685,33728 -28915,26255 -53766,21880 -47834,41677 -17624,53920 -47428,29781 -62359,9758 -48707,25412 -11541,64253 -23537,6264 -40309,35570 -23617,34739 -46688,44783 -65320,59154 -20821,34514 -14582,18719 -46470,42011 -10716,40509 -6371,24918 -43867,56602 -57137,3031 -31834,30000 -8949,38680 -16090,52405 -17826,5610 -65380,39344 -52433,34925 -20813,18770 -2207,60691 -54396,2482 -65320,35708 -47234,8338 -40103,62111 -23054,60625 -20322,18243 -26835,2296 -21312,2793 -65140,13074 -25409,9549 -31547,56358 -46728,65502 -23528,46666 -18211,19641 -21443,46318 -60209,28395 -8750,59340 -33477,46772 -57548,26001 -52017,56282 -23640,45400 -62088,63840 -24743,4226 -41659,23925 -2000,1423 -31964,34996 -3825,29475 -60806,49358 -17128,12258 -61494,17040 -18002,31770 -14339,63860 -10959,33923 -41319,65126 -43159,12897 -44350,25614 -30586,19190 -4305,1650 -42297,24009 -49630,22050 -16061,10417 -6933,24441 -35837,11006 -40215,3238 -27543,46801 -38162,44092 -30745,17541 -18151,3838 -48763,55026 -44094,21322 -12520,30582 -12236,10968 -22842,39268 -54836,15337 -46314,2306 -32711,3365 -60026,63391 -45554,37661 -44968,41434 -33129,63704 -5604,24795 -43443,37577 -42509,6956 -11273,63303 -16280,18326 -9736,59567 -5170,57599 -34611,5933 -37408,35342 -37813,59426 -31292,34766 -48264,16751 -56596,12083 -55101,61125 -38567,8256 -7687,56566 -29053,21729 -30483,6379 -34241,56119 -13772,29130 -64260,40667 -51708,59623 -13214,30022 -22775,35084 -18758,2384 -60579,1638 -31792,63147 -550,14106 -51447,26470 -21313,45290 -50942,37936 -51743,11875 -7275,3607 -15245,2643 -20172,65196 -44016,15611 -5431,34916 -41260,18016 -61267,18423 -34336,50256 -45725,19547 -53246,34988 -53532,17880 -32745,36991 -42035,10007 -5464,32383 -17783,57310 -4010,36462 -29566,23597 -316,65239 -32042,19521 -44854,60374 -50989,34572 -39169,50193 -26854,35092 -6951,21617 -2924,8221 -1457,55471 -46073,31530 -62802,21424 -12095,1054 -25282,45878 -24719,38123 -57964,59056 -64955,13802 -45786,53272 -62635,37130 -62159,59165 -20224,36269 -342,2473 -17183,41279 -4734,20964 -60384,46108 -20808,9785 -53011,40784 -35764,25821 -12412,10830 -780,36416 -22940,1713 -25929,59521 -20483,55341 -63189,5538 -23328,60678 -46343,45357 -60775,12399 -47709,25561 -46060,65372 -44430,1473 -53965,51642 -6075,6217 -42540,48860 -29213,9653 -58046,48366 -9883,44010 -48236,30628 -35226,29720 -43059,64210 -42665,4378 -10006,18691 -41047,25541 -62276,42819 -49001,63011 -9308,39281 -27245,33091 -17290,20872 -22181,51871 -57064,51901 -46253,32845 -6734,16249 -58898,3636 -25838,38715 -57969,19158 -24036,5202 -30728,34692 -64149,32173 -18385,59320 -45401,42285 -27710,20264 -12409,64215 -25795,26778 -37868,54484 -43356,5754 -57617,36869 -55401,6154 -28719,52660 -23330,5523 -7337,30671 -15165,46441 -59278,59609 -15550,49415 -20663,29461 -48647,17898 -43905,30655 -62370,58270 -18020,51463 -12272,14751 -24376,43993 -611,49883 -23688,14563 -9179,15293 -8279,1560 -65109,10595 -46265,30675 -9057,5487 -27701,33438 -44464,50799 -1173,29154 -24142,58877 -20204,12239 -977,3686 -8700,30336 -64444,51027 -1251,30404 -28457,13439 -11465,30889 -23052,37133 -62558,50756 -65435,895 -362,57587 -49839,16289 -26786,4655 -43402,39741 -58085,34993 -29568,1645 -52084,53041 -47528,55251 -48869,64779 -29,20399 -56052,32445 -38670,42961 -55818,19559 -43619,32984 -2269,32712 -51688,35815 -26918,20659 -56334,28464 -13321,64092 -21904,48891 -51074,57224 -3469,26929 -47986,8554 -17067,41786 -35412,65309 -57701,38181 -48702,43436 -26329,57238 -37249,23177 -63216,40645 -1123,5286 -26566,53828 -52552,61007 -48756,18436 -49405,22134 -18966,9400 -3477,60935 -6036,62207 -21445,34463 -12790,16220 -16669,14756 -48241,25759 -52986,53831 -59295,32038 -24688,35753 -38908,55552 -14353,64574 -36327,21242 -59201,61196 -24396,57279 -12647,48676 -33064,42370 -43527,14273 -62220,18395 -53298,60223 -31821,58221 -41718,46501 -42734,10879 -15857,41112 -29843,42227 -4851,30468 -39195,42634 -12155,31788 -15528,51515 -15926,9416 -23127,18517 -50266,42512 -17953,41313 -45435,38780 -56204,29970 -6391,27458 -53348,13065 -37638,59763 -6653,26413 -49852,46956 -17330,20425 -28602,48789 -27473,26648 -54688,49812 -9668,36140 -24574,15509 -15184,53354 -30829,59641 -20587,54832 -49472,57949 -60025,47569 -31865,29232 -20529,25013 -54499,10022 -63609,13802 -64718,59991 -56356,48944 -14269,24990 -39132,41523 -32365,59808 -37285,43742 -47390,22084 -59752,46716 -63601,36824 -10046,29077 -548,19671 -40705,18171 -25503,38484 -821,39383 -1853,12426 -39237,47905 -21936,12302 -34174,13522 -58315,41187 -54416,30287 -51562,28857 -8660,10732 -46421,2445 -36028,51106 -55326,47309 -53358,823 -10689,64103 -22851,58761 -50760,950 -18048,59771 -28219,55539 -40016,44806 -6991,23149 -17200,55697 -49027,36210 -19395,7846 -47526,41442 -63336,55505 -21768,58712 -22428,117 -4424,12613 -32982,11326 -32471,26038 -22195,36001 -19906,39873 -21224,55295 -35582,6450 -2713,8301 -23334,54140 -4874,24287 -13133,1392 -18114,57954 -48533,14429 -28165,40356 -36439,23107 -8157,42133 -37130,54240 -9531,10244 -61221,14787 -50458,51546 -3655,12196 -16100,8903 -4342,6916 -457,7745 -48700,33706 -52949,55952 -33339,22151 -14104,27754 -12729,24481 -44277,38623 -26894,16090 -14740,22412 -19330,42936 -16051,2797 -20810,13402 -37941,63435 -63266,5193 -10659,34092 -25049,14877 -2966,59678 -16913,37866 -11717,13790 -65384,14984 -14809,64699 -17582,15111 -51915,60749 -57242,56063 -18737,51955 -51045,59264 -9646,30494 -39058,31584 -11539,44833 -41466,55329 -28190,52551 -47957,26699 -61930,859 -4142,9439 -34321,23867 -16284,58054 -60033,28292 -46244,25288 -34645,52221 -23408,30842 -22392,29662 -43607,276 -38659,4314 -1354,41749 -10695,59750 -48236,46144 -41118,31152 -41111,4696 -17666,48081 -42456,29794 -10028,5478 -29936,5264 -21278,29493 -34716,4771 -45786,28182 -2939,1324 -24881,48907 -26859,2641 -58071,1169 -13802,46851 -61138,26591 -1015,45032 -55067,19547 -63476,7358 -5453,34024 -53550,15658 -18278,33709 -9530,19301 -16027,53418 -8327,17492 -42502,9713 -15914,56657 -19040,57542 -35228,57200 -38266,16731 -11577,28726 -12500,43970 -19049,36853 -7270,41474 -42750,32788 -44861,7804 -18705,28313 -11279,53435 -4374,46107 -59283,59945 -19033,9228 -24508,63933 -31174,15773 -34351,37918 -57224,3723 -62993,37281 -2653,24429 -9023,48955 -23613,27345 -46546,53687 -25007,33520 -40964,53086 -53997,54259 -22315,26717 -55014,39479 -37203,4932 -61990,55109 -57228,60317 -10741,54002 -28535,27976 -60591,44795 -31960,21528 -49867,46038 -3461,38949 -1036,983 -9488,37547 -61478,19271 -61207,8703 -58078,38470 -50914,6387 -2682,44657 -31164,65342 -10030,407 -40154,36909 -49881,32591 -12746,51338 -49377,49206 -41906,15271 -62112,33134 -45237,46851 -18273,45466 -44253,944 -18766,11689 -27296,60536 -53783,45199 -57181,61991 -39629,21771 -26272,43974 -23489,21803 -12629,43143 -65140,61600 -28129,64285 -41661,21118 -13558,8295 -28278,51940 -20402,21801 -36445,25944 -48591,41252 -50097,24849 -40996,9186 -28495,34665 -878,13943 -9179,60239 -40604,5191 -60104,31055 -1376,11828 -32796,34569 -34715,2960 -27273,42855 -65002,30320 -20854,51450 -25948,37519 -29658,27057 -59600,93 -41977,17927 -10307,49827 -44417,53785 -57382,15932 -40807,34409 -22502,36572 -12246,58386 -33660,60726 -30104,232 -25442,15174 -36248,53193 -47547,46495 -65003,31146 -6966,21876 -62682,55974 -29263,34258 -41785,19966 -17559,22211 -15678,33911 -32055,12595 -64388,49407 -1114,43619 -29318,18677 -40018,11318 -26685,36777 -33548,7440 -39172,23158 -47676,10103 -39480,30298 -11115,45214 -59879,18838 -15942,32081 -44807,21092 -22616,43230 -15190,19403 -55251,35521 -228,6041 -22995,55546 -64730,8522 -57838,61407 -50866,45264 -8707,13114 -25468,21446 -27376,34866 -3185,27653 -34153,39876 -7547,23758 -38571,10828 -61232,49883 -2640,17643 -12204,12516 -47239,42197 -60010,64923 -31885,30378 -52274,60315 -64964,56163 -33161,45128 -26845,43819 -25697,37758 -5719,58028 -36425,60863 -17450,49314 -1037,5390 -1790,54214 -48020,56181 -11828,51774 -55083,41871 -11427,5760 -39381,17796 -30207,26502 -20924,14132 -47512,61138 -23194,52720 -45283,52407 -16406,2854 -41576,54437 -9183,7950 -65528,1518 -56902,46924 -36081,65089 -5232,50842 -50915,14190 -41613,45607 -28345,10475 -57557,27990 -51686,47334 -61508,11593 -54320,23776 -35802,61352 -49053,58712 -47290,5690 -17254,25329 -3892,51344 -47959,21126 -64418,46856 -45329,54987 -14523,52359 -62635,31821 -39723,27803 -49334,54247 -5453,42177 -55022,15254 -17893,61329 -18661,49612 -44195,52382 -43484,2701 -48464,33330 -52176,43464 -38850,34513 -52049,8580 -41049,45033 -61345,60027 -34248,26423 -33526,45682 -30075,43406 -38996,47346 -4496,52625 -63424,57151 -19725,4038 -64199,56901 -63645,50317 -1597,63085 -58905,18930 -41225,16116 -5985,52645 -9173,48658 -41791,17767 -52367,57818 -48953,49257 -30178,16540 -13577,48893 -56879,31608 -633,22335 -62304,18450 -34585,10501 -57094,1360 -20169,19421 -41591,8196 -8245,32935 -39474,38978 -4122,44670 -41273,11891 -59474,46002 -57076,28399 -5303,13412 -18900,23244 -63161,58285 -4055,13331 -2716,33705 -13775,39093 -29815,48607 -62293,49239 -3056,18625 -5492,27934 -58200,42961 -5290,36563 -44353,33303 -50188,54986 -29127,20365 -60381,28556 -8503,1113 -787,2526 -37132,24024 -49583,15041 -52115,21929 -59898,56490 -35649,38348 -44316,8655 -41774,21017 -6790,16444 -38005,3229 -8701,34079 -48247,23121 -38551,60590 -59501,14521 -5930,36770 -2775,64923 -48773,8802 -38728,45228 -8773,6035 -49180,6113 -8058,38862 -45599,44891 -25353,33622 -52973,47919 -38428,41095 -943,50239 -45685,10890 -22372,28252 -30221,2666 -31972,62986 -59965,46934 -60836,18789 -19710,18892 -33912,57992 -22944,29179 -13222,37998 -51878,25848 -25855,33080 -32191,56190 -18173,669 -33209,43755 -1269,60532 -42773,22352 -65271,45962 -48827,28227 -10641,52576 -44254,55503 -32059,46412 -59843,20288 -60832,15960 -52973,33807 -28043,36983 -13172,53036 -64859,54769 -17787,61160 -52269,38438 -2956,42646 -558,41785 -51242,57207 -43713,50718 -23989,15034 -39146,43212 -23583,46301 -31795,46555 -5199,20476 -43856,49157 -43251,1235 -12269,49530 -63270,26698 -10602,15955 -63787,49224 -48037,7522 -48768,15323 -44854,41152 -7066,64152 -57447,18346 -36312,46885 -27715,31614 -14027,43261 -56134,21762 -14922,32100 -37375,53495 -47448,57547 -36480,58642 -39444,9537 -43066,56807 -58492,51849 -46518,21854 -21234,53645 -54904,30623 -46316,2523 -6196,37721 -16748,37836 -10514,29844 -21370,42781 -7886,52611 -18920,312 -27670,48430 -46342,30014 -43555,26334 -58039,24724 -53994,16625 -8109,57336 -24376,36960 -59063,65519 -24576,62845 -43336,11561 -18676,20870 -47317,56743 -13589,21721 -16961,42528 -15658,41758 -59423,18911 -10032,29390 -24712,53261 -30687,28697 -21536,60647 -25595,56800 -35747,24378 -57580,15797 -43873,9595 -41086,13015 -36946,28274 -16375,45494 -46453,18795 -51691,51509 -53678,50389 -22032,13868 -37224,65533 -11733,32284 -43506,48943 -16074,42674 -39141,22992 -13508,629 -46307,27853 -31643,54719 -32333,30812 -56991,63014 -58867,30949 -24035,39424 -58118,46165 -62728,27287 -49066,42281 -4341,51108 -11510,51034 -32112,39457 -256,5886 -61350,30746 -31703,40574 -17532,60681 -11162,17958 -58292,17590 -48188,51853 -35055,32474 -8882,33590 -29085,55486 -28606,23960 -49216,61375 -30295,61430 -12285,15350 -62311,44177 -27150,59169 -10528,3097 -6019,64360 -54069,4280 -7915,41902 -57139,3646 -19986,40231 -56675,9870 -64517,24113 -39851,52682 -8141,52357 -2266,37537 -57796,595 -56455,18246 -34240,7673 -65448,36766 -4025,55629 -25526,7926 -55548,28657 -49119,4261 -11214,52557 -36304,46330 -60390,19347 -17650,10035 -64882,10707 -64146,17456 -10823,40893 -61696,12420 -10182,21911 -41853,46684 -41968,19095 -469,22105 -28808,33441 -12263,46914 -33014,3699 -6286,47108 -34957,8085 -30099,61262 -3096,47177 -22042,52906 -805,61972 -29627,60621 -50375,36873 -15590,48431 -16942,39003 -37031,22176 -25378,8830 -35611,55799 -44110,32327 -11333,18809 -37072,54397 -53287,22028 -16747,32124 -37912,41184 -48805,8701 -28851,54595 -18378,35135 -24763,44549 -47899,52750 -29354,62238 -38566,11377 -2227,2191 -44341,2244 -39508,60243 -59858,50085 -64249,35387 -62899,6212 -11375,31144 -4232,10896 -31433,17707 -5321,48494 -36044,37250 -52556,1806 -60084,26947 -49480,46900 -63721,36551 -3209,7032 -43958,7345 -23014,34614 -39511,2407 -24810,21878 -30320,17664 -30288,37947 -25867,8752 -53823,39268 -41557,1082 -10464,38603 -40874,18671 -26102,44695 -26302,22414 -34559,37053 -316,9788 -23504,9759 -50358,361 -56643,1762 -29579,16050 -65149,59947 -50021,28506 -31896,52708 -8690,39217 -9982,51880 -31793,27344 -47883,13367 -49154,11533 -51678,17635 -37373,54620 -61434,45775 -53138,64948 -49677,3795 -21995,4048 -41104,12349 -15511,46223 -38826,19005 -52500,1237 -50600,26261 -3528,41695 -9067,61179 -40960,65246 -34691,46338 -4112,7369 -32908,10208 -45076,58824 -941,9268 -13025,36961 -64124,31807 -16954,56340 -49748,17388 -54264,44666 -52778,61262 -65495,34406 -7724,34062 -50815,28677 -2453,63816 -50206,40670 -15693,33176 -45408,55757 -36338,53147 -31403,51378 -53468,50550 -58655,48468 -36582,64370 -59210,63589 -17591,10290 -39410,20344 -45135,3817 -102,35367 -17888,1877 -14312,34107 -51093,27200 -6896,17795 -11010,17914 -57030,34018 -48545,11389 -50633,20787 -58436,9022 -44900,26426 -42170,30046 -63606,19014 -14991,48469 -61875,36227 -51270,56029 -45672,9416 -56454,59713 -6377,32513 -38158,30383 -9669,21635 -46891,48973 -45933,64800 -4269,50363 -7414,58875 -39883,33280 -11750,5107 -53404,20957 -20242,50810 -62295,19428 -37142,32791 -52452,42361 -32940,48858 -20766,14653 -56834,45784 -4705,50418 -3274,32147 -25766,13774 -27815,36435 -57010,40844 -51908,56355 -37929,27896 -33977,17558 -40597,13455 -31288,35887 -47875,61980 -19001,47879 -6744,2681 -35286,3858 -55073,5909 -11211,46121 -27483,53376 -42749,24002 -60693,15527 -30206,15670 -32315,32528 -64050,28963 -54336,11763 -16684,11683 -63624,19949 -27442,23592 -58928,50893 -14438,9276 -17383,61361 -58273,10051 -23560,16042 -53985,60180 -62904,39215 -16578,3184 -15892,56456 -36517,1275 -39235,1721 -42574,32657 -63543,12731 -58454,4718 -20691,47205 -60805,35814 -18423,54607 -4980,43580 -21194,63631 -19565,1269 -1904,34047 -42846,2185 -36684,62937 -42553,58672 -2491,12311 -22541,16098 -59655,25214 -22477,32162 -43633,14723 -114,27812 -19120,28267 -65354,46828 -31270,19074 -58359,13526 -32657,8323 -31519,64435 -3861,13300 -45340,54424 -30100,58162 -45803,41887 -29799,111 -59796,46478 -63514,34091 -52089,3519 -9413,63938 -63716,2743 -57,60438 -13744,33348 -19115,5280 -41960,856 -4562,1206 -57417,9745 -41269,4683 -47481,4551 -8112,20494 -9591,2150 -37024,45517 -10657,4230 -33499,23762 -31066,24149 -1852,52844 -25516,37674 -29024,57267 -56095,7558 -28261,10408 -3635,8363 -26130,3906 -40848,58559 -5538,2232 -5980,3862 -2981,49321 -13826,36611 -44234,9390 -484,37891 -28625,14529 -7196,38824 -29211,16787 -47712,27413 -49228,6907 -42057,24612 -50470,1828 -60076,44464 -23085,30744 -62728,55660 -61304,22274 -57472,22629 -29189,13908 -54499,41690 -64145,27530 -42485,53257 -42898,40107 -38703,2296 -15889,65293 -5796,57193 -27848,64114 -52690,24340 -29316,6212 -16998,48754 -60124,53927 -42821,36310 -34136,28026 -57664,55802 -39829,9054 -51096,53165 -63624,11087 -10762,35955 -13672,25549 -6481,3196 -31576,29169 -59046,2482 -47096,19473 -39014,1716 -29952,46634 -7247,48562 -51823,10313 -18665,26219 -54121,45149 -47048,36242 -4716,18898 -48649,42013 -53590,3981 -64110,47025 -54607,45186 -14753,1289 -44372,2748 -15303,29392 -30730,37253 -37227,25533 -19739,62130 -15114,45282 -8983,18386 -10949,36175 -4981,51003 -49363,13194 -36028,37167 -51905,44413 -50427,10662 -61220,44376 -46074,44446 -24928,2653 -26947,13435 -21035,46296 -49216,11140 -9381,22459 -38069,39577 -38604,6654 -8965,30239 -34264,26703 -26594,59679 -44545,49039 -51857,56772 -32026,47977 -64236,518 -44403,22721 -49751,62079 -50161,37073 -59541,59157 -45017,46284 -62623,47527 -55437,2561 -1068,34443 -13062,12621 -21858,36287 -35136,54175 -37695,58049 -26771,17553 -11877,50033 -13009,65447 -64830,46823 -2212,52521 -51050,20409 -26490,57980 -29979,62046 -16695,16572 -60288,60174 -4310,46719 -23313,49486 -25876,10386 -65102,19985 -36030,13285 -48503,31314 -1150,7795 -7603,62688 -1669,33105 -1842,62355 -55852,54300 -16681,10841 -38483,42787 -43160,19497 -17595,64105 -38088,38842 -2131,49134 -28615,10312 -49104,28689 -8928,19386 -29219,35731 -43265,13936 -24343,19993 -59433,23733 -48180,16049 -40015,27208 -30023,50749 -9410,2147 -17636,26937 -22781,19505 -11028,36135 -16368,65402 -29730,50780 -31297,21776 -12660,4501 -24743,46574 -9136,39365 -50282,1305 -41693,4793 -34380,19870 -1154,55743 -15705,34040 -37635,46250 -17206,385 -35535,27921 -38937,38589 -24965,33636 -53745,43592 -57494,18088 -6490,63258 -41313,42218 -28011,20174 -58427,4459 -10191,6784 -9650,27043 -13180,10401 -40229,60429 -14935,7136 -44772,12116 -44416,45507 -14995,45609 -7481,46406 -5106,61225 -15549,48817 -16299,40362 -20391,31940 -8167,53447 -42129,65251 -56028,12457 -6410,64088 -51123,47633 -62558,52342 -36950,41526 -42966,56666 -64010,60617 -64729,63311 -22889,63541 -52371,17807 -21402,976 -22111,27615 -61379,27193 -49277,20493 -41640,409 -12042,4225 -62539,16006 -18242,24281 -61915,65124 -44642,15150 -4938,53092 -30708,16253 -31510,37805 -18234,36914 -23406,41711 -12587,13995 -7665,50966 -43571,50921 -20848,9930 -4406,39278 -19641,14999 -40018,30185 -62035,29149 -32684,17445 -10649,46296 -43913,50899 -9008,21961 -45586,60206 -20389,22369 -29248,59915 -35066,54795 -41239,5073 -18892,49805 -57249,17268 -27418,50472 -4390,62276 -19627,53142 -59497,16295 -11706,21278 -61741,61578 -3881,43207 -12295,38044 -54199,18231 -20080,16236 -21622,44056 -25276,15809 -55471,45670 -12288,1809 -41575,9732 -4862,40908 -568,111 -59064,7809 -56363,42581 -34660,38201 -5457,8154 -47175,58190 -32382,45146 -13820,42881 -11107,19602 -40637,12734 -1927,57075 -43872,28497 -22338,6025 -47950,23867 -7847,17435 -35763,2821 -11378,46021 -42371,32884 -15317,42426 -7783,16116 -45005,56701 -64432,24786 -42070,38481 -60571,7425 -2644,4745 -9127,13692 -39574,50977 -55767,3253 -8332,60105 -35483,12033 -28065,51604 -39325,48002 -56169,45698 -49529,26955 -63783,22856 -22484,26447 -42067,47858 -19719,20587 -28057,18226 -12303,15899 -39778,19728 -24,58299 -28433,41383 -26233,24486 -48345,9834 -34840,58936 -37514,58674 -43555,36782 -18938,14824 -36797,28887 -59724,37295 -61985,16306 -46563,23095 -42000,3704 -42741,16475 -25656,44059 -42836,15544 -39718,59875 -61221,5764 -48152,18641 -36755,47564 -49586,1138 -5667,51338 -39362,2674 -1863,39771 -5301,35817 -46261,63232 -19735,36696 -37856,26536 -38455,56984 -19432,27758 -17235,23463 -22210,19577 -38689,62373 -46329,13128 -43450,29727 -3827,31211 -498,34956 -6315,15601 -44011,16480 -1365,45552 -16807,524 -44007,40792 -58872,33830 -5861,18777 -27275,55869 -58170,25228 -22292,25088 -21090,21235 -42342,49776 -34428,20138 -57217,39732 -64643,58177 -14182,2313 -60735,2017 -378,17232 -21718,23917 -35395,19958 -44227,39118 -3739,62127 -17422,43791 -30755,62929 -50914,5924 -29261,3416 -56942,59929 -62514,15425 -37314,46681 -54740,58992 -24687,7749 -27188,4045 -4132,9350 -59662,36720 -47377,43649 -13483,14677 -2930,44214 -50723,20893 -51547,53548 -3019,46214 -42474,4474 -16457,50899 -14253,63291 -63804,42957 -63516,54466 -52946,925 -6308,55545 -34716,28438 -21530,18120 -9065,64081 -31739,31530 -4431,24912 -51110,61093 -34404,26534 -38668,22402 -62888,42077 -21227,4589 -42764,61299 -59030,40121 -23837,11906 -32726,11675 -39821,42346 -28157,40700 -27384,40915 -7369,25850 -52157,52692 -40003,10422 -2336,24797 -57578,32217 -30322,64008 -20116,64627 -7316,41727 -19173,10362 -38187,52312 -43802,20854 -40201,37653 -61017,2576 -56326,58597 -49830,19992 -41043,26647 -40413,5092 -10528,64357 -35847,47253 -38288,18303 -62286,57714 -63295,19411 -51995,47652 -45208,25486 -28767,61181 -40783,35968 -1129,1189 -59281,27626 -9345,3605 -24788,23573 -30191,53825 -5189,58220 -60630,12404 -4006,36555 -54231,17221 -31069,44649 -49967,44814 -15259,56003 -25931,47527 -23065,40376 -41237,9650 -45613,59664 -57823,21239 -35227,58918 -64481,4969 -16643,37966 -25556,16129 -26061,34762 -17155,30628 -31019,44184 -62040,42366 -34006,60710 -57165,35723 -47759,25051 -53864,1054 -51196,31134 -60232,7090 -15642,45656 -7193,38765 -30922,3696 -55943,9665 -2864,34199 -25926,19421 -49759,64855 -44892,3334 -14319,29930 -14982,1999 -18882,28661 -25307,6882 -16641,33457 -15745,12958 -31620,30513 -16801,34006 -56664,8697 -26651,23499 -17877,44037 -7768,8164 -63339,30353 -43787,38025 -16130,50416 -12934,60546 -49888,34612 -34651,31225 -47239,40103 -50117,30224 -62993,20668 -49071,20461 -13274,34700 -18096,25638 -34444,26190 -41579,62704 -5831,1211 -64886,35721 -41112,32386 -13182,63355 -37355,63958 -14478,5706 -57302,37723 -55837,39599 -61674,48640 -35519,27287 -52578,30281 -1445,54442 -3231,14267 -8074,39143 -26747,34170 -51881,28656 -56493,35724 -3102,57358 -21013,48147 -17551,54536 -10839,2465 -13366,42339 -12363,14212 -45984,3638 -25215,30041 -50459,31456 -57727,23103 -18285,15542 -8880,34065 -44763,9323 -33448,34958 -64095,33479 -16824,47301 -47678,1619 -34121,5712 -22905,50763 -3227,39767 -2248,37984 -16407,25158 -12013,48292 -17351,4192 -21066,51768 -46301,42530 -42931,44435 -62794,16848 -32042,18462 -59806,10984 -74,47214 -41409,51786 -40277,22352 -64126,24646 -21444,34019 -35838,55814 -44822,13178 -20244,42426 -48993,23057 -45708,50122 -29161,41507 -30628,57762 -56018,26458 -13718,49299 -35588,15811 -47123,58043 -19039,27289 -18654,29989 -50170,25131 -55312,34678 -37321,44071 -62561,51107 -8169,35895 -29717,44138 -65503,52360 -5492,60250 -59822,24649 -53310,60672 -28893,22762 -31951,37768 -2598,49 -1504,54448 -59623,24832 -25094,13697 -58135,34195 -54350,60927 -46062,44203 -2465,6258 -57129,11304 -11238,42768 -13036,23739 -16991,26113 -14138,46058 -3831,24795 -33142,25525 -55095,27208 -22887,38514 -64466,53520 -46486,45762 -55321,36774 -36552,12059 -16061,32812 -20271,48427 -28564,35330 -49058,24385 -38705,3049 -41656,63357 -60406,43850 -51216,54853 -35826,30528 -15224,50823 -56119,43300 -22387,43378 -52522,17658 -36558,45341 -12017,48446 -17745,6781 -48945,61747 -16070,51472 -64386,38371 -40475,53273 -14838,46369 -62970,59677 -25760,55717 -64138,63982 -39228,28614 -50951,19386 -13275,27894 -38205,3838 -57482,15024 -16936,47557 -4041,45380 -46153,9760 -25935,62574 -3838,11400 -12552,45668 -20006,9112 -21865,51096 -47488,24048 -17119,17298 -64589,8727 -40512,19335 -55672,16831 -55842,43611 -45943,2199 -49710,45194 -48181,2076 -47692,23443 -19950,41948 -32159,47525 -33346,50306 -16921,53387 -18192,37665 -6843,37846 -22289,52532 -3731,10730 -63408,39881 -2653,29483 -1041,55240 -13329,6560 -37992,53 -48507,42310 -29337,57212 -47463,10400 -36882,43277 -11141,952 -52,50397 -50794,982 -41959,35706 -7603,43887 -13632,27284 -61075,14956 -2538,50847 -45719,60159 -45616,35231 -32966,38720 -42562,53361 -26454,62066 -17912,6777 -52050,44403 -11867,64249 -42200,38066 -24592,20486 -13259,14099 -54886,45067 -56051,29292 -37912,31244 -15671,10564 -31383,25836 -58853,61086 -11144,11995 -59351,65377 -38592,25804 -16261,51824 -24124,23018 -18455,1372 -47739,45680 -17576,41184 -49453,63024 -61817,21133 -63663,35525 -46219,35022 -3616,43990 -18336,49100 -46004,43885 -61040,12960 -8524,58883 -35565,47361 -65076,689 -58886,22405 -3272,34075 -20677,10421 -25214,15746 -17173,51095 -22433,31187 -37806,60741 -45842,21410 -45866,29714 -20758,4720 -61800,4921 -63079,25875 -53504,3237 -49960,14844 -60288,51711 -19729,37566 -31805,19298 -35327,59880 -31326,8272 -22102,63524 -29979,54574 -13239,60646 -17404,59079 -27724,46380 -5638,52845 -50439,4330 -13074,37630 -28235,11646 -35843,59882 -57140,885 -37573,10923 -22416,63534 -17049,14096 -58349,27530 -57536,21580 -55814,57670 -1258,13719 -56357,4060 -23086,54494 -8599,52317 -57887,50339 -24195,31031 -25682,47167 -63508,14464 -51353,35682 -54753,60975 -60172,28677 -43621,14735 -45563,59674 -27711,11012 -18189,32565 -60076,57709 -51743,7088 -37239,8000 -11073,46452 -40548,33917 -41477,45843 -2782,24797 -60777,49155 -15989,45799 -6137,52211 -24467,53360 -3557,22850 -39740,51649 -59583,41816 -57056,6438 -3206,28497 -45239,40758 -41084,16575 -18570,24980 -8232,40100 -34206,17555 -10188,40237 -60243,13618 -29414,32867 -62293,21742 -5968,36706 -53913,61659 -26612,65322 -57475,51909 -2334,40962 -24133,49130 -17379,63108 -33781,27349 -14003,57402 -52904,2973 -42304,37789 -7968,64169 -23339,8961 -15729,35560 -36226,41388 -4658,56321 -17448,34349 -673,54368 -53818,14430 -12334,58541 -59168,10246 -27898,58164 -184,7346 -41947,59209 -9219,43631 -54043,32030 -17752,37503 -39841,4304 -38300,65221 -26971,63647 -34877,22700 -60634,61215 -35512,46928 -36317,40637 -54177,58805 -32921,62652 -11861,25038 -11591,14801 -47939,43380 -48029,3073 -43361,41125 -63384,61558 -22265,55525 -61375,43500 -13791,50795 -55140,8130 -53457,19656 -47776,46320 -60062,58799 -24002,27429 -30294,61118 -41301,57701 -9995,15807 -13530,64120 -33752,17716 -42171,40726 -55748,15259 -17808,26843 -38051,28835 -45712,27 -36312,57587 -53807,2955 -16550,14735 -38401,50381 -46857,62132 -28006,49725 -15769,27946 -13712,7541 -59617,54011 -25453,53941 -12354,15206 -14153,18747 -27370,25513 -7773,36379 -46345,40605 -27855,15742 -49458,46271 -42148,26695 -15349,30068 -61454,41551 -12491,59133 -25013,48218 -53874,57065 -4900,32494 -16289,43685 -39650,37953 -41766,9019 -43691,14010 -41188,23736 -44141,19767 -52235,21065 -38525,26322 -62745,59472 -37505,25395 -23478,13285 -44662,22383 -47945,42789 -48787,38455 -25428,59658 -53000,59295 -10171,39951 -4336,2354 -62532,4935 -34547,6854 -52269,58050 -63847,53715 -30280,34414 -18244,3285 -16193,51239 -43503,3245 -15542,52416 -6647,31571 -61627,15116 -40311,32494 -20513,2309 -10331,10192 -31017,23815 -44956,3005 -15151,22881 -5562,62138 -45149,57687 -8380,1088 -23860,1435 -49638,49959 -15030,58026 -4842,59709 -24726,55258 -38551,38326 -16513,17155 -26676,19121 -1752,23479 -38292,21500 -37374,29840 -17638,62465 -37051,24843 -5273,60593 -41717,40827 -18397,8552 -10618,28588 -49791,41260 -24107,20554 -28402,44921 -43926,44600 -21709,13936 -10862,16444 -32610,52487 -37602,12420 -24276,44061 -10826,16101 -50665,33197 -63825,60134 -25956,35806 -63787,9695 -25296,7333 -48670,26587 -33637,46743 -64898,18302 -60631,58934 -3749,48578 -61087,47726 -39480,14272 -8970,61117 -46294,34127 -62232,61929 -62623,2064 -14433,34505 -36333,1233 -13311,64368 -7423,38816 -23778,9624 -51151,20811 -7483,65135 -17076,19576 -36838,2592 -61236,24927 -56409,53717 -40840,437 -4770,26725 -46391,7824 -7799,24450 -22523,51994 -27456,9260 -43691,45384 -56528,40280 -28223,40631 -49249,40713 -3083,11948 -58545,12813 -24973,11490 -17556,7484 -4531,10904 -52910,13278 -47770,22069 -60994,10475 -16396,48363 -18162,13096 -5956,63165 -10029,21693 -24752,32713 -12990,36697 -27343,23231 -40692,56794 -51744,27323 -21088,23335 -38797,8787 -29204,4113 -60172,22166 -33102,6224 -38028,29505 -33718,6877 -60736,37862 -42365,20602 -48400,7648 -22144,54583 -61052,62958 -41221,51227 -50075,17865 -51339,57172 -50211,52879 -22925,9762 -64722,19066 -31403,19209 -8511,48586 -40319,39390 -16500,43430 -52518,42071 -17867,56468 -9722,14543 -8481,22754 -43543,60793 -50667,35713 -40025,47709 -9232,41995 -63346,42143 -1365,64766 -39025,50633 -28494,25101 -30567,64485 -57894,60894 -42718,29952 -41637,48272 -60981,40459 -4125,12166 -26664,44010 -22055,19799 -25282,40492 -62813,1127 -30469,35919 -37988,43235 -62202,1829 -45994,1779 -8533,3815 -61399,29016 -65495,52512 -40957,10508 -26857,42882 -53287,39671 -47316,2370 -57392,50378 -55699,51065 -42161,14216 -30091,31908 -20897,9879 -3799,21074 -2355,38449 -9949,58749 -30327,28127 -41716,43184 -24958,61674 -62705,55399 -19238,61009 -37698,28720 -2682,28351 -60878,7319 -49609,20905 -53178,27641 -58800,65152 -57435,17663 -9551,55850 -58749,24531 -775,36298 -33405,18112 -30985,42203 -51460,36201 -48762,49394 -11726,61082 -32979,53384 -36473,46288 -43932,15650 -31351,19042 -362,10800 -59542,45723 -58266,18531 -6036,30971 -20294,6834 -44773,3846 -29819,64583 -30930,18328 -59971,10715 -49978,17758 -45933,16617 -20486,58949 -14838,12342 -21579,39183 -5691,37649 -39085,32044 -45311,43617 -22778,17181 -2388,44712 -8896,36803 -8748,51217 -61343,30787 -15662,31071 -26843,2953 -17254,50948 -29324,12662 -16748,42253 -46745,13739 -6029,55690 -42296,51415 -46577,14395 -23255,11673 -4152,62540 -5868,61688 -10012,45943 -50477,62351 -14172,15427 -36978,7242 -53181,60946 -60616,41192 -34449,65128 -21403,46317 -47860,1917 -36648,20602 -19709,42241 -27431,61215 -19751,58662 -45917,41554 -54235,283 -24168,28351 -25506,47386 -41799,12433 -16666,10298 -46105,3964 -40388,25965 -6862,61974 -20042,18227 -10248,27348 -30553,43324 -50602,3286 -46246,65191 -27872,55227 -22195,38881 -64305,61636 -14540,41145 -53726,102 -23067,12600 -5506,9062 -42271,21791 -20564,18202 -6235,45440 -16486,54412 -4166,42304 -53483,25273 -16900,59076 -27881,50831 -42441,25710 -18193,64749 -5834,71 -52829,23189 -7358,10073 -25,61976 -7354,61789 -15355,3295 -50629,55602 -15806,53033 -9350,26902 -41031,9639 -13463,59551 -28812,27773 -59174,62009 -58061,25481 -46440,35161 -1937,12104 -55589,39652 -4435,32109 -36192,13873 -47410,44810 -9709,40892 -46516,18649 -1960,31706 -28052,60105 -43912,530 -51957,27544 -34367,4448 -30120,55725 -42081,45063 -34336,13903 -40299,4840 -38467,55749 -6536,19879 -50523,13504 -27117,6930 -224,13337 -13111,48771 -47272,17381 -51976,26925 -38631,64657 -30096,29133 -55656,44526 -23824,16916 -55558,1275 -56571,14931 -54029,2509 -3679,43127 -5870,29519 -33504,38822 -63476,63891 -32082,57164 -35114,60487 -1681,49033 -25035,46139 -15780,52604 -61573,39859 -32872,44294 -29824,29847 -46881,12225 -22915,36934 -10756,3828 -20314,60786 -57596,20351 -54398,44706 -43579,7247 -15026,32828 -62340,38047 -14480,23510 -36341,58065 -22582,45132 -37598,65444 -4926,49390 -42094,31045 -40388,11394 -64189,43373 -4825,10257 -14700,63922 -8345,33525 -56263,45729 -23656,29574 -38669,10791 -12887,30704 -36608,39850 -5825,58033 -28283,42492 -48856,54206 -26328,8480 -24485,32007 -57315,64032 -35245,52693 -4058,63109 -6106,30250 -43746,30024 -46900,38278 -10936,6354 -2434,44571 -16521,51819 -53871,41885 -43722,15196 -36866,56537 -9890,63696 -31529,27513 -22955,8438 -5578,46038 -45908,8918 -26229,25231 -30057,58562 -11558,13461 -3247,64959 -57399,31120 -2730,3025 -22301,43949 -62545,30035 -51209,2550 -30453,40671 -6514,42547 -30801,7120 -38207,43840 -23641,49592 -43011,748 -38726,37003 -9398,17457 -58244,11360 -47155,29487 -46345,40190 -47733,45097 -18869,9330 -13615,52277 -12189,40047 -54470,46588 -28965,38715 -29201,9040 -31577,14201 -52454,27775 -56994,9052 -56863,18753 -33465,16718 -26577,10193 -27299,23638 -46792,7602 -28095,34656 -29793,63769 -27676,60211 -36876,42842 -12070,22571 -44342,57241 -49674,49726 -56881,51871 -23460,27575 -15856,2133 -28861,42993 -7063,48575 -9087,3780 -43918,59518 -13116,6400 -49866,56009 -3265,4398 -32846,5970 -5278,28721 -34122,260 -58498,6424 -53008,61033 -8164,50903 -36609,10774 -5478,26718 -60732,29973 -21384,51901 -51022,7491 -3560,10755 -39089,40135 -54177,57353 -62997,21297 -35160,8381 -32377,41120 -59678,8490 -38111,14101 -11688,24134 -12698,44649 -51174,45042 -19546,43757 -23571,25071 -63740,15096 -64256,57784 -63799,891 -65239,56954 -40654,17198 -2023,2860 -57353,54624 -59769,34555 -11938,64223 -56177,32805 -48889,48654 -60342,16822 -13155,65104 -41475,20875 -31086,153 -47878,45654 -47922,29491 -64488,65353 -53311,14957 -33928,12773 -6399,18643 -36063,36976 -30360,42118 -53950,49610 -30561,57401 -49704,21248 -10561,271 -34126,55178 -62061,36377 -31842,64456 -25626,8469 -19342,62234 -18082,52365 -61558,55247 -34103,9545 -25043,51615 -61555,39889 -25350,21176 -16374,12255 -31743,60527 -26231,47040 -14077,42491 -30835,51977 -4534,27660 -35278,3050 -44395,41070 -23645,1531 -61457,9522 -37209,20363 -13151,32826 -55937,52256 -826,21375 -34676,19227 -40345,13218 -5549,34144 -53550,63286 -36312,3258 -44708,59512 -41194,30746 -61853,55798 -10539,33709 -40511,61670 -32781,28228 -2623,52505 -8736,28417 -39953,40466 -47535,56927 -51296,50890 -1762,8782 -61020,31073 -28146,14364 -12310,16965 -48233,24843 -58573,35147 -31563,16902 -53142,8008 -15777,19699 -12294,27447 -24132,35589 -35642,24486 -8474,33127 -56662,46265 -16571,64859 -38435,59500 -29226,21857 -55385,21183 -29788,10989 -14919,37706 -649,16808 -17919,34400 -51642,51988 -29662,62081 -60717,34549 -1626,63656 -31727,21196 -32822,15995 -14461,3517 -16228,56482 -4037,61241 -63465,15460 -6933,15062 -33240,39577 -11995,41076 -58645,45963 -18365,17410 -2156,58248 -19106,6630 -30226,53757 -34880,42669 -17097,31593 -61877,14513 -13797,386 -24268,59664 -63447,57966 -56475,45370 -64481,26914 -27897,2496 -63819,33351 -8855,12155 -36348,13115 -44740,22902 -14257,56783 -21374,47712 -238,41464 -1158,49042 -51740,44304 -40749,46505 -39571,45344 -17576,48312 -48633,2094 -3790,29764 -555,32050 -1660,21139 -3585,57476 -619,52387 -51572,2476 -20984,33421 -59611,32896 -4537,64047 -52894,19114 -37227,4717 -10606,13574 -65477,34660 -57168,56964 -3358,44368 -63284,3975 -61941,56489 -36761,48472 -57916,29202 -13391,18445 -18622,44675 -58853,49486 -31508,51362 -300,46062 -26756,45454 -55139,4946 -24473,39766 -20656,54600 -18051,28665 -48290,10896 -29300,53578 -31991,53323 -411,34652 -17344,51856 -5612,30185 -13374,31471 -3090,12965 -62379,62901 -28297,29220 -57291,34056 -41905,63078 -30082,47000 -39098,23603 -15580,19032 -1378,50500 -7032,38167 -34163,25318 -47709,38098 -35369,56168 -35504,36592 -19424,54804 -55914,55278 -39459,61222 -25958,49568 -17533,40389 -52014,2221 -41510,5252 -43368,52341 -24268,28258 -33564,57485 -56487,41555 -49293,20218 -43009,37616 -16234,42378 -1331,4391 -31877,35185 -4577,16036 -27124,27386 -29390,26999 -41485,7671 -6599,53244 -1991,41054 -34101,43207 -37808,50574 -59453,31449 -26824,55591 -55700,28315 -17358,41079 -55407,27082 -24546,17332 -58645,56575 -36994,29749 -16030,8020 -40449,17490 -36599,13724 -41956,30563 -17965,36967 -5678,31988 -22181,64922 -40423,17018 -15333,5207 -45878,8388 -13854,40921 -38995,39819 -24032,2977 -3957,52387 -37893,38231 -12987,59147 -24208,29044 -39882,9806 -64481,11001 -58233,46912 -16804,42561 -35534,15247 -24360,62415 -3154,19018 -20907,55926 -17197,23687 -21456,14915 -5334,29111 -42459,32989 -10233,60070 -37437,64617 -6039,52757 -45537,875 -44412,52624 -29107,10905 -24786,10853 -50842,9444 -53340,53955 -50661,49608 -61489,15785 -54592,20905 -10771,22896 -35531,38478 -8437,65109 -11895,51602 -17410,4913 -33648,55913 -36068,6083 -4998,34136 -10920,8696 -1581,17072 -12150,53187 -42862,25275 -64681,10862 -64461,17617 -63341,43486 -14754,62115 -28247,12557 -7668,61627 -9864,31091 -50045,60000 -36013,26806 -17205,43783 -19042,37087 -31082,59642 -46368,56213 -61647,52835 -32681,3775 -33283,20545 -26534,37408 -3334,21589 -1089,37350 -43757,21282 -23581,65199 -15699,31897 -52536,19635 -60466,23264 -22043,32906 -65477,42508 -10432,64923 -11659,61000 -49156,59270 -36922,14527 -56231,3545 -19509,35584 -27606,44520 -19116,51172 -6529,62497 -56676,15429 -11072,55262 -10963,14953 -5590,13952 -34570,62826 -21132,24634 -46752,5828 -9849,38146 -9249,4696 -63679,32666 -20742,32776 -33917,11919 -18838,36424 -59082,46020 -20121,33725 -13677,42046 -9509,19927 -5343,17704 -19566,48436 -20676,21779 -26926,29189 -1060,53203 -54463,34967 -44027,64217 -53825,58603 -36919,41624 -30839,50793 -60365,35316 -19583,50770 -18146,26867 -56630,35715 -57276,11072 -18240,53432 -59786,49780 -34612,37387 -11216,20220 -27514,42282 -2793,42975 -7358,59531 -43952,62673 -7987,43713 -32809,65228 -30971,56114 -5303,36503 -10895,26101 -52807,65208 -43991,25177 -38685,44678 -47237,4882 -26893,63024 -25092,57544 -58585,37146 -55055,30264 -22978,8129 -46437,338 -19636,23907 -49908,21066 -47578,64841 -40218,40856 -61991,18276 -2927,21351 -40452,64371 -36667,57954 -22690,15344 -27415,39857 -55074,28483 -49127,43528 -28088,7209 -40195,29192 -55664,36841 -3462,16323 -26578,41925 -40457,48531 -20100,51195 -5838,12603 -24190,18239 -9983,52804 -25779,57323 -1207,61364 -5717,38192 -11177,25775 -55997,51341 -43054,46696 -33194,8275 -65229,3366 -55865,25440 -61829,52590 -56540,48616 -25761,56921 -57624,6319 -29228,26295 -18261,8692 -13115,61307 -267,34213 -27920,23685 -414,44753 -18018,13194 -49887,58961 -45603,54974 -61379,34184 -11046,3351 -64805,14648 -8563,37661 -17787,48462 -1638,30958 -59301,10261 -7031,5881 -55562,22699 -65502,8306 -43732,43639 -42757,4554 -8190,2126 -33249,51176 -10389,21693 -57041,23876 -56020,24896 -12790,20014 -12294,21584 -53489,60952 -60761,14409 -26522,20033 -28136,6482 -43165,61282 -49366,19424 -3102,62580 -34533,51835 -12942,25873 -52987,57041 -40879,29929 -25717,13981 -53868,60494 -8423,63854 -19742,54629 -51812,18258 -63831,406 -60125,15135 -32049,51330 -51273,3122 -64342,9649 -42309,14851 -30660,56139 -21227,29538 -8235,41861 -43196,52633 -46035,16235 -30466,28683 -23317,14748 -23063,29386 -34669,23469 -48969,39611 -29764,17984 -45224,62939 -41071,58003 -5520,14513 -58574,39620 -2683,48674 -11529,37990 -18242,60666 -36399,11485 -31839,18272 -46895,30426 -61895,46980 -31402,57319 -4863,32774 -43336,18889 -42238,4172 -64287,64513 -44167,56899 -56834,12169 -47686,31676 -46469,53864 -23687,49688 -23753,51480 -43182,44488 -47579,46998 -27291,34573 -57631,57438 -20520,48855 -42823,45610 -42170,41223 -15831,56725 -43321,13195 -46973,50457 -42748,53222 -37819,40596 diff --git a/test/runsanitychecks.sh b/test/runsanitychecks.sh index de9b5486..e3579bd1 100755 --- a/test/runsanitychecks.sh +++ b/test/runsanitychecks.sh @@ -15,7 +15,7 @@ echo "-----------------------------------------------" echo "GCC - STL"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt -CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. cmake --build bgcc if [ $? -eq 0 ]; then echo "Passed" @@ -26,7 +26,7 @@ fi { echo ""; echo "GCC - No STL"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt -CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. cmake --build bgcc if [ $? -eq 0 ]; then echo "Passed" @@ -37,7 +37,7 @@ fi { echo ""; echo "GCC - No STL - Builtins"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt -CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. cmake --build bgcc if [ $? -eq 0 ]; then echo "Passed" @@ -48,7 +48,7 @@ fi ##{ echo ""; echo "GCC - No STL - User defined traits"; } | tee -a ../log.txt #g++ --version | head --lines=1 | tee -a ../log.txt -#CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON .. +#CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03=OFF .. #cmake --build bgcc #if [ $? -eq 0 ]; then # echo "Passed" @@ -59,7 +59,7 @@ fi { echo ""; echo "Clang - STL"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt -CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. cmake --build bclang if [ $? -eq 0 ]; then echo "Passed" @@ -70,7 +70,7 @@ fi { echo ""; echo "Clang - No STL"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt -CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. cmake --build bclang if [ $? -eq 0 ]; then echo "Passed" @@ -81,7 +81,7 @@ fi { echo ""; echo "Clang - No STL - Builtins"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt -CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. cmake --build bclang if [ $? -eq 0 ]; then echo "Passed" @@ -92,7 +92,7 @@ fi ##{ echo ""; echo "Clang - No STL - User defined traits"; } | tee -a ../log.txt #clang++ --version | head --lines=1 | tee -a ../log.txt -#CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON .. +#CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03=OFF .. #cmake --build bclang #if [ $? -eq 0 ]; then # echo "Passed" @@ -111,7 +111,18 @@ echo "-----------------------------------------------" echo "GCC - STL"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt -CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. +cmake --build bgcc +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi + +{ echo ""; echo "GCC - STL - Force C++03"; } | tee -a ../log.txt +g++ --version | head --lines=1 | tee -a ../log.txt +CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON .. cmake --build bgcc if [ $? -eq 0 ]; then echo "Passed" @@ -122,7 +133,7 @@ fi { echo ""; echo "GCC - No STL"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt -CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. cmake --build bgcc if [ $? -eq 0 ]; then echo "Passed" @@ -133,7 +144,7 @@ fi { echo ""; echo "GCC - No STL - Builtins"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt -CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. cmake --build bgcc if [ $? -eq 0 ]; then echo "Passed" @@ -144,7 +155,7 @@ fi ##{ echo ""; echo "GCC - No STL - User defined traits"; } | tee -a ../log.txt #g++ --version | head --lines=1 | tee -a ../log.txt -#CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON .. +#CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03=OFF .. #cmake --build bgcc #if [ $? -eq 0 ]; then # echo "Passed" @@ -155,7 +166,18 @@ fi { echo ""; echo "Clang - STL"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt -CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. +cmake --build bclang +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi + +{ echo ""; echo "Clang - STL - Force C++03"; } | tee -a ../log.txt +clang++ --version | head --lines=1 | tee -a ../log.txt +CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON .. cmake --build bclang if [ $? -eq 0 ]; then echo "Passed" @@ -166,7 +188,7 @@ fi { echo ""; echo "Clang - No STL"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt -CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. cmake --build bclang if [ $? -eq 0 ]; then echo "Passed" @@ -177,7 +199,7 @@ fi { echo ""; echo "Clang - No STL - Builtins"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt -CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. cmake --build bclang if [ $? -eq 0 ]; then echo "Passed" @@ -188,7 +210,7 @@ fi ##{ echo ""; echo "Clang - No STL - User defined traits"; } | tee -a ../log.txt #clang++ --version | head --lines=1 | tee -a ../log.txt -#CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON .. +#CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03=OFF .. #cmake --build bclang #if [ $? -eq 0 ]; then # echo "Passed" @@ -207,7 +229,18 @@ echo "-----------------------------------------------" echo "GCC - STL"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt -CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. +cmake --build bgcc +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi + +{ echo ""; echo "GCC - STL - Force C++03"; } | tee -a ../log.txt +g++ --version | head --lines=1 | tee -a ../log.txt +CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON .. cmake --build bgcc if [ $? -eq 0 ]; then echo "Passed" @@ -218,7 +251,7 @@ fi { echo ""; echo "GCC - No STL"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt -CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. cmake --build bgcc if [ $? -eq 0 ]; then echo "Passed" @@ -229,7 +262,7 @@ fi { echo ""; echo "GCC - No STL - Builtins"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt -CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. cmake --build bgcc if [ $? -eq 0 ]; then echo "Passed" @@ -240,8 +273,19 @@ fi ##{ echo ""; echo "GCC - No STL - User defined traits"; } | tee -a ../log.txt #g++ --version | head --lines=1 | tee -a ../log.txt -#CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON .. +#CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03=OFF .. #cmake --build bgcc +#if [ $? -eq 0 ]; then +# echo "Passed" +#else +# echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +# exit $? +#fi + +{ echo ""; echo "Clang - STL"; } | tee -a ../log.txt +clang++ --version | head --lines=1 | tee -a ../log.txt +CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. +cmake --build bclang if [ $? -eq 0 ]; then echo "Passed" else @@ -249,9 +293,9 @@ else exit $? fi -{ echo ""; echo "Clang - STL"; } | tee -a ../log.txt +{ echo ""; echo "Clang - STL - Force C++03"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt -CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON .. cmake --build bclang if [ $? -eq 0 ]; then echo "Passed" @@ -262,7 +306,7 @@ fi { echo ""; echo "Clang - No STL"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt -CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. cmake --build bclang if [ $? -eq 0 ]; then echo "Passed" @@ -273,7 +317,7 @@ fi { echo ""; echo "Clang - No STL - Builtins"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt -CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. cmake --build bclang if [ $? -eq 0 ]; then echo "Passed" @@ -284,7 +328,7 @@ fi ##{ echo ""; echo "Clang - No STL - User defined traits"; } | tee -a ../log.txt #clang++ --version | head --lines=1 | tee -a ../log.txt -#CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON .. +#CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03=OFF .. #cmake --build bclang #if [ $? -eq 0 ]; then # echo "Passed" @@ -303,7 +347,18 @@ echo "-----------------------------------------------" echo "GCC - STL"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt -CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. +cmake --build bgcc +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi + +{ echo ""; echo "GCC - STL - Force C++03"; } | tee -a ../log.txt +g++ --version | head --lines=1 | tee -a ../log.txt +CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON .. cmake --build bgcc if [ $? -eq 0 ]; then echo "Passed" @@ -314,7 +369,18 @@ fi { echo ""; echo "GCC - No STL"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt -CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. +cmake --build bgcc +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi + +{ echo ""; echo "GCC - No STL - Force C++03"; } | tee -a ../log.txt +g++ --version | head --lines=1 | tee -a ../log.txt +CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON .. cmake --build bgcc if [ $? -eq 0 ]; then echo "Passed" @@ -325,7 +391,7 @@ fi { echo ""; echo "GCC - No STL - Builtins"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt -CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. cmake --build bgcc if [ $? -eq 0 ]; then echo "Passed" @@ -336,7 +402,7 @@ fi ##{ echo ""; echo "GCC - No STL - User defined traits"; } | tee -a ../log.txt #g++ --version | head --lines=1 | tee -a ../log.txt -#CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON .. +#CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03=OFF .. #cmake --build bgcc #if [ $? -eq 0 ]; then # echo "Passed" @@ -347,7 +413,18 @@ fi { echo ""; echo "Clang - STL"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt -CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. +cmake --build bclang +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi + +{ echo ""; echo "Clang - STL - Force C++03"; } | tee -a ../log.txt +clang++ --version | head --lines=1 | tee -a ../log.txt +CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON .. cmake --build bclang if [ $? -eq 0 ]; then echo "Passed" @@ -358,7 +435,7 @@ fi { echo ""; echo "Clang - No STL"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt -CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. cmake --build bclang if [ $? -eq 0 ]; then echo "Passed" @@ -369,7 +446,7 @@ fi { echo ""; echo "Clang - No STL - Builtins"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt -CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. cmake --build bclang if [ $? -eq 0 ]; then echo "Passed" @@ -380,7 +457,7 @@ fi ##{ echo ""; echo "Clang - No STL - User defined traits"; } | tee -a ../log.txt #clang++ --version | head --lines=1 | tee -a ../log.txt -#CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON .. +#CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03=OFF .. #cmake --build bclang #if [ $? -eq 0 ]; then # echo "Passed" diff --git a/test/runtests.sh b/test/runtests.sh index 4c887d8e..d6bc72ba 100755 --- a/test/runtests.sh +++ b/test/runtests.sh @@ -3,12 +3,30 @@ cd build || exit 1 echo "ETL Tests" > log.txt + +#****************************************************************************** +# GCC +#****************************************************************************** echo "" echo "-----------------------------------------------" | tee -a log.txt -echo " GCC" | tee -a log.txt +echo " GCC - STL" | tee -a log.txt echo "-----------------------------------------------" | tee -a log.txt gcc --version | grep gcc | tee -a log.txt -CC=gcc CXX=g++ cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=gcc CXX=g++ cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. +make -j8 +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi +./etl_tests | tee log.txt +echo "" +echo "-----------------------------------------------" | tee -a log.txt +echo " GCC - STL - Force C++03" | tee -a log.txt +echo "-----------------------------------------------" | tee -a log.txt +gcc --version | grep gcc | tee -a log.txt +CC=gcc CXX=g++ cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON .. make -j8 if [ $? -eq 0 ]; then echo "Passed" @@ -22,7 +40,7 @@ echo "-----------------------------------------------" | tee -a log.txt echo " GCC - No STL" | tee -a log.txt echo "-----------------------------------------------" | tee -a log.txt gcc --version | grep gcc | tee -a log.txt -CC=gcc CXX=g++ cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=gcc CXX=g++ cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. make -j8 if [ $? -eq 0 ]; then echo "Passed" @@ -36,7 +54,25 @@ echo "-----------------------------------------------" | tee -a log.txt echo " GCC - No STL - Builtins" | tee -a log.txt echo "-----------------------------------------------" | tee -a log.txt gcc --version | grep gcc | tee -a log.txt -CC=gcc CXX=g++ cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=gcc CXX=g++ cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. +make -j8 +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi +./etl_tests | tee log.txt + +#****************************************************************************** +# CLANG +#****************************************************************************** +echo "" +echo "-----------------------------------------------" | tee -a log.txt +echo " Clang - STL" | tee -a log.txt +echo "-----------------------------------------------" | tee -a log.txt +clang --version | grep clang | tee -a log.txt +CC=clang CXX=clang++ cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. make -j8 if [ $? -eq 0 ]; then echo "Passed" @@ -47,10 +83,10 @@ fi ./etl_tests | tee log.txt echo "" echo "-----------------------------------------------" | tee -a log.txt -echo " Clang" | tee -a log.txt +echo " Clang - STL - Force C++03" | tee -a log.txt echo "-----------------------------------------------" | tee -a log.txt clang --version | grep clang | tee -a log.txt -CC=clang CXX=clang++ cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=clang CXX=clang++ cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON .. make -j8 if [ $? -eq 0 ]; then echo "Passed" @@ -64,7 +100,7 @@ echo "-----------------------------------------------" | tee -a log.txt echo " Clang - No STL" | tee -a log.txt echo "-----------------------------------------------" | tee -a log.txt clang --version | grep clang | tee -a log.txt -CC=clang CXX=clang++ cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=clang CXX=clang++ cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. make -j8 if [ $? -eq 0 ]; then echo "Passed" @@ -78,7 +114,7 @@ echo "-----------------------------------------------" | tee -a log.txt echo " Clang - No STL - Builtins" | tee -a log.txt echo "-----------------------------------------------" | tee -a log.txt clang --version | grep clang | tee -a log.txt -CC=clang CXX=clang++ cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. +CC=clang CXX=clang++ cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF .. make -j8 if [ $? -eq 0 ]; then echo "Passed" diff --git a/test/sanity-check/c++03/CMakeLists.txt b/test/sanity-check/c++03/CMakeLists.txt index eaea3524..724d7462 100644 --- a/test/sanity-check/c++03/CMakeLists.txt +++ b/test/sanity-check/c++03/CMakeLists.txt @@ -22,6 +22,11 @@ if (ETL_USER_DEFINED_TYPE_TRAITS) add_definitions(-DETL_USER_DEFINED_TYPE_TRAITS) endif() +if (ETL_FORCE_TEST_CPP03) + message(STATUS "Compiling for C++03 tests") + add_definitions(-DETL_FORCE_TEST_CPP03) +endif() + add_library(t98 OBJECT) target_compile_definitions(t98 PRIVATE __STDC_LIMIT_MACROS __STDC_CONSTANT_MACROS __STDC_FORMAT_MACROS) target_include_directories(t98 PRIVATE "") diff --git a/test/sanity-check/c++03/etl_profile.h b/test/sanity-check/c++03/etl_profile.h index f8c39aed..002a77d3 100644 --- a/test/sanity-check/c++03/etl_profile.h +++ b/test/sanity-check/c++03/etl_profile.h @@ -42,4 +42,27 @@ SOFTWARE. #define ETL_MESSAGE_TIMER_DISABLE_INTERRUPTS #define ETL_MESSAGE_TIMER_ENABLE_INTERRUPTS +#if defined(ETL_FORCE_TEST_CPP03) + #define ETL_FUNCTION_FORCE_CPP03 + #define ETL_PRIORITY_QUEUE_FORCE_CPP03 + #define ETL_QUEUE_ATOMIC_FORCE_CPP03 + #define ETL_VARIANT_FORCE_CPP03 + #define ETL_VECTOR_FORCE_CPP03 + #define ETL_QUEUE_FORCE_CPP03 + #define ETL_QUEUE_MPMC_MUTEX_FORCE_CPP03 + #define ETL_QUEUE_ISR_FORCE_CPP03 + #define ETL_QUEUE_LOCKED_FORCE_CPP03 + #define ETL_OPTIONAL_FORCE_CPP03 + #define ETL_LARGEST_TYPE_FORCE_CPP03 + #define ETL_TYPE_SELECT_FORCE_CPP03 + #define ETL_UNINITIALIZED_BUFFER_FORCE_CPP03 + #define ETL_CRC_FORCE_CPP03 + #define ETL_MEM_CAST_FORCE_CPP03 + #define ETL_OBSERVER_FORCE_CPP03 + #define ETL_MESSAGE_PACKET_FORCE_CPP03 + #define ETL_OBSERVER_FORCE_CPP03 + #define ETL_MESSAGE_ROUTER_FORCE_CPP03 + #define ETL_FSM_FORCE_CPP03 +#endif + #endif diff --git a/test/sanity-check/c++11/CMakeLists.txt b/test/sanity-check/c++11/CMakeLists.txt index c9c2d2a3..3855486d 100644 --- a/test/sanity-check/c++11/CMakeLists.txt +++ b/test/sanity-check/c++11/CMakeLists.txt @@ -22,6 +22,11 @@ if (ETL_USER_DEFINED_TYPE_TRAITS) add_definitions(-DETL_USER_DEFINED_TYPE_TRAITS) endif() +if (ETL_FORCE_TEST_CPP03) + message(STATUS "Compiling for C++03 tests") + add_definitions(-DETL_FORCE_TEST_CPP03) +endif() + add_library(t11 OBJECT) target_compile_definitions(t11 PRIVATE __STDC_LIMIT_MACROS __STDC_CONSTANT_MACROS __STDC_FORMAT_MACROS) target_include_directories(t11 PRIVATE "") diff --git a/test/sanity-check/c++11/etl_profile.h b/test/sanity-check/c++11/etl_profile.h index 1b7b1e0f..1c2c6283 100644 --- a/test/sanity-check/c++11/etl_profile.h +++ b/test/sanity-check/c++11/etl_profile.h @@ -42,4 +42,27 @@ SOFTWARE. #define ETL_MESSAGE_TIMER_DISABLE_INTERRUPTS #define ETL_MESSAGE_TIMER_ENABLE_INTERRUPTS +#if defined(ETL_FORCE_TEST_CPP03) + #define ETL_FUNCTION_FORCE_CPP03 + #define ETL_PRIORITY_QUEUE_FORCE_CPP03 + #define ETL_QUEUE_ATOMIC_FORCE_CPP03 + #define ETL_VARIANT_FORCE_CPP03 + #define ETL_VECTOR_FORCE_CPP03 + #define ETL_QUEUE_FORCE_CPP03 + #define ETL_QUEUE_MPMC_MUTEX_FORCE_CPP03 + #define ETL_QUEUE_ISR_FORCE_CPP03 + #define ETL_QUEUE_LOCKED_FORCE_CPP03 + #define ETL_OPTIONAL_FORCE_CPP03 + #define ETL_LARGEST_TYPE_FORCE_CPP03 + #define ETL_TYPE_SELECT_FORCE_CPP03 + #define ETL_UNINITIALIZED_BUFFER_FORCE_CPP03 + #define ETL_CRC_FORCE_CPP03 + #define ETL_MEM_CAST_FORCE_CPP03 + #define ETL_OBSERVER_FORCE_CPP03 + #define ETL_MESSAGE_PACKET_FORCE_CPP03 + #define ETL_OBSERVER_FORCE_CPP03 + #define ETL_MESSAGE_ROUTER_FORCE_CPP03 + #define ETL_FSM_FORCE_CPP03 +#endif + #endif diff --git a/test/sanity-check/c++14/CMakeLists.txt b/test/sanity-check/c++14/CMakeLists.txt index 4b3a512b..b1bf5e76 100644 --- a/test/sanity-check/c++14/CMakeLists.txt +++ b/test/sanity-check/c++14/CMakeLists.txt @@ -22,6 +22,11 @@ if (ETL_USER_DEFINED_TYPE_TRAITS) add_definitions(-DETL_USER_DEFINED_TYPE_TRAITS) endif() +if (ETL_FORCE_TEST_CPP03) + message(STATUS "Compiling for C++03 tests") + add_definitions(-DETL_FORCE_TEST_CPP03) +endif() + add_library(t14 OBJECT) target_compile_definitions(t14 PRIVATE __STDC_LIMIT_MACROS __STDC_CONSTANT_MACROS __STDC_FORMAT_MACROS) target_include_directories(t14 PRIVATE "") diff --git a/test/sanity-check/c++14/etl_profile.h b/test/sanity-check/c++14/etl_profile.h index c005303f..a5eed9bd 100644 --- a/test/sanity-check/c++14/etl_profile.h +++ b/test/sanity-check/c++14/etl_profile.h @@ -42,4 +42,27 @@ SOFTWARE. #define ETL_MESSAGE_TIMER_DISABLE_INTERRUPTS #define ETL_MESSAGE_TIMER_ENABLE_INTERRUPTS +#if defined(ETL_FORCE_TEST_CPP03) + #define ETL_FUNCTION_FORCE_CPP03 + #define ETL_PRIORITY_QUEUE_FORCE_CPP03 + #define ETL_QUEUE_ATOMIC_FORCE_CPP03 + #define ETL_VARIANT_FORCE_CPP03 + #define ETL_VECTOR_FORCE_CPP03 + #define ETL_QUEUE_FORCE_CPP03 + #define ETL_QUEUE_MPMC_MUTEX_FORCE_CPP03 + #define ETL_QUEUE_ISR_FORCE_CPP03 + #define ETL_QUEUE_LOCKED_FORCE_CPP03 + #define ETL_OPTIONAL_FORCE_CPP03 + #define ETL_LARGEST_TYPE_FORCE_CPP03 + #define ETL_TYPE_SELECT_FORCE_CPP03 + #define ETL_UNINITIALIZED_BUFFER_FORCE_CPP03 + #define ETL_CRC_FORCE_CPP03 + #define ETL_MEM_CAST_FORCE_CPP03 + #define ETL_OBSERVER_FORCE_CPP03 + #define ETL_MESSAGE_PACKET_FORCE_CPP03 + #define ETL_OBSERVER_FORCE_CPP03 + #define ETL_MESSAGE_ROUTER_FORCE_CPP03 + #define ETL_FSM_FORCE_CPP03 +#endif + #endif diff --git a/test/sanity-check/c++17/CMakeLists.txt b/test/sanity-check/c++17/CMakeLists.txt index 4b1b89c8..40d1b2ca 100644 --- a/test/sanity-check/c++17/CMakeLists.txt +++ b/test/sanity-check/c++17/CMakeLists.txt @@ -22,6 +22,11 @@ if (ETL_USER_DEFINED_TYPE_TRAITS) add_definitions(-DETL_USER_DEFINED_TYPE_TRAITS) endif() +if (ETL_FORCE_TEST_CPP03) + message(STATUS "Compiling for C++03 tests") + add_definitions(-DETL_FORCE_TEST_CPP03) +endif() + add_library(t17 OBJECT) target_compile_definitions(t17 PRIVATE __STDC_LIMIT_MACROS __STDC_CONSTANT_MACROS __STDC_FORMAT_MACROS) target_include_directories(t17 PRIVATE "") diff --git a/test/sanity-check/c++17/etl_profile.h b/test/sanity-check/c++17/etl_profile.h index 6631c522..ce3a9e27 100644 --- a/test/sanity-check/c++17/etl_profile.h +++ b/test/sanity-check/c++17/etl_profile.h @@ -42,4 +42,27 @@ SOFTWARE. #define ETL_MESSAGE_TIMER_DISABLE_INTERRUPTS #define ETL_MESSAGE_TIMER_ENABLE_INTERRUPTS +#if defined(ETL_FORCE_TEST_CPP03) + #define ETL_FUNCTION_FORCE_CPP03 + #define ETL_PRIORITY_QUEUE_FORCE_CPP03 + #define ETL_QUEUE_ATOMIC_FORCE_CPP03 + #define ETL_VARIANT_FORCE_CPP03 + #define ETL_VECTOR_FORCE_CPP03 + #define ETL_QUEUE_FORCE_CPP03 + #define ETL_QUEUE_MPMC_MUTEX_FORCE_CPP03 + #define ETL_QUEUE_ISR_FORCE_CPP03 + #define ETL_QUEUE_LOCKED_FORCE_CPP03 + #define ETL_OPTIONAL_FORCE_CPP03 + #define ETL_LARGEST_TYPE_FORCE_CPP03 + #define ETL_TYPE_SELECT_FORCE_CPP03 + #define ETL_UNINITIALIZED_BUFFER_FORCE_CPP03 + #define ETL_CRC_FORCE_CPP03 + #define ETL_MEM_CAST_FORCE_CPP03 + #define ETL_OBSERVER_FORCE_CPP03 + #define ETL_MESSAGE_PACKET_FORCE_CPP03 + #define ETL_OBSERVER_FORCE_CPP03 + #define ETL_MESSAGE_ROUTER_FORCE_CPP03 + #define ETL_FSM_FORCE_CPP03 +#endif + #endif diff --git a/test/test_message_router.cpp b/test/test_message_router.cpp index cd943e62..5007ac83 100644 --- a/test/test_message_router.cpp +++ b/test/test_message_router.cpp @@ -389,7 +389,8 @@ namespace CHECK_EQUAL(0, router.sender_id); // Send from the producer. - etl::send_message(router, message1); + router.receive(message1); + //etl::send_message(router, message1); CHECK_EQUAL(1, router.message1_count); CHECK_EQUAL(0, router.message2_count); CHECK_EQUAL(0, router.message4_count); diff --git a/test/vs2019/etl.sln b/test/vs2019/etl.sln index e59f7560..1e8e0523 100644 --- a/test/vs2019/etl.sln +++ b/test/vs2019/etl.sln @@ -13,8 +13,8 @@ Global Debug LLVM - No STL|x64 = Debug LLVM - No STL|x64 Debug LLVM|Win32 = Debug LLVM|Win32 Debug LLVM|x64 = Debug LLVM|x64 - Debug MSVC - Force cpp03|Win32 = Debug MSVC - Force cpp03|Win32 - Debug MSVC - Force cpp03|x64 = Debug MSVC - Force cpp03|x64 + Debug MSVC - Force C++03|Win32 = Debug MSVC - Force C++03|Win32 + Debug MSVC - Force C++03|x64 = Debug MSVC - Force C++03|x64 Debug MSVC - No STL - Built-ins|Win32 = Debug MSVC - No STL - Built-ins|Win32 Debug MSVC - No STL - Built-ins|x64 = Debug MSVC - No STL - Built-ins|x64 Debug MSVC - No STL - Force No Advanced|Win32 = Debug MSVC - No STL - Force No Advanced|Win32 @@ -33,12 +33,10 @@ Global Debug MSVC No Checks|x64 = Debug MSVC No Checks|x64 Debug MSVC|Win32 = Debug MSVC|Win32 Debug MSVC|x64 = Debug MSVC|x64 - LLVM New|Win32 = LLVM New|Win32 - LLVM New|x64 = LLVM New|x64 - MSVCDebugAppveyor|Win32 = MSVCDebugAppveyor|Win32 - MSVCDebugAppveyor|x64 = MSVCDebugAppveyor|x64 - MSVCDebugNoSTLAppveyor|Win32 = MSVCDebugNoSTLAppveyor|Win32 - MSVCDebugNoSTLAppveyor|x64 = MSVCDebugNoSTLAppveyor|x64 + MSVC Debug Appveyor|Win32 = MSVC Debug Appveyor|Win32 + MSVC Debug Appveyor|x64 = MSVC Debug Appveyor|x64 + MSVC Debug No STL Appveyor|Win32 = MSVC Debug No STL Appveyor|Win32 + MSVC Debug No STL Appveyor|x64 = MSVC Debug No STL Appveyor|x64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 EndGlobalSection @@ -55,20 +53,20 @@ Global {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug LLVM|Win32.Build.0 = Debug LLVM|Win32 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug LLVM|x64.ActiveCfg = Debug LLVM|x64 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug LLVM|x64.Build.0 = Debug LLVM|x64 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - Force cpp03|Win32.ActiveCfg = Debug MSVC - Force cpp03|Win32 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - Force cpp03|Win32.Build.0 = Debug MSVC - Force cpp03|Win32 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - Force cpp03|x64.ActiveCfg = Debug MSVC - Force cpp03|x64 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - Force cpp03|x64.Build.0 = Debug MSVC - Force cpp03|x64 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - No STL - Built-ins|Win32.ActiveCfg = Test1|Win32 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - No STL - Built-ins|Win32.Build.0 = Test1|Win32 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - Force C++03|Win32.ActiveCfg = Debug MSVC - Force C++03|Win32 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - Force C++03|Win32.Build.0 = Debug MSVC - Force C++03|Win32 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - Force C++03|x64.ActiveCfg = Debug MSVC - Force C++03|x64 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - Force C++03|x64.Build.0 = Debug MSVC - Force C++03|x64 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - No STL - Built-ins|Win32.ActiveCfg = Debug|Win32 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - No STL - Built-ins|Win32.Build.0 = Debug|Win32 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - No STL - Built-ins|x64.ActiveCfg = Test1|x64 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - No STL - Built-ins|x64.Build.0 = Test1|x64 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - No STL - Force No Advanced|Win32.ActiveCfg = DebugNoSTLForceNoAdvanced|Win32 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - No STL - Force No Advanced|Win32.Build.0 = DebugNoSTLForceNoAdvanced|Win32 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - No STL - Force No Advanced|x64.ActiveCfg = DebugNoSTLForceNoAdvanced|x64 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - No STL - Force No Advanced|x64.Build.0 = DebugNoSTLForceNoAdvanced|x64 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - No STL|Win32.ActiveCfg = DebugNoSTL|Win32 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - No STL|Win32.Build.0 = DebugNoSTL|Win32 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - No STL|Win32.ActiveCfg = Debug|Win32 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - No STL|Win32.Build.0 = Debug|Win32 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - No STL|x64.ActiveCfg = DebugNoSTL|x64 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - No STL|x64.Build.0 = DebugNoSTL|x64 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - No Unit Tests|Win32.ActiveCfg = Debug No Unit Tests|Win32 @@ -79,8 +77,8 @@ Global {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - Small Strings|Win32.Build.0 = DebugMSVCSmallStrings|Win32 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - Small Strings|x64.ActiveCfg = DebugMSVCSmallStrings|x64 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - Small Strings|x64.Build.0 = DebugMSVCSmallStrings|x64 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - String Truncation Is Error|Win32.ActiveCfg = DebugStringTruncationIsError|Win32 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - String Truncation Is Error|Win32.Build.0 = DebugStringTruncationIsError|Win32 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - String Truncation Is Error|Win32.ActiveCfg = Debug|Win32 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - String Truncation Is Error|Win32.Build.0 = Debug|Win32 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - String Truncation Is Error|x64.ActiveCfg = DebugStringTruncationIsError|x64 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC - String Truncation Is Error|x64.Build.0 = DebugStringTruncationIsError|x64 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC 64|Win32.ActiveCfg = Debug No Unit Tests|Win32 @@ -95,18 +93,14 @@ Global {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC|Win32.Build.0 = Debug|Win32 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC|x64.ActiveCfg = Debug|x64 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug MSVC|x64.Build.0 = Debug|x64 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.LLVM New|Win32.ActiveCfg = LLVM New|Win32 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.LLVM New|Win32.Build.0 = LLVM New|Win32 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.LLVM New|x64.ActiveCfg = LLVM New|x64 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.LLVM New|x64.Build.0 = LLVM New|x64 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.MSVCDebugAppveyor|Win32.ActiveCfg = MSVCDebugAppveyor|Win32 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.MSVCDebugAppveyor|Win32.Build.0 = MSVCDebugAppveyor|Win32 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.MSVCDebugAppveyor|x64.ActiveCfg = MSVCDebugAppveyor|x64 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.MSVCDebugAppveyor|x64.Build.0 = MSVCDebugAppveyor|x64 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.MSVCDebugNoSTLAppveyor|Win32.ActiveCfg = MSVCDebugNoSTLAppveyor|Win32 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.MSVCDebugNoSTLAppveyor|Win32.Build.0 = MSVCDebugNoSTLAppveyor|Win32 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.MSVCDebugNoSTLAppveyor|x64.ActiveCfg = MSVCDebugNoSTLAppveyor|x64 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.MSVCDebugNoSTLAppveyor|x64.Build.0 = MSVCDebugNoSTLAppveyor|x64 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.MSVC Debug Appveyor|Win32.ActiveCfg = MSVC Debug Appveyor|Win32 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.MSVC Debug Appveyor|Win32.Build.0 = MSVC Debug Appveyor|Win32 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.MSVC Debug Appveyor|x64.ActiveCfg = MSVC Debug Appveyor|x64 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.MSVC Debug Appveyor|x64.Build.0 = MSVC Debug Appveyor|x64 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.MSVC Debug No STL Appveyor|Win32.ActiveCfg = MSVC Debug No STL Appveyor|Win32 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.MSVC Debug No STL Appveyor|Win32.Build.0 = MSVC Debug No STL Appveyor|Win32 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.MSVC Debug No STL Appveyor|x64.ActiveCfg = MSVC Debug No STL Appveyor|x64 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.MSVC Debug No STL Appveyor|x64.Build.0 = MSVC Debug No STL Appveyor|x64 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Release|Win32.ActiveCfg = Release|Win32 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Release|Win32.Build.0 = Release|Win32 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Release|x64.ActiveCfg = Release|x64 diff --git a/test/vs2019/etl.vcxproj b/test/vs2019/etl.vcxproj index 29d2d692..44781934 100644 --- a/test/vs2019/etl.vcxproj +++ b/test/vs2019/etl.vcxproj @@ -25,6 +25,14 @@ Debug LLVM x64 + + Debug MSVC - Force C++03 + Win32 + + + Debug MSVC - Force C++03 + x64 + Debug MSVC - Force cpp03 Win32 @@ -41,28 +49,20 @@ Debug MSVC - No STL - Built-ins x64 - - Debug-LLVM-NoSTL-Builtins + + Debug MSVC - Small Strings Win32 - - Debug-LLVM-NoSTL-Builtins + + Debug MSVC - Small Strings x64 - - DebugMSVCSmallStrings + + Debug MSVC - No Checks Win32 - - DebugMSVCSmallStrings - x64 - - - Debug MSVC No Checks - Win32 - - - Debug MSVC No Checks + + Debug MSVC - No Checks x64 @@ -73,44 +73,44 @@ Debug64 x64 - - Debug No Unit Tests + + Debug - No Unit Tests Win32 - - Debug No Unit Tests + + Debug - No Unit Tests x64 - - DebugLLVMNoSTL + + Debug LLVM - No STL Win32 - - DebugLLVMNoSTL + + Debug LLVM - No STL x64 - - DebugNoSTLForceNoAdvanced + + Debug - No STL - Force No Advanced Win32 - - DebugNoSTLForceNoAdvanced + + Debug - No STL - Force No Advanced x64 - - DebugNoSTL + + Debug - No STL Win32 - - DebugNoSTL + + Debug - No STL x64 - - DebugStringTruncationIsError + + Debug - String Truncation Is Error Win32 - - DebugStringTruncationIsError + + Debug - String Truncation Is Error x64 @@ -121,28 +121,20 @@ Debug x64 - - LLVM New + + MSVC Debug - Appveyor Win32 - - LLVM New + + MSVC Debug - Appveyor x64 - - MSVCDebugAppveyor + + MSVC Debug - No STL - Appveyor Win32 - - MSVCDebugAppveyor - x64 - - - MSVCDebugNoSTLAppveyor - Win32 - - - MSVCDebugNoSTLAppveyor + + MSVC Debug - No STL - Appveyor x64 @@ -153,22 +145,6 @@ Release x64 - - Test1 - Win32 - - - Test1 - x64 - - - Test2 - Win32 - - - Test2 - x64 - {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB} @@ -185,6 +161,13 @@ Unicode false + + Application + true + v142 + Unicode + false + Application true @@ -192,13 +175,13 @@ Unicode false - + Application true v142 Unicode - + Application true v142 @@ -210,19 +193,19 @@ v142 Unicode - + Application true v142 Unicode - + Application true v142 Unicode - + Application true v142 @@ -236,13 +219,13 @@ Unicode false - + Application true v142 Unicode - + Application true v142 @@ -254,7 +237,7 @@ ClangCL Unicode - + Application true ClangCL @@ -290,19 +273,25 @@ v142 Unicode + + Application + true + v142 + Unicode + Application true v142 Unicode - + Application true v142 Unicode - + Application true v142 @@ -314,19 +303,19 @@ v142 Unicode - + Application true v142 Unicode - + Application true v142 Unicode - + Application true v142 @@ -338,13 +327,13 @@ v142 Unicode - + Application true v142 Unicode - + Application true v142 @@ -356,7 +345,7 @@ v142 Unicode - + Application true v142 @@ -398,13 +387,13 @@ v142 Unicode - + Application true v142 Unicode - + Application true v142 @@ -436,40 +425,43 @@ + + + - + - + - + - + - + - + - + - + @@ -487,40 +479,43 @@ + + + - + - + - + - + - + - + - + - + @@ -541,10 +536,10 @@ - + - + @@ -557,42 +552,48 @@ true true - \$(IntDir) + $(Configuration)\ + + + true + true + $(Configuration)\ true true - $(SolutionDir)$(IntDir) + $(Configuration)\ + $(SolutionDir)$(Configuration)\ - + true true - \$(IntDir) + $(Configuration)\ - + true true - \$(IntDir) + $(Configuration)\ true true \$(IntDir) - + true false - \$(IntDir) + $(Configuration)\ - + true true - \$(IntDir) + $(Configuration)\ - + true true - \$(IntDir) + $(Configuration)\ true @@ -602,27 +603,27 @@ true true - \$(IntDir) + $(Configuration)\ - + true true - \$(IntDir) + $(Configuration)\ - + true true - \$(IntDir) + $(Configuration)\ false true - \$(IntDir) + $(Configuration)\ - + false true - \$(IntDir) + $(Configuration)\ false @@ -637,26 +638,30 @@ false true - \$(IntDir) + $(Configuration)\ false true - \$(IntDir) + $(Configuration)\ true true + + true + true + true true - + true true - + true true @@ -664,15 +669,15 @@ true true - + true true - + true true - + true true @@ -684,11 +689,11 @@ true true - + true true - + true true @@ -696,7 +701,7 @@ true true - + true true @@ -719,17 +724,17 @@ true true - \$(IntDir) + $(Configuration)\ true true - + true true - + true true @@ -760,7 +765,29 @@ true - $(OutDir)\etl.exe + "$(OutDir)\etl.exe" + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_LIB;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;ETL_FORCE_TEST_CPP03;%(PreprocessorDefinitions) + ../../../unittest-cpp/;../../include;../../test + + + true + stdcpp17 + EditAndContinue + + + Console + true + + + "$(OutDir)\etl.exe" @@ -782,10 +809,10 @@ true - $(OutDir)\etl.exe + "$(OutDir)etl.exe" - + @@ -803,10 +830,10 @@ true - $(OutDir)\etl.exe + "$(OutDir)etl.exe" - + @@ -824,7 +851,7 @@ true - $(OutDir)\etl.exe + "$(OutDir)etl.exe" @@ -848,7 +875,7 @@ $(OutDir)\etl.exe - + @@ -866,10 +893,10 @@ true - $(OutDir)\etl.exe + "$(OutDir)etl.exe" - + @@ -887,10 +914,10 @@ true - $(OutDir)\etl.exe + "$(OutDir)etl.exe" - + @@ -909,7 +936,7 @@ true - $(OutDir)\etl.exe + "$(OutDir)etl.exe" @@ -931,10 +958,10 @@ true - $(OutDir)\etl.exe + "$(OutDir)etl.exe" - + @@ -952,10 +979,10 @@ true - $(OutDir)\etl.exe + "$(OutDir)etl.exe" - + @@ -973,7 +1000,7 @@ true - $(OutDir)\etl.exe + "$(OutDir)etl.exe" @@ -1000,7 +1027,7 @@ "$(OutDir)etl.exe" - + @@ -1165,6 +1192,27 @@ $(OutDir)\etl.exe + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_LIB;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + ../../unittest-cpp/UnitTest++/;../../include/etl;../../test + + + false + stdcpp14 + + + Console + true + + + $(OutDir)\etl.exe + + @@ -1186,7 +1234,7 @@ $(OutDir)\etl.exe - + @@ -1207,7 +1255,7 @@ $(OutDir)\etl.exe - + @@ -1249,7 +1297,7 @@ $(OutDir)\etl.exe - + @@ -1270,7 +1318,7 @@ $(OutDir)\etl.exe - + @@ -1291,7 +1339,7 @@ $(OutDir)\etl.exe - + @@ -1333,7 +1381,7 @@ $(OutDir)\etl.exe - + @@ -1354,7 +1402,7 @@ $(OutDir)\etl.exe - + @@ -1396,7 +1444,7 @@ $(OutDir)\etl.exe - + @@ -1519,7 +1567,7 @@ true - $(OutDir)\etl.exe + "$(OutDir)etl.exe" @@ -1543,7 +1591,7 @@ $(OutDir)\etl.exe - + @@ -1564,7 +1612,7 @@ - + @@ -1995,5380 +2043,5614 @@ true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true + true true - true + true true - true - true - true - true + true + true + true + true true true - true + true true - true + true true true true - true - true + true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true true true true - true - true + true + true true - true - true + true + true true - true - true + true + true true + true true - true + true true - true + true true true true true - true + true @@ -7477,47 +7759,49 @@ false false false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false false false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false false false false - false - false + false + false @@ -7534,47 +7818,49 @@ false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false false false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false false false false - false - false + false + false @@ -7586,39 +7872,41 @@ false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false false false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false @@ -7628,39 +7916,41 @@ false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false false false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false @@ -7670,39 +7960,41 @@ false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false false false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false @@ -7712,39 +8004,41 @@ false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false false false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false @@ -7754,39 +8048,41 @@ false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false false false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false @@ -7801,85 +8097,89 @@ false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false false false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false false false false - false - false + false + false true true false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false false false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false @@ -7899,47 +8199,49 @@ false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false false false + false false - false - false + false + false false - false - false - false - false + false + false + false + false false false - false - false + false + false false - false + false false false false false false false - false - false + false + false